mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
Adding (scheme small) and making it the repl default (by popular demand).
This commit is contained in:
parent
b08d5a53b9
commit
cee60d9b45
2 changed files with 85 additions and 2 deletions
83
lib/scheme/small.sld
Normal file
83
lib/scheme/small.sld
Normal file
|
@ -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>=? 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>=?
|
||||||
|
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-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-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
|
||||||
|
))
|
4
main.c
4
main.c
|
@ -10,7 +10,7 @@
|
||||||
#define sexp_import_suffix "))"
|
#define sexp_import_suffix "))"
|
||||||
#define sexp_environment_prefix "(environment '("
|
#define sexp_environment_prefix "(environment '("
|
||||||
#define sexp_environment_suffix "))"
|
#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_advice_environment "(load-module '(chibi repl))"
|
||||||
|
|
||||||
#define sexp_version_string "chibi-scheme "sexp_version" \""sexp_release_name"\" "
|
#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 (c == 'x') {
|
||||||
if (strcmp(arg, "chibi.primitive") == 0) {
|
if (strcmp(arg, "chibi.primitive") == 0) {
|
||||||
goto load_primitive;
|
goto load_primitive;
|
||||||
} else if (strcmp(arg, "scheme.base") == 0) {
|
} else if (strcmp(arg, "scheme.small") == 0) {
|
||||||
load_init(0);
|
load_init(0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue