[Openmcl-devel] OpenMCL on AIX?

Scott L.Burson Scott at sympoiesis.com
Thu Feb 23 11:02:12 PST 2006

Thanks, Gary.  Since the port is not known to be trivial, I think my  
first tack will be to try to persuade my customer to switch to Linux  
-- which may be possible since IBM has jumped on the Linux bandwagon  
pretty thoroughly.  If that fails, I'll get back to you.

Thanks again,

On Feb 22, 2006, at 23:41, Gary Byers wrote:

> I had AIX (version 5L ?) installed on a POWER3 system a few years ago.
> I didn't actually try to do a port; from what I remember, AIX maps the
> OS kernel into the low 256MB (the low 28 bits) of memory; OpenMCL
> likes to be able to keep some of its runtime in low memory (the low
> 25 bits, preferably the low 15) so that compiled code can call into
> it via absolute branch instructions (in some cases, conditional
> absolute branches.[*])
> It's also possible to branch unconditionally to absolute addresses in
> the high 25 bits of the address space (or to branch conditionally to
> the high 15 bits); if it's possible for a process to map the high end
> of the address space under AIX, then that part of a port would be
> fairly easy.  If it's not possible to use absolute branches to call
> into the runtime, a port would be harder (it'd be more expensive to
> call into the runtime, so it'd probably be desirable to do it less
> often.)
> Based on poking around in AIX for a few days a few years ago (I later
> installed Linux on that machine), that looked like the biggest  
> problem.
> I didn't look carefully at the usual suspects (does signal handling  
> work ?
> do threads work ? etc) and I'd assume that that's just a question of
> getting the details right with those things.
> I think that I have a spare disk for that POWER3; if this gets more
> serious and you need a firmer estimate, I can try to reinstall AIX
> and do some more poking around.
> ---
> [*]  For the curious,  something like:
> (defun foo (x y)
>   (declare (fixnum x y))
>   (+ x y))
> e.g., "add two fixnums, but note that the result may overflow into a
> bignum" ordinarily compiles to code that includes:
>   (ADDO. ARG_Z ARG_Y ARG_Z)	; add X and Y; store the result in arg_z.
> 				; check for overflow and set the
> 				; "summary overflow" bit if it's detected
>   (BSOLA .SPFIX-OVERFLOW)	; "branch if summary overflow (and set the
> 				; link register to the address of the
> 				; following instruction) to the absolute
> 				; address .SPFIX-OVERFLOW", which is in
> 				; the low 15 bits of the address space.
> That's a relatively concise way of keeping the (presumably rare) case
> where we have to cons up a bignum out of the cache.  If we couldn't
> use an absolute branch (the BSOLA instruction), we could either inline
> the bignum-consing code or use a more expensive sequence of  
> instructions
> to call ".SPFIX-OVERFLOW" here.
> On Wed, 22 Feb 2006, Scott L.Burson wrote:
>> Hi,
>> This is just exploratory at the moment, but I may have occasion in
>> the coming months to want to run OpenMCL under AIX.  Any idea how
>> difficult the port would be?
>> -- Scott
>> _______________________________________________
>> Openmcl-devel mailing list
>> Openmcl-devel at clozure.com
>> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list