Commit Graph

82 Commits

Author SHA1 Message Date
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 c076be667b fixing bug in macroexpand on lambdas 2009-03-27 03:47:11 +00:00
JeffBezanson 4cb9685266 adding support for arbitrarily-long argument lists
argument lists are heap-allocated after a certain cutoff (currently 127)
2009-03-27 03:06:55 +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 b63a23eb1a char read/print improvement
adding char.upcase and char.downcase
2009-03-24 21:27:38 +00:00
JeffBezanson a9b0f7879b removing some unnecessary stuff
improving key-error
2009-03-23 20:44:19 +00:00
JeffBezanson 8f93c9dfc6 adding string->number 2009-03-23 19:49:08 +00:00
JeffBezanson 9023705d27 adding some error messages
adding io.seek, io.copyuntil
adding #\uHHHH hex character literal read syntax
2009-03-22 02:05:26 +00:00
JeffBezanson 7059a471a1 initial implementation of let-syntax 2009-03-17 21:53:55 +00:00
JeffBezanson 5edb75af2c making nconc, assq, and memq builtins
some small optimizations to string.map, string.trim,
string.inc, string.dec, aref
2009-03-17 03:29:17 +00:00
JeffBezanson 5681745bc3 adding apply1, using it in trycatch (avoids consing)
allowing left bit shift to overflow to larger types
fixing bug in number->string on uint64
fixing bug in rand.uint64
2009-03-13 22:26:44 +00:00
JeffBezanson dceced2bb0 fix bug in (case)
reducing use of strlen
2009-03-13 14:54:48 +00:00
JeffBezanson 0643a4f3a2 fixing bug in datum comment #;
improving some library functions
2009-03-13 03:30:10 +00:00
JeffBezanson bfa30fb095 allowing logand, logior, logxor to accept any number of arguments
adding negative?, positive?, zero?, even?, odd?, for-each
adding *linefeed*, terpri
2009-03-12 02:47:34 +00:00
JeffBezanson d81e6c2d57 adding ash function
making more functions static
removing list_nth, using vectors for enums instead
making more operators return fixnums where possible
2009-03-11 19:16:40 +00:00
JeffBezanson 05ef9f42a5 simplifying (string) to just princ-to-string
small printing improvements
2009-03-11 14:52:37 +00:00
JeffBezanson e2b7652e36 some printing improvements 2009-03-10 19:29:30 +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 40cff81550 more reorganization of LLT
adding io.readuntil, io.readline
improvements to ios_readprep
2009-03-03 03:16:30 +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 923c7d5495 fixing bug reading negative constants with #b,o,d,x
adding string.trim
2009-02-28 01:59:01 +00:00
JeffBezanson c1610f0a9f changing load to expand each expression before evaluating
improve performance by reloading system.lsp with this loader
other misc. changes
2009-02-26 18:15:38 +00:00
JeffBezanson 7883a5de0b fixing ambiguity in reading hex numbers and floating point
making print robust against the undefined value
2009-02-24 18:31:05 +00:00
JeffBezanson 115b2843fb adding copy and string.count 2009-02-24 04:12:33 +00:00
JeffBezanson 6c56120669 better solution for allowing an input stream to be relocated while
reading from it
improving prettyprinting of lists of short strings
2009-02-24 02:21:16 +00:00
JeffBezanson 76edead57b adding (do ) form 2009-02-20 19:50:35 +00:00
JeffBezanson 3aad0bd6be fixing some bugs in lerror and read
making memory errors non-consing (duh)
cleaning up main() a bit
adding case macro, moving other stuff around a bit
2009-02-20 05:11:05 +00:00
JeffBezanson f1927a3b57 moving delete-duplicates and new f-body so they can be macroexpanded in advance
deprecating setf, labels, and try (weren't used anywhere)
adding string.tail
changing match to use delete-duplicates
2009-02-19 22:29:47 +00:00
JeffBezanson 0c0471e856 moving implementation of startup, repl, load, and top-level
exception handler into system.lsp

adding several iostream functions

adding support for internal define
2009-02-19 03:31:40 +00:00
JeffBezanson 79e12b2dcb adding io.print and io.princ
misc. touch-ups
2009-02-09 05:38:40 +00:00
JeffBezanson 1097597437 file stream creation and io.read 2009-02-09 03:22:31 +00:00
JeffBezanson 2a083db293 adding named let 2009-02-06 03:41:24 +00:00
JeffBezanson 2c1bb59486 adding integer? and number->string
a bit more renaming
2009-02-01 05:41:43 +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 38cf75733e adding #; datum comment
allowing #||# comments to nest
2009-01-26 02:03:37 +00:00
JeffBezanson 808d92dfb6 some micro-optimizations 2009-01-16 14:12:35 +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 d8132ad204 adding CPRIM type, smaller representation for primitives
bug fixes in opaque type handling
2009-01-02 23:00:21 +00:00
JeffBezanson 88938bc6d1 fixes and improvements to cps converter 2009-01-02 22:58:14 +00:00
JeffBezanson 9716ee3452 making list a builtin
increasing default heapsize, giving better performance

adding hexdump and int2str functions to llt
2008-12-31 04:45:08 +00:00
JeffBezanson 6ed023e966 adding some ast functions 2008-12-29 21:53:21 +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
JeffBezanson b99d8715ce generic aref/aset for all arrays
(string v) now works on any value, by printing to a string

some bug fixes in ios
2008-12-27 06:02:53 +00:00
JeffBezanson 7e04bb948c fixing several bugs in string.find
so hard to get anything right the first time!
2008-12-24 05:02:58 +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 8e4ba69a7b more efficient representation for small tables
adding tablep and table.clone

fixing bug with filename string in load
2008-12-22 06:36:50 +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