To whom it may concern, I decided to start from conses and vectors just because this is simpler than strings. My experimental stuff is attached, and typical benchmark output may be something like: Average of 100: stack allocation is 6.879408 times faster for conses Average of 1000: stack allocation is 7.390145 times faster for conses Average of 10000: stack allocation is 4.154356 times faster for conses Average of 100000: stack allocation is 2.417694 times faster for conses Average of 10: stack allocation is 11.535833 times faster for vectors Average of 100: stack allocation is 4.731400 times faster for vectors Average of 1000: stack allocation is 1.443268 times faster for vectors Note that this is sustained allocation speed; since we're unlikely to allocate large amounts of Lisp data on stack, real speedup may vary. Questions: 1) Should alloca_vector fallback to Fmake_vector for large vectors? 2) Is there a way to rewrite alloca_xxx macros to avoid statement expressions? IIUC this is not portable beyond gcc and compilers that mimics it (clang, Intel's icc). Dmitry