shithub: femtolisp

Download patch

ref: f7b53020ad8d6fcde7e963958e00598522c8c8ca
parent: b6927437b4089386066a6dbe1b7e84fb4e20d638
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu Nov 28 01:44:29 EST 2024

remove unused "nop" opcode

--- a/flisp.boot
+++ b/flisp.boot
@@ -15,7 +15,7 @@
 	      #fn("8000z0700}2:" #(div0))
 	      #fn("6000n201l:" #()) #fn("6000n201m:" #()) 0 #fn("8000z0700}2:" #(vector))
 	      #fn("7000n30182p:" #()) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-	      0 0 0 0 0 0 0 0 0 0 0 0)
+	      0 0 0 0 0 0 0 0 0 0 0)
 	    *empty-string* "" *interactive* #f *runestring-type* (array rune)
 	    *string-type* (array byte) *syntax-environment*
 	    #table(when #fn(";000z1200211POe4:" #(if begin))  with-output-to #fn("<000z12021e1220e2e1e12315163:" #(#fn(nconc)
@@ -49,7 +49,7 @@
   length=) 1arg-lambda?)
 	    <= #fn("6000n210L;IB0470051;380470151S:" #(nan?) <=) >
 	    #fn("6000n210L:" #() >) >= #fn("6000n201L;IB0470051;380470151S:" #(nan?) >=)
-	    Instructions #table(call.l 81  trycatch 75  largc 79  loadg.l 68  box 90  cadr 36  argc 62  setg 71  load0 21  vector? 45  fixnum? 41  loadc0 17  loada0 0  div0 59  keyargs 89  call 5  loada.l 69  brt.l 50  pair? 18  sub2 78  add2 29  loadc.l 70  loadc 9  builtin? 43  set-car! 47  brt 25  ret 10  loadi8 66  tapply 77  loada1 1  shift 92  boolean? 39  atom? 24  cdr 13  brne.l 83  / 58  loadf 31  equal? 52  apply 54  dup 11  loadt 20  jmp.l 48  null? 38  not 35  = 60  set-cdr! 30  eq? 33  * 57  load1 27  dummy_t 94  bound? 42  brf 3  function? 44  box.l 91  < 28  brnn.l 84  jmp 16  loadv 2  for 76  lvargc 80  dummy_eof 96  + 55  dummy_f 93  brne 19  compare 61  neg 37  loadv.l 67  number? 40  vargc 74  brn 85  brbound 88  vector 63  loadc1 22  setg.l 72  aref 23  brf.l 49  symbol? 34  aset! 64  car 12  cons 32  tcall.l 82  - 56  brn.l 86  optargs 87  nop 46  closure 14  pop 4  eqv? 51  list 53  seta 15  seta.l 73  brnn 26  loadnil 65  loadg 7  loada 8  dummy_nil 95  tcall 6)
+	    Instructions #table(call.l 81  trycatch 75  largc 79  loadg.l 68  box 90  cadr 36  argc 62  setg 71  load0 21  vector? 45  fixnum? 41  loadc0 17  loada0 0  div0 59  keyargs 89  call 5  loada.l 69  brt.l 50  pair? 18  sub2 78  add2 29  loadc.l 70  loadc 9  builtin? 43  set-car! 47  brt 25  ret 10  loadi8 66  tapply 77  loada1 1  shift 46  boolean? 39  atom? 24  cdr 13  brne.l 83  / 58  loadf 31  equal? 52  apply 54  dup 11  loadt 20  jmp.l 48  null? 38  not 35  = 60  set-cdr! 30  eq? 33  * 57  load1 27  dummy_t 93  bound? 42  brf 3  function? 44  box.l 91  < 28  brnn.l 84  jmp 16  loadv 2  for 76  lvargc 80  dummy_eof 95  + 55  dummy_f 92  brne 19  compare 61  neg 37  loadv.l 67  number? 40  vargc 74  brn 85  brbound 88  vector 63  loadc1 22  setg.l 72  brf.l 49  aref 23  symbol? 34  aset! 64  car 12  cons 32  tcall.l 82  - 56  brn.l 86  optargs 87  closure 14  pop 4  eqv? 51  list 53  seta 15  seta.l 73  brnn 26  loadnil 65  loadg 7  loada 8  dummy_nil 94  tcall 6)
 	    __init_globals #fn("5000n020w1422w3474w5476w7478w9:" #("/"
 								   *directory-separator*
 								   "\n"
