Hi Rhys,

ILX as an artefact (i.e. the thing implicitly specified by the
implementation) is now stable enough. I would expect one further round
of revisions would be necessary based on feedback from another
implementer and feedback from users of languages that interoperate via
ILX.  The ILX manual itself is not as complete as it needs to be.  In
particular it needs to be specified exactly how these constructs get
compiled down to IL - for the moment I've decided to let the
implementation define the translation.  I would expect that the easiest
thing for now is to use ILX as an implementation rather than a
specification. 

Personally I think Abstract IL is actually a more exciting "thing" in
the short-medium term.  There are many, many applications of IL-IL
transformations and analyses, all of which become much simpler with an
Abstract-IL like framework, e.g. memory profiling and performance
profiling can be implemented on the CLR using this approach, and we have
people here working on security analyses using Abstract IL.  Thus I am
working on beefing up the utility of the AbsIL toolkit by adding binary
readers and writers and by making sure you can use it as a plug-in
managed component from C# or F# (this was one of my main motiviations
for writing F# in the first place).  I'm also looking at adding samples
that indicate how to instrument code dynamically in the Rotor
environment.  Finally, a source release is also on the cards.  

ILX (as opposed to Abstract IL) is kind of a position statement, saying
"if you're going to do a functional language for .NET, think seriously
about interoperability considerations for functional language
constructs".  However there are a limited number of functional languages
and functional language programmers, and the most essential aspect of
ILX (generics) is being added directly to Rotor and the Microsoft .NET
CLR.  It's thus a long-term thing, and a way of dividing the
implementation of F# into two reusable halves.

Don


-----Original Message-----
From: Rhys Weatherley [mailto:[EMAIL PROTECTED]] 
Sent: 31 May 2002 02:13
To: [EMAIL PROTECTED]
Subject: [DOTNET-ROTOR] Status of ILX spec

Following on from the F# discussion, what is the status
of the ILX specification here:

http://research.microsoft.com/projects/ilx/ilx-ref.doc

Is it stable enough that it can be implemented by other
ilasm implementations, like say Portable.NET's:

http://www.southern-storm.com.au/portable_net.html

Does Microsoft envisage other changes to the specification?

Cheers,

Rhys Weatherley.

Reply via email to