Commit Graph

17 Commits

Author SHA1 Message Date
Lassi Kortela 738f8bec62 Implement let-values
TODO: Support more than one set of bindings
2019-09-03 10:02:05 +03:00
Lassi Kortela 5f53326df8 Replace path.exists? with file-exists? in C 2019-09-02 19:46:27 +03:00
Lassi Kortela 4599bf6f07 Update boot image 2019-08-28 21:22:38 +03:00
Lassi Kortela 2d89603691 List nothing instead of everything in (apropos-list "") 2019-08-28 18:13:14 +03:00
Lassi Kortela 0763a5df44 Add REPL history 2019-08-28 14:22:08 +03:00
Lassi Kortela 78b663d41d Add help and colored banner
- (help ...) is a macro that quotes everything to be user-friendly
- (help* ...) is the equivalent procedure
- When the user types just `help` or `exit`, the REPL shows a hint
  that they are probably looking for `(help)` or `(exit)`.
2019-08-28 14:07:50 +03:00
Lassi Kortela 777d882d9a Add sort, apropos, apropos-list 2019-08-28 13:01:02 +03:00
Lassi Kortela fc5df2c2a7 Update boot image 2019-08-28 11:40:10 +03:00
Lassi Kortela 464dac0e6c Rename builtin char procedures to match R7RS 2019-08-26 11:12:50 +03:00
Lassi Kortela c467f9e064 Add Unicode lambda 2019-08-26 11:06:42 +03:00
Lassi Kortela 08b4fe31ed Shake dangling princ/print references out of boot image 2019-08-25 23:25:44 +03:00
Lassi Kortela 33488d73cf Replace xwrite/xdisplay/xnewline with non-x names 2019-08-25 22:57:31 +03:00
Lassi Kortela 924a45b7bd Implement Scheme printer procedures in C 2019-08-25 22:39:35 +03:00
Lassi Kortela 6e87c8ad26 Remove unused get-datum and put-datum procedures 2019-08-25 21:30:36 +03:00
Lassi Kortela 3f0a44ad7e Add aliases.scm into the system image 2019-08-15 23:05:23 +03:00
Lassi Kortela d781c65862 Fix oversight in the bootstrap procedure
Stage 0 is supposed to emit compiled versions of system.scm and
compiler.scm. The compiler.scm bytecode wasn't emitted properly
because the emitter put the two files' bytecode in two separate C
variables instead of concatenating them into the same variable as they
should be.
2019-08-14 00:44:24 +03:00
Lassi Kortela 5ced8d91f6 Store boot image inside main executable
Previously the boot image was kept in the separate file "flisp.boot".
This caused all kinds of problems, as bootstrapping is wont to do. The
biggest problem was finding a portable and convenient pathname for it.

Instead of dealing with all that stuff about how to find the file,
just store the image in a huge C string constant that goes into the
main executable. This necessitates adding a C-string hex dumper into
the Lisp system, and making build.sh slightly more complicated, but
that's a small price to pay for not having to carry a separate file
everywhere we go. Also, flmain.c is a lot simpler now and we don't
have to play around with symlinks.
2019-08-13 23:07:44 +03:00