Older blog entries for dhd (starting at number 48)

Hack hack hack.

I would do well to take Ryan's advice I think. It is probably a crime against (something) to be sitting in the offices hacking glibc instead of doing something outside. Well, at least the offices are spacious and full of natural light (which is something I missed at the San Francisco office, which is in a basement).

Oh god our ELF32 ABI is bogus. Of course this is primarily because it reuses so much code in GCC and binutils from the SOM stuff, which is more bogus by far. Our goal was originally to follow the ELF64 conventions used by HP/UX 11, which sounds like a nice idea, except that there is very little useful documentation on them. Also of course, there is no non-PIC code model in PA ELF64, although I'm not sure that we get any benefit from having PIC code on ELF32 because the code generation is so bad and the conventions for common things like indirect function calls and long branches are so broken and slow.

On the bright side, not only do signals work now (for certain restricted values of "work"), but ld.so does run itself and manage to load and run simple programs (which then segfault in _dl_fini).

I guess in 1985, a segmented user space still seemed like a good idea, and the thought that the extra circuitry used to implement segmentation could have been more profitably used to implement things like, say, an indirect branch-and-link instruction, or a PC-relative branch range longer than 256k, never occured to HP's architects. We've taken to calling it PA-CISC.

That said, the 64-bit PA-RISC architecture (PA2.0w) is a lot more sane. Too bad the good bits are only available when running in 64-bit mode...

Went to California again. I meant to get back Thursday but ended up staying until Sunday. Thanks to uzi and yosh for letting me sleep on the "guest bed".

Saw a Nautilus demo at SVLUG. I now realize why I don't go to LUG meetings anymore. As at OCLUG, there were lots of people interrupting the speakers and each other and asking dumb questions.

Ran into people from Ottawa (well, Sudbury via Ottawa) on the Caltrain. A whole car full of them, in fact.

Went to Krispy Kreme donuts in Union City (long way to go for a donut) and stared at the amazing automated donut factory for a while.

Started porting ltrace to Alpha while at the San Francisco office, and realized that, while ltrace source is very nicely laid out, it appears that it doesn't really work on architectures where the PLT is writable, self-modifying code.

In doing so I realized that my tolerance for vi as an editor for writing code is nearly zero. The non-standard undo behaviour in vim doesn't help either (nvi forever!). I've got an Alpha that runs Emacs here so I should be able to finish the port soon.

If I'm lucky, ld.so may run itself tomorrow. Either that or signal handlers will return to somewhere other than deep space. Either way it will surely be exciting.

blah blah blah blah blah blah blah blah blah blah blah blah blah.

Spent the last few weeks:

  • Killing brain cells, gaining fat cells, and embarassing myself in front of various important people at OLS.
  • Brewing beer, drinking beer, brewing more beer, etc.
  • Watching my plants grow. (One of the sunflowers is taller than Jes now)
  • Reading the GCC manual.
  • Acquainting myself with the perverse details of PA-RISC instruction formats.
  • Trying to grasp the concept of delayed branching.
  • Trying to grasp the concept of segmentation.
  • Writing non-functional assembly code.
  • Pressing TOC.
  • Learning how signals really work in Linux (so that's why the stack is executable...)
  • Not reading Advogato (scared off by the Salon article)

See you in another week or two.

Friday evening, and I am alone in the office again, but this time life does not suck, because I am doing fun and challenging things for PA-RISC Linux. At the moment this means getting intimately acquainted with GCC, and trying to make sense of our somewhat mangled toolchain, in preparation for getting the 64-bit kernel going as well as implementing dynamic linker support.

Bah. Friday afternoon, and I am (almost) alone in the office. Life sucks.

I am back from YAPC 19100, and I have the T-shirt to prove it!

A detailed writeup may or may not follow, depending on whether I get around to it.

Our hotel has free beer (SNPA, and various forgettable swill) every night from 6 to 8. I'm easy to please.

Went to dinner with yosh and lilo last night, which was fun. It's always good to put names to faces (or nicks to faces, as the case may be). Conversation centered around Mozilla, Linuxcare, and Perl 67. (I hope mjd does not kill me for giving too much of the answer to that page away :-)

I may actually submit something to CPAN. CPAN is interesting. I could say something profound but I'm all worn out from last night.

BenC went and put together some potato CDs for Alpha in my absence. Thanks Ben! I have to fix the bootability aspects of them though. After all that aboot work I did it would be a real shame if I couldn't get my act together to make properly bootable CDs for Debian :-)

YAPC 19100 is coming, and I am going! I am so excited! YAPC! YAPC! YAPC!

Until then though, I am in California again. Big thrill. All of my old friends in Ottawa are in awe of the fact that I'm here, which kind of makes me feel guilty that I am not exactly thrilled to be spending half my life here lately. There is a reason why I live in Ottawa, and it's not so that I can work in California for less money.

The guy across the street introduced himself by shouting across the street to me that I should "cut my grass". Which would make more sense if there were actually any grass in my front yard, which there is not (there are pumpkins, sunflowers, potatoes, eggplant, tomatoes, peppers, basil, coriander, and assorted weeds, but no grass). I wonder if I should put up a big sign in the garden saying "if you don't like it, go the fuck back to Kanata". Again, there is a reason I live in Ottawa.

Boing.

Let's see, what have I been doing? I went to California for 9 days. Then I came back, did 1km in a wheelchair relay, spent $1000 at IKEA, graduated from University, cleaned parts of my house that were recently vacated by the departing roommates, made fastidious efforts to dissipate the scent of ferrets, assembled furniture, sat in meetings at work which I learned of minutes before they were scheduled due to a mailing list screwup, built kernel packages, hacked evil Perl, took some amusing, free online exams. Oh, and I did some work.

The C exam had lots of questions about multidimensional arrays, and the Unix exam had lots of questions about SysV IPC. Somehow that strikes me as fundamentally wrong, although I guess there is some value in understanding these things so that you know why you should never, ever use them. But nonetheless, I did pretty well on both, and even better on the Perl exam (which I could do a long hatchet job on here, but I don't feel like wasting the electrons).

Graduation was fun. The one thing that struck me above all was how it all looked like a medieval court. The chancellor and rector (Queen and King) were seated in what were essentially thrones, wearing robes, with the faculty (nobles and clergy) arranged behind them, in a variety of costumes and hats. Also due to the fact that Arts and Religious Studies were sharing this particular ceremony, there were a fair number of Church guys in even funnier hats.

Yes, I have an Arts degree (summa cum laude, baby).

Yay yay hooray. It seems that the nasty compiler bug (the one that broke Mutt 1.0.1 compiles) is either fixed or worked around in 2.96.

Slowly trying to get potato CDs for Alpha into shape. I will probably end up just copying the Sparc stuff and bending it to fit.

39 older entries...

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!