@@ -60,7 +60,7 @@
 								   *input-stream*
 								   *stderr*
 								   *error-stream*) __init_globals)
-	    __rcscript #fn(":000n0708421c37022@U08423c3A0242526512752@>0242528512952\x8c12:84513907;8461:D:" #(*os-name*
+	    __rcscript #fn(":000n0708421c37022@U08423c3A0242526512752@>0242528512952^12:84513907;8461:D:" #(*os-name*
   unknown "" plan9 #fn(string) #fn(os-getenv) "home" "/lib/flisprc" "HOME" "/.flisprc"
   #fn(path-exists?) load) __rcscript)
 	    __script #fn("6000n1200>121{:" #(#fn("6000n070A61:" #(load))
@@ -82,7 +82,7 @@
   bcode:nconst #fn(has?) #fn(get) #fn(put!)) bcode:indexfor)
 	    bcode:nconst #fn("6000n10r2G:" #() bcode:nconst) bcode:sp
 	    #fn("6000n10r4G:" #() bcode:sp) bcode:stack #fn("8000n20r40r4G1Mp:" #() bcode:stack)
-	    box-vars #fn("9000n2D\x8a68620086>2_486<\x8c1161:" #(#fn("9000n10B3Q00<T3B070A21720<5153@30D4F<0=61:D:" #(emit
+	    box-vars #fn("9000n2D\x8a68620086>2_486<^1161:" #(#fn("9000n10B3Q00<T3B070A21720<5153@30D4F<0=61:D:" #(emit
   box caddr))) box-vars)
 	    bq-bracket #fn(";000n20H3=070710152e2:0<22CR01El380700=P:707324710=1K~52e3e2:0<25CS01El390260Te2:707027710T1K~52e3e2:0<28CO01El3500T:707029710T1K~52e3e2:70710152e2:" #(list
   bq-process unquote cons 'unquote unquote-splicing copy-list 'unquote-splicing
@@ -89,7 +89,7 @@
   unquote-nsplicing 'unquote-nsplicing) bq-bracket)
 	    bq-bracket1 #fn(":000n20B;38040<20Q3K01El3500T:7122730=1K~52e3:730162:" #(unquote
   cons 'unquote bq-process) bq-bracket1)
-	    bq-process #fn("<000n20R380200e2:0]3T0717205115286<73C907486=P:757486e3:0H3400:0<26CB07327710T1KM52e3:0<28CW01El;3:04790r2523500T:7:2;710=1K~52e3:7<7=052It07>0512?2@1>105286J807387P:87=JA07:87<7186152e3:2A7B87P7186152e162:D\x8a6862C186>2_486<\x8c10q62:" #(quote
+	    bq-process #fn("<000n20R380200e2:0]3T0717205115286<73C907486=P:757486e3:0H3400:0<26CB07327710T1KM52e3:0<28CW01El;3:04790r2523500T:7:2;710=1K~52e3:7<7=052It07>0512?2@1>105286J807387P:87=JA07:87<7186152e3:2A7B87P7186152e162:D\x8a6862C186>2_486<^10q62:" #(quote
   bq-process vector->list list vector apply quasiquote 'quasiquote unquote
   length= cons 'unquote any splice-form? lastcdr #fn(map)
   #fn("7000n1700A62:" #(bq-bracket1)) #fn(nconc) list* #fn("=000n20J;02071151P:0B3n00<22CW020731AEl3700=@C07425e2760=AK~52e252P:F<0=770<A521P62:2071760A521P51P:" #(nconc
