From: Yukihiro Matsumoto Date: 2007-10-16T00:18:18+09:00 Subject: Re: ruby wish-list Hi, In message "Re: ruby wish-list" on Mon, 15 Oct 2007 23:23:06 +0900, Roger Pack writes: |1) the ability to rescue arrays (or some way to rescue multiple classes |without pain), like this: | |all_socket_interrupts_array = [SocketError, Errno::EHOSTUNREACH, |Errno::ENETUNREACH] | |begin | # stuff |rescue all_socket_interrupts # non ugly, yet precise! | |end Now you know you can. |2) a GC that is 'user-definable' (run after this definable threshold, |this often), and (asidedbly), a GC that can run in its own (native) |thread so it doesn't pause execution of normal threads. I'd rather prefer smarter collector, but it's possible. GC on its own thread is a different story. Interaction between collector and mutator may hinder the performance. |3) an ensure block that's uninterruptible, a la: | |begin | # do stuff |rescue | # rescue stuff |ensure_uninterruptible # (or call it ensure_critical) | # do stuff which is guaranteed to get run, and not interrupted. |end It's not as simple as you've expected. First we need to define how "uninterruptible" section work. |4) the optional ability to have it display the whole backtrace on |uncaught exceptions (and also for all existing threads). Simple code like: begin ... rescue => e puts e.backtrace end would do. matz.