<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/App_Themes/default/rss.xslt"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/"><channel><title>Comment Feed for Andy Ayers: Understanding the Phoenix Compiler Framework (Going Deep on Channel 9)</title><atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/shows/going+deep/andy-ayers-understanding-the-phoenix-compiler-framework/rss/default.aspx" /><image><url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url><title>Comment Feed for Andy Ayers: Understanding the Phoenix Compiler Framework (Going Deep on Channel 9)</title><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/</link></image><description>Andy Ayers: Understanding the Phoenix Compiler Framework</description><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/</link><language>en-us</language><pubDate>Thu, 01 May 2008 05:38:54 GMT</pubDate><lastBuildDate>Thu, 01 May 2008 05:38:54 GMT</lastBuildDate><generator>EvNet (EvNet, Version=1.0.3599.6114, Culture=neutral, PublicKeyToken=null)</generator><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>fascinating... :|</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=400760</link><pubDate>Thu, 01 May 2008 05:38:54 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=400760</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/400760/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>fascinating... :|</evnet:previewtext><dc:creator>dancmarinescu</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/400760/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;dancmarinescu wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;P&gt;Hi there,&lt;/P&gt;
&lt;P&gt;I would like to know about your initiatives (if any) of sharing Windows Kernel source code and why not, other subsystems (.net framework, managed and native compilers, office itself, sql server). &lt;BR&gt;&lt;BR&gt;What can be done, if I, a Microsoft dedicated developer, wanted to build all these products in-house, of course, for cognitive purpose ONLY, under STRICT NDA. Is there a chance to use your source code, obviously in good/mutual faith, from outside Redmond? I know that some of your kernel guys work remote, but they are full time Microsoft employees. What do you do to cover the (relatively small, yet important) segment of customers who have enough knowledge and skills to benefit directly from your source code, obviously beyond the regular benefits coming from consuming binaries. Do you have (strictly NDA-ed) private repositories where developers can go, be able to branch, check-out, build, understand, extend and check back in Microsoft core source code. Same question about special access to your bug tracking systems. Same question about white (or at least gray) box testing your products, extending your unit testing, automation, propose fixes, etc - my question targets kernel and compiler engineers in first place.&lt;/P&gt;
&lt;P&gt;Do you have a program which states the precise conditions an individual&amp;nbsp; Software Engineer or an Organization have to meet in order to be allowed to see, build from, extend the source code of Microsoft core technologies? &lt;/P&gt;
&lt;P&gt;I'd really appreciate your feedback, either way. Thanks!&lt;BR&gt;&lt;BR&gt;Regards,&lt;BR&gt;Daniel&lt;BR&gt;&lt;/P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;For educational purposes you can download the &lt;a href="http://www.microsoft.com/resources/sharedsource/Licensing/researchkernel.mspx"&gt;Windows Research Kernel &lt;/a&gt;which gives you kernel source for a good part of the Server 2003 kernel. You can build this with Phoenix if you want to experiment with OS/Compiler interactions (though if you do so in the near future, I recommend using the VS2005 based June 2007 SDK, since the newer April 2008 SDK exposes some source issues in the WRK code). And the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D&amp;amp;displaylang=en"&gt;SSCLI&lt;/a&gt; will give you a pretty clear idea of what a good part of the .Net 2.0 code looks like.&lt;BR&gt;&lt;BR&gt;As far as building Phoenix yourself, or building other microsoft products, from what I know&amp;nbsp;it's really up to each product group to decided if/when/how to provide access to source. I don't know if there is an umbrella program that applies to the entire company but I suspect there isn't any such thing.&lt;BR&gt;&lt;BR&gt;As is typical with such things there are many factors and stakeholders involved. For example, we have thought about including portions of the compiler test suite with the SDK but&amp;nbsp;a goodly number of test cases have been licensed from third parties or are based on code given to us with other sorts of restrictions. Just sorting out what we can give out is a major effort.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399890</link><pubDate>Mon, 28 Apr 2008 05:33:03 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399890</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/399890/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>dancmarinescu wrote:﻿
Hi there,
I would like to know about your initiatives (if any) of sharing Windows Kernel source code and why not, other subsystems (.net framework, managed and native compilers, office itself, sql server). What can be done, if I, a Microsoft dedicated developer, wanted to&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/399890/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;dancmarinescu wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;P&gt;Well, the initial perception about Phoenix was that it's going to be a common backend for both register based and stack based frontends, which, once plugged into different frontends, supposed to allow both managed and native targets for the entire language family under the generous umbrella of MSVC linker. few practical examples:&lt;BR&gt;&lt;BR&gt;1. Generate 100% native (register based) code from c# and vb (finally allow software in a box / commercial software manufacturers to use languages beyond c++) - even allow the .net framework itself to have a native (register based) incarnation.&lt;BR&gt;2. Generate hybrid application from any language (in the family) - which would allow natural evolution of existing native and managed application, for any languages in the family (today only MSVC++ allow that)&lt;BR&gt;3. Allow 3rd party compiler manufacturers to expose their frontends results to a "standard" backend, with clear dual intent, without having to worry about backends, linkers, etc&lt;BR&gt;&lt;BR&gt;Now, I do happen to know that this is not a walk in the park. it never was, that's why Phoenix was born in MS Research, but still, I see obvious (long term strategic) advantages in implementing the initial plan, the first beneficiaries being:&lt;BR&gt;&lt;BR&gt;1. The Microsoft compiler teams&lt;BR&gt;2. 3rd party compiler manufacturers (Borland, RemObjects, etc)&lt;BR&gt;3. At last but not at least, the Customers, compiler end-users, developers all over.&lt;BR&gt;&lt;BR&gt;I can only hope that static analysis framework is only a first step into this direction and that Visual Studio 2010 will include some of these ideals, empowering the Microsoft Platform and Developer Tools experiences even more!&lt;BR&gt;&lt;BR&gt;Best Regards,&lt;BR&gt;Daniel&lt;/P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;I'm glad to see that some of our vision resonates with you. There's a lot I would like to say about where we are headed and what might be possible in future product releases, but I'm going to have to leave things up in the air for now. Let's just say that there are a lot of cool things that can be done -- which ones of those happen and when is still being sorted out.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399887</link><pubDate>Mon, 28 Apr 2008 05:19:07 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399887</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/399887/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>dancmarinescu wrote:﻿
Well, the initial perception about Phoenix was that it's going to be a common backend for both register based and stack based frontends, which, once plugged into different frontends, supposed to allow both managed and native targets for the entire language family under the&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/399887/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;P&gt;Hi there,&lt;/P&gt;
&lt;P&gt;I would like to know about your initiatives (if any) of sharing Windows Kernel source code and why not, other subsystems (.net framework, managed and native compilers, office itself, sql server). &lt;BR&gt;&lt;BR&gt;What can be done, if I, a Microsoft dedicated developer, wanted to build all these products in-house, of course, for cognitive purpose ONLY, under STRICT NDA. Is there a chance to use your source code, obviously in good/mutual faith, from outside Redmond? I know that some of your kernel guys work remote, but they are full time Microsoft employees. What do you do to cover the (relatively small, yet important) segment of customers who have enough knowledge and skills to benefit directly from your source code, obviously beyond the regular benefits coming from consuming binaries. Do you have (strictly NDA-ed) private repositories where developers can go, be able to branch, check-out, build, understand, extend and check back in Microsoft core source code. Same question about special access to your bug tracking systems. Same question about white (or at least gray) box testing your products, extending your unit testing, automation, propose fixes, etc - my question targets kernel and compiler engineers in first place.&lt;/P&gt;
&lt;P&gt;Do you have a program which states the precise conditions an individual&amp;nbsp; Software Engineer or an Organization have to meet in order to be allowed to see, build from, extend the source code of Microsoft core technologies? &lt;/P&gt;
&lt;P&gt;I'd really appreciate your feedback, either way. Thanks!&lt;BR&gt;&lt;BR&gt;Regards,&lt;BR&gt;Daniel&lt;BR&gt;&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399732</link><pubDate>Sun, 27 Apr 2008 14:32:42 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399732</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/399732/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Hi there,
I would like to know about your initiatives (if any) of sharing Windows Kernel source code and why not, other subsystems (.net framework, managed and native compilers, office itself, sql server). What can be done, if I, a Microsoft dedicated developer, wanted to build all these products&amp;#8230;</evnet:previewtext><dc:creator>dancmarinescu</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/399732/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;P&gt;Well, the initial perception about Phoenix was that it's going to be a common backend for both register based and stack based frontends, which, once plugged into different frontends, supposed to allow both managed and native targets for the entire language family under the generous umbrella of MSVC linker. few practical examples:&lt;BR&gt;&lt;BR&gt;1. Generate 100% native (register based) code from c# and vb (finally allow software in a box / commercial software manufacturers to use languages beyond c++) - even allow the .net framework itself to have a native (register based) incarnation.&lt;BR&gt;2. Generate hybrid application from any language (in the family) - which would allow natural evolution of existing native and managed application, for any languages in the family (today only MSVC++ allow that)&lt;BR&gt;3. Allow 3rd party compiler manufacturers to expose their frontends results to a "standard" backend, with clear dual intent, without having to worry about backends, linkers, etc&lt;BR&gt;&lt;BR&gt;Now, I do happen to know that this is not a walk in the park. it never was, that's why Phoenix was born in MS Research, but still, I see obvious (long term strategic) advantages in implementing the initial plan, the first beneficiaries being:&lt;BR&gt;&lt;BR&gt;1. The Microsoft compiler teams&lt;BR&gt;2. 3rd party compiler manufacturers (Borland, RemObjects, etc)&lt;BR&gt;3. At last but not at least, the Customers, compiler end-users, developers all over.&lt;BR&gt;&lt;BR&gt;I can only hope that static analysis framework is only a first step into this direction and that Visual Studio 2010 will include some of these ideals, empowering the Microsoft Platform and Developer Tools experiences even more!&lt;BR&gt;&lt;BR&gt;Best Regards,&lt;BR&gt;Daniel&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399723</link><pubDate>Sun, 27 Apr 2008 13:32:44 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399723</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/399723/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Well, the initial perception about Phoenix was that it's going to be a common backend for both register based and stack based frontends, which, once plugged into different frontends, supposed to allow both managed and native targets for the entire language family under the generous umbrella of MSVC&amp;#8230;</evnet:previewtext><dc:creator>dancmarinescu</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/399723/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;P&gt;Develop marketplace for embarking parallel computing in real business scenes, build parallel process enabling compiler business likewise Microsoft sold Visual Basic for computer beginner’s to PC worldwide. Catchy Microsoft business message might be "eco friendly parallel computing starts from Microsoft platforms compiler technology"&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399305</link><pubDate>Fri, 25 Apr 2008 11:45:22 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=399305</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/399305/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Develop marketplace for embarking parallel computing in real business scenes, build parallel process enabling compiler business likewise Microsoft sold Visual Basic for computer beginner’s to PC worldwide. Catchy Microsoft business message might be "eco friendly parallel computing starts from&amp;#8230;</evnet:previewtext><dc:creator>Yoshihiro Masuda</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/399305/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;esoteric wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;AndyA wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿&lt;BR&gt;I've always wanted to do an IL-to-IL optimizer. While the jit does a good job it doesn't have time for in-depth analysis, and there are a number of things you can do upstream to boost performance.&lt;BR&gt;&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;﻿&lt;BR&gt;&lt;BR&gt;And that's what all optimization freaks are craving for. And to get conceptual simplicity whilst not sacrificing performance too much [declarative programmer, imperative compiler].&lt;BR&gt;&lt;BR&gt;I haven't studied IL and IR, but would the IR actually be a better IL? It sounds like it could be.&lt;BR&gt;&lt;BR&gt;If IL is at a lower level than IR, and if an IL-IL optimizer has to maybe abstract up to IR, then wouldn't it be better to just stay with IR - depending on the effort required to go IR-&amp;gt;IL.&lt;BR&gt;&lt;BR&gt;I wonder if the TCPA could be used to secure highly optimized snapshots of compiled code [in encrypted files] so the JITr could effectively be relieved of a lot of up-front work. Of course there's NGen which might do some optimizations up-front.&lt;BR&gt;&lt;BR&gt;
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;AndyA wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿&lt;BR&gt;As far as what all those cores will be doing -- I expect we will&amp;nbsp;find good ways to employ them to directly address user problems. Phoenix itself can profitably use 6-8 cores, and with a bit more work we should be able to scale even higher.&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Sounds great.&lt;BR&gt;&lt;BR&gt;
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;AndyA wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿&lt;BR&gt;It may be that the world of code is more dynamic in&amp;nbsp; the future, but I thought that 10 years ago when I worked on a big static compiler and things haven't really changed that much.&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;I didn't mean in the sense of dynamic languages (necessarily), more in the sense of JIT'd bytecode.&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;MSIL/CIL/IL is the way it is for a couple of reasons --&amp;nbsp;it has a compact encoding,&amp;nbsp;it is relatively straightforward to translate to machine code, and its semantics are carefully specified so that verification is possble. Phoenix IR has a much different set of design parameters and so has different attributes: a representation that is somewhat redundant but can represent rich relationships among the instructions in a program, the flexibilty to represent programs at several different semantic levels (eg HIR, LIR), and the expressive power to describe most of the popular machine architectures.&lt;BR&gt;&lt;BR&gt;A&amp;nbsp;bytecode that has some of the attributes of our IR makes a lot of sense -- the ability to specify a register set, the ability to annotate the IR with useful derived&amp;nbsp;facts (perhaps, as you note,&amp;nbsp;provably correct ones), the ability to mix semantic levels (as Phoenix IR allows LIR/HIR islands in HIR/LIR). If you can have all&amp;nbsp;that and retain the benefits of MSIL then it would be something really interesting. &lt;BR&gt;&lt;BR&gt;And I'm with you on that last comment -- around 1998 or so I was convinced jitted code was going to take over the world.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397742</link><pubDate>Mon, 14 Apr 2008 07:35:05 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397742</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397742/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>esoteric wrote:﻿





