The next version of Microsoft’s .Net development frameworks may well have some code written at New Zealand's University of Canterbury.
A three-person team led by senior fellow Nigel Perry has been researching adding support for just-in-time objects to Rotor, a cross-platform implementation of the .Net runtime. The work is partially funded by a Microsoft grant.
“.Net is a good virtual machine and I wanted it to be available [on other platforms],” Perry says. “Rotor works exactly the same on the Mac as on Windows. In fact, it’s even easier on the Mac.”
Perry says the work done on Rotor, also known as the shared source common language infrastructure (SSCLI), has led to an increasingly portable code base.
“The way they got to the Mac OS X version is from the FreeBSD version. You could now take Rotor and if you wanted to run it, say, on the PowerPC version of Linux, you could.”
Perry will present a paper on the university’s work at a conference for Rotor developers later this month in Microsoft’s home suburb of Redmond, Washington.
He says once the work on Rotor is finished, they will submit their code to Microsoft for inclusion in the .Net code base. “We have had good feedback so far,” he says. “It’s very relevant to what they’re doing.”
JIT objects are created when they are first accessed, rather than when the constructor is called. They bring the advantages of “lazy” evaluation to the .Net runtime. “The idea is to add the facility into the runtime to support JIT objects,” he says. “Then any language which wishes to use it can do so.”
The current release of Rotor compiles on Windows XP, FreeBSD and Mac OS X. Perry, who does most of his work on the Mac, presented a session last month at the Tech-Ed 2003 conference on developing with Rotor on Unix and Mac OS X.
The Rotor team at Microsoft now works as part of the .Net runtime group, he says. “A lot of the Rotor source is the same as the .Net source, but how much is a trade secret.”
Rotor is released under Microsoft’s “shared source” licence. Although it is free to download, the licence does prohibit use or distribution for “commercial purposes”. Perry says Rotor is primarily targeted at researchers.
“Microsoft are hopeful that will see innovation on the platform that they can then bring back in,” he says. “It’s a way of keeping contact with the research community.”
Perry and his Canterbury colleagues hope to have their JIT objects work completed in the latter half of 2004. In the meantime, they’re hoping to secure further funding from Microsoft for another research grant. “We have a project that we’re in discussions with at the moment,” Perry says. “It’s to do with Rotor but it’s a different area than we have worked in before.”
Perry is also a member of the ECMA standardisation committees for the CLI and the C# language. Both committees are currently working on the next version of the standards. He will present his paper, titled “Just-In-Time Objects for Rotor,” at the second annual SSCLI Workshop to be held in Redmond on September 17-19.