JeffBezanson
2ddbac400a
fixing bug in hash table. growth schedule made it possible for
...
maxprobe to decrease, causing growth during rehashing, which leaks
the table.
2009-03-28 23:46:02 +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
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