Recent blog entries for pnkfelix

22 Jun 2002 (updated 22 Jun 2002 at 08:50 UTC) »

Well, much has changed in my life since the last time I posted to this list. I finished my thesis (register allocation), finished school, and went off to work as a compiler engineer at Green Hills Software.

And yet not that much has changed at the same time... (hint: I have not managed to escape the spectre of register allocation, though at least its on a different compiler this time)

I am trying to pursue some projects in my free time, though I have to admit that I am not doing as much as before to further the cause of free software...

Unrelated topic: you'd be better off investing your time in reading "The Art of Computer Programming" than in reading Wolfram's new book, "A New Kind of Science", but if you've already read the former a couple times, maybe you'll have the attention span to wade through the latter. C:P

Well, at long long last I can finally get globally register allocated output that runs. Very exciting.

Needs speeding up though. Seems like I just got through hacking the local allocator into producing output in an acceptable amount of time. Also may not be entirely bug-free. sigh

6.170 has been a distraction, but it hasn't been too too bad. I've been careful not to get as sucked in this term as I did last term. Spending more time writing high-level documents to be disseminated amongst all of the students, as opposed to helping individuals like last term (though I have seen a fair share of that this term as well). Takes a long time to write up something like that and get it right, but seems to be worth it in the end; really gives me a firm grip on understanding things.

Went to mall yesterday, bought an alarm clock, and a watch. Spent some time in Borders reading a book on "Generative Programming." Thought that it was going to be cool, but ended up being disappointing; either told me things I already knew or dealt with analysis and terminology. Maybe will be better after I read "Analysis Patterns"... don't think so though.

Also seemed in many ways just geared to promote the notation that the author pushes in the book itself; I've seen plenty of that, sure. But no reason to spend the time right now emersing myself in a totally different modelling notation, especially one that doesn't seem to be a significant win over Alloy. Have to wait and see.

Finally got the Graph Coloring subsystem to work in a compatible fashion with the Intermediate Representation... I've only tested it on an abstract assembly language, but I think the hard part is over. I've said that a lot the past few days...

At least I'm happy with the new interface I've defined for the Graph classes... its remarkable to see the differences from the old versions (which I developed a year and a half ago and seriously screwed up in terms of extensibility...) Got to some how distill that design knowledge sometime over this weekend... write it down so that I can transfer it to students this term...

The thing that sucks is that I haven't been checking the builds often enough during my work over the last three days, and somewhere in there the Compiler got broken. I strongly suspect that its my Local Register Allocator that's causing the problem (as usual), except that I thought that I tested the executables after i made my last big change to that... (update: Nope, I reverted back to a good LocalRegAlloc (I think) and it still breaks... is it possible the GraphColoring is failing? Going to revert that slightly...)

In any case, the last two hours have taught me a lot about what NOT to do when trying to work with cvs... I really would have preferred a graphical interface... didn't cyclic market a GUI layer before it went under?

The compiler's also going DOG SLOW at this point... maybe the jit got turned off... C:P (Update: even better; my $PATH was pointing at the 1.2 JDK instead of the 1.3. Amazing what a difference there is between the two...)

Wow, it took me forever to remember what my password was...

In Java profiling hell right now... my compiler pass (that theoretically takes linear time) was identified as being 5 times slower than a similar (actually much more ambitious, though not necessarily linear) pass that my officemate hacked up.

I've managed to get the time down by a factor of 2 or so since then by playing with the order of basicblock traversals in the data-flow analyses but am not sure where the remaining hotspots are...

Continually frustrated by several aspects of Java language and libraries, but mostly by the lack of parameterized types. A student in the my group for 6.035 (Compiler Engineering) once told me that he had never seen any useful feature of parameterized types; am now convinced that anyone who would say such a thing has never coded a compiler (or perhaps any largish system?) before (I certainly know that he wasn't doing the coding for our system).

Can't wait for GJ to get integrated into Java3 or whatever.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!