@@ -182,12 +182,12 @@
   bcode:nconst table-foreach #fn("7000n2A10p:" #()) bcode:ctable) const-to-idx-vec)
 	    copy-tree #fn("7000n10H3400:700<51700=51P:" #(copy-tree) copy-tree)
 	    count #fn("9000n2D\x8a6862086>1_486<01E63:" #(#fn("9000n31J5082:A<01=01<5139082KM@408263:" #() count-)) count)
-	    delete-duplicates #fn(":000n1700rD523O02150D\x8a686228586>2_486<\x8c10q62:0H3400:0<0=73858652390748661:85748651P:" #(length>
+	    delete-duplicates #fn(":000n1700rD523O02150D\x8a686228586>2_486<^10q62:0H3400:0<0=73858652390748661:85748651P:" #(length>
   #fn(table) #fn("8000n20H38070161:21A0<523:0F<0=162:22A0<D534F<0=0<1P62:" #(reverse!
   #fn(has?) #fn(put!))) member delete-duplicates) delete-duplicates)
 	    diff #fn("8000n20J40q:200<1523:0710=162:0<710=152P:" #(#fn(memq)
 								   diff) diff)
-	    disassemble #fn("T000\x871000.///\x881000I60O?14z282JD07001E53471504D:@30D482<2205123051DD2487>1?:425187>2?;4r4268851\x8a<D8<<8=L3\x85242728888<>2O79537:8<<r4523907150@30D4E87K~2;|48<8<<KM_48>2<8?2=523[08;8>8<<r45348:897>888<<52G5148<8<<r4M_@\x1112<8?2?523V08;8>8<<K5348:89888<<GG5148<8<<KM_@\xe212<8?2@523W08;8>8<<K5347A2B888<<G515148<8<<KM_@\xb212<8?2C523\\08;8>8<<r45347A2B7>888<<52515148<8<<r4M_@}12<8?2D523\xb808;8>8<<r88>2EC70r4@30EM5347A2B7>888<<52512F5248<8<<r4M_47A2B7>888<<52515148<8<<r4M_48>2ECY07A2F5147A2B7>888<<52512F5248<8<<r4M_@30D@\xec08?2Gc3^08;8>8<<r45347A2B7>888<<52512F5248<8<<r4M_@\xb802<8?2H523e08;8>8<<r25347A2I7J8<<r,7K888<<52g3515248<8<<r2M_@z02<8?2L523e08;8>8<<r45347A2I7J8<<r,7>888<<52g3515248<8<<r4M_@<08;8>8<<E53\x8c1\x8c1@\xd6-:" #(disassemble
+	    disassemble #fn("T000\x871000.///\x881000I60O?14z282JD07001E53471504D:@30D482<2205123051DD2487>1?:425187>2?;4r4268851\x8a<D8<<8=L3\x85242728888<>2O79537:8<<r4523907150@30D4E87K~2;|48<8<<KM_48>2<8?2=523[08;8>8<<r45348:897>888<<52G5148<8<<r4M_@\x1112<8?2?523V08;8>8<<K5348:89888<<GG5148<8<<KM_@\xe212<8?2@523W08;8>8<<K5347A2B888<<G515148<8<<KM_@\xb212<8?2C523\\08;8>8<<r45347A2B7>888<<52515148<8<<r4M_@}12<8?2D523\xb808;8>8<<r88>2EC70r4@30EM5347A2B7>888<<52512F5248<8<<r4M_47A2B7>888<<52515148<8<<r4M_48>2ECY07A2F5147A2B7>888<<52512F5248<8<<r4M_@30D@\xec08?2Gc3^08;8>8<<r45347A2B7>888<<52512F5248<8<<r4M_@\xb802<8?2H523e08;8>8<<r25347A2I7J8<<r,7K888<<52g3515248<8<<r2M_@z02<8?2L523e08;8>8<<r45347A2I7J8<<r,7>888<<52g3515248<8<<r4M_@<08;8>8<<E53^1^1@\xd6-:" #(disassemble
   newline #fn(function:code) #fn(function:vals)
   #fn("9000n10\\;36040[S3C07021514720OAKM63:73061:" #(princ "\n" disassemble
 						      print) print-val)
