[Aldor-l] representation of SingleInteger in Axiom

Ralf Hemmecke ralf at hemmecke.de
Mon Jun 23 03:35:56 EDT 2008


Thank you, Peter,

that seems to help a bit. But in particular for SingleInteger... isn't 
there a difference in the representation? Aldor uses 32 bit and Axiom's 
SingleInteger has the same representation as ,uhmmm, Lisp. Is there a 
different runtime system behind Builtin, then?

Ralf


On 06/23/2008 09:20 AM, Peter Broadbery wrote:
> On Sun, Jun 22, 2008 at 10:29 PM, Ralf Hemmecke <ralf at hemmecke.de> wrote:
>> To whoever knows about the history of the aldor-axiom connection,
>>
>> Important in the build of the aldor-axiom connection are the files
>> axlit.as and axextend.as that can be found at
>>
>> https://svn.origo.ethz.ch/algebraist/trunk/aldor/lib/libax0/
>>
>> I roughly understand why they exist. What I don't understand is their
>> actual contents. It seems clear to me that Literal and Generator have to
>> be made available and that I should be able to use [...], i.e., the
>> function "bracket" to construct lists. But what I don't understand is,
>> for example, why
>>
>> Bit     ==> Boolean;
>> extend SingleInteger : with {
>>   ...
>>   =:  (%, %) -> Bit;
>>   <:  (%, %) -> Bit;
>> } == add {
>>   Rep ==> SInt;
>>   asBool(x) ==> x pretend Boolean;
>>   ...
>>   import {
>>     ...
>>     SIntEQ:        (SInt, SInt) -> Bool;
>>     SIntLT:        (SInt, SInt) -> Bool;
>>     ...
>>   } from Builtin;
>>   ...
>>   (a: %) =  (b: %): Bit == asBool(SIntEQ(rep a, rep b));
>>   (a: %) <  (b: %): Bit == asBool(SIntLT(rep a, rep b));
>>   ...
>> }
>>
>> appears in axextend.as. Axiom's SingleInteger already exports
>> IntegerNumberSystem, which clearly should also contain = and <.
>>
> 
> Quick answer - inlining - the definitions enable aldor to inline the
> functions when they are used.  If they were not available, the
> generated code would have to call out to the axiom definitions.
> 
> Peter




More information about the Aldor-l mailing list