AndyA wrote:

﻿I've always wanted to do an IL-to-IL optimizer. While the jit does a good job it doesn't have time for in-depth analysis, and there are a number of things you can do upstream to boost performance.﻿And that's what all optimization freaks are craving for.&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397742/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;AndyA wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;I've always wanted to do an IL-to-IL optimizer. While the jit does a good job it doesn't have time for in-depth analysis, and there are a number of things you can do upstream to boost performance.&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;﻿&lt;br&gt;&lt;br&gt;And that's what all optimization freaks are craving for. And to get conceptual simplicity whilst not sacrificing performance too much [declarative programmer, imperative compiler].&lt;br&gt;&lt;br&gt;I haven't studied IL and IR, but would the IR actually be a better IL? It sounds like it could be.&lt;br&gt;&lt;br&gt;If IL is at a lower level than IR, and if an IL-IL optimizer has to maybe abstract up to IR, then wouldn't it be better to just stay with IR - depending on the effort required to go IR-&amp;gt;IL.&lt;br&gt;&lt;br&gt;I wonder if the TCPA could be used to secure highly optimized snapshots of compiled code [in encrypted files] so the JITr could effectively be relieved of a lot of up-front work. Of course there's NGen which might do some optimizations up-front.&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;AndyA wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;As far as what all those cores will be doing -- I expect we will&amp;nbsp;find good ways to employ them to directly address user problems. Phoenix itself can profitably use 6-8 cores, and with a bit more work we should be able to scale even higher.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Sounds great.&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;AndyA wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;
It may be that the world of code is more dynamic in&amp;nbsp; the future, but I thought that 10 years ago when I worked on a big static compiler and things haven't really changed that much.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;I didn't mean in the sense of dynamic languages (necessarily), more in the sense of JIT'd bytecode.&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397737</link><pubDate>Sun, 13 Apr 2008 22:59:54 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397737</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397737/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>AndyA wrote:﻿I've always wanted to do an IL-to-IL optimizer. While the jit does a good job it doesn't have time for in-depth analysis, and there are a number of things you can do upstream to boost performance.﻿And that's what all optimization freaks are craving for. And to get conceptual simplicity&amp;#8230;</evnet:previewtext><dc:creator>Bent Rasmussen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397737/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;esoteric wrote:&lt;/div&gt;&lt;div&gt;﻿Having processor makers produce plugins for Phoenix sounds quite compelling, for Phoenix itself, Microsoft, the processor makers and the users.&lt;BR&gt;&lt;BR&gt;And it would be great with more static IL optimizations. On the other hand, in the parallel world of the future, there should be enough cores to continuously GC, profile and analyze code, so one wonders how much Phoenix can adapt to dynamic compilation and analysis demands.&lt;BR&gt;&lt;BR&gt;Anyway, cool stuff.&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;I've always wanted to do an IL-to-IL optimizer. While the jit does a good job it doesn't have time for in-depth analysis, and there are a number of things you can do upstream to boost performance.&lt;BR&gt;&lt;BR&gt;As far as what all those cores will be doing -- I expect we will&amp;nbsp;find good ways to employ them to directly address user problems. Phoenix itself can profitably use 6-8 cores, and with a bit more work we should be able to scale even higher. It may be that the world of code is more dynamic in&amp;nbsp; the future, but I thought that 10 years ago when I worked on a big static compiler and things haven't really changed that much.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397708</link><pubDate>Fri, 11 Apr 2008 16:29:46 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397708</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397708/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>esoteric wrote:﻿Having processor makers produce plugins for Phoenix sounds quite compelling, for Phoenix itself, Microsoft, the processor makers and the users.And it would be great with more static IL optimizations. On the other hand, in the parallel world of the future, there should be enough cores&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397708/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;AndyA wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;P&gt;One of the cool things about Phoenix is that it blurs the line between managed and native code in a number of interesting ways.&lt;BR&gt;&lt;BR&gt;So, if you're into managed code, you'll be happy to hear that the dynamic slice tool works on managed code too.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Thanks Andy.&amp;nbsp; I was hoping that was true.&amp;nbsp; Phoenix may be a better way to "plug" in things like Volta in the compile pipeline and it reads the attributes and does its thing.&amp;nbsp; I think that would allow a base compiler with N number of plug-ins.&amp;nbsp; Disable the plug-in and the attributes are ignored and the program compiles without volta majic.&lt;BR&gt;&lt;BR&gt;Wonder about things like Services plugins.&amp;nbsp; Write a standard console app, and enable a Service plugin and it will atomatically "wrap" the code in a service or wcf service or silverlight service, or MS Sql hosting service, or VM package, or Tee'd off setup package, or Powershell-to-c# converstion (or visa-versa), etc.&amp;nbsp; I like that c# to Sql native idea.&amp;nbsp; I smell some&amp;nbsp;dynamic&amp;nbsp;deployed Linq&amp;nbsp;sprocs coming on - so I could deploy c# lamdas&amp;nbsp;as native code methods&amp;nbsp;and hang em off SQL&amp;nbsp;to be called like&amp;nbsp;simple (remote)&amp;nbsp;functions (ala volta like).&amp;nbsp; Some interesting ground to travel.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397668</link><pubDate>Thu, 10 Apr 2008 22:20:02 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397668</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397668/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>AndyA wrote:﻿
One of the cool things about Phoenix is that it blurs the line between managed and native code in a number of interesting ways.So, if you're into managed code, you'll be happy to hear that the dynamic slice tool works on managed code too.Thanks Andy.&amp;nbsp; I was hoping that was&amp;#8230;</evnet:previewtext><dc:creator>William Stacey</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397668/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>super cool, i already have the previous build, is quite an step forward&lt;br&gt;;)&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397666</link><pubDate>Thu, 10 Apr 2008 20:09:07 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397666</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397666/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>super cool, i already have the previous build, is quite an step forward;)</evnet:previewtext><dc:creator>dumian</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397666/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>Having processor makers produce plugins for Phoenix sounds quite compelling, for Phoenix itself, Microsoft, the processor makers and the users.&lt;br&gt;&lt;br&gt;And it would be great with more static IL optimizations. On the other hand, in the parallel world of the future, there should be enough cores to continuously GC, profile and analyze code, so one wonders how much Phoenix can adapt to dynamic compilation and analysis demands.&lt;br&gt;&lt;br&gt;Anyway, cool stuff.&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397665</link><pubDate>Thu, 10 Apr 2008 19:56:45 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397665</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397665/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Having processor makers produce plugins for Phoenix sounds quite compelling, for Phoenix itself, Microsoft, the processor makers and the users.And it would be great with more static IL optimizations. On the other hand, in the parallel world of the future, there should be enough cores to continuously&amp;#8230;</evnet:previewtext><dc:creator>Bent Rasmussen</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397665/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;AndyC wrote:&lt;/div&gt;&lt;div&gt;﻿The raising an executable to IR sounds very interesting. Presumably this could allow you to migrate executables to another CPU architecture (much like Rosetta in MacOS) if that ever became an issue for Windows.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Binary translation is certainly doable, and the machine-specific part of Phoenix is&amp;nbsp;extensible (though this is not yet as easy to do as we would like it to be). Sounds like a fun project for somebody to try...</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397662</link><pubDate>Thu, 10 Apr 2008 16:49:47 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397662</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397662/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>AndyC wrote:﻿The raising an executable to IR sounds very interesting. Presumably this could allow you to migrate executables to another CPU architecture (much like Rosetta in MacOS) if that ever became an issue for Windows.Binary translation is certainly doable, and the machine-specific part of&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397662/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;staceyw wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;GamlerHart wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function. You've an overview how&amp;nbsp;you landed at the state you're now in.&lt;BR&gt;&lt;BR&gt;Sadly, I'm not really in the&amp;nbsp;C++/native&amp;nbsp;word,&amp;nbsp;but in the Java / Managed&amp;nbsp;World.&amp;nbsp;&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;I like that too.&amp;nbsp; And ability to Step backwards and reverse the state would be so cool.&lt;BR&gt;&lt;BR&gt;Look forward to new compiler in the product.&amp;nbsp; Thanks much folks.&lt;BR&gt;&lt;BR&gt;BTW - small correction.&amp;nbsp; The managed class is "StringBuilder" (not stringbuffer).&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Reverse debugging is indeed really cool, but there's a sizeable gap between what we can do with slicing and actually being able to run the program backwards. Still, the idea is compelling...&lt;BR&gt;&lt;BR&gt;We should be dislosing release plans sometime in the not-too-distant future. But you don't have to wait until then to have fun with Phoenix -- download the SDK and you'll get a version of Phoenix that plugs right into the VS2008 C++ toolchain.&lt;BR&gt;&lt;BR&gt;Thanks for the correction.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397661</link><pubDate>Thu, 10 Apr 2008 16:43:57 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397661</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397661/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>staceyw wrote:﻿ 