@@ -202,7 +202,7 @@
   keyargs " " brbound (jmp brf brt brne brnn brn) "@" hex5 ref-int16-LE (jmp.l
   brf.l brt.l brne.l brnn.l brn.l)) disassemble)
 	    div #fn("7000n201k0EL;3C041EL;3404K;I504r/;I404EM:" #() div) emit
-	    #fn("P000z282Jb0120Q;3C040EGB;3:040EG<21Q3;00EG22_@:00E10EGPp@\xb9123124523A075082<52e1?2@30D4261275287;3<047882<29523:087T?1@30D\x8c142612:5287;3<047882<29523:087T?1@30D\x8c1412;C\\0822<d3=02=?14q?2@F0822>d3=02??14q?2@30O@30D412@C\\0822<d3=02A?14q?2@F0822>d3=02B?14q?2@30O@30D40EGB3900EG<@30q0EG12CQ;3\x9f04872DQ;390488T2EQ3E00E82<2F7G8851PPp@x0872DCB00E82<2H88=PPp@a0872ICB00E82<2J88=PPp@J0872ECB00E82<2K88=PPp@30O;Ia0412HQ;3804872EQ3B00E82<2F88=PPp@?00E7L182P8852p\x8c240:" #(car
+	    #fn("P000z282Jb0120Q;3C040EGB;3:040EG<21Q3;00EG22_@:00E10EGPp@\xb9123124523A075082<52e1?2@30D4261275287;3<047882<29523:087T?1@30D^142612:5287;3<047882<29523:087T?1@30D^1412;C\\0822<d3=02=?14q?2@F0822>d3=02??14q?2@30O@30D412@C\\0822<d3=02A?14q?2@F0822>d3=02B?14q?2@30O@30D40EGB3900EG<@30q0EG12CQ;3\x9f04872DQ;390488T2EQ3E00E82<2F7G8851PPp@x0872DCB00E82<2H88=PPp@a0872ICB00E82<2J88=PPp@J0872ECB00E82<2K88=PPp@30O;Ia0412HQ;3804872EQ3B00E82<2F88=PPp@?00E7L182P8852p^240:" #(car
   cdr cadr #fn(memq) (loadv loadg setg) bcode:indexfor #fn(assq)
   ((loadv loadv.l) (loadg loadg.l) (setg setg.l) (loada loada.l) (seta seta.l)
 		   (box box.l)) > 255 ((loadc loadc.l)) loada (0) loada0 (1)
@@ -210,7 +210,7 @@
 	    emit-optional-arg-inits #fn("<000n582B3\x900700517102284534710238953474075176838452q53O7782515447102884534710295247:0895247;0182=8384KM65:D:" #(make-label
   emit brbound brt compile-in extend-env list-head cadar seta pop mark-label
   emit-optional-arg-inits) emit-optional-arg-inits)
