So the overhead of supporting multiple instances of the Gambit VM is between 8% and 12% for the version of fib which accesses global variables frequently, and is 3% for the Gambit compiler.
This seems to be very encouraging news!
I was thinking how this might apply to the situation on iOS, where we may want to wrap certain asynchronous activities in Objective-C blocks. Would it be possible to have code that is destined to be called asynchronously compiled in the slower, thread-safe style while the main program loop sticks with the single-threaded fast/global style?
This is probably not feasible in general since your entire runtime library would have to be compiled twice and stored in memory twice?