I experimented a bit with preconc and preconcf, but they aren't in this PR because I had a number of issues with both its design and implementation.
The reversing involved in these prepend definitions meant that preconc was mutating it's last argument instead of the first, which was pretty counter intuitive (at least from my perspective)
More confusingly, the preconc tests (the same as the prepend tests in this PR) would fully hang SBCL when wrapped in (with-notinline (preconc) ...) — this might be some odd undefined behavior from destructively mutating list literals in this unusual context?
Personally, I'd prefer merging this PR as is and addressing preconc and friends down the line, but I'm happy with whatever you think is best — I could just be missing some obvious answers here :)
Addresses #142
I experimented a bit with
preconc
andpreconcf
, but they aren't in this PR because I had a number of issues with both its design and implementation.preconc
was mutating it's last argument instead of the first, which was pretty counter intuitive (at least from my perspective)preconc
tests (the same as theprepend
tests in this PR) would fully hang SBCL when wrapped in(with-notinline (preconc) ...)
— this might be some odd undefined behavior from destructively mutating list literals in this unusual context?Personally, I'd prefer merging this PR as is and addressing
preconc
and friends down the line, but I'm happy with whatever you think is best — I could just be missing some obvious answers here :)