-	    encode-byte-code #fn("S000n17005171855172238651r3238651r2ki2M2452238651E255025502650OO278<28524D8988L3\xd9148689G?=48=29CP02:8:8689KMG2;8<5153489r2M?9@\xa81278<2<2=7>873\x8308=8D2?C702@@p08D2AC702B@d08D2CC702D@X08D2EC702F@L08D2GC702H@@08D2IC702J@408=\x8c1@408=525152489KM?948988L3:08689G@30O?>42K8=2L523`02:8;2;8<518>534278<873707M@407NE5152489KM?9@\xeb08=2OCH0278<2P8>5152489KM?9@\xce08>X3\xc708=2K8?2Q523H0278<2P8>5152489KM?9@\x9f02K8?2R523\x810278<2P8>5152489KM?94278<2P8689G5152489KM?948=2SCK0278<2P8689G5152489KM?9@30D@E0278<2T8>5152489KM?9\x8c1@30O@\x83.47U2V8<878:>38;5242W8<61:" #(reverse!
+	    encode-byte-code #fn("S000n17005171855172238651r3238651r2ki2M2452238651E255025502650OO278<28524D8988L3\xd9148689G?=48=29CP02:8:8689KMG2;8<5153489r2M?9@\xa81278<2<2=7>873\x8308=8D2?C702@@p08D2AC702B@d08D2CC702D@X08D2EC702F@L08D2GC702H@@08D2IC702J@408=^1@408=525152489KM?948988L3:08689G@30O?>42K8=2L523`02:8;2;8<518>534278<873707M@407NE5152489KM?9@\xeb08=2OCH0278<2P8>5152489KM?9@\xce08>X3\xc708=2K8?2Q523H0278<2P8>5152489KM?9@\x9f02K8?2R523\x810278<2P8>5152489KM?94278<2P8689G5152489KM?948=2SCK0278<2P8689G5152489KM?9@30D@E0278<2T8>5152489KM?9^1@30O@\x83.47U2V8<878:>38;5242W8<61:" #(reverse!
   list->vector >= #fn(length) 65536 #fn(table)
   #fn(buffer) #fn(io-write) #int32(0) label #fn(put!)
   #fn(sizeof) #fn(byte) #fn(get) Instructions jmp jmp.l brt brt.l brf brf.l
@@ -225,7 +225,7 @@
 	    even? #fn("7000n1200K52El:" #(#fn(logand)) even?) every
 	    #fn("7000n21H;ID0401<51;3:047001=62:" #(every) every) expand #fn("F000n1DDDDDDDDDDD\x8a5\x8a6\x8a7\x8a8\x8a9\x8a:\x8a;\x8a<\x8a=\x8a>\x8a?8520_4862186>1_48722e1_4882385868?87>4_489248?89>2_48:258:>1_48;268:8988>3_48<278?8:8988>4_48=28888?>2_48>29_48?2:8?8>8;8<8=>5_48?<0q62:" #(#fn("7000n20Z;I904200152S:" #(#fn(assq)) top?)
   #fn("8000n10H3400:020d3400:0<B;3;047105122Q3F023A<7405151A<0=5162:0<A<0=51P:" #(((begin))
-  caar begin #fn(append) cdar) splice-begin) *expanded* #fn("A000n20H3400:A<201523:0F<051@300A<21152873;0728651@30q2324758852152\x8a987IA024269289>28662:D\x8a:8:278:928993>4_48:<\x8c186518:D8;B3c0493<788;51QIC08;92<8;<89<52_@;08;798;51_48;=?;@\xfb/48::" #(begin
+  caar begin #fn(append) cdar) splice-begin) *expanded* #fn("A000n20H3400:A<201523:0F<051@300A<21152873;0728651@30q2324758852152\x8a987IA024269289>28662:D\x8a:8:278:928993>4_48:<^186518:D8;B3c0493<788;51QIC08;92<8;<89<52_@;08;798;51_48;=?;@\xfb/48::" #(begin
   define get-defined-vars #fn(nconc) #fn(map) list #fn("7000n1A<0F<62:" #())
   #fn(";000n10H3400:0<B;3;042071051Q3<00<A<0=51P:F<0<92<52922223747585515292<52_493<85PA<0=51P:" #(define
   caar #fn(nconc) #fn(map) list get-defined-vars)) caar cdar) expand-body)
@@ -240,7 +240,7 @@
 						 #fn("9000n10<70A<0TF525150Fe3:" #(compile-thunk))) expand-let-syntax)
   #fn("5000n20:" #() local-expansion-env)
   #fn("<000n20H3400:0<208615221A10>387;370487=B3I0A<87T0=f2F<72875115262:87;I?0486RS;I60486Z3708860:73051893>0A<890=f2162:8624C400:8625C:092<0162:8625C:092<0162:8626C:093<0162:8627C:094<0162:8860:" #(#fn(assq)
