[Fwd: F#]

Fergus Henderson fjh@cs.mu.oz.au
Sat, 1 Jun 2002 00:56:24 +1000


On 31-May-2002, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
> 
> General remarks about targetting .NET from GHC.
> 
> * There is no reason in principle why one can't write a back end
> for GHC to generate .NET IL.   
>
> * Generating *verifiable* IL is noticeably harder: you have to 
> take much more care; to deal with parametric polymorphism you
> need Generic IL, which isn't "out" yet;

You don't _need_ Generic IL.  You can deal with parametric polymorphism
by translating polymorphic types to "System.Object".

> and even then, higher kinded type variables are a serious problem.

I think System.Object helps here too.

> Being verifiable almost 
> certainly requires some runtime checked type casts, which hurt
> performance -- and reducing them to a minimum complicates the
> compiler.

It's certainly true that being verifiable is likely to cost some
performance.  But I don't think it would be difficult to implement.

For the Mercury compiler's .Net back-end, there's a --verifiable
option which controls whether the generated IL code is verifiable or not.

-- 
Fergus Henderson <fjh@cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.