News for hackers. Stuff that matters.
Re:Killing Off Wasabi by mwcampbell on Thursday June 25, 2015 @05:52PM (#9781144)
I'm particularly interested in your thoughts on Wasabi compiling to C# rather than CIL. What characteristics of Wasabi led to the C# output being suboptimal for human reading and editing? If a compiler is going to output human-readable code, are there any general design pitfalls to avoid?
Re:Killing Off Wasabi by krallja on Thursday June 25, 2015 @06:38PM (#9781357)
To add to Ted's comment, the main mistake we made in generating readable C# from the start was using `System.CodeDom` as our code generator, which explicitly does NOT care how readable your output is.

A better idea would have been to hand-code the generator, though of course that would have been a lot of string manipulation as well as a little extra effort.

Roslyn solves both of those issues for us, but it didn't exist until very recently.

Re:Killing Off Wasabi by gecko on Thursday June 25, 2015 @11:47PM (#9782377)
Beyond what tedu and krallja pointed out, the debugging required inserting tons of #line markers in the C# output. But a single line of Wasabi could map to multiple lines of C#, making the definition of stepping ridiculous. Throw in that Wasabi necessarily grandfathered ASP globals that C# lacked and you also had fun variable display.
Re:Killing Off Wasabi by tedunangst on Thursday June 25, 2015 @06:20PM (#9781278)
The semantics of wasabi (VB) and c# are slightly different. A fair amount of the code was actually the result of various code generators. It dumped everything in one giant file (delimited by #file markers, though). Nothing intractable, but nothing high priority.