-----Original Message----- From: Fergus Henderson [mailto:[EMAIL PROTECTED]]
> On 09-May-2002, Goldfarb, Christopher <[EMAIL PROTECTED]> wrote: >> I was describing the CLR process model and how it differs from the JVM, >> specifically in how the runtime JITs to a file for later retrieval instead >> of recompiling each time. > > What makes you think that? Let me clarify - I'm not talking about "recompiling" an app from syntax candy (C# for instance) to IL, but rather when the runtime du jour executes a given app for the first time. My understanding was that by default, the runtime JITs into durable format those sections of the IL that are being executed, on the fly. Next time around, those instructions are already compiled and available to be served up (assuming the IL date/timestamp hasn't changed). > AFAIK none of the current CLR implementations do that automatically. > > The Microsoft .NET CLR can do so if you explicitly ask it to, but it > has to be done manually... I thought this was an option only to compile the entire application instead of the default "bits and pieces as we go", so that users suffer a whopping performance hit the very first time it's run, but afterwords everything is ready to go. >> Thinking on this later, I'm wondering if there are any instances where the >> runtime generates raw machine code and leaves the umbrella of OS calls. I >> can't imagine this would be the case. Can someone clarify for me? > > It's certain machine code that gets generated, but the generated code > contains only user-mode instructions, including calls to the OS API, > not privileged instructions such as port I/O. Doesn't this conflict with the response from "dotnetrotor": "Rotor on FreeBSD uses a platform adaption layer (PAL), which abstracts the API calls for easy porting. If you look in the source for Rotor you'll see that the JITter does generate native x86 code. From the questions I've seen posed about porting to non-intel, this is the hardest bit and may require a lot of effort." Aren't native x86 bits considered priviledged instructions? Thanks again for your clarification. Chris
