From: Larry Hunter

Subject: Computing bignum sizes & allocating bignums

Date: 1997-3-18 17:58


Dear Franz folks,

You may be aware of the PLOB (Persistent Lisp OBject) system for LispWorks
written by Heiko Kirschke for his thesis at Hamburg.  He and Ralf Moeller
are working on porting it to Allegro, which I am also very interested in.

[PLOB is a freely redistributable system that provides persistence for all
Common Lisp types, with a lisp-specific data model which maps between class
metaobjects and persistent description objects.  It provides for schema
evolution, transactions, hierarchical object locking, indices and selection
queries.  It was designed to be both time and space efficient.]  

They have the following questions about bignums, which I am hoping you might
be able to help with.

 1. How can the size of a bignum (in words or bytes) be computed in Allegro
    CL, preferably via a LISP function call?

 2. Given a bignum size (in words or bytes), how can an (uninitialized) bignum
    be allocated in Allegro CL?  Doing an `nm' on the Allegro LISP image, I
    found entry points named `new_bignum', `newbignum' etc, but no
    corresponding LISP functions (there are unbounded symbols named
    NEW-BIGNUM etc., but I don't know how these are used to allocate LISP
    objects). 

Can anyone offer any help?

Larry Hunter
<nlm.nih.gov at hunter>