Friday, September 08, 2006

How the World Works

Doing work on Fridays has never been something I've been good at, though Friday afternoons are actually a really convenient time to get things done. In past semesters, I would waste time on the internet or watching TV. This semester, my Friday avoidance tactic seems to be trying to get SOME implementation of Scheme to install on my AMD 64 architecture.

I have both DrScheme and Petite Chez Scheme on my Powerbook, so I don't technically need to do any of this. However, it would be nice to have it on the desktop - what with the big screen and keyboard, the desk, the chair, the EXECUTION SPEED, etc. But alas, no one has yet come out with an easily-installable version for AMD Linux. (It's nice that Petite is upfront about it. Their sources are all appropriately labeled "Intel Linux.")

I remember reading on some message board that Chicken might do the trick. Chicken is an interesting little project - essentially what we were encouraged to learn on our own in Friedman's class: it's a Scheme-to-C compiler, and supposedly a pretty good one.

So that's what I spent a good deal of time trying today. But I keep getting the same error ([Error 2]) in the "make install" stage. I assume this is a segmentation fault, related to the architecture. Most of these seem to require GNU make - but that's what I have, so it shouldn't be any problem with the installation program I'm running.

I don't really see what could be wrong with a compiler program that would require i386 architecture necessarily. All that Chicken should need to do is take Scheme code and translate it into C. One then compiles the C code (and of course I definitely have a C compiler - couldn't install much else without it). In fact, the reason I was hesitant about using Chicken at all is because it seems like a lot of work just to get a simple program to run - what with compiliing it into C, then compiling the C, and then running it. It's annoying enough having to recompile every time I want a C program to work. Compiling twice just to get "Hello, world!" to work in Scheme is pushing it!!!

I'm not yet at the stage of admitting that there might be something wrong with the computer. After all, I haven't had any trouble since I built this thing in early June. Nor would it explain why installing Scheme - of all different flavors - is the only hurdle I've run into.

Ah well - this is what's always been frustrating about programming in Scheme. It's an absolutely fantastic programming language - but there's simply no support for it. Someday I'll write a screed on how Schemers need to make more of an ecumenical appeal. I wish I had the link - but sometime last semester I read something by someone who called Schemers "the smugest bunch of weenies in programming." It's true - and that's the problem. Schemers spend most of their time (which they have in abundance because their language works so well - i.e. none of the headaches and all-nighters that plague the C community) strutting around saying things like "The machine? I don't program on machines. I write computationally correct code." Yes, well, be that as it may, someone has to do the work in C that makes it possible for the machine to understand your "computationally correct code," you jackass!

It's not surprising that there aren't versions of Scheme out for AMD 64 Linux. Schemers know what's cool about computation, and they do it well. But someday remembering that there is a machine that makes lambda calculus work for us in the real world might not hurt.

Ah well, no soap this week either. I'm out of time, so I'll have to leave this alone and start my homework now. Maybe when Intel markets a useable 64 chip we'll at least get a version of Chez out of the deal. In the meantime, I guess all my Scheme programming gets done on the Mac.

On the bright side, I did stumble across a number of Scheme blogs.


Post a Comment

<< Home