[LLVMdev] Parametric polymorphism

Jon Harrop jon at ffconsultancy.com
Thu Feb 19 04:18:37 PST 2009


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



More information about the llvm-dev mailing list