27 March, 2003

AfterStep

So James Noyes, a fellow Solaris user, who is more familiar with AfterStep than I am, as well as Sasha Vasko (one of the AS core developers), have teamed up to fix the 64-bitness issue on Solaris in the 1.8.11 tree, as well as cvs (which is shaping up to be 1.99 at present, a precursor to 2.0's eventual release).
An excerpt from James' email, including the patch:
 
I got it!
 
I'm currently running a 99.9% fully operational 64-bit afterstep environment. 
afterstep, Wharf, WinList, Pager, Zharf, Audio, Animate, Banner, and Form all
check out good.  Total changes to the code base to get it this way: three. 
Yes, that's right.  THREE.  Best part is, I'm almost positive these changes
won't break the 32-bit builds.

Here are the changes, courtesy of Sun's diff (top is before, bottom is after):

include/module.h
16c16
    int window;
---
<     unsigned long window;


lib/ASmodule.c
155c155
  size_t w;
---
<   int w;


src/afterstep/gnome.c
  CARD32 val;
---
<   unsigned long val;

That's it!  make, make install, and fire it up!  I rule!  Woohoo!

I'm really astonished that people were able to get together and fix something that was clearly quite broken. I managed to find an article here, http://www.treblig.org/articles/64bits.html, which seems to point out that this is not just an Afterstep issue or a "Sun not doing what the coder expected" issue.

Actually, it looks like this is a common 64-bit clean code issue. Well, perhaps with apple's G5 coming out (MacOS Rumors says they expect to see them released 2-3 months after MWSF in June), and AMD's Hammer, we'll see more of the market having 64-bit computers. Dear god, we may even start to see scsi back in workstations. Nah, probably not. At any rate, with there already being Itanium's, Hammer, and G5's, there's no reason we shouldn't start to see better support for more "traditional" 64 bit platforms, such as the excellent Alpha (although hamstrung by a severe lack of reasonable software), the Ultrasparc, and the SGI MIPS platform.

While I've got your attention, I'll ramble on a little more about the job situation. I had some pretty promising conversations with a woman from Volt, a headhunting firm. She says theyre looking for a Solaris guy for a position at Northrop-Grumman. That would be pretty cool, but I suspect she's going to want a urine sample and perhaps a clearance.

Ick. I'm curious, though, why it seems the job postings for the Northern Virginia area seem to have died down in the last week or so. I've only really been able to send out 4-5 resumes in the last ten days, which is about 25% of the rate I had a month ago.

And speaking of clearances. I've never heard of such a thing happening, but I had an acute allergic reaction to the fingerprinting ink they used at the Arlington County Sheriff's office. Rash all over my hands and arms all the way up to my elbows. Ick, ick, ick! The things I do for employers. As if the 16 hours of paperwork for the clearance wasnt bad enough, I have to get covered in ink and have a rash for two days. And I'm probably not even going to get the stupid clearance anyways. Gr


So, to wrap up, I think that after we're sure AfterStep is all patched and ready to go, we'll start passing messages around to the other window manager groups saying that their code might be broken when compiled 64-bit on Solaris/Ultrasparc. Maybe we'll even find more people that care. That'd be... splendiferous!

23 March, 2003

Spring is here

Spring is here.
It must be, I just had a birthday.
I don't feel any older or wiser. One would think that being a quarter of the way to a century, you'd be given some secret "insight" tarball or something. At any rate, I digress.

So I've spent all day fiddling with 64-bit window managers on Solaris. I've built myself a 64-bit gcc 3.2.2, as well as g++ (GCC it turns out is actually the "Gnu Compiler Collection", I wonder when they changed that. By mentioning gcc and g++ separately, I mean to say I didnt build fortran and java and ada and all that other stuff I wouldn't ever use). Heck, I've even got a 64-bit gdb.

This was all inspired by the fact that GNOME 2 leaks like a sieve and after a couple days, X becomes all but unusable. Xsun should just not be taking 250mb of ram [ed: !]. That is ludicrous. So, I went out and grabbed fluxbox, which refuses to compile. Ok, well, so it doesn't exactly refuse to compile, it has some broken m4 macros, so autogen.sh doesnt work, and it doesn't make it past the configure script.

Additionally, there are some, shall we say, narrow-minded and GNU-specific bugs in its codebase. I'm confident that after the m4 stuff is fixed, the source won't compile either. It really is too bad, I liked fluxbox on our OpenBSD/ia32 machine.

Waimea, Blackbox, and OpenBOX all compiled happily enough, but linked against this Sun X library, /usr/openwin/lib/sparcv9/libX11.so.4, which does some unsavory stuff:

Casper *** [ed: removed at author's request], from Sunmanagers:
This bug is listed now as "will not fix"; it appears to be caused
by under specification of the XChangePropery() (when the format 32
is specified, "longs" are converted as the standards specify rather than
"32 bit" quantaties the coders often expect)

 ...

It seems that the standard specified that "32 bit " means "long"
there a property type of "32" should be acommpanied with a 64(!)
bit value.
Suck. 

I'm guessing this means that I need to convince the developers of at least four different projects that their code doesn't work on Solaris/Ultrasparc and that it is important. "64-bit? Why?" "Sparc? Why not just use linux?" "What distro are you using?"

Call me a bigot, but I'm really sick of opensource projects that are so "ethnocentric" (if you'll pardon the metaphor) that they lose any openness they had. I run at least five different operating systems at home, and I expect code written in C to be portable. I expect coders to be responsible enough to write code that works be it compiled by MIPSPro, Forte, GCC, or whatever the heck Intel is pitching these days.
I also expect Sun to do the predictable when theyre distributing libraries.

I guess I'm going to spend the next few days trying to convince people who have no interest in the hardware I'm using that it is valuable to them to fix the bug that is ... well, it is debatable whose bug it is, but we all know Sun isn't going to fix it.