-  #fn(":000n0D\x8a48420AF84>3_484<\x8c19261:" #(#fn("8000n10H3400:0<H3700<@90A<0<F5292<0=51P:" #())))
+  #fn(":000n0D\x8a48420AF84>3_484<^19261:" #(#fn("8000n10H3400:0<H3700<@90A<0<F5292<0=51P:" #())))
   caddr macrocall? quote λ define let-syntax) expand-in)) expand)
 	    expand-define #fn("?000n10T70051B3:070051@L00TR3;07150e1@=07223740515285R3<0258586<e3:2585<2627e185=e128865185<54e3:" #(cddr
   void error "compile error: invalid syntax " print-to-string set! #fn(nconc)
@@ -266,7 +266,7 @@
 	    io-readline #fn("7000n12002162:" #(#fn(io-readuntil) #\newline) io-readline)
 	    io-readlines #fn("7000n17071062:" #(read-all-of io-readline) io-readlines)
 	    iota #fn("7000n17071062:" #(map-int identity) iota) is-lambda?
-	    #fn("6000n1020Q;I704020Q:" #(λ) is-lambda?) keyword->symbol #fn("<000n1200513O021220512386E742586515153\x8c161:0:" #(#fn(keyword?)
+	    #fn("6000n1020Q;I704020Q:" #(λ) is-lambda?) keyword->symbol #fn("<000n1200513O021220512386E742586515153^161:0:" #(#fn(keyword?)
   #fn(symbol) #fn(string) #fn(string-sub) 1- #fn(string-length)) keyword->symbol)
 	    keyword-arg? #fn("6000n10B;3904200<61:" #(#fn(keyword?)) keyword-arg?)
 	    lambda-vars #fn(":000n1D\x8a5852085>1_485<00OO54421227305162:" #(#fn(":000n40V;I5040R340D:0B;36040<R3T082;I504833<0702112263:A<0=1828364:0B;36040<B3\x890730<r252;390474051R360O@=070250<2615442774051513=0A<0=182D64:833<0702112863:A<0=1D8364:0B3>070290<26164:01C:07021162:7029026164:" #(error
@@ -285,7 +285,7 @@
 	    list-ref #fn("7000n2700152<:" #(list-tail) list-ref) list-tail
 	    #fn("8000n2701E523400:710=1K~62:" #(<= list-tail) list-tail) list?
 	    #fn("6000n10V;I@040B;3904700=61:" #(list?) list?) load #fn("9000n120021522285>123850>2{:" #(#fn(file)
-  :read #fn("9000n0D\x8a48420A84>2_484<\x8c1DDD63:" #(#fn("9000n320A51IB0F<21A5107215163:23A51472161:" #(#fn(io-eof?)
+  :read #fn("9000n0D\x8a48420A84>2_484<^1DDD63:" #(#fn("9000n320A51IB0F<21A5107215163:23A51472161:" #(#fn(io-eof?)
   #fn(read) load-process #fn(io-close)))))
   #fn("8000n120A5142122F0e361:" #(#fn(io-close)
 				  #fn(raise) load-error))) load)
@@ -300,8 +300,8 @@
 	    macroexpand-1 #fn("7000n10H3400:7005185390850=}2:0:" #(macrocall?) macroexpand-1)
 	    make-code-emitter #fn("9000n0q2050EqEo5:" #(#fn(table)) make-code-emitter)
 	    make-label #fn("5000n12060:" #(#fn(gensym)) make-label)
-	    make-perfect-hash-table #fn(";000n1D\x8a58520_4D\x8a6862185860>3_486<\x8c12205161:" #(#fn("8000n270712205151162:" #(mod0
-  abs #fn(hash)) $hash-keyword) #fn("=000n120r20i2O52D\x8a68621A085F86>5_486<\x8c19261:" #(#fn(vector-alloc)
+	    make-perfect-hash-table #fn(";000n1D\x8a58520_4D\x8a6862185860>3_486<^12205161:" #(#fn("8000n270712205151162:" #(mod0
+  abs #fn(hash)) $hash-keyword) #fn("=000n120r20i2O52D\x8a68621A085F86>5_486<^19261:" #(#fn(vector-alloc)
   #fn(":000n10B3p070051r2A<85F52i29286G3;093<FKM61:928685p49286KM71051p494<0=61:92:" #(caar
   cdar)))) #fn(length)) make-perfect-hash-table)
 	    make-system-image #fn("<000n120021222354247576Dw54Dw64278788>2288685>22989>1{89504:" #(#fn(file)
