On Thursday 19 February 2009 03:31:04 DeLesley Hutchins
wrote:> > The same can be said of closures, garbage collection and a dozen other
> > features that also cannot feasibly be added to LLVM.
> >
> > The only logical solution is to build a HLVM on top of LLVM and share
> > that between these high-level language implementations.
>
> This is an excellent point. You have convinced me. :-)
>
> BTW, what garbage collector are you using for your HLVM?
>
> You
> complain about mono's use of the Boehm-Weiser collector on your
> blog; but you also said that you assumed an uncooperative
> environment.
I am creating a new (very simple) one by keeping any live local reference
variables on a shadow stack. That assumes an uncooperative environment but it
is still precise. That will suffice for now.
> I'm not a GC expert, so why are the current GC intrinsics insufficient?
They may well be sufficient but I am avoiding them for the same non-techical
reason: I consider them to be an experimental feature of LLVM so I don't
want
to take a dependency on them if possible and, in this case, there is a simple
workaround.
Other people are creating far more bleeding edge VMs (e.g. VMKit) using
LLVM's
GC API so they would be much better positioned to discuss the technical
aspects than I am. I would like to hear any status updates they have!
--
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e