Coffeehouse Thread

13 posts

SPUR: Trace-Based JIT for JavaScript/CIL from MSR

Back to Forum: Coffeehouse
  • User profile image
    felix9

    this paper is just released: http://research.microsoft.com/apps/pubs/default.aspx?id=121449

     

    The paper looks very interesting and promising, it speedup CIL / JavaScript execution by tracing,

    already faster than Firefox's TraceMonkey and compete with Chrome's V8 in performace benchmarks,

    its faster than current preview version of IE9, too, and its not JavaScript-specific because it works with the CIL,

    so it can be applied on CLR/DLR and speedup any dynamic language that compiles into CIL, that's cool.

     

    Can you get these people talking, Charles ? maybe another E2E show ? Tongue Out

  • User profile image
    Charles

    I'm on it.

    C

     

    Mail sent. Erik is in. Working on one of the authors... Wink

  • User profile image
    felix9

    Charles said:

    I'm on it.

    C

     

    Mail sent. Erik is in. Working on one of the authors... Wink

    GREAT !

  • User profile image
    exoteric

    felix9 said:
    Charles said:
    *snip*

    GREAT !

    Second that!

  • User profile image
    Charles

    exoteric said:
    felix9 said:
    *snip*

    Second that!

    Done Smiley Filmed and in the release pipeline. Excellent conversation. I think you'll be pleased.

     

    Stay tuned,

    C

  • User profile image
    Bass

    Wait, does this mean Microsoft has a CLI JavaScript implemention?

  • User profile image
    Charles

    Bass said:

    Wait, does this mean Microsoft has a CLI JavaScript implemention?

    No. This means MSR is doing what MSR does: research. SPUR is a research project in general purpose tracing JIT architecture and design. It is not a next generation JS or .NET just-in-time compiler (that is what Chakra is - IE9's new JS engine.... and we already have a mature, real-world tested, high performance JITer in the CLR world - that has evolved in .NET 4, just like most everything else in the CLR...).

     

    Please don't confuse research projects with products or product roadmaps... They are two very different approaches. As you will learn, SPUR is a research project and research JIT technology born out of an investigation into high performance tracing JIT technologies. That's all it is.
    C

  • User profile image
    felix9

    Bass said:

    Wait, does this mean Microsoft has a CLI JavaScript implemention?

    nope. the research team just modified the old JScript.NET compiler to build their own one for this project

  • User profile image
    felix9

    Charles said:
    Bass said:
    *snip*

    No. This means MSR is doing what MSR does: research. SPUR is a research project in general purpose tracing JIT architecture and design. It is not a next generation JS or .NET just-in-time compiler (that is what Chakra is - IE9's new JS engine.... and we already have a mature, real-world tested, high performance JITer in the CLR world - that has evolved in .NET 4, just like most everything else in the CLR...).

     

    Please don't confuse research projects with products or product roadmaps... They are two very different approaches. As you will learn, SPUR is a research project and research JIT technology born out of an investigation into high performance tracing JIT technologies. That's all it is.
    C

    the CLR/DLR dont do tracing at this moment, as far as i know.

    So, if MS decide to add this optimizing option to CLR/DLR platform one day, the lessons learned from SPUR will be very useful.

  • User profile image
    Charles

    felix9 said:
    Charles said:
    *snip*

    the CLR/DLR dont do tracing at this moment, as far as i know.

    So, if MS decide to add this optimizing option to CLR/DLR platform one day, the lessons learned from SPUR will be very useful.

    Yes. In some sense, you can think of research as a way to learn lessons that may or may not yield fruit in production... The CLR/DLR do not employ tracing, correct.
    C

  • User profile image
    felix9

    Charles said:
    felix9 said:
    *snip*

    Yes. In some sense, you can think of research as a way to learn lessons that may or may not yield fruit in production... The CLR/DLR do not employ tracing, correct.
    C

    Tracing is a very sophisticated and compelling technology, http://lambda-the-ultimate.org/node/3851

    Anders Hejlsberg listed 'tracing' as a feature of the 'Adaptive JIT compiler' for dynamic languages in his 'trends and directions' talk, and people from the Iron-languages community are alwasy talking about it I believe, but language-specific optimizing will not be a very high priority request for CLR/DLR team I guess, if SPUR can prove that tracing at IL level will yield good results too, thats more like something that ms teams would do for the 'one runtime to run them all' platform, right ? Smiley

  • User profile image
    Charles

    felix9 said:
    Charles said:
    *snip*

    Tracing is a very sophisticated and compelling technology, http://lambda-the-ultimate.org/node/3851

    Anders Hejlsberg listed 'tracing' as a feature of the 'Adaptive JIT compiler' for dynamic languages in his 'trends and directions' talk, and people from the Iron-languages community are alwasy talking about it I believe, but language-specific optimizing will not be a very high priority request for CLR/DLR team I guess, if SPUR can prove that tracing at IL level will yield good results too, thats more like something that ms teams would do for the 'one runtime to run them all' platform, right ? Smiley

    We'll see, Felix. We'll see Smiley

     

    BTW, I will be posting this interview late next week..

    C

  • User profile image
    Charles

Comments closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.