Rubinius also uses this feature (optionally). It's called direct threading, it turns an array of bytecodes into a set of addresses, and the interpreter simple uses 'goto' to go to the next instruction. As for support for it, yeah, it's a GCC extension only currently. But if you do a bit of googling, you can do direct threading without it, it just requires assembly code to get the data you need. - Evan Phoenix On Aug 23, 2007, at 3:55 PM, SASADA Koichi wrote: > Hi, > > Daniel Berger wrote: >> Over on the Erlang mailing list I asked why they relied on GCC. >> Kenneth >> Lundin replied that it's because they use a feature called "first >> class >> labels" (aka "labels as values"). [1] > > YARV/Ruby 1.9 is using it. > > -- > // SASADA Koichi at atdot dot net >