John Abrahamsen wrote: > I get this output: iostream.lua:426 allocate buffers statically outside of function iostream.lua:368 unpack() does not do what you intended here iostream.lua:180 redesign api, drop all those expensive {...} iostream.lua:249 iostream.lua:260 ioloop.lua:77 ioloop.lua:130 httputil.lua:202 declare function outside httputil.lua:405 allocate struct statically outside of function httputil.lua:454 replace os.time() with FFI C call httputil.lua:456 avoid pairs() log.lua:101 replace os.date() with FFI C call deque.lua:137 ffi.string() never returns nil (checked in lots of places) deque.lua very inefficient as a buffer replacement Pattern matches are NYI (yet). coroutine.* is NYI, no workaround. In general: too many temporaries allocated, too many strings where buffers or offset/length pairs could be used, unneeded struct to table conversions (epoll). Layering could be improved. Strange mix of if's with/without parentheses (without is typical for Lua code). --Mike