The CLR Compiler Geek Roundtable

Download this episode

Download Video

Description

Recently the CLR team had a "Compiler Lab" which is where they meet with customers over in building 20 on Microsoft's main campus in Redmond, WA. Jeff Sandquist and Charles Torre took their camcorder out for a dinnertime meeting with compiler geeks from Microsoft and other companies. None of this was planned.

Listen in as they talk about the CLR compiler over plates of BBQ.

Tag:

CLR

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • User profile image
      littleguru
      Nice video. I like the guy from Australia, who has written the compiler book.
    • User profile image
      Charles
      You'll see more customer/MS people interaction videos on C9 in the future.

      Glad you liked it!

      C
    • User profile image
      littleguru
      I was thinking to buy the book, since I'm very interested in compiler and the IL. I guess after reading the book I know a lot more about what's going on internally in the JIT and IL.

      If I don't write a compiler at least it gives me a lot internals... that's also a big benefit.
    • User profile image
      lassebjerre​knudsen

      I didn't get the title of the book, anyone can point my in the right direction?

    • User profile image
      rhm
      If the CLR team wants ideas for improvements how about making code unloadable/gc-able so that programs that generate code on the fly don't leak memory. Yes, you can use Appdomains now, but there is unacceptible marshalling overhead with that approach in programs that have a high number of calls to generated code.
    • User profile image
      rhm
      Notice to everyone:-

      STOP POSTING LONG LINKS!!!!!!

      It screws up the page formatting. Thankyou.
    • User profile image
      TM
      rhm wrote:
      If the CLR team wants ideas for improvements how about making code unloadable/gc-able so that programs that generate code on the fly don't leak memory. Yes, you can use Appdomains now, but there is unacceptible marshalling overhead with that approach in programs that have a high number of calls to generated code.


      See Lightweight Code Generation in .NET 2.0 (DynamicMethod class particularly). I think that is want you suggest.
    • User profile image
      dantheman82
      Interesting topic and discussion.  Yes, the fundamental switch to partial classes for one thing seems a little counterintuitive (unless if you are used to C++ header files and cpp
      files that flesh out the implementation). 

      The whole discussion by the guy from Australia about private types is not really correct.  Using .NET reflection, I can access private data members and functions during
      runtime.  And using the .NET Reflector (or similar), I can access private data inside DLL or EXE files with not too much difficulty.  So, the whole
      private/protected/public distinction (while interesting when it comes to correctness) is not really practical in managed code.

      Of course, interfacing between languages is definitely much easier.  And while we're discussing languages, why not have a true Java language compiler that
      "just works" (like the PHP compiler Phalanger) in the CLR?  I'm talking JButton, not Button, and so on...so that I can run Java applet code in a Winform UI.  Gabeesh?

      P.S. trueguru, not only did you screw up the layout of the page by incorrectly posting the link, but you did so because you shamelessly had to include a referral
      link for the book.
    • User profile image
      rhm
      TM wrote:

      See Lightweight Code Generation in .NET 2.0 (DynamicMethod class particularly). I think that is want you suggest.


      Thanks for the headsup. It sounds interesting although I can't read the docs on it now (the online MSDN library being next-to useless). I'll take a look when I get the Whidbey beta.
    • User profile image
      andyandy

      rhm: Try this link http://msdn2.microsoft.com/library/80h6baz2.aspx (or more readable http://msdn2.microsoft.com/library/system.reflection.emit.dynamicmethod.aspx)

      Gotta love the new MSDN Library Smiley

      Small excerpt from it:

      "You can use the DynamicMethod class to generate and execute a method at run time, without having to generate a dynamic assembly and a dynamic type to contain the method. Dynamic methods are the most efficient way to generate and execute small amounts of code.

      A dynamic method is associated with a module, and is effectively global to that module. With sufficient permissions, a dynamic method can access the private data of types declared in that module. You can associate a dynamic method with any module, whether or not you created the module."

    • User profile image
      littleguru
      lassebjerreknudsen wrote:

      I didn't get the title of the book, anyone can point my in the right direction?



      here you go:

      click here
    • User profile image
      littleguru
      rhm wrote:
      Notice to everyone:-

      STOP POSTING LONG LINKS!!!!!!

      It screws up the page formatting. Thankyou.


      Not here. What's the problem?
      Your 18pt red bold thing screws up the page formatting.

      Seems to be a problem with firefox. It does not break links into two lines... That's kind of lame.
    • User profile image
      rhm
      URLs don't contain breaking space. They're not supposed to wrap.
    • User profile image
      littleguru
      rhm wrote:
      URLs don't contain breaking space. They're not supposed to wrap.


      That's not true. Url contain also "-", which are used to introduce a new line in quite every program that is working with text. The URL from Amazon contains a lot of them.
    • User profile image
      rhm
      Hyphen's are not breaking space. They are hyphens! User agents may use hyphenation to break words across lines, but it's not required or even advised. Moreover URLs are not words except in the loosest sense that they are a sequence of non-whitespace characters.

      Experimenting with IE6 shows that it posesses no such facility to "wrap URLs". It just happens that IE has different word breaking rules to Gecko. IE breaks 'words' on some punctuation marks including '?' and '-', but it doesn't break on '/' for example so it only helps out people who ignorantly post long URLs if they happen to contain those characters. IE is wrong here IMO. Word breaks should only occur on breaking whitespace characters unless you are going to implement a true hyphenation scheme (which would be language dependant) that doesn't break technical notation such as URLs.
    • User profile image
      orcmid
      Great video.  Thanks for the blog about it, Jeff, because I might not have checked it out otherwise.  93MB file too.  I guess it's time for the "Best of Channel 9 Videos on DVD" series. 

      In addition to demonstrating the advantage of devlabs, I saw some importance, for myself, in understanding how managed code impacts consideration of software trustworthiness, especially for integration of components from multiple sources.  That angle was enough for me to snag the video for future pondering.

      I loved the anecdotal material.  In 1961, when I arrived in New York City to do some "Applied Programming Development" work, one job was to figure out how to build a version of RPG so our Univac small-scale systems could run IBM 1401 applications. I had forgotten the importance of the card-input event/message loop until it was brought up in the video. Scary stuff for a procedural-language guy teethed on FORTRAN (I & II), ALGOL 60, and assembler.
    • User profile image
      brülör

      brülör servisi

    • User profile image
      baymak servis

      baymak servis

    • User profile image
      kadıköy kombi servisi

      kadıköy kombi servisi

    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.