Sean Middleditch » 2006 » January
So I finally found the problem with AweMUD on Sparc. It wasn’t a libgc bug as I originally suspected. I had to wrestle with the debugging tools a lot to finally find the answer. The debugger wasn’t telling me the correct line in which the crash was happening, making it look like a memory bug instead of what it actually was: an alignment bug.
Of all the architectures I tried, only Sparc cared about the alignment of integers when copying them around. Namely, I couldn’t do something like:
uint16_t var = *(uint16_t*)&byte_array[index];
Instead I needed to do:
uint16_t var;
memcpy(&var, &byte_array[index], 2);
The only platform I can’t get things working on now is Alpha, and that’s just because the debugging tools are being absolutely useless. I’m getting a SIGILL (illegal instruction), but none of the debugging tools seem to be able to tell me where. And given that it’s a slow host running Linux 2.2, I’d just don’t have the patience to do the printf-style debugging. Thankfully, I don’t think Alpha is an actually interesting architecture to support anymore given that it’s no longer in production, so I can live with AweMUD not running on it.
IA32, AMD64, PPC, PPC64, and Sparc are all supported by AweMUD now. If SourceForge adds any more architectures to its compile farm, I’ll be sure to test those out, too.
Between the VMware-hosting Windows machine at work and the compile farm SourceForge.net provides, I’ve managed to get some porting work done on AweMUD today.
The latest code should compile and run on Cygwin just fine.
The latest code will compile on Solaris 9/sparc, but crashes after a connection. This may be a libgc bug. I’m going to see how well AweMUD runs on Solaris 9/x86 first, and then make sure it works properly on OS X 10.3 (PPC). If those work I’m just going to ASSume it’s a libgc bug on sparc.
I did try to get FreeBSD running on my machine at home again using bochs. Sadly, getting it working nicely just wasn’t something I could do. VMware is so nicer. I just don’t want to hassle with installing a kernel module. Unlike the NVIDIA driver, Ubuntu doesn’t (to my knowledge) have a package for vmware that tracks the latest Dapper kernels. Getting disks setup in Bochs should be possible through the GUI, and getting network setup shouldn’t require any work at all. Bochs is also pretty slow compared to VMware. Maybe if someone comes along and writes a nice GTK Bochs frontend that has built-in bximage and networking support it’ll be usable by mere mortals like me.
Ingredients for the Perfect Bowl of Cereal:
* Half-bowl of Honey Bunches of Oats w/ Almonds
* One scoop peanut buffer
* One big pinch of sweetened coconut shavings
* A half-cup of milk
* One or two fresh diced strawberries
* Three to four shots of Emmet’s Irish Cream
Ingredients for the Perfect Morning Drink:
* 3/4 glass of milk
* Chocolate syrup
* Three to four shots of Emmet’s Irish Cream
Then, at night, after dinner, the Perfecet Dessert has got to be:
* Ice cream
* Milk
* Lots of Irish Cream
For when you have too little time for a complete lunch, here’s the Perfect Quicky Lunch:
* As many swigs out of a bottle of Emmet’s as you can take
Some of you may be thinking that there’s a dangerous pattern forming here. Allow me to persuade you otherwise. There are many days in which I have no irish cream at all. Namely, all the days I use rum instead.
For someone who, less than a year ago, once despised alcohol and thought little of most people who drank it, I’ve now managed to surpass even the most party-hardy of my friends in my drinking quantities. Apparantly I drink rum “like it’s water.” Without getting blitzed. I wasn’t aware I was doing anything differently than normal people. :-/
Dovecot’s GSSAPI support is perfect. I needed to add only a single word to a single line in dovecot.conf to get it working. That is pure beauty.
It’s worth noting that I did already have a key generated for it and placed in the keytab file, so that is one step others will need to do which I did not.
Once Jabberd2’s GSSAPI-enabled release is out and in Debian unstable, I should have every single service on the network kerberized.
AweMUD 0.24 is out. Scriptix has been merged into the codebase.
That is all.