Commit Graph

14 Commits

Author SHA1 Message Date
JeffBezanson 2ed581e62d adding top-level-value and set-top-level-value!, using them instead of
set and eval where appropriate
adding separate integer? and integer-valued? predicates
2009-04-17 14:41:15 +00:00
JeffBezanson 672558d30f bytecode vm is now working, off by default
various bug fixes

language changes:
• constant symbols no longer shadow everything
• eval* removed
• vararg lists always allocated on entry, dotted argument
  lists not preserved

new applyn() entry point
2009-04-15 00:12:01 +00:00
JeffBezanson e3158b8640 adding nestlist, to-proper, string.rep, pad-l, pad-r, trace, untrace,
table.invert, table.foreach
reorganizing system.lsp so functions are grouped sensibly
scheme implementation of a simple bytecode compiler
2009-03-28 21:39:04 +00:00
JeffBezanson fe72c101e2 avoiding sprintf for error messages where possible
moving raise, logand, logior, logxor, and ash out of core
changing prog1 to a special form
2009-03-25 02:28:21 +00:00
JeffBezanson fdfaacfbe5 adding io.putc, io.tostring!, string.map, print-to-string
fixing bug in ios, not initializing readonly flag
updating string and sizeof to use new strstream functions
removing some redundant numeric type init functions
2009-03-05 03:48:17 +00:00
JeffBezanson 2cf5187ca9 adding dump, memstream, io.read, and io.write
more renaming
allowing iostreams to be read-only
fixing bug allowing arrays with 0-size elements
2009-03-02 04:26:16 +00:00
JeffBezanson 79e12b2dcb adding io.print and io.princ
misc. touch-ups
2009-02-09 05:38:40 +00:00
JeffBezanson 17d81eb4e6 adding #b, #o, #d, #x numeric literals
accepting r6rs IEEE literals +-nan.0 and +-inf.0
printing distinguished -0.0, indicating float with .0f instead
of #float, double with .0 instead of #double

more renaming (? on predicates, ! on mutating operators)
changing T to #t :( all those #s are so ugly
2009-02-01 01:53:58 +00:00
JeffBezanson a55b46e9a6 switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists

switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.

mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.

adding null?, eqv?, assq, assv, assoc, memq, memv, member

adding 2-argument form of if
allowing else as final cond condition

looking for init file in same directory as executable, so flisp
can be started from anywhere

renaming T to FL_T, since exporting a 1-character symbol is
not very nice

adding opaque type boilerplate example file

adding correctness checking for the pattern-lambda benchmark

bugfix in int2str
2009-01-29 01:04:23 +00:00
JeffBezanson 8197197ced misc. cleanup
adding without-delimited-continuations

adding skeleton for stream objects
2009-01-05 02:45:21 +00:00
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 88938bc6d1 fixes and improvements to cps converter 2009-01-02 22:58:14 +00:00
JeffBezanson 5bff23e790 improvements and bug fixes to CPS converter 2008-12-29 00:00:45 +00:00
JeffBezanson dc50df083c adding branch probability annotations
wrote a CPS transformer that can be used to provide coroutines

misc. cleanup
2008-12-28 08:01:18 +00:00