summaryrefslogtreecommitdiffstats
path: root/mpi-patches/series
Commit message (Collapse)AuthorAgeFilesLines
* Starting work on adding bit operations. The semantics is thatKaz Kylheku2012-09-161-0/+1
| | | | | | | | | | | | | | negative integers behave as an "infinite bit two's complement". * arith.c (logand, logor, logxor): New functions. * eval.c (eval_init): New intrinsic functions logand, logior, logxor. * lib.h (logand, logor, logxor): Declared. * mpi-patches/series: New patch, add-bitops. * mpi-patches/add-bitops: New file.
* Adding patch to MPI to disable its Makefile so people don't tryKaz Kylheku2012-04-101-0/+2
| | | | | | | | | | | | | | to work around TXR build problems by running make inside the MPI directory, which is wrong. Also fixing an incorrect use of ctype.h functions in MPI and one case of a superfluous warning. * mpi-patches/series: new patches added. * mpi-patches/disable-make: New file. * mpi-patches/fix-ctype-warnings: New file.
* * arith.c (flo_int): New function.Kaz Kylheku2012-03-201-0/+1
| | | | | | | | | | | * eval.c (eval_init): flo-int registered as intrinsic. * lib.h (flo_int): Declared. * mpi-patches/series: Added mpi-to-double to patch stack. (mp_to_double): New MPI function. * mpi-patches/mpi-to-double: New file.
* * arith.c (highest_bit): Linkage changed to static.Kaz Kylheku2011-12-131-0/+1
| | | | | | | | | | | | | | | | | (abso, isqrt): New functions. (isqrt_fixnum): New static function. * eval.c (eval_init): Registered abs, sqrt and numberp instrinsics. * lib.c (numberp): New function. * lib.h (numberp, abso, isqrt): Declared. * mpi-patches/series: New patch added. * mpi-patches/faster-square-root: New patch added. * txr.1: Documentation stubs for new functions.
* Patch to shrink mpi-int to three words on 32 bit platforms,Kaz Kylheku2011-12-131-0/+1
| | | | | | | | so that obj_t stays four pointers wide. * mpi-patches/series: New patch added. * mpi-patches/shrink-mpi-int: New file.
* Git rid of some some loops in MPI where it is searching forKaz Kylheku2011-12-121-0/+1
| | | | | | | | | the highest bit, replacing them with an adapation of the bit searching function used in arith.c. * mpi-patches/series: Patch added. * mpi-patches/bit-search-optimizations: New file.
* * mpi-patches/fix-mult-bug: One more flaw discovered inKaz Kylheku2011-12-121-0/+1
| | | | | | | | | | | | s_mp_mul_d and added to patch. This one caused malloc corruption and crashes, because the incorrect arithmetic causes the function to think that the multiplication will not be needing another digit, but then there is a carry out which does spill into a new digit. * mpi-patches/series: Arg! Somehow the patch fix-bad-shift went missing from the series file, even though the patch itself is in the GIT repository.
* * mpi-patches/mpi-set-mpi-word: Bugfix and refresh.Kaz Kylheku2011-12-101-0/+1
| | | | | | * mpi-patches/mpi-set-double-intptr: New file. * mpi-patches/series (mpi-set-double-intptr): Patch added.
* Adding mp_set_word function.Kaz Kylheku2011-12-101-0/+1
| | | | | | * mpi-patches/series (mpi-set-mpi-word): New patch. * mpi-patches/mpi-set-mpi-word: New file.
* Bignum support, here we go!Kaz Kylheku2011-12-091-0/+8
Bignums, based on Michael Fromberger's MPI library, are integrated into the input syntax, stream output, equality testing, the garbage collector, and hashing. The plus operation handles transitions between fixnums and bignums. Other operations are still fixnum only. * Makefile (CFLAGS): Add mpi directory to include file search. (OBJS): Include new arith.o module and all of MPI_OBJS. (MPI_OBJS, MPI_OBJS_BASE): New variables. * configure (mpi_version, have_quilt, have_patch): New variables. Script detects whether patch and quilt are available. Unpacks mpi library, applies patches. Detects 128 bit integer type. Records more information in config.h about the sizes of types. * dep.mk: Updated. * depend.txr: Make work with paths that have directory components. * eval.c (eval_init): Rename of nump to fixnump. * gc.c (finalize, mark_obj): Handle BGNUM case. * hash.c: (hash_c_str): Changed to return unsigned long instead of long. (equal_hash): Handle BGNUM case. (eql_hash): Handle bignums with equal-hash, but other objects as eq. * lib.c (num_s): Variable renamed to fixnum_s. (bignum_s): New symbol variable. (code2type): Follow rename of num_s. Handle BGNUM case. (typeof): Follow rename of num_s. (eql): Handle bignums using equal, and other types using eq. (equal): Handle BGNUM case. (chk_calloc): New function. (c_num): Wording change in error message: is not a fixnum. (nump): Renamed to fixnump. (bignump): New function. (plus): Function removed, reimplemented in arith.c. (int_str): Handle integers which are too large for wcstol using bignum conversion. Base 0 is no longer passed to wcstol but converted to 10 because the special semantics for 0 would be inconsistent for bignums. (obj_init): Follow rename of num_s. Initialize bignum_s.