The terminal and all the Unix underpinnings of Mac OS X are 64bit. The GUI parts are not. This is due to change in Leopard. It is simple, basically you have a 32bit layer sitting on top of a 64bit core (which is Unix).
Okay, I'm stupid, and it is simple... but I still don't understand.
If you write a program that executes at the command line, my understanding is that it can instigate a thread that invoke 64-bit APIs in Tiger to solve some problem. My understanding, as others have reported it, is that a GUI program cannot create the same thread. That's the part I don't understand.
If you have a program that's manipulating large amounts of data, such as a rendering program or some video format translation, or something, where 64-bit might be usable, the thing that's being done is not a GUI thing, whether or not a GUI program is doing it, right? That is, if you wish to do some kind of data manipulation, like inverting a large matrix or pushing a lot of data through some sort of digital signal process... the API that does this is not a different API for a command line program than it is for a GUI program.
I mean, no one wants 64-bits to make interface widgets or pop-up dialogs better. People want it for complex computations involving large amounts of data.
What I don't get is how the system is set up so that it matters what kind of process initiated the thread as to whether the process can use 64 bits in Tiger or not.
This is all a bit off topic, though, and I do apologize...