array/append

a b


Summary

Append array A to array B

Bytecode

Probably only interesting to you if you want to understand more about the Nujel VM or care very much about performance.

(    0 ($push/val :array))
(    2 ($get/val 'type-of))
(    4 ($get/val 'a))
(    6 ($apply 1))
(    8 ($=))
(    9 ($dup))
(   10 ($jf* 13))
(   13 ($drop))
(   14 ($push/val :array))
(   16 ($get/val 'type-of))
(   18 ($get/val 'b))
(   20 ($apply 1))
(   22 ($=))
(   23 ($jf* 7))
(   26 ($push/nil))
(   27 ($jmp* 20))
(   30 ($get/val 'throw))
(   32 ($get/val 'list))
(   34 ($push/val :type-error))
(   36 ($push/val array/append expects two arrays as its arguments))
(   38 ($push/nil))
(   39 ($get/val 'current-lambda))
(   41 ($apply 0))
(   43 ($apply 4))
(   45 ($apply 1))
(   47 ($drop))
(   48 ($get/val 'array/allocate))
(   50 ($get/val 'array/length))
(   52 ($get/val 'a))
(   54 ($apply 1))
(   56 ($get/val 'array/length))
(   58 ($get/val 'b))
(   60 ($apply 1))
(   62 ($add))
(   63 ($apply 1))
(   65 ($det/val 'ret))
(   67 ($drop))
(   68 ($let))
(   69 ($push/int/byte 0))
(   71 ($det/val 'i))
(   73 ($drop))
(   74 ($push/nil))
(   75 ($jmp* 26))
(   78 ($drop))
(   79 ($get/val 'array/set!))
(   81 ($get/val 'ret))
(   83 ($get/val 'i))
(   85 ($get/val 'array/ref))
(   87 ($get/val 'a))
(   89 ($get/val 'i))
(   91 ($apply 2))
(   93 ($apply 3))
(   95 ($drop))
(   96 ($get/val 'i))
(   98 ($inc/int))
(   99 ($set/val 'i))
(  101 ($get/val 'i))
(  103 ($get/val 'array/length))
(  105 ($get/val 'a))
(  107 ($apply 1))
(  109 ($<))
(  110 ($jt* -32))
(  113 ($drop))
(  114 ($push/nil))
(  115 ($closure/pop))
(  116 ($drop))
(  117 ($let))
(  118 ($get/val 'array/length))
(  120 ($get/val 'a))
(  122 ($apply 1))
(  124 ($det/val 'i))
(  126 ($drop))
(  127 ($get/val 'array/length))
(  129 ($get/val 'ret))
(  131 ($apply 1))
(  133 ($det/val 'rl))
(  135 ($drop))
(  136 ($push/nil))
(  137 ($jmp* 35))
(  140 ($drop))
(  141 ($get/val 'array/set!))
(  143 ($get/val 'ret))
(  145 ($get/val 'i))
(  147 ($get/val 'array/ref))
(  149 ($get/val 'b))
(  151 ($get/val 'i))
(  153 ($get/val 'array/length))
(  155 ($get/val 'a))
(  157 ($apply 1))
(  159 ($sub))
(  160 ($apply 2))
(  162 ($apply 3))
(  164 ($drop))
(  165 ($get/val 'i))
(  167 ($push/int/byte 1))
(  169 ($add/int))
(  170 ($set/val 'i))
(  172 ($get/val 'i))
(  174 ($get/val 'rl))
(  176 ($<))
(  177 ($jt* -37))
(  180 ($closure/pop))
(  181 ($drop))
(  182 ($get/val 'ret))
(  184 ($ret))
(  185 ($ret))