JeffBezanson
2e9a8c21cc
porting over some improvements: now fl_applyn can handle any function
...
(lambda wrappers for opcodes)
faster separate
2010-05-05 05:31:46 +00:00
JeffBezanson
caf7f15f44
porting over some small changes from julia's flisp
2010-05-05 00:00:37 +00:00
JeffBezanson
271cf34e99
some critical bug fixes
2010-05-04 18:17:55 +00:00
JeffBezanson
219ffb7e63
clarifying which values are unspecified, and making the unspecified value
...
true, since only #f should be false.
removing not-really-used definitions of true and false, which just seem to
be asking for conflicts
2010-01-06 18:27:28 +00:00
JeffBezanson
222eead750
fixing char comparison bug
...
accepting more numeric types in vector.alloc
adding more aliases
2009-11-18 17:38:16 +00:00
JeffBezanson
3dc2275a07
making os name symbols non-constant, so they aren't evaluated at compile time
...
more aliases
2009-10-22 03:32:12 +00:00
JeffBezanson
be453f2ed5
improving portability to Mac OS
...
fixes for big endian architectures (PowerPC)
renaming exported symbol raise to fl_raise
fixing some bugs and oversights discovered in the process
2009-08-29 00:54:51 +00:00
JeffBezanson
0cc3595e80
renaming backquote-related symbols to scheme style
...
adding multi-arg for-each
now R6RS psyntax can be fully bootstrapped
interpreter maintenance
2009-08-18 03:46:09 +00:00
JeffBezanson
626801fd1f
adding => form of cond clauses
...
adding path.exists?
R6RS psyntax simple example now works
2009-08-14 03:17:21 +00:00
JeffBezanson
9ed9a51786
adding *print-level* and *print-length*
...
fixing open-string-output-port (R6RS)
making io.tostring! more consistent
adding newlines to boot file; wastes space but will allow more
efficient diffing
2009-08-13 04:09:35 +00:00
JeffBezanson
43b6029727
allowing form (define x)
...
error checking define a bit better
fixing a small bug in expand-lambda
2009-08-12 05:15:21 +00:00
JeffBezanson
332235231c
changing semantics to respect lexical scope more strictly; now
...
anything can be shadowed by closer nested variables
fixing bugs in let-syntax and expanding optional arg default values
improving expansion algorithm on internal define
some small optimizations to the compiler
maintaining interpreter for bootstrapping
2009-08-12 04:56:32 +00:00
JeffBezanson
97c05e8eb4
a couple bug fixes
...
some small performance tweaks
moving some test files around
2009-08-09 20:34:07 +00:00
JeffBezanson
b59dcdc877
fixing bug in with-input-from-file
2009-08-09 18:27:05 +00:00
JeffBezanson
929ec92a65
adding support for eof-object
...
renaming exported symbol NIL to FL_NIL
making default vector fill #f
some misc. cleanup
2009-08-09 18:04:03 +00:00
JeffBezanson
db94d6ef1f
adding offset and count arguments to io.write
...
making io.write output chars as utf8;
suddenly switching to UTF32 was not intuitive
adding stream argument to newline (R6RS)
adding several more scheme compatibility procedures
2009-08-09 04:04:31 +00:00
JeffBezanson
3fbd5e7da6
adding functions io.copy, io.readall, time.fromstring
...
adding srfi-6 (string ports) functions
removing unnecessary behavior of sometimes printing int32s and int64s in
hexadecimal
2009-08-08 23:43:12 +00:00
JeffBezanson
302ddec770
adding read and print support for named characters, e.g. #\space
...
printing infs and nans in R6RS format
making closure print syntax more compact; fn instead of function
adding more c[ad]+r functions
2009-08-08 21:44:14 +00:00
JeffBezanson
1a6d9d391f
adding with-bindings, with-output-to-file, with-output-to
...
simplifying printing. now based on standard function write,
removing io.print and io.princ
using same top level exception handler for scripts as repl
2009-08-08 00:29:55 +00:00
JeffBezanson
c6a977063e
better error checking for formal argument lists
...
some cosmetic error improvements
adding more tests
2009-08-03 05:00:44 +00:00
JeffBezanson
15c8cb327d
finishing initial implementation of keyword arguments
...
fixing up interpreter so it can be used for bootstrapping again
removing let/copyenv optimization because it really didn't seem to help much
2009-08-02 04:06:07 +00:00
JeffBezanson
adb702cdf8
fixing a bug in optional args + rest args with no required arguments
...
adding some code for keyword argument processing
2009-07-29 04:20:28 +00:00
JeffBezanson
ecfd81148f
changing optional args to allow default values to be computed from
...
preceding arguments
tidying some stuff with keywords
2009-07-28 04:16:20 +00:00
JeffBezanson
eceeddf6d2
adding support for optional arguments
...
error checking formal argument lists
making filter preserve the order of elements in the input list
2009-07-27 03:34:33 +00:00
JeffBezanson
c61dc10002
adding some combined instructions and teaching the compiler to emit them:
...
brn, brnn, brne, cadr
2009-07-24 04:20:09 +00:00
JeffBezanson
88d08edecc
adding io.pos, io.readlines, read-all
...
fixing a small ios bug
2009-07-22 03:50:57 +00:00
JeffBezanson
66c671bfee
making long argument lists more efficient
2009-07-22 02:10:20 +00:00
JeffBezanson
57c066fcdf
simplifying code by eliminating the hybrid stack/heap calling convention
...
other misc. cleanup
2009-07-20 04:57:17 +00:00
JeffBezanson
642d1e1bd4
rewriting some primitives to take advantage of the full language; they
...
do not need to be written in terms of the base language any more
moving handling of internal define and multiple-body-lambda to the
compiler where it belongs. macroexpand now only handles syntax.
2009-07-18 02:16:18 +00:00
JeffBezanson
2c304edf42
changing boot file format; the old one did not preserve sharing
...
between top-level functions
making colon at the end also valid for keywords
adding keyword? predicate
fixing bug in map
adding functions to emulate values and call-with-values
adding receive macro
improving equal? on closures
adding lambda-lifting optimization to the compiler
2009-07-17 01:30:26 +00:00
JeffBezanson
c19aaeabd6
keeping track of function names, printing nice stack traces
...
changing default bootstrap process to use VM instead of interpreter
fixing bug where only a fixnum could index a vector
merging equal.c into the main compilation unit
2009-07-10 04:17:39 +00:00
JeffBezanson
2d4a0ae30e
adding functions max and min
...
fixing make-system-image to save aliases of builtins
2009-07-08 19:07:56 +00:00
JeffBezanson
e4e8d4dfdb
supporting multi-arg map
...
fixing branch destination display in disassemble
2009-07-08 05:53:29 +00:00
JeffBezanson
3793cf676c
implementing stack traces
...
some cleanup
2009-07-06 03:56:48 +00:00
JeffBezanson
b5897e0ad1
adding maxstack calculation and stack overflow protection
...
making append benchmark more useful by measuring interpreter
speed instead of the builtin
2009-06-27 23:07:22 +00:00
JeffBezanson
8decdc4ae4
making append a builtin
...
making branch destinations relative so we can access the code
using *ip instead of code[ip]
doing the same to bp (argument access)
small improvement to map, builtin->instruction
better profiling
2009-06-15 02:25:21 +00:00
JeffBezanson
6ec69f5375
optimizations to map and case
...
several optimizations to the compiler itself, mostly involving
emit and encode-byte-code
experimental, very basic profiling utility
2009-06-11 00:34:50 +00:00
JeffBezanson
27a3e413d3
adding opcodes loada0, loada1, loadc00, loadc01
...
adding offset and count arguments to dump
2009-06-08 03:22:32 +00:00
JeffBezanson
17752decf4
implementing support for lambdas with up to 2^32-1 required arguments
...
using copy-list to implement append2
fixing bug in op_vargc when nrequired==MAX_ARGS
making fetching of multibyte numbers from bytecode portable
some cleanup in compiler
2009-06-06 21:15:54 +00:00
JeffBezanson
91a6ae6490
adding string.width
2009-05-31 22:09:26 +00:00
JeffBezanson
7c48f6ae53
some renaming and reorganizing
...
using more scheme-like names append! and reverse!
2009-05-31 21:06:04 +00:00
JeffBezanson
ba32e4b0e9
simplifying the whole list* situation, taking better advantage of
...
existing builtin functionality
2009-05-31 18:58:09 +00:00
JeffBezanson
7e65db3e74
faster append
...
removing 'equal' alias
removing some top level bindings
2009-05-30 21:13:13 +00:00
JeffBezanson
bbcc68cfdf
making copy-list a builtin, since the functionality was there anyway.
...
adding builtin primitive apply-nlist*, to speed up list* and nlist*
2009-05-30 17:54:27 +00:00
JeffBezanson
a23bee041f
fixing bug in cond when condition wasn't followed by any forms
...
fixing typo in cps.lsp
optimizing constant conditions in if
2009-05-30 17:04:34 +00:00
JeffBezanson
e2c1d2ae9e
some cleanup
2009-05-30 02:52:22 +00:00
JeffBezanson
c42ee12d4c
allowing multiple expressions in lambda
...
making cond a macro
increasing size limit for cvalues on the managed heap, and inline
allocated hashtables
2009-05-29 04:38:50 +00:00
JeffBezanson
c38c47d264
adding R6RS div, mod, div0, mod0
...
small improvement to cmp_eq
explicit -fomit-frame-pointer was causing test failures with gcc4.3.2
2009-05-14 17:54:59 +00:00
JeffBezanson
ae2a4dd156
adding integer division function div
...
changing / to do real division always
fixing equal? to distinguish -0.0 and 0.0
making equal? and eqv? false on numbers of different exactness
2009-05-14 01:30:25 +00:00
JeffBezanson
77e37368c9
fixing trace and untrace
...
replacing function->vector with function:code, function:vals, and
function:env
2009-05-13 01:13:40 +00:00