Descent 0.5.3 released

Robert Fraser fraserofthenight at gmail.com
Tue Jan 20 10:17:41 PST 2009


Ary Borenszweig wrote:
> Trass3r wrote:
>> Ary Borenszweig schrieb:
>>> I think this point is pretty feasible. I can probably implement it as 
>>> a view. The only "problem" is that if I do that, I'll also have to 
>>> show the optimized version of the code (which might be very 
>>> interesting). So if you have:
>>
>> Hey good idea, would be interesting to see what stuff gets optimized, 
>> inlined and stuff! :)
> 
> Well, now I'm not sure about this... I've just played around with this. 
> If you give DMD's front end this:
> 
> ---
> module main;
> 
> class Foo {
>     
> }
> 
> int main(char[][] args) {
>     scope(exit) { char[] x = "exit"; }
>     scope(failure) { char[] x = "failure"; }
>     scope(success) { char[] x = "success"; }
>     Foo foo = new Foo();
>     return 0;
> }
> ---
> 
> it transforms it to this:
> 
> ---
> module main;
> import object;
> class Foo : Object {
> }
> int main(char[][] args) {
>     try {
>         try {
>             int __osf15 = 0;
>             try
>                 try {
>                     Foo foo = new Foo;
>                     return 0;
>                 } catch(Object __o2) {
>                     __osf15 = 1;
>                     throw __o2;
>                 }
>             finally
>                 if(!__osf15)
>                     char[] x = "success";
>         } catch(Object __o1) {
>             char[] x = "failure";
>             throw __o1;
>         }
>     } finally
>         char[] x = "exit";
> }
> ---
> 
> I'm not sure you want to see that, heh. I think I'll stick with the 
> "hover over a symbol to see it's compile-time representation" solution...

That doesn't look entirely useless, especially for optimization. Perhaps 
hard to read, but easier than reading the assembly output ;-P!


More information about the Digitalmars-d-announce mailing list