Commit Graph

8 Commits

Author SHA1 Message Date
JeffBezanson a4bb09bcb2 adding equalhash.c
some cleanup

moving some library code around for size optimization

now using == instead of flt_equals for float comparison, mostly
for hash compatibility
2008-11-28 21:44:59 +00:00
JeffBezanson e7e5677d51 support reading hex float literals
better text representation of infs and nans

removing construction of low-level numeric types directly from strings

adding hash function corresponding to equal

better way to initialize builtins

moving advanced bitvector ops to separate compilation unit

rearranging hash table code so it can be specialized for different
comparison functions

one good way to bloat a piece of software is to add several
ASCII pictures of the mona lisa
2008-11-23 07:12:37 +00:00
JeffBezanson c89111f7cb refactored escape sequence handling a bit, added error for invalid hex
discarding rest of input line after a parse error
made compare() do less work for unordered comparison
added peekc and purge to ios
2008-11-06 04:04:04 +00:00
JeffBezanson 6f934a817b I decided it was rather random that set was the only function
that could access the current environment dynamically. It also
differed unnecessarily from common lisp set in this respect.

So now setq is a builtin special form that sets lexical or
global variables, and set is a function that sets global variables.

Rather than eliminate the power of the dynamic set, I extended it
by adding eval*, which evaluates its argument in the current
environment. The justification for this is that the interpreter
is already dynamic enough to allow it with no overhead, so the
ability might as well be exposed.

cleanup; removing some magic numbers

beginning hash tables
2008-09-06 22:19:51 +00:00
JeffBezanson af8b332367 fixed some small flaws in (compare) 2008-08-30 22:18:20 +00:00
JeffBezanson 46f2f47b14 switched to 3-bit type tags for simpler checking
fixnums still have 30 bits

moving towards making "guest functions" more opaque; their type is now
just 'builtin

pretty printing some forms better: defun, defmacro, for, label
support *print-pretty*
2008-08-05 01:43:12 +00:00
JeffBezanson c3811312a7 adding vector.map, string.char
fixing 0-trip-count case in (for)
2008-08-02 16:18:39 +00:00
JeffBezanson 0c9010a117 import femtolisp source 2008-07-01 01:54:22 +00:00