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
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
88d08edecc
adding io.pos, io.readlines, read-all
...
fixing a small ios bug
2009-07-22 03:50:57 +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
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
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
1ee81e2625
fixing bug printing functions involved in cycles
2009-05-21 00:56:25 +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
JeffBezanson
afa77a8c5f
adding array?
...
adding vararg apply
2009-05-08 04:08:31 +00:00
JeffBezanson
af72c4f5bd
putting the saved environment in the order that matches the current
...
boot file
2009-05-08 03:00:40 +00:00
JeffBezanson
2c212fbcf7
adding random function
...
fixing bug in integer?
sorting environment in make-system-image for more stable diffs
2009-05-08 02:52:25 +00:00
JeffBezanson
3dbaa358f9
making 3rd argument to string.sub optional
...
some renaming
removing 1/Instructions table
2009-05-07 02:10:52 +00:00
JeffBezanson
c94774a5df
adding *error-stream* variable
...
removing unnecessary byte after :let in bytecode encoding
adding script for easy bootstrapping
2009-05-05 23:51:13 +00:00
JeffBezanson
63edc82ba4
using global variables uniformly for print settings instead of passing
...
around one of them
fixing unwind-protect not to duplicate code
2009-05-05 04:01:06 +00:00
JeffBezanson
de19e4f401
adding return special form
...
eliminating some unnecessary top-level bindings
adding opcodes add2, sub2, neg
2009-04-26 22:19:32 +00:00
JeffBezanson
0dc4c16276
making procedure? a builtin
...
fixing type error trying to apply #t, #f, nil
2009-04-24 20:43:56 +00:00
JeffBezanson
2bf87ede4f
fixing !print_pretty on vectors
2009-04-21 21:41:32 +00:00
JeffBezanson
2cceb9e538
fixing function? and disassemble
2009-04-21 15:47:30 +00:00
JeffBezanson
305c350c56
a couple small fixes
...
making bytecode representation more space-efficient
2009-04-21 14:53:18 +00:00
JeffBezanson
25812731cc
eliminating interpreter. the bytecode VM is now fully bootstrapped.
...
making the empty vector a singleton
removing syntax environment stuff from core
reimplementing eval using the compiler
fixing a couple bugs in long argument lists
2009-04-21 00:56:05 +00:00
JeffBezanson
5ab7a7c1e1
adding new "translucent" function type for byte-compiled lambdas
2009-04-19 22:22:17 +00:00
JeffBezanson
aa62ae9e96
allowing (copy x) and other byte stream functions only on plain-old-data types
...
adding plain-old-data? predicate
adding string.join
2009-04-19 16:48:09 +00:00
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