flmain: close system image stream after it got loaded
add io-set-filename!
io-filename: can't return a static string - it might get freed
ieee854: not using long double, remove it
remove remnants of interfacing with C
define: evaluate to void - less noise in repl
remove "eq" alias
docs_extra.lsp: mainly for C builtins
vm-stats: remove the earmuffs
boot: not happy with no syntax env, fix it
docs: section a bit better
document void stuff
member/memv/assoc/assv: make sure it fails on non-lists
boot: don't redefine *properties*
update readme
fl_raise: flush stdout and stderr
seta(l): remove asserts
use (void) where applicable
trailing zeros trimming: null-terminate
compiler: #<void> is not printable
remove eof-object
add the_empty_string to clean up the mess
introduce #<void>, not printing in repl when is the result of eval
a bit of style
move *properties* to the top so that props can be set from the beginning
docs: macro documentation, same manner as normal defines
docs: always set the props regardless of environment, set the fun vars separately
help: cleaner logic; only record doc strings for top level definitions
fix nil reading, make it case insensitive
implement (define x "doc string" ...) and (define (f p ...) "doc string" ...)
move {put,get,rem}prop to system.lsp
add bench.lsp
apply_cl: simpler
set default scr_width to 100
length: return number of entries in a hash table
prefer "nil" over "()"
pair symbol → cons
aref/aset! on proper lists
ios, read: better parse error location logic
pair? → cons?
remove OP_BOOL_CONST_{F,T} and OP_NIL - instead reuse already existing OP_LOAD* ops
OP_THE_EMPTY_LIST → OP_NIL
make FL_{nil,f,t,eof,unspecified} global
split opcodes.h into header and C file
apply: make sure last arg is a list
disenv.lsp: a script to disassemble everything
map, for-each: fix wrong stack size assumptions
for-each and hash tables: fix after relocation, reduce size limit to uint32, add an assert
scheme alises: flush-output-port
scheme alises: lambda → λ
scheme alises: input-port-line
rename "separate" → "partition" and get rid of the broken alias from aliases.scm
aset!: support multiple indices
aref: apply + multiple indices
aref: fix multiindex on arrays
aref N: make N start at 0, do a better disassembly to make it more clear what's going on
aref: support multiple indices
remove table-foreach
for-each: work with vectors, arrays and hash tables
map: allow a shorter list in any position
for-each: make it more readable
for-each: stop on shortest list end, do not throw errors
for-each: work with multiple lists
apply_cl: tail: int → bool
for-each: just increment sp instead of pushing booleans
system: remove unused map* funcs
c***r: return empty list if passed empty list
compiler: "if": fold dup+brf+pop when not caring about the final result with "and"
eradicate more "lambda"
plan9: everything depends on builtin_fns.h
do_read_sexpr: move unexpected cases down
compiler: remove now unused compile-for
compiler: emit: less aref calls
compiler: builtin calls: fix broken check of arg count
builtin->instruction: add missing 'for'
bring back for-each as a builtin
type error: print the actual type as well
define a lambda for "for"
OP_FOR: use _applyn to work with every type of functions and fail otherwise
disable Fl in TLS in debug mode for now
system: don't include *interactive* in boot image; *os-name* is a string
bring back torture test (longer running) with breaking part disabled
remove unused "nop" opcode
compiler: none of the builtins are constants, still use their value directly
fltype_t->marked: remove (unused)
*os-name*: make it a string
pow -> expt
add "makunbound"
built-in symbols aren't constants anymore
OP_KEYARGS: update ipd, else ip will be written in the wrong location
no need to allocate for copies of constant symbol names
start with a much smaller initial stack size
tweak *vm-stats*
remove unused 'op' variable when using computed goto
small cleanup
remove the failing (and no longer needed) assert
*vm-stats*: print heap total and free
disable broken torture.scm
remove setc and setc.l (unused)
build flisp between mkboot0 and mkboot1