Commit Graph

16 Commits

Author SHA1 Message Date
JeffBezanson 209b77a534 simplified and improved some of the prettyprinting logic
• eliminated bad behavior near screen edge, added wrapping
• added behavior: indent after some number of non-indented elements
• indent after head symbols with really long names
• don't indent after first argument to setq

improvements to cps converter
• correctly dispatch to non-cps functions
• handle vararg lambdas in head position
2009-01-03 05:30:22 +00:00
JeffBezanson d8132ad204 adding CPRIM type, smaller representation for primitives
bug fixes in opaque type handling
2009-01-02 23:00:21 +00:00
JeffBezanson 830e1c986c renaming 'char' type to 'byte' to avoid confusion
wchar will be used for all individual characters

adding string.find function

fixing bug in #sym(...) if sym was undefined
2008-12-24 04:43:36 +00:00
JeffBezanson dfacb4d897 making all builtins print readably; (builtin 'sym) function
hash table functions:
adding get,put,has,del,table.foldl,table.pairs,table.keys,table.values
2008-12-21 05:55:00 +00:00
JeffBezanson b5dda68eab adding support for finalization of values
enabling type-specific print and relocate behavior

allowing GC to be triggered by large buffer allocations

adding hash table constructor and print function

renamed some functions
2008-12-20 06:16:00 +00:00
JeffBezanson 6962211e76 changing representation of cvalue types so each type is
explicitly represented in an fltype_t struct, and symbolic
types are hash-consed. a lot of code is smaller and simpler
as a result. this should allow more features in less space
(both code and data) going forward.

changing \DDD and \x escape sequences to read bytes instead of
characters

re-fixing uint64 cast bug

adding Paul Hsieh's hash function, to be evaluated later
2008-12-11 04:04:17 +00:00
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 120522c212 updating bitvector functions to use int64s in more places, since
after all that's the whole point of bitvectors

some prettyprinting tweaks

more uniform way to handle forwarding pointers. fix forwarding
of gensyms

:keyword symbols
2008-10-31 02:50:00 +00:00
JeffBezanson c8c59b1dfc added globals *install-dir* and *print-width*, parameterized
prettyprinter by screen width

decent accumulate-while and accumulate-for
2008-09-11 02:37:38 +00:00
JeffBezanson d6470ac62f fixed array constructor so it doesn't require allocating a generic
container first

updates and improvements to ios
2008-08-29 03:27:59 +00:00
JeffBezanson 9acdf313b9 adding more ios functions
porting femtolisp to use ios for all I/O
2008-08-17 18:16:31 +00:00
JeffBezanson fa0e134dd8 adding "d.df" syntax for reading single-precision numbers
misc. fixes
more work on ios
2008-08-16 21:15:36 +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