From cee60d9b45ac1c68b8bd804b6b139f13d75a73e2 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Wed, 6 Aug 2014 21:26:25 +0900 Subject: [PATCH] Adding (scheme small) and making it the repl default (by popular demand). --- lib/scheme/small.sld | 83 ++++++++++++++++++++++++++++++++++++++++++++ main.c | 4 +-- 2 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 lib/scheme/small.sld diff --git a/lib/scheme/small.sld b/lib/scheme/small.sld new file mode 100644 index 00000000..14d570a7 --- /dev/null +++ b/lib/scheme/small.sld @@ -0,0 +1,83 @@ +(define-library (scheme small) + (import (scheme base) (scheme char) (scheme complex) (scheme cxr) + (scheme eval) (scheme file) (scheme inexact) (scheme lazy) + (scheme load) (scheme read) (scheme repl) (scheme time) + (scheme write)) + (export + ;; base + * + - ... / < <= = => > >= _ abs and append apply assoc assq assv begin + binary-port? boolean? boolean=? bytevector bytevector-append + bytevector-copy bytevector-copy! bytevector-length + bytevector-u8-ref bytevector-u8-set! bytevector? caar cadr + call-with-current-continuation call-with-port call-with-values + call/cc car case cdr cdar cddr ceiling char->integer + char-ready? char<=? char=? char>? char? + close-input-port close-output-port close-port complex? cond cond-expand + cons current-error-port current-input-port current-output-port define + define-record-type define-syntax define-values denominator do + dynamic-wind else eof-object? eof-object eq? equal? eqv? error + error-object-irritants error-object-message error-object? even? + exact exact-integer-sqrt exact-integer? exact? expt features + file-error? floor + flush-output-port for-each gcd get-output-bytevector get-output-string + guard if include include-ci inexact inexact? input-port? + integer->char + integer? lambda lcm length let let* let*-values let-syntax let-values + letrec letrec* letrec-syntax list list->string list->vector list-copy + list-ref list-set! list-tail list? make-bytevector make-list + make-parameter make-string make-vector map max member memq memv min + modulo negative? newline not null? number->string number? numerator + odd? open-input-bytevector open-input-string open-output-bytevector + open-output-string or output-port? pair? parameterize peek-char + peek-u8 input-port-open? output-port-open? port? positive? + procedure? quasiquote quote + quotient raise raise-continuable rational? rationalize read-bytevector + read-bytevector! read-char read-error? read-line read-string read-u8 + real? remainder + reverse round set! set-car! set-cdr! square string string->list + string->number string->symbol string->utf8 string->vector string-append + string-copy string-copy! string-fill! string-for-each string-length + string-map + string-ref string-set! string<=? string=? + string>? string? substring symbol->string symbol? symbol=? syntax-error + syntax-rules textual-port? truncate u8-ready? unless unquote + unquote-splicing utf8->string values vector vector-append + vector->list vector->string + vector-copy vector-copy! vector-fill! vector-for-each vector-length + vector-map vector-ref vector-set! vector? when with-exception-handler + write-bytevector write-char write-string write-u8 zero? + truncate-quotient truncate-remainder truncate/ + floor-quotient floor-remainder floor/ + ;; char + char-alphabetic? char-ci<=? char-ci=? char-ci>? + char-downcase char-foldcase char-lower-case? char-numeric? + char-upcase char-upper-case? char-whitespace? digit-value + string-ci<=? string-ci=? string-ci>? + string-downcase string-foldcase string-upcase + ;; complex + angle imag-part magnitude make-polar make-rectangular real-part + ;; cxr + caaar caadr cadar caddr cdaar cdadr cddar cdddr + caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr + cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr + ;; eval + eval environment + ;; file + call-with-input-file call-with-output-file + delete-file file-exists? + open-binary-input-file open-binary-output-file + open-input-file open-output-file + with-input-from-file with-output-to-file + ;; inexact + acos asin atan cos exp finite? infinite? log nan? sin sqrt tan + ;; lazy + delay force delay-force make-promise promise? + ;; load + load + ;; read + read + ;; repl + interaction-environment + ;; time + current-second current-jiffy jiffies-per-second + )) diff --git a/main.c b/main.c index 8fec1648..5439dbdc 100644 --- a/main.c +++ b/main.c @@ -10,7 +10,7 @@ #define sexp_import_suffix "))" #define sexp_environment_prefix "(environment '(" #define sexp_environment_suffix "))" -#define sexp_default_environment "(environment '(scheme base))" +#define sexp_default_environment "(environment '(scheme small))" #define sexp_advice_environment "(load-module '(chibi repl))" #define sexp_version_string "chibi-scheme "sexp_version" \""sexp_release_name"\" " @@ -431,7 +431,7 @@ void run_main (int argc, char **argv) { if (c == 'x') { if (strcmp(arg, "chibi.primitive") == 0) { goto load_primitive; - } else if (strcmp(arg, "scheme.base") == 0) { + } else if (strcmp(arg, "scheme.small") == 0) { load_init(0); break; }