Commit Graph

36 Commits

Author SHA1 Message Date
Lassi Kortela c33ba84796 Avoid trailing comma in boot image array
Minix clang doesn't like that either.
2019-10-14 14:39:39 +03:00
Lassi Kortela 43515226f4 Encode boot image as integers instead of string
Hex escapes caused another mysterious character encoding problem with Minix
clang.
2019-10-14 14:30:24 +03:00
Lassi Kortela ad4ef08080 Remove unnecessary Emacs scheme markers
Emacs can auto-detect that .scm files use Scheme syntax.
2019-10-14 14:22:05 +03:00
Lassi Kortela 700d70d03b Use unsigned char for boot image
The Minix clang compiler tries to interpret "char []" according to some
character encoding and produces a compiler warning when it encounters byte
sequences that are invalid in that encoding. Avoid the warning by using
_unsigned_ char which it treats as arbitrary bytes.
2019-10-14 03:19:45 +03:00
Lassi Kortela e9998e31f1 Add #t/#f return value for apropos 2019-10-13 21:41:02 +03:00
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 471d24ce38 Fix sort procedure in base system 2019-08-28 21:22:06 +03:00
Lassi Kortela 50063d4523 Cause compiler error when (if ...) has spurious args 2019-08-28 21:19:39 +03:00
Lassi Kortela 2d89603691 List nothing instead of everything in (apropos-list "") 2019-08-28 18:13:14 +03:00
Lassi Kortela 05c43c716c Reformat 2019-08-28 18:12:41 +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 e0194112c5 Color the REPL prompt 2019-08-28 13:12:43 +03:00
Lassi Kortela 9047523588 Add crummy ANSI color routines
Output raw codes straight to the terminal, don't coordinate with anybody.
2019-08-28 13:10:37 +03:00
Lassi Kortela 777d882d9a Add sort, apropos, apropos-list 2019-08-28 13:01:02 +03:00
Lassi Kortela 0e723587e5 Remove redundant read-u8 definition 2019-08-28 12:43:39 +03:00
Lassi Kortela e5813fe5c9 Add directory listing primitives from SRFI 170 draft
TODO: 'dotfiles?' flag and 'directory-files' procedure
2019-08-28 11:11:55 +03:00
Lassi Kortela 41eb286f90 Remove vestigial char.* builtins 2019-08-26 11:15:38 +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 219578cff9 Remove temp xwrite/x... and old princ/print 2019-08-25 23:27:59 +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 55cb24023b Make Lisp core use xwrite/xdisplay/xnewline 2019-08-25 22:07:38 +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
Lassi Kortela 277abddaa8 Turn (import ...) into a macro to match Scheme syntax 2019-08-12 18:18:46 +03:00
Lassi Kortela 4c391d6d68 Brand as Up Scheme 2019-08-10 12:26:51 +03:00
Lassi Kortela 2ec07684d2 Get OS name from uname()
This implies that OS names have changed. Unix-like OS names are now
capitalized. "macos" is now "Darwin". Windows is now all-lowecase "windows".
"win32" is gone. "win64" was not used in the original code despite a reference
to it.
2019-08-10 00:35:16 +03:00
Lassi Kortela 04b3c3b292 Replace tabs with spaces in Lisp printer 2019-08-09 17:25:13 +03:00
Lassi Kortela be9b2b364e Clean up whitespace
- Tabs to spaces
- Remove invisible whitespace at ends of lines
- Break or shorten long lines (not for all files)
2019-08-09 17:25:13 +03:00
Lassi Kortela 8e35d98142 Move bootstrap images into a scheme-boot directory 2019-08-09 15:53:31 +03:00
Lassi Kortela aaf73c8439 Consolidate all Lisp files into scheme-* with .scm extension 2019-08-09 15:21:56 +03:00