GamlerHart wrote: 

﻿This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function.&amp;#8230;</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397661/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;P&gt;One of the cool things about Phoenix is that it blurs the line between managed and native code in a number of interesting ways.&lt;BR&gt;&lt;BR&gt;So, if you're into managed code, you'll be happy to hear that the dynamic slice tool works on managed code too.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397658</link><pubDate>Thu, 10 Apr 2008 16:28:52 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397658</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397658/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>One of the cool things about Phoenix is that it blurs the line between managed and native code in a number of interesting ways.So, if you're into managed code, you'll be happy to hear that the dynamic slice tool works on managed code too.</evnet:previewtext><dc:creator>AndyA</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397658/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>The raising an executable to IR sounds very interesting. Presumably this could allow you to migrate executables to another CPU architecture (much like Rosetta in MacOS) if that ever became an issue for Windows.</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397656</link><pubDate>Thu, 10 Apr 2008 15:39:59 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397656</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397656/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>The raising an executable to IR sounds very interesting. Presumably this could allow you to migrate executables to another CPU architecture (much like Rosetta in MacOS) if that ever became an issue for Windows.</evnet:previewtext><dc:creator>AndyC</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397656/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>Charles: Thank you for the continued low res versions of your videos, much appreciated :D&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397654</link><pubDate>Thu, 10 Apr 2008 08:37:37 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397654</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397654/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Charles: Thank you for the continued low res versions of your videos, much appreciated :D</evnet:previewtext><dc:creator>silverfrost</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397654/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;GamlerHart wrote:&lt;/div&gt;&lt;div&gt;﻿This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function. You've an overview how&amp;nbsp;you landed at the state you're now in.&lt;BR&gt;&lt;BR&gt;Sadly, I'm not really in the&amp;nbsp;C++/native&amp;nbsp;word,&amp;nbsp;but in the Java / Managed&amp;nbsp;World.&amp;nbsp;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;I like that too.&amp;nbsp; And ability to Step backwards and reverse the state would be so cool.&lt;BR&gt;&lt;BR&gt;Look forward to new compiler in the product.&amp;nbsp; Thanks much folks.&lt;BR&gt;&lt;BR&gt;BTW - small correction.&amp;nbsp; The managed class is "StringBuilder" (not stringbuffer).&lt;BR&gt;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397651</link><pubDate>Thu, 10 Apr 2008 02:53:45 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397651</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397651/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>GamlerHart wrote:﻿This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function. You've an overview how&amp;nbsp;you&amp;#8230;</evnet:previewtext><dc:creator>William Stacey</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397651/Trackback.aspx</trackback:ping></item><item><title>Re: Andy Ayers: Understanding the Phoenix Compiler Framework</title><description>This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function. You've an overview how&amp;nbsp;you landed at the state you're now in.&lt;BR&gt;&lt;BR&gt;Sadly, I'm not really in the&amp;nbsp;C++/native&amp;nbsp;word,&amp;nbsp;but in the Java / Managed&amp;nbsp;World.&amp;nbsp;</description><comments></comments><link>http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397650</link><pubDate>Wed, 09 Apr 2008 22:21:40 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/shows/Going+Deep/Andy-Ayers-Understanding-the-Phoenix-Compiler-Framework/?CommentID=397650</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/397650/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>This "show-me-the-path-of-the-variable-setting" is REALLY cool. How many time you've debuged the same small function, because you got&amp;nbsp;another value than expected. With this feature, you can&amp;nbsp;quickly see it, without re-running the function. You've an overview how&amp;nbsp;you landed at the state&amp;#8230;</evnet:previewtext><dc:creator>GamlerHart</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/397650/Trackback.aspx</trackback:ping></item></channel></rss>