Commit Graph

16 Commits

Author SHA1 Message Date
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 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 86b7738c89 cleaning up implementation of apply() entry point
removing use of interpreter in computed calls to builtins
2009-04-17 03:40:52 +00:00
JeffBezanson 94814a2e34 a bug fix and a first pass at let-optimization 2009-04-16 21:20:15 +00:00
JeffBezanson ad4a086790 converting for to a special form
adding loadi8 instruction
cleaning up numeric comparison, reducing repeated code
2009-04-16 03:05:38 +00:00
JeffBezanson 36a209cd5f making = a builtin
fixing = and eqv? to work properly on NaNs
fixing other comparison predicates to be consistent
2009-04-15 23:54:43 +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 debf3fd517 moving (length) out of core
changing another recursive call to goto
adding special cases in compiler for 0 and 1 argument versions of some
  vararg builtins
beginning implementation of bytecode interpreter
2009-04-09 04:04:27 +00:00
JeffBezanson e119a66bcd moving lognot out of core
fixing type check in ash
2009-04-02 03:53:38 +00:00
JeffBezanson 8e78e4cdbb making some utf8 routines more robust against invalid data
implementing tail position in compiler
adding arg count checking for instructionized builtins
2009-04-02 02:22:38 +00:00
JeffBezanson 43e8d1fbf0 adding the ability to heap-allocate extentions to the value stack,
so recursion depth is limited only by the process stack limit.

reorganizing evaluator so the same code is used for evaluating
and pushing arguments for both builtin functions and lambdas.
for now this is slower, but it was done in preparation for
Things To Come.

adding list-head

implementing the calling convention for long argument lists in
bytecode compiler. arguments are broken down into a nest of
list and nconc calls.
also implementing vararg builtins.
2009-04-01 04:31:49 +00:00
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