Update of /project/movitz/cvsroot/movitz In directory common-lisp.net:/tmp/cvs-serv22544
Modified Files: storage-types.lisp Log Message: Changed the low-level formatting of bignums: Now the number of bigits is stored as factors of 4. This restricts the number of bigits to (1- (expt 2 14)), which is still plenty.
Date: Mon Jul 12 04:09:12 2004 Author: ffjeld
Index: movitz/storage-types.lisp diff -u movitz/storage-types.lisp:1.26 movitz/storage-types.lisp:1.27 --- movitz/storage-types.lisp:1.26 Thu Jul 8 05:01:51 2004 +++ movitz/storage-types.lisp Mon Jul 12 04:09:12 2004 @@ -9,7 +9,7 @@ ;;;; Created at: Sun Oct 22 00:22:43 2000 ;;;; Distribution: See the accompanying file COPYING. ;;;; -;;;; $Id: storage-types.lisp,v 1.26 2004/07/08 12:01:51 ffjeld Exp $ +;;;; $Id: storage-types.lisp,v 1.27 2004/07/12 11:09:12 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -1243,7 +1243,15 @@ (length :binary-type lu16 :initarg :length - :accessor movitz-bignum-length) + :accessor movitz-bignum-length + :map-binary-write (lambda (x &optional type) + (declare (ignore type)) + (check-type x (unsigned-byte 14)) + (* x 4)) + :map-binary-read (lambda (x &optional type) + (declare (ignore type)) + (assert (zerop (mod x 4))) + (truncate x 4))) (bigit0 :binary-type :label) (value :initarg :value