Descent 0.5.3 released

Ary Borenszweig ary at esperanto.org.ar
Tue Jan 20 06:34:12 PST 2009


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...


More information about the Digitalmars-d-announce mailing list