In some programming languages, asynchronous events can occur at any time.
For instance, in Ruby, there are subclasses of Exception that can be raised at any time — there are few lines of code safe from interruption. Some of exceptions, due to their cause, are not recoverable at all.
Use mmap() to allocate heaps by default.
Use mmap() MAP_ANON, instead of /dev/zero.
Align mmap() size to pagesize.
Align heap allocation size to pagesize.
Expand heap slotlimit to fit in aligned allocation.
New $RUBY_HEAP_* options:
initial number of slots per heap.
value is independent of RUBY_HEAP_INIT_SLOTS.
max number slots for a heap.
defaults to PAGESIZE or 4096.
I’m looking to increase the set of code “Problems” to cover other tiny code idioms and platform issues, for example: regular expressions, numerics, etc. If you have ideas, take a look at the code and contact me.
Justin Love gave a fantastic presentation on lambda and closure.
Thanks to everyone who came — hope it was helpful.