3 shaved 3 bytes
source | link

UberGenes, 3333 30 bytes

=ii+a1=pa=q7*q7=bi=ii+a1=pa=q5=bi-p1=oqp1=oQ:bp=oI=i0
=ii                                  NOP
   +a1                               INC a (initially 0)
   =pa                               COPY a INTO p
   =q7*q7=q5                               SET q=49q=5 (so it points to '1')
   =bi                               SET b to this location (15)
      -p1                            DEC p
      =oq=oQ                            OUTPUT '1'
      :bp                            JUMP to b's location while p>0
   =oI                               OUTPUT the contents of this location ('=')
   =i0                               JUMP to the beginning of main loop.

UberGenes, 33 bytes

=ii+a1=pa=q7*q7=bi-p1=oq:bp=oI=i0
=ii                                  NOP
   +a1                               INC a (initially 0)
   =pa                               COPY a INTO p
   =q7*q7                            SET q=49 ('1')
   =bi                               SET b to this location (15)
      -p1                            DEC p
      =oq                            OUTPUT '1'
      :bp                            JUMP to b's location while p>0
   =oI                               OUTPUT the contents of this location ('=')
   =i0                               JUMP to the beginning of main loop.

UberGenes, 33 30 bytes

=ii+a1=pa=q5=bi-p1=oQ:bp=oI=i0
=ii                                  NOP
   +a1                               INC a (initially 0)
   =pa                               COPY a INTO p
   =q5                               SET q=5 so it points to '1'
   =bi                               SET b to this location (15)
      -p1                            DEC p
      =oQ                            OUTPUT '1'
      :bp                            JUMP to b's location while p>0
   =oI                               OUTPUT the contents of this location ('=')
   =i0                               JUMP to the beginning of main loop.
2 Add a short unary version
source | link

UberGenes, 6633 bytes

I'm giving two versions here, just to demonstrate the lang. Integers and memory in UberGenes are bounded only by computer memory, so both versions meet the "forever" requirement. This first one is for score:

=ii+a1=pa=q7*q7=bi-p1=oq:bp=oI=i0

It prints numbers in unary separated by '=' characters. Explanation (indents indicate a loop start):

=ii                                  NOP
   +a1                               INC a (initially 0)
   =pa                               COPY a INTO p
   =q7*q7                            SET q=49 ('1')
   =bi                               SET b to this location (15)
      -p1                            DEC p
      =oq                            OUTPUT '1'
      :bp                            JUMP to b's location while p>0
   =oI                               OUTPUT the contents of this location ('=')
   =i0                               JUMP to the beginning of main loop.

The second version is more interesting (66 bytes):

=ii+a1=l0-l2=pa=z8*z6=t5*t2=bi=qp%qt+qz=Lq-l1/pt:bp=bi=oL+l1:bL=i0

PrintsIt prints the numbers in decimal separated by NULLs. Integers and memory in UberGenes are bounded only by computer memory, so it meets the "forever" requirement.

UberGenes, 66 bytes

=ii+a1=l0-l2=pa=z8*z6=t5*t2=bi=qp%qt+qz=Lq-l1/pt:bp=bi=oL+l1:bL=i0

Prints the numbers separated by NULLs. Integers and memory in UberGenes are bounded only by computer memory, so it meets the "forever" requirement.

UberGenes, 33 bytes

I'm giving two versions here, just to demonstrate the lang. Integers and memory in UberGenes are bounded only by computer memory, so both versions meet the "forever" requirement. This first one is for score:

=ii+a1=pa=q7*q7=bi-p1=oq:bp=oI=i0

It prints numbers in unary separated by '=' characters. Explanation (indents indicate a loop start):

=ii                                  NOP
   +a1                               INC a (initially 0)
   =pa                               COPY a INTO p
   =q7*q7                            SET q=49 ('1')
   =bi                               SET b to this location (15)
      -p1                            DEC p
      =oq                            OUTPUT '1'
      :bp                            JUMP to b's location while p>0
   =oI                               OUTPUT the contents of this location ('=')
   =i0                               JUMP to the beginning of main loop.

The second version is more interesting (66 bytes):

=ii+a1=l0-l2=pa=z8*z6=t5*t2=bi=qp%qt+qz=Lq-l1/pt:bp=bi=oL+l1:bL=i0

It prints the numbers in decimal separated by NULLs.

1
source | link

UberGenes, 66 bytes

=ii+a1=l0-l2=pa=z8*z6=t5*t2=bi=qp%qt+qz=Lq-l1/pt:bp=bi=oL+l1:bL=i0

Prints the numbers separated by NULLs. Integers and memory in UberGenes are bounded only by computer memory, so it meets the "forever" requirement.

How it works (indents indicate a loop start):

=ii                                  NOP
   +a1                               INC a (initially 0)
   =l0-l2                            SET l=-2
   =pa                               COPY a INTO p
   =z8*z6                            SET z=48 ('0')
   =t5*t2                            SET t=10
   =bi                               SET b to this location (27)
      =qp                            COPY p INTO q
      %qt                            MOD q BY 10
      +qz                            ADD 48 to q (turn it into character)
      =Lq                            PUT q AT MEM[l]
      -l1                            DEC l
      /pt                            DIVIDE p by 10
      :bp                            JUMP back to b's location if p>0
   =bi                               SET b to this location (51)
      =oL                            OUTPUT the character in MEM[l]
      +l1                            INC l
      :bL                            JUMP back to b's location if MEM[l]>0
   =i0                               JUMP back to beginning of main loop