[elephant-devel] Testresult and patches for sbcl amd64

Ian Eslick eslick at csail.mit.edu
Mon Feb 5 20:29:22 UTC 2007


I'll switch sbcl over to ldb.  I think %bignum-ref returns values  
that fit in fixnums - so 64-bit quantities on 64-bit SBCL causing the  
problem...

Here's an experiment on a 32-bit sbcl, fyi...

ELE-TESTS> (type-of (sb-bignum:%bignum-ref 1000000000 1))
BIT
ELE-TESTS> (type-of (sb-bignum:%bignum-ref 1000000000 2))
BIT
ELE-TESTS> (type-of (sb-bignum:%bignum-ref 1000000000 3))
(INTEGER 0 536870911)
ELE-TESTS> (type-of (sb-bignum:%bignum-ref 1000000000 4))
(INTEGER 0 536870911)

Ian

On Feb 5, 2007, at 2:33 PM, Henrik Hjelte wrote:

> On Mon, 2007-02-05 at 14:04 -0500, Ian Eslick wrote:
>> Sounds like we're getting into much better shape, thank you!  I'll
>> look over and integrate these.
>>
>> What was the problem with %BIGNUM-REF for SBCL.  It was in there
>> originally to avoid the consing that SBCL/CMU does with ldb.
> I don't know what BIGNUM-REF actually is meant to do, but it returned
> the whole bignum it seems, or maybe it was a 64 bit integer. Anyway it
> was not a 32bit value, which was expected by buffer-write-uint.
> I did a quick check for consing, and I don't think it is a problem
> anymore, at least not on sbcl.
>
> /Henrik
>
> (time (dotimes (i 100000000)(dotimes (x 3) (ldb (byte 32 (* 32 x))  
> i))))
>
> Evaluation took:
>   1.321 seconds of real time
>   1.256079 seconds of user run time
>   0.024001 seconds of system run time
>   0 calls to %EVAL
>   0 page faults and
>   0 bytes consed.
>
>
>
>>
>> Ian
>>
>>
>> On Feb 5, 2007, at 1:21 PM, Henrik Hjelte wrote:
>>
>>> Hello, here are some results when testing the bdb backend-tests on
>>> sbcl/amd64/linux. There were some problems with the serializer2
>>> code, I
>>> have attached a patch (actually three changes) in diff -u format
>>> against
>>> cvs (but not last two changes).
>>>
>>>   * install documentation, some references to bdb 4.4 changed to 4.5
>>>   * optimizations did not work when testing on 64 bit sbcl, removed
>>> for
>>> sbcl and cmu to be safe
>>>   * bugfix serializing the value (expt 2 31) which was deserialized
>>> to a
>>> negative number
>>>   * Bugfix: most-negative-fixnum on 64 bit Lisps was serialized as
>>> a 32
>>> bit value
>>>
>>>
>>> Now no tests fail the first time (do-backend-tests) is run.
>>> When repeating the tests, prepares-bdb fails.
>>>
>>> I have also attached a bash script that downloads berkeley-db,
>>> installs
>>> it, and makes a default config file for Linux. Maybe someone  
>>> finds it
>>> useful.
>>>
>>> Update: I saw that Ian had made a recent change for allegro, which I
>>> have made for sbcl/cmucl. You see it when you look at my patch, the
>>> ldb
>>> version should be the one for all lisps.
>>>
>>> /Henrik Hjelte
>>> <somechanges.diff>
>>> <install-bdb.sh>
>>> _______________________________________________
>>> elephant-devel site list
>>> elephant-devel at common-lisp.net
>>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>
>> _______________________________________________
>> elephant-devel site list
>> elephant-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>
>>
>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel




More information about the elephant-devel mailing list