On Wed, Sep 25, 2002 at 05:28:34PM +0900, Yukihiro Matsumoto wrote:
> In message "Re: embedding ruby inside an application?"
>     on 02/09/25, Ryan Davis <ryand-ruby / zenspider.com> writes:
> 
> |> Embedding Ruby has the following restrictions:
> |>
> |>   * one interpreter per proecss (no interpreter object)
> |>   * no interpreter reset
> |>   * GC do not work well with native thread
> |
> |Are these being addressed in 1.7 or future versions? Or is this by 
> |design?
> 
> For the good news, it is planned to fix these problems in the next
> major release, so called Rite (Ruby 2.0).
> 
> For the bad news, it still is a vaporware.  No fixed date nor roadmap
> is revealed.
> 
> 							matz.

Is there anything fundamental preventing someone from taking the 1.7
codebase and trying to make it multi-intrepreter/reset cabable?  I've
done this sort of thing before for large simulation codebases, and
it's usually not difficult work (although it may be time-consuming).
Typically, my approach was to first hunt down all the globals and
place them into a "global" data structure -
e.g. RubyInterpGlobals. Then we move the formerly global structure
into non-global space and modify the appropriate functions to accept
the structure as an argument. Again, its not difficult, but it is
large-scale refactoring. You can break up the work somewhat by doing
it on a module by module basis.

-- 
Alan Chen
Digikata LLC
http://digikata.com