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.