@@ -310,7 +310,7 @@
 				       *print-readably* *print-level*
 				       *print-length* *os-name*) *print-pretty*
   *print-readably* #fn("5000n0Aw04Fw1:" #(*print-pretty* *print-readably*))
-  #fn("=000n07021A>1722350515224752677842678845253f2F52429F7:52\x8c142;F61:" #(filter
+  #fn("=000n07021A>1722350515224752677842678845253f2F52429F7:52^142;F61:" #(filter
   #fn("8000n10Z;3u0420051S;3j0421051[S;IC0422051222105151dS;3I04230A52S;3=04242105151S:" #(#fn(constant?)
   #fn(top-level-value) #fn(string) #fn(memq)
   #fn(iostream?))) simple-sort #fn(environment)
@@ -337,7 +337,7 @@
 							       #fn("7000n07071A62:" #(for-each
   write)) #fn("6000n1A50420061:" #(#fn(raise)))) princ)
 	    print #fn("9000z07071062:" #(for-each write) print) print-exception
-	    #fn("=000n10B;3D040<20Q;3:04710r3523I072230T24534757605151@ 00B;3D040<27Q;3:04710r3523I072287605129534750T51@\xee00B;3D040<2:Q;3:04710r2523?0722;0T2<53@\xc600B;38040<2=Q3B0722>514720=f2@\xa700B;38040<2?Q3G07@76051514722A0T52@\x8307B051;3:04710r2523c0750<514722C5140T2D8551;I60485R37072@40758551\x8c1@>0722E514750514727F61:" #(type-error
+	    #fn("=000n10B;3D040<20Q;3:04710r3523I072230T24534757605151@ 00B;3D040<27Q;3:04710r3523I072287605129534750T51@\xee00B;3D040<2:Q;3:04710r2523?0722;0T2<53@\xc600B;38040<2=Q3B0722>514720=f2@\xa700B;38040<2?Q3G07@76051514722A0T52@\x8307B051;3:04710r2523c0750<514722C5140T2D8551;I60485R37072@40758551^1@>0722E514750514727F61:" #(type-error
   length= princ "type error: expected " ", got " print caddr bounds-error "index "
   " out of bounds for " unbound-error "eval: variable " " has no value" error
   "error: " load-error print-exception "in file " list? ": " #fn(string?)
@@ -364,7 +364,7 @@
 	    #fn("7000n1200513<0712250062:23500i2:" #(#fn(integer?) mod #fn(rand)
 						     #fn(rand-double)) random)
 	    read-all #fn("7000n17071062:" #(read-all-of read) read-all)
-	    read-all-of #fn(":000n2D\x8a686201860>3_486<\x8c1q015162:" #(#fn("8000n220A5138071061:F<10P92A5162:" #(#fn(io-eof?)
+	    read-all-of #fn(":000n2D\x8a686201860>3_486<^1q015162:" #(#fn("8000n220A5138071061:F<10P92A5162:" #(#fn(io-eof?)
   reverse!))) read-all-of)
 	    ref-int16-LE #fn(":000n2202101EMGE522101KMGr852M61:" #(#fn(int16)
 								   #fn(ash)) ref-int16-LE)
@@ -396,7 +396,7 @@
   #fn(iostream->string)) string-join)
 	    string-lpad #fn(":000n3207182122051~52062:" #(#fn(string)
 							  string-rep #fn(string-length)) string-lpad)
