Felician Nemeth writes: > (disassemble (byte-compile '(append '(1 2) '(3 4)))) > > resuts in > > byte code: > args: nil > 0 constant append > 1 constant (1 2) > 2 constant (3 4) > 3 call 2 > 4 return > > Instead I expected it to be something like > > byte code: > args: nil > 0 constant 1 > 1 constant 2 > 2 constant 3 > 3 constant 4 > 4 list4 > 5 return > > I've never looked at byte-code optimization before, and I'm guessing > this is not a huge improvement, but I still wonder when all the > arguments of side-effect-free function are constants would it make sense > to calculate the result at compile time. `byte-optimize-append' mentions: ;; There is (probably) too much code relying on `append' to return a ;; new list for us to do full constant-folding; these transformations ;; preserve the allocation semantics. I am not sure what the danger is in the case of constant, quoted lists, but I am not familiar with the byte compiler either. It seems like this