Looking more at the Ruby 1.6.4 source, I note that some functions are 
prototyped, and others aren't. For instance, in intern.h, shouldn't the 
declaration of rb_thread_select() have prototypes available for those 
compilers that can use them? It's in there as

        int rb_thread_select();

right now; why isn't it:

        int rb_thread_select _((int, fd_set*, fd_set*, fd_set*, struct timeval*));

instead?