-	    string-map #fn("=000n2205021151ED8887L3O0422860231885251524748851?8@\x0d/\x8c14258661:" #(#fn(buffer)
+	    string-map #fn("=000n2205021151ED8887L3O0422860231885251524748851?8@\r/^14258661:" #(#fn(buffer)
   #fn(string-length) #fn(io-putc) #fn(string-char) 1+ #fn(iostream->string)) string-map)
 	    string-rep #fn(":000n21r4L3`0701E5235021:1Kl38022061:1r2l390220062:2200063:731513@02207401K~5262:742200521r2j262:" #(<=
   "" #fn(string) odd? string-rep) string-rep)
@@ -429,7 +429,7 @@
 							  *stderr* #fn("5000n0Aw0:" #(*output-stream*))
 							  #fn("6000n070A51471225061:" #(print-exception
   print-stack-trace #fn(stacktrace))) #fn("6000n1A50420061:" #(#fn(raise)))) top-level-exception-handler)
-	    trace #fn("A000n1200512150728551Ig0230742586262728290e286e3e22:e12;2985e286e3e4e35152@30D\x8c1\x8c142<:" #(#fn(top-level-value)
+	    trace #fn("A000n1200512150728551Ig0230742586262728290e286e3e22:e12;2985e286e3e4e35152@30D^1^142<:" #(#fn(top-level-value)
   #fn(gensym) traced? #fn(set-top-level-value!) eval λ begin write cons quote
   newline apply ok) trace)
 	    traced? #fn("7000n170051;3?042105121A<51d:" #(closure? #fn(function:code)) #((#fn("9000z020210P51472504230}2:" #(#fn(write)
--- a/flisp.c
+++ b/flisp.c
@@ -941,7 +941,6 @@
 		GOTO_OP_OFFSET(OP_BUILTINP),
 		GOTO_OP_OFFSET(OP_FUNCTIONP),
 		GOTO_OP_OFFSET(OP_VECTORP),
-		GOTO_OP_OFFSET(OP_NOP),
 		GOTO_OP_OFFSET(OP_SETCAR),
 		GOTO_OP_OFFSET(OP_JMPL),
 		GOTO_OP_OFFSET(OP_BRFL),
@@ -1801,9 +1800,6 @@
 			FL(stack)[ipd] = (uintptr_t)ip;
 			nargs = process_keys(v, i, n, labs(s)-(i+n), bp, nargs, s<0);
 			ipd = FL(sp)-1;
-			NEXT_OP;
-
-		OP(OP_NOP)
 			NEXT_OP;
 
 #if defined(COMPUTED_GOTO)
--- a/gen.lsp
+++ b/gen.lsp
@@ -46,7 +46,7 @@
     OP_BUILTINP       builtin?  1       (λ (x) (builtin? x))
     OP_FUNCTIONP      function? 1       (λ (x) (function? x))
     OP_VECTORP        vector?   1       (λ (x) (vector? x))
-    OP_NOP            nop       #f      0
+    OP_SHIFT          shift     #f      0
     OP_SETCAR         set-car!  2       (λ (x y) (set-car! x y))
     OP_JMPL           jmp.l     #f      0
     OP_BRFL           brf.l     #f      0
@@ -92,7 +92,6 @@
     OP_KEYARGS        keyargs   #f      0
     OP_BOX            box       #f      0
     OP_BOXL           box.l     #f      0
-    OP_SHIFT          shift     #f      0
     OP_BOOL_CONST_F   dummy_f   #f      0
     OP_BOOL_CONST_T   dummy_t   #f      0
     OP_THE_EMPTY_LIST dummy_nil #f      0
--- a/opcodes.h
+++ b/opcodes.h
@@ -45,7 +45,7 @@
 	OP_BUILTINP,
 	OP_FUNCTIONP,
 	OP_VECTORP,
-	OP_NOP,
+	OP_SHIFT,
 	OP_SETCAR,
 	OP_JMPL,
 	OP_BRFL,
@@ -91,7 +91,6 @@
 	OP_KEYARGS,
 	OP_BOX,
 	OP_BOXL,
-	OP_SHIFT,
 	OP_BOOL_CONST_F,
 	OP_BOOL_CONST_T,
 	OP_THE_EMPTY_LIST,