~ chicken-core (chicken-5) daf9cbdee17d203e2643b4dad4670c1885d0e97d
commit daf9cbdee17d203e2643b4dad4670c1885d0e97d Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Aug 22 16:25:49 2011 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Aug 22 16:25:49 2011 +0200 enable specialization again, replaced types.db, all looks good diff --git a/TODO b/TODO deleted file mode 100644 index 00e9c199..00000000 --- a/TODO +++ /dev/null @@ -1,70 +0,0 @@ -TODO -*- Outline -*- - - -* replace "types.db" with "types.db.new" -** rm ./xchicken - -* enable specialization in "common-declarations.scm" and "tweaks.scm" - -* "tests/runtests.sh": remove command to cp "types.db.new" - -* compare "-debug x" output for specialization with results from complete self-compile - -* test self-build - -* run mini-salmonella - -* bugs found: - -** irregex-core: - -Note: in local procedure `lp', - in local procedure `collect/terms', - in local procedure `lp', - in toplevel procedure `string->sre': - irregex-core.scm:806: in procedure call to `pair?', the predicate is called with an argument of type - `(pair * *)' and will always return true - -> `(if ,(cadr res) -> ,(if (pair? (cdr res)) - -Note: in local procedure `lp', - in local procedure `collect/terms', - in local procedure `lp', - in toplevel procedure `string->sre': - irregex-core.scm:811: in procedure call to `pair?', the predicate is called with an argument of type - `(pair (pair * (pair * *)) *)' and will always return true - -> `(if ,(cadadr res) -> ,(if (pair? (cdr res)) - -Note: in local procedure `lp', - in local procedure `collect/terms', - in local procedure `lp', - in toplevel procedure `string->sre': - irregex-core.scm:815: in procedure call to `pair?', the predicate is called with an argument of type - `(pair (pair * (pair * *)) *)' and will always return true - - `(if ,(cadadr res) - ,(if (pair? (cdr res)) - (sre-sequence (cddadr res)) - 'epsilon) - ,(sre-alternate - (if (pair? (cdr res)) (cddr res) '()))))) - -** compiler-syntax.scm - -Note: in toplevel procedure `##compiler#r-c-s': - compiler-syntax.scm:53: in procedure call to `symbol?', the predicate is called with an argument of type - `(pair * *)' and will always return false - -(define (r-c-s names transformer #!optional (se '())) - (let ((t (cons (##sys#ensure-transformer - (##sys#er-transformer transformer) - (car names)) - se))) - (for-each - (lambda (name) - (##sys#put! name '##compiler#compiler-syntax t) ) - names) ) ) - (if (symbol? names) (list names) names) ) ) ) ; <- diff --git a/common-declarations.scm b/common-declarations.scm index ddae44ba..9201ca4c 100644 --- a/common-declarations.scm +++ b/common-declarations.scm @@ -25,7 +25,6 @@ (declare - ;XXX (specialize) (usual-integrations)) (cond-expand diff --git a/defaults.make b/defaults.make index ee811fd0..54da6595 100644 --- a/defaults.make +++ b/defaults.make @@ -272,11 +272,13 @@ CSI ?= csi$(EXE) CHICKEN_OPTIONS = -optimize-level 2 -include-path . -include-path $(SRCDIR) -inline -ignore-repository -feature chicken-bootstrap ifdef DEBUGBUILD -CHICKEN_OPTIONS += -feature debugbuild -scrutinize -types $(SRCDIR)types.db -CHICKEN_OPTIONS += -feature debugbuild +CHICKEN_OPTIONS += -feature debugbuild -scrutinize -types $(SRCDIR)types.db -verbose else CHICKEN_OPTIONS += -no-warnings endif +ifndef BUILDING_CHICKEN_BOOT +CHICKEN_OPTIONS += -specialize +endif CHICKEN_OPTIONS += $(EXTRA_CHICKEN_OPTIONS) CHICKEN_LIBRARY_OPTIONS = $(CHICKEN_OPTIONS) -explicit-use -no-trace CHICKEN_PROGRAM_OPTIONS = $(CHICKEN_OPTIONS) -no-lambda-info -local diff --git a/rules.make b/rules.make index 3e7fd117..95935589 100644 --- a/rules.make +++ b/rules.make @@ -669,7 +669,7 @@ bench: $(CHICKEN_SHARED_EXECUTABLE) $(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM) boot-chicken: $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \ SRCDIR=$(SRCDIR) CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \ - C_COMPILER_OPTIMIZATION_OPTIONS= C_HACKED_APPLY= \ + C_COMPILER_OPTIMIZATION_OPTIONS= C_HACKED_APPLY= BUILDING_CHICKEN_BOOT=1 \ confclean chicken-boot-stage1$(EXE) $(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \ SRCDIR=$(SRCDIR) CHICKEN=`pwd`/chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \ diff --git a/tests/runtests.sh b/tests/runtests.sh index 31bdf6d5..7cf08276 100644 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -23,9 +23,7 @@ FAST_OPTIONS="-O5 -d0 -b -disable-interrupts" $CHICKEN_INSTALL -init ${TEST_DIR}/test-repository -#TYPESDB=../types.db -#XXX -TYPESDB=../types.db.new +TYPESDB=../types.db cp $TYPESDB test-repository/types.db if test -n "$MSYSTEM"; then diff --git a/tweaks.scm b/tweaks.scm index ca4c3993..f4302d02 100644 --- a/tweaks.scm +++ b/tweaks.scm @@ -32,7 +32,6 @@ (cond-expand ((not debugbuild) (declare - ;XXX (specialize) (disable-interrupts) (no-bound-checks) (no-procedure-checks) diff --git a/types.db b/types.db index f0799d5e..db17f7f6 100644 --- a/types.db +++ b/types.db @@ -57,56 +57,90 @@ (equal? (procedure equal? (* *) boolean) (((or fixnum symbol char eof null undefined) *) (eq? #(1) #(2))) - ((* (or fixnum symbol char eof null undefined) (eq? #(1) #(2))))) + ((* (or fixnum symbol char eof null undefined)) (eq? #(1) #(2)))) (pair? (procedure? pair pair? (*) boolean)) -(cons (procedure cons (* *) pair)) -;* (cons (forall (a b) (procedure cons (a b) (pair a b)))) - -(##sys#cons (procedure ##sys#cons (* *) pair)) -;* (##sys#cons (forall (a b) (procedure ##sys#cons (a b) (pair a b)))) - -(car (procedure! car (pair) *) ((pair) (##core#inline "C_u_i_car" #(1)))) -;* (car (forall (a) (procedure! car ((pair a *)) a) ((pair) (##core#inline "C_u_i_car" #(1)))) -(cdr (procedure! cdr (pair) *) ((pair) (##core#inline "C_u_i_cdr" #(1)))) -;* (cdr (forall (a) (procedure! cdr ((pair * a)) a) ((pair) (##core#inline "C_u_i_cdr" #(1)))) - -(caar (procedure! caar (pair) *)) -;* (caar (forall (a) (procedure! caar ((pair (pair a *) *)) a)) - -;*XXX ... - -(cadr (procedure! cadr (pair) *)) -(cdar (procedure! cdar (pair) *)) -(cddr (procedure! cddr (pair) *)) -(caaar (procedure! caaar (pair) *)) -(caadr (procedure! caadr (pair) *)) -(cadar (procedure! cadar (pair) *)) -(caddr (procedure! caddr (pair) *)) -(cdaar (procedure! cdaar (pair) *)) -(cdadr (procedure! cdadr (pair) *)) -(cddar (procedure! cddar (pair) *)) -(cdddr (procedure! cdddr (pair) *)) -(caaaar (procedure! caaaar (pair) *)) -(caaadr (procedure! caaadr (pair) *)) -(caadar (procedure! caadar (pair) *)) -(caaddr (procedure! caaddr (pair) *)) -(cadaar (procedure! cadaar (pair) *)) -(cadadr (procedure! cadadr (pair) *)) -(caddar (procedure! caddar (pair) *)) -(cadddr (procedure! cadddr (pair) *)) -(cdaaar (procedure! cdaaar (pair) *)) -(cdaadr (procedure! cdaadr (pair) *)) -(cdadar (procedure! cdadar (pair) *)) -(cdaddr (procedure! cdaddr (pair) *)) -(cddaar (procedure! cddaar (pair) *)) -(cddadr (procedure! cddadr (pair) *)) -(cdddar (procedure! cdddar (pair) *)) -(cddddr (procedure! cddddr (pair) *)) - -(set-car! (procedure! set-car! (pair *) undefined) ((pair *) (##sys#setslot #(1) '0 #(2)))) -(set-cdr! (procedure! set-cdr! (pair *) undefined) ((pair *) (##sys#setslot #(1) '1 #(2)))) +(cons (forall (a b) (procedure cons (a b) (pair a b)))) + +(##sys#cons (forall (a b) (procedure ##sys#cons (a b) (pair a b)))) + +(car (forall (a) (procedure! car ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1)))) +(cdr (forall (a) (procedure! cdr ((pair * a)) a)) ((pair) (##core#inline "C_u_i_cdr" #(1)))) + +(caar (forall (a) (procedure! caar ((pair (pair a *) *)) a)) + (((pair (pair * *) *)) (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))) +(cadr (forall (a) (procedure! cadr ((pair * (pair a *))) a)) + (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))) +(cdar (forall (a) (procedure! cdar ((pair (pair * a) *)) a)) + (((pair (pair * *) *)) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1))))) +(cddr (forall (a) (procedure! cddr ((pair * (pair * a))) a)) + (((pair * (pair * *))) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))) + +(caaar (forall (a) (procedure! caaar ((pair (pair (pair a *) *) *)) a)) + (((pair (pair (pair * *) *) *)) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))) + +(caadr (forall (a) (procedure! caadr ((pair * (pair (pair a *) *))) a)) + (((pair * (pair (pair * *) *))) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))) + +(cadar (forall (a) (procedure! cadar ((pair (pair * (pair a *)) *)) a)) + (((pair (pair * (pair * *)) *)) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))) + +(caddr (forall (a) (procedure! caddr ((pair * (pair * (pair a *)))) a)) + (((pair * (pair * (pair * *)))) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) + +(cdaar (forall (a) (procedure! cdaar ((pair (pair (pair * a) *) *)) a)) + (((pair (pair (pair * *) *) *)) + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))) + +(cdadr (forall (a) (procedure! cdadr ((pair * (pair (pair * a) *))) a)) + (((pair * (pair (pair * *) *))) + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))) + +(cddar (forall (a) (procedure! cddar ((pair (pair * (pair * a)) *)) a)) + (((pair (pair * (pair * *)) *)) + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))) + +(cdddr (forall (a) (procedure! cdddr ((pair * (pair * (pair * a)))) a)) + (((pair * (pair * (pair * *)))) + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) + +(caaaar (forall (a) (procedure! caaaar ((pair (pair (pair (pair a *) *) *) *)) a))) +(caaadr (forall (a) (procedure! caaadr ((pair * (pair (pair (pair a *) *) *))) a))) +(caadar (forall (a) (procedure! caadar ((pair (pair * (pair (pair a *) *)) *)) a))) +(caaddr (forall (a) (procedure! caaddr ((pair * (pair * (pair (pair a *) *)))) a))) +(cadaar (forall (a) (procedure! cadaar ((pair (pair (pair * (pair a *)) *) *)) a))) +(cadadr (forall (a) (procedure! cadadr ((pair * (pair (pair * (pair a *)) *))) a))) +(caddar (forall (a) (procedure! caddar ((pair (pair * (pair * (pair a *))) *)) a))) +(cadddr (forall (a) (procedure! cadddr ((pair * (pair * (pair * (pair a *))))) a))) +(cdaaar (forall (a) (procedure! cdaaar ((pair (pair (pair (pair * a) *) *) *)) a))) +(cdaadr (forall (a) (procedure! cdaadr ((pair * (pair (pair (pair * a) *) *))) a))) +(cdadar (forall (a) (procedure! cdadar ((pair (pair * (pair (pair * a) *)) *)) a))) +(cdaddr (forall (a) (procedure! cdaddr ((pair * (pair * (pair (pair * a) *)))) a))) +(cddaar (forall (a) (procedure! cddaar ((pair (pair (pair * (pair * a)) *) *)) a))) +(cddadr (forall (a) (procedure! cddadr ((pair * (pair (pair * (pair * a)) *))) a))) +(cdddar (forall (a) (procedure! cdddar ((pair (pair * (pair * (pair * a))) *)) a))) +(cddddr (forall (a) (procedure! cddddr ((pair * (pair * (pair * (pair * a))))) a))) + +(set-car! (procedure! set-car! (pair *) undefined) + ((pair (or fixnum char boolean eof null undefined)) (##sys#setislot #(1) '0 #(2))) + ((pair *) (##sys#setslot #(1) '0 #(2)))) + +(set-cdr! (procedure! set-cdr! (pair *) undefined) + ((pair (or fixnum char boolean eof null undefined)) (##sys#setislot #(1) '1 #(2))) + ((pair *) (##sys#setslot #(1) '1 #(2)))) (null? (procedure? null null? (*) boolean)) (list? (procedure? list list? (*) boolean)) @@ -115,17 +149,37 @@ (##sys#list (procedure ##sys#list (#!rest) list)) (length (procedure! length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) (##sys#length (procedure! ##sys#length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) -(list-tail (procedure! list-tail (list fixnum) *)) -(list-ref (procedure! list-ref (list fixnum) *)) +(list-tail (forall (a) (procedure! list-tail ((list a) fixnum) (list a)))) +(list-ref (forall (a) (procedure! list-ref ((list a) fixnum) a))) (append (procedure append (list #!rest) *)) (##sys#append (procedure ##sys#append (list #!rest) *)) -(reverse (procedure! reverse (list) list)) +(reverse (forall (a) (procedure! reverse ((list a)) (list a)))) (memq (procedure memq (* list) *) ((* list) (##core#inline "C_u_i_memq" #(1) #(2)))) -(memv (procedure memv (* list) *)) -(member (procedure member (* list #!optional (procedure (* *) *)) *)) + +(memv (procedure memv (* list) *) + (((or fixnum boolean char eof undefined null) list) + (##core#inline "C_u_i_memq" #(1) #(2)))) + +;; this may be a bit much... +(member (forall (a) (procedure member (* list #!optional (procedure (* *) *)) *)) + (((or fixnum boolean char eof undefined null) list) + (##core#inline "C_u_i_memq" #(1) #(2))) + ((* (list (or fixnum boolean char eof undefined null))) + (##core#inline "C_u_i_memq" #(1) #(2)))) + (assq (procedure assq (* list) *) ((* list) (##core#inline "C_u_i_assq" #(1) #(2)))) -(assv (procedure assv (* list) *)) -(assoc (procedure assoc (* list #!optional (procedure (* *) *)) *)) + +(assv (procedure assv (* list) *) + (((or fixnum boolean char eof undefined null) list) + (##core#inline "C_u_i_assq" #(1) #(2))) + ((* (list (or fixnum boolean char eof undefined null))) + (##core#inline "C_u_i_assq" #(1) #(2)))) + +(assoc (procedure assoc (* list #!optional (procedure (* *) *)) *) + (((or fixnum boolean char eof undefined null) list) + (##core#inline "C_u_i_assq" #(1) #(2))) + ((* (list (or fixnum boolean char eof undefined null))) + (##core#inline "C_u_i_assq" #(1) #(2)))) (symbol? (procedure? symbol symbol? (*) boolean)) @@ -173,6 +227,7 @@ ((float float) (##core#inline "C_i_flonum_min" #(1) #(2)))) (+ (procedure! + (#!rest number) number) + (() (fixnum) '0) ((fixnum) (fixnum) #(1)) ((float) (float) #(1)) ((number) #(1)) @@ -209,6 +264,7 @@ (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1)))) (* (procedure! * (#!rest number) number) + (() (fixnum) '1) ((fixnum) (fixnum) #(1)) ((float) (float) #(1)) ((number) (number) #(1)) @@ -441,18 +497,19 @@ ;(string-copy (procedure! string-copy (string) string)) - we use the more general version from srfi-13 -(string->list (procedure! string->list (string) list)) -(list->string (procedure! list->string (list) string)) +(string->list (procedure! string->list (string) (list char))) +(list->string (procedure! list->string ((list char)) string)) (substring (procedure! substring (string fixnum #!optional fixnum) string)) ;(string-fill! (procedure! string-fill! (string char) string)) - s.a. (string (procedure! string (#!rest char) string)) (vector? (procedure? vector vector? (*) boolean)) -(make-vector (procedure! make-vector (fixnum #!optional *) vector)) +;; not result type "(vector a)", since it may be mutated! +(make-vector (forall (a) (procedure! make-vector (fixnum #!optional a) vector))) -(vector-ref (procedure! vector-ref (vector fixnum) *)) -(##sys#vector-ref (procedure! ##sys#vector-ref (vector fixnum) *)) +(vector-ref (forall (a) (procedure! vector-ref ((vector a) fixnum) a))) +(##sys#vector-ref (forall (a) (procedure! ##sys#vector-ref ((vector a) fixnum) a))) (vector-set! (procedure! vector-set! (vector fixnum *) undefined)) (vector (procedure vector (#!rest) vector)) (##sys#vector (procedure ##sys#vector (#!rest) vector)) @@ -462,75 +519,101 @@ (##sys#vector-length (procedure! ##sys#vector-length (vector) fixnum) ((vector) (##sys#size #(1)))) -(vector->list (procedure! vector->list (vector) list)) -(##sys#vector->list (procedure! ##sys#vector->list (vector) list)) -(list->vector (procedure! list->vector (list) vector)) -(##sys#list->vector (procedure! ##sys#list->vector (list) vector)) -(vector-fill! (procedure! vector-fill! (vector *) vector)) +(vector->list (forall (a) (procedure! vector->list ((vector a)) (list a)))) +(##sys#vector->list (forall (a) (procedure! ##sys#vector->list ((vector a)) (list a)))) +(list->vector (forall (a) (procedure! list->vector ((list a)) (vector a)))) +(##sys#list->vector (forall (a) (procedure! ##sys#list->vector ((list a)) (vector a)))) +(vector-fill! (procedure! vector-fill! (vector *) undefined)) (procedure? (procedure? procedure procedure? (*) boolean)) (vector-copy! (procedure! vector-copy! (vector vector #!optional fixnum) undefined)) -(map (procedure! map (procedure #!rest list) list)) -(for-each (procedure! for-each (procedure #!rest list) undefined)) +(map (forall (a b) (procedure! map ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) + +(for-each + (forall (a) (procedure! for-each ((procedure (a #!rest) . *) (list a) #!rest list) undefined))) + (apply (procedure! apply (procedure #!rest) . *)) (##sys#apply (procedure! ##sys#apply (procedure #!rest) . *)) -(force (procedure force (*) *)) -(call-with-current-continuation (procedure! call-with-current-continuation (procedure) . *)) + +(force (procedure force (*) *) + (((not (struct promise))) #(1))) + +(call-with-current-continuation + (procedure! call-with-current-continuation ((procedure (procedure) . *)) . *)) + (input-port? (procedure input-port? (*) boolean)) (output-port? (procedure output-port? (*) boolean)) -(current-input-port (procedure! current-input-port (#!optional port) port)) -(current-output-port (procedure! current-output-port (#!optional port) port)) -(call-with-input-file (procedure call-with-input-file (string (procedure (port) . *) #!rest) . *)) -(call-with-output-file (procedure call-with-output-file (string (procedure (port) . *) #!rest) . *)) + +(current-input-port + (procedure! current-input-port (#!optional port) port) + ((port) (let ((#(tmp1) #(1))) + (let ((#(tmp2) (set! ##sys#standard-input #(tmp1)))) + #(tmp1)))) + (() ##sys#standard-input)) + +(current-output-port + (procedure! current-output-port (#!optional port) port) + ((port) (let ((#(tmp1) #(1))) + (let ((#(tmp2) (set! ##sys#standard-output #(tmp1)))) + #(tmp1)))) + (() ##sys#standard-output)) + +(call-with-input-file + (procedure call-with-input-file (string (procedure (port) . *) #!rest) . *)) + +(call-with-output-file + (procedure call-with-output-file (string (procedure (port) . *) #!rest) . *)) + (open-input-file (procedure! open-input-file (string #!rest symbol) port)) (open-output-file (procedure! open-output-file (string #!rest symbol) port)) (close-input-port (procedure! close-input-port (port) undefined)) (close-output-port (procedure! close-output-port (port) undefined)) -(load (procedure load (string #!optional procedure) undefined)) +(load (procedure load (string #!optional (procedure (*) . *)) undefined)) (read (procedure! read (#!optional port) *)) (eof-object? (procedure? eof eof-object? (*) boolean)) ;;XXX if we had input/output port distinction, we could specialize these: -(read-char (procedure! read-char (#!optional port) *)) ; result (or eof char) ? +(read-char (procedure! read-char (#!optional port) *)) ;XXX result (or eof char) ? (peek-char (procedure! peek-char (#!optional port) *)) (write (procedure! write (* #!optional port) undefined)) (display (procedure! display (* #!optional port) undefined)) (write-char (procedure! write-char (char #!optional port) undefined)) (newline (procedure! newline (#!optional port) undefined)) -(with-input-from-file (procedure! with-input-from-file (string procedure #!rest symbol) . *)) -(with-output-to-file (procedure! with-output-to-file (string procedure #!rest symbol) . *)) -(dynamic-wind (procedure! dynamic-wind (procedure procedure procedure) . *)) + +(with-input-from-file + (procedure! with-input-from-file (string (procedure () . *) #!rest symbol) . *)) + +(with-output-to-file + (procedure! with-output-to-file (string (procedure () . *) #!rest symbol) . *)) + +(dynamic-wind + (procedure! dynamic-wind ((procedure () . *) (procedure () . *) (procedure () . *)) . *)) + (values (procedure values (#!rest values) . *)) (##sys#values (procedure ##sys#values (#!rest values) . *)) -(call-with-values (procedure! call-with-values ((procedure () . *) procedure) . *)) - -;XXX match-specialization can't handle complex procedure types yet -#;(call-with-values (procedure! call-with-values ((procedure () . *) procedure) . *) +(call-with-values (procedure! call-with-values ((procedure () . *) procedure) . *) (((procedure () *) *) (let ((#(tmp1) #(1))) (let ((#(tmp2) #(2))) (#(tmp2) (#(tmp1))))))) (##sys#call-with-values - (procedure! ##sys#call-with-values ((procedure () . *) procedure) . *)) - -#;(##sys#call-with-values (procedure! ##sys#call-with-values ((procedure () . *) procedure) . *) (((procedure () *) *) (let ((#(tmp1) #(1))) (let ((#(tmp2) #(2))) (#(tmp2) (#(tmp1))))))) -(eval (procedure eval (* #!optional *) *)) +(eval (procedure eval (* #!optional (struct environment)) *)) (char-ready? (procedure! char-ready? (#!optional port) boolean)) (imag-part (procedure! imag-part (number) number) - ((or fixnum float number) (let ((#(tmp) #(1))) '0))) + (((or fixnum float number)) (let ((#(tmp) #(1))) '0))) (real-part (procedure! real-part (number) number) - ((or fixnum float number) #(1))) + (((or fixnum float number)) #(1))) (magnitude (procedure! magnitude (number) number) ((fixnum) (fixnum) @@ -544,9 +627,14 @@ (denominator (procedure! denominator (number) number) ((fixnum) (fixnum) (let ((#(tmp) #(1))) '1))) -(scheme-report-environment (procedure! scheme-report-environment (#!optional fixnum) *)) -(null-environment (procedure! null-environment (#!optional fixnum) *)) -(interaction-environment (procedure interaction-environment () *)) +(scheme-report-environment + (procedure! scheme-report-environment (#!optional fixnum) (struct environment))) + +(null-environment + (procedure! null-environment (#!optional fixnum) (struct environment))) + +(interaction-environment + (procedure interaction-environment () (struct environment))) (port-closed? (procedure! port-closed? (port) boolean) ((port) (##sys#slot #(1) '8))) @@ -559,8 +647,8 @@ ((float) (float) (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) '1.0))) -(argc+argv (procedure argc+argv () fixnum list)) -(argv (procedure argv () list)) +(argc+argv (procedure argc+argv () fixnum (list string) fixnum)) +(argv (procedure argv () (list string))) (arithmetic-shift (procedure! arithmetic-shift (number number) number)) (bit-set? (procedure! bit-set? (number fixnum) boolean) @@ -588,20 +676,19 @@ (blob? (procedure? blob blob? (*) boolean)) (blob=? (procedure! blob=? (blob blob) boolean)) -(breakpoint (procedure breakpoint (#!optional *) . *)) (build-platform (procedure build-platform () symbol)) -(call/cc (procedure! call/cc (procedure) . *)) +(call/cc (procedure! call/cc ((procedure (*) . *)) . *)) (case-sensitive (procedure case-sensitive (#!optional *) *)) -(char-name (procedure! char-name ((or char symbol) #!optional char) *)) +(char-name (procedure! char-name ((or char symbol) #!optional char) *)) ;XXX -> (or char symbol) ? (chicken-home (procedure chicken-home () string)) (chicken-version (procedure chicken-version (#!optional *) string)) -(command-line-arguments (procedure command-line-arguments (#!optional list) list)) +(command-line-arguments (procedure command-line-arguments (#!optional (list string)) (list string))) (condition-predicate (procedure! condition-predicate (symbol) (procedure ((struct condition)) boolean))) (condition-property-accessor (procedure! condition-property-accessor (symbol symbol #!optional *) (procedure ((struct condition)) *))) (condition? (procedure? (struct condition) condition? (*) boolean)) -(condition->list (procedure! condition->list ((struct condition)) list)) +(condition->list (procedure! condition->list ((struct condition)) (list (pair symbol *)))) (continuation-capture (procedure! continuation-capture ((procedure ((struct continuation)) . *)) *)) (continuation-graft (procedure! continuation-graft ((struct continuation) (procedure () . *)) *)) (continuation-return (procedure! continuation-return (procedure #!rest) . *)) ;XXX make return type more specific? @@ -611,34 +698,52 @@ (copy-read-table (procedure! copy-read-table ((struct read-table)) (struct read-table))) (cpu-time (procedure cpu-time () fixnum fixnum)) -(current-error-port (procedure! current-error-port (#!optional port) port) - ((port) (set! ##sys#standard-error #(1))) - (() ##sys#standard-error)) +(current-error-port + (procedure! current-error-port (#!optional port) port) + ((port) (let ((#(tmp1) #(1))) + (let ((#(tmp2) (set! ##sys#standard-error #(tmp1)))) + #(tmp1)))) + (() ##sys#standard-error)) (current-exception-handler - (procedure! current-exception-handler (#!optional procedure) procedure) - ((procedure) (set! ##sys#current-exception-handler #(1))) + (procedure! current-exception-handler (#!optional (procedure (*) noreturn)) procedure) + ((procedure) (let ((#(tmp1) #(1))) + (let ((#(tmp2) (set! ##sys#current-exception-handler #(tmp1)))) + #(tmp1)))) (() ##sys#current-exception-handler)) (current-gc-milliseconds (procedure current-gc-milliseconds () fixnum)) (current-milliseconds (procedure current-milliseconds () float)) -(current-read-table (procedure current-read-table () (struct read-table))) + +(current-read-table + (procedure current-read-table (#!optional (struct read-table)) (struct read-table))) + (current-seconds (procedure current-seconds () float)) (define-reader-ctor (procedure! define-reader-ctor (symbol procedure) undefined)) (delete-file (procedure! delete-file (string) string)) (enable-warnings (procedure enable-warnings (#!optional *) *)) -(equal=? (procedure equal=? (* *) boolean)) -(er-macro-transformer (procedure! er-macro-transformer ((procedure (* * *) *)) (struct transformer))) + +(equal=? (procedure equal=? (* *) boolean) + (((or fixnum symbol char eof null undefined) *) (eq? #(1) #(2))) + ((* (or fixnum symbol char eof null undefined)) (eq? #(1) #(2))) + (((or float number) (or float number)) (= #(1) #(2)))) + +(er-macro-transformer + (procedure! + er-macro-transformer + ((procedure (* (procedure (*) *) (procedure (* *) *)) *)) + (struct transformer))) + (errno (procedure errno () fixnum)) -(error (procedure error (#!rest) noreturn)) -(##sys#error (procedure ##sys#error (#!rest) noreturn)) -(##sys#signal-hook (procedure ##sys#signal-hook (#!rest) noreturn)) +(error (procedure error (* #!rest) noreturn)) +(##sys#error (procedure ##sys#error (* #!rest) noreturn)) +(##sys#signal-hook (procedure ##sys#signal-hook (* #!rest) noreturn)) (exit (procedure exit (#!optional fixnum) noreturn)) -(exit-handler (procedure! exit-handler (#!optional procedure) procedure)) -(expand (procedure expand (* #!optional *) *)) +(exit-handler (procedure! exit-handler (#!optional (procedure (fixnum) . *)) procedure)) +(expand (procedure expand (* #!optional list) *)) (extension-information (procedure extension-information (symbol) *)) (feature? (procedure feature? (symbol) boolean)) -(features (procedure features () list)) +(features (procedure features () (list symbol))) (file-exists? (procedure! file-exists? (string) *)) (directory-exists? (procedure! directory-exists? (string) *)) (fixnum-bits fixnum) @@ -660,8 +765,8 @@ (flush-output (procedure! flush-output (#!optional port) undefined)) -(foldl (procedure! foldl ((procedure (* *) *) * list) *)) -(foldr (procedure! foldr ((procedure (* *) *) * list) *)) +(foldl (forall (a b) (procedure! foldl ((procedure (a b) a) a (list b)) a))) +(foldr (forall (a b) (procedure! foldr ((procedure (a b) b) b (list a)) b))) (force-finalizers (procedure force-finalizers () undefined)) @@ -775,25 +880,38 @@ (fxshr (procedure fxshr (fixnum fixnum) fixnum)) (fxxor (procedure fxxor (fixnum fixnum) fixnum)) (gc (procedure gc (#!optional *) fixnum)) -(gensym (procedure gensym (#!optional *) symbol)) +(gensym (procedure gensym (#!optional (or string symbol)) symbol)) (get (procedure! get (symbol symbol #!optional *) *) ((symbol symbol *) (##core#inline "C_i_getprop" #(1) #(2) #(3)))) -(get-call-chain (procedure! get-call-chain (#!optional fixnum *) list)) +(get-call-chain (procedure! get-call-chain (#!optional fixnum (struct thread)) (list vector))) (get-condition-property (procedure! get-condition-property ((struct condition) symbol symbol #!optional *) *)) (get-environment-variable (procedure! get-environment-variable (string) *)) (get-keyword (procedure! get-keyword (symbol list #!optional *) *)) (get-output-string (procedure! get-output-string (port) string)) (get-properties (procedure! get-properties (symbol list) symbol * list)) -(getter-with-setter (procedure! getter-with-setter (procedure procedure #!optional string) procedure)) -(implicit-exit-handler (procedure! implicit-exit-handler (#!optional procedure) procedure)) -(ir-macro-transformer (procedure ir-macro-transformer ((procedure (* * *) *)) (struct transformer))) + +(getter-with-setter + (procedure! + getter-with-setter + ((procedure (#!rest) *) (procedure (* #!rest) . *) #!optional string) + procedure)) + +(implicit-exit-handler + (procedure! implicit-exit-handler (#!optional (procedure () . *)) procedure)) + +(ir-macro-transformer + (procedure + ir-macro-transformer + ((procedure (* (procedure (*) *) (procedure (* *) *)) *)) + (struct transformer))) + (keyword->string (procedure! keyword->string (symbol) string)) -(keyword-style (procedure keyword-style (#!optional *) *)) +(keyword-style (procedure keyword-style (#!optional symbol) symbol)) (keyword? (procedure keyword? (*) boolean)) (load-library (procedure! load-library (symbol #!optional string) undefined)) -(load-relative (procedure! load-relative (string #!optional procedure) undefined)) +(load-relative (procedure! load-relative (string #!optional (procedure (*) . *)) undefined)) (load-verbose (procedure load-verbose (#!optional *) *)) (machine-byte-order (procedure machine-byte-order () symbol)) (machine-type (procedure machine-type () symbol)) @@ -805,7 +923,7 @@ (make-parameter (procedure! make-parameter (* #!optional procedure) procedure)) (make-property-condition (procedure! make-property-condition (symbol #!rest *) (struct condition))) (maximum-flonum float) -(memory-statistics (procedure memory-statistics () vector)) +(memory-statistics (procedure memory-statistics () (vector fixnum))) (minimum-flonum float) (most-negative-fixnum fixnum) (most-positive-fixnum fixnum) @@ -837,23 +955,25 @@ (register-feature! (procedure! register-feature! (#!rest symbol) undefined)) (remprop! (procedure! remprop! (symbol symbol) undefined)) (rename-file (procedure! rename-file (string string) string)) -(repl (procedure! repl (#!optional (procedure (*) *)) undefined)) -(repl-prompt (procedure! repl-prompt (#!optional procedure) procedure)) +(repl (procedure! repl (#!optional (procedure (*) . *)) undefined)) +(repl-prompt (procedure! repl-prompt (#!optional (procedure () string)) procedure)) (repository-path (procedure repository-path (#!optional *) *)) -(require (procedure require (#!rest *) undefined)) -(reset (procedure reset () undefined)) -(reset-handler (procedure! reset-handler (#!optional procedure) procedure)) +(require (procedure require (#!rest (or string symbol)) undefined)) +(reset (procedure reset () noreturn)) +(reset-handler (procedure! reset-handler (#!optional (procedure () . *)) procedure)) (return-to-host (procedure return-to-host () . *)) -(reverse-list->string (procedure! reverse-list->string (list) string)) +(reverse-list->string (procedure! reverse-list->string ((list char)) string)) (set-finalizer! (procedure! set-finalizer! (* (procedure (*) . *)) *)) (set-gc-report! (procedure set-gc-report! (*) undefined)) -(set-parameterized-read-syntax! (procedure! set-parameterized-read-syntax! (char procedure) undefined)) + +(set-parameterized-read-syntax! + (procedure! set-parameterized-read-syntax! (char (procedure (port fixnum) . *)) undefined)) (set-port-name! (procedure! set-port-name! (port string) undefined) ((port string) (##sys#setslot #(1) '3 #(2)))) -(set-read-syntax! (procedure! set-read-syntax! (char procedure) undefined)) -(set-sharp-read-syntax! (procedure! set-sharp-read-syntax! (char procedure) undefined)) +(set-read-syntax! (procedure! set-read-syntax! (char (procedure (port) . *)) undefined)) +(set-sharp-read-syntax! (procedure! set-sharp-read-syntax! (char (procedure (port) . *)) undefined)) (setter (procedure! setter (procedure) procedure)) (signal (procedure signal (*) . *)) (signum (procedure! signum (number) number)) @@ -868,19 +988,22 @@ ((float) (float) (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) '1.0))) -(subvector (procedure! subvector (vector fixnum #!optional fixnum) vector)) +(subvector (forall (a) (procedure! subvector ((vector a) fixnum #!optional fixnum) (vector a)))) (symbol-escape (procedure symbol-escape (#!optional *) *)) (symbol-plist (procedure! symbol-plist (symbol) list) ((symbol) (##sys#slot #(1) '2))) -(syntax-error (procedure syntax-error (#!rest) noreturn)) +(syntax-error (procedure syntax-error (* #!rest) noreturn)) (system (procedure! system (string) fixnum)) (unregister-feature! (procedure! unregister-feature! (#!rest symbol) undefined)) -(vector-resize (procedure! vector-resize (vector fixnum) vector)) +(vector-resize (forall (a) (procedure! vector-resize ((vector a) fixnum) (vector a)))) (void (procedure void (#!rest) undefined)) -(warning (procedure warning (#!rest) . *)) -(with-exception-handler (procedure! with-exception-handler (procedure procedure) . *)) +(warning (procedure warning (* #!rest) undefined)) + +(with-exception-handler + (procedure! with-exception-handler ((procedure (*) . *) (procedure () . *)) . *)) + ;; chicken (internal) @@ -908,7 +1031,7 @@ (((or null pair list) *) (let ((#(tmp) #(1))) '#t))) (##sys#check-string (procedure! ##sys#check-string (string #!optional *) *) ((string) (let ((#(tmp) #(1))) '#t)) - ((string) * (let ((#(tmp) #(1))) '#t))) + ((string) * (let ((#(tmp) #(1))) '#t))) (##sys#check-number (procedure! ##sys#check-number (number #!optional *) *) ((number) (let ((#(tmp) #(1))) '#t)) ((number *) (let ((#(tmp) #(1))) '#t))) @@ -943,8 +1066,8 @@ (->string (procedure ->string (*) string) ((string) #(1))) -(alist-ref (procedure! alist-ref (* list #!optional (procedure (* *) *) *) *)) -(alist-update! (procedure! alist-update! (* * list #!optional (procedure (* *) *)) *)) +(alist-ref (procedure! alist-ref (* (list pair) #!optional (procedure (* *) *) *) *)) +(alist-update! (procedure! alist-update! (* * (list pair) #!optional (procedure (* *) *)) *)) (always? deprecated) (any? (procedure any? (*) boolean) @@ -954,20 +1077,20 @@ ((pair) (let ((#(tmp) #(1))) '#f)) (((not (or pair list))) (let ((#(tmp) #(1))) '#t))) -(binary-search (procedure! binary-search (vector (procedure (*) *)) *)) -(butlast (procedure! butlast (pair) list)) -(chop (procedure! chop (list fixnum) list)) -(complement (procedure! complement (procedure) procedure)) +(binary-search (forall (a) (procedure! binary-search ((vector a) (procedure (a) *)) *))) +(butlast (forall (a) (procedure! butlast ((pair a *)) (list a)))) +(chop (forall (a) (procedure! chop ((list a) fixnum) (list a)))) +(complement (procedure! complement ((procedure (#!rest) *)) (procedure (#!rest) boolean))) (compose (procedure! compose (#!rest procedure) procedure)) -(compress (procedure! compress (list list) list)) +(compress (forall (a) (procedure! compress (list (list a)) (list a)))) (conc (procedure conc (#!rest) string)) (conjoin (procedure! conjoin (#!rest (procedure (*) *)) (procedure (*) *))) -(constantly (procedure constantly (#!rest) . *)) +(constantly (forall (a) (procedure constantly (a) (procedure (#!rest) a)))) (disjoin (procedure! disjoin (#!rest (procedure (*) *)) (procedure (*) *))) (each (procedure! each (#!rest procedure) procedure)) (flatten (procedure! flatten (pair) list)) -(flip (procedure! flip ((procedure (* *) . *)) procedure)) -(identity (procedure identity (*) *)) +(flip (procedure! flip ((procedure (* *) . *)) (procedure (* *) . *))) +(identity (forall (a) (procedure identity (a) a))) (intersperse (procedure! intersperse (list *) list)) (join (procedure! join (list list) list)) (list->queue (procedure! list->queue (list) (struct queue))) @@ -995,21 +1118,21 @@ (queue-remove! (procedure! queue-remove! ((struct queue)) *)) (queue? (procedure? (struct queue) queue? (*) boolean)) -(rassoc (procedure! rassoc (* list #!optional (procedure (* *) *)) *)) -(reverse-string-append (procedure! reverse-string-append (list) string)) +(rassoc (procedure! rassoc (* (list pair) #!optional (procedure (* *) *)) *)) +(reverse-string-append (procedure! reverse-string-append ((list string)) string)) (shuffle deprecated) (sort (procedure! sort ((or list vector) (procedure (* *) *)) (or list vector))) (sort! (procedure! sort! ((or list vector) (procedure (* *) *)) (or list vector))) (sorted? (procedure! sorted? ((or list vector) (procedure (* *) *)) boolean)) -(topological-sort (procedure! topological-sort (list (procedure (* *) *)) list)) +(topological-sort (procedure! topological-sort ((list list) (procedure (* *) *)) list)) (string-chomp (procedure! string-chomp (string #!optional string) string)) -(string-chop (procedure! string-chop (string fixnum) list)) +(string-chop (procedure! string-chop (string fixnum) (list string))) (string-compare3 (procedure! string-compare3 (string string) fixnum)) (string-compare3-ci (procedure! string-compare3-ci (string string) fixnum)) -(string-intersperse (procedure! string-intersperse (list #!optional string) string)) -(string-split (procedure! string-split (string #!optional string *) list)) +(string-intersperse (procedure! string-intersperse ((list string) #!optional string) string)) +(string-split (procedure! string-split (string #!optional string *) (list string))) (string-translate (procedure! string-translate (string * #!optional *) string)) -(string-translate* (procedure! string-translate* (string list) string)) +(string-translate* (procedure! string-translate* (string (list (pair string string))) string)) (substring-ci=? (procedure! substring-ci=? (string string #!optional fixnum fixnum fixnum) boolean)) (substring-index (procedure! substring-index (string string #!optional fixnum) *) @@ -1023,21 +1146,22 @@ (substring=? (procedure! substring=? (string string #!optional fixnum fixnum fixnum) boolean)) (tail? (procedure tail? (* *) boolean)) + ;; extras (format (procedure format (#!rest) *)) (fprintf (procedure! fprintf (port string #!rest) undefined)) (pp (procedure! pp (* #!optional port) undefined)) (pretty-print (procedure! pretty-print (* #!optional port) undefined)) -(pretty-print-width (procedure pretty-print-width (#!optional *) *)) +(pretty-print-width (procedure pretty-print-width (#!optional fixnum) *)) (printf (procedure! printf (string #!rest) undefined)) -(random (procedure! random (number) number)) -(randomize (procedure! randomize (#!optional number) undefined)) +(random (procedure! random (fixnum) fixnum)) +(randomize (procedure! randomize (#!optional fixnum) undefined)) (read-buffered (procedure! read-buffered (#!optional port) string)) -(read-byte (procedure! read-byte (#!optional port) fixnum)) +(read-byte (procedure! read-byte (#!optional port) *)) (read-file (procedure! read-file (#!optional (or port string) (procedure (port) *) fixnum) list)) (read-line (procedure! read-line (#!optional port (or boolean fixnum)) *)) -(read-lines (procedure! read-lines (#!optional (or port string) fixnum) list)) +(read-lines (procedure! read-lines (#!optional (or port string) fixnum) (list string))) (read-string (procedure! read-string (#!optional * port) string)) (read-string! (procedure! read-string! (fixnum string #!optional port fixnum) fixnum)) (read-token (procedure! read-token ((procedure (char) *) #!optional port) string)) @@ -1050,14 +1174,15 @@ (write-line (procedure! write-line (string #!optional port) undefined)) (write-string (procedure! write-string (string #!optional * port) undefined)) + ;; files (delete-file* (procedure! delete-file* (string) *)) (file-copy (procedure! file-copy (string string #!optional * fixnum) fixnum)) (file-move (procedure! file-move (string string #!optional * fixnum) fixnum)) -(make-pathname (procedure! make-pathname (* * #!optional string string) string)) +(make-pathname (procedure! make-pathname (* #!optional string string) string)) (directory-null? (procedure! directory-null? (string) boolean)) -(make-absolute-pathname (procedure! make-absolute-pathname (* * #!optional string string) string)) +(make-absolute-pathname (procedure! make-absolute-pathname (* #!optional string string) string)) (create-temporary-directory (procedure! create-temporary-directory () string)) (create-temporary-file (procedure! create-temporary-file (#!optional string) string)) (decompose-directory (procedure! decompose-directory (string) * * *)) @@ -1073,8 +1198,11 @@ (pathname-strip-extension (procedure! pathname-strip-extension (string) string)) (normalize-pathname (procedure! normalize-pathname (string #!optional symbol) string)) + ;; irregex +;;XXX these need to be reviewed by Alex and/or sjamaan + (irregex (procedure irregex (#!rest) *)) ;irregex-apply-match @@ -1160,25 +1288,31 @@ (string->irregex (procedure! string->irregex (string #!rest) *)) (string->sre (procedure! string->sre (string #!rest) *)) + ;; lolevel (address->pointer (procedure! address->pointer (fixnum) pointer) ((fixnum) (##sys#address->pointer #(1)))) -(align-to-word (procedure align-to-word ((or number pointer locative procedure port)) (or pointer number))) +(align-to-word + (procedure + align-to-word + ((or number pointer locative procedure port)) + (or pointer number))) + (allocate (procedure! allocate (fixnum) (or boolean pointer))) (block-ref (procedure! block-ref (* fixnum) *)) (block-set! (procedure! block-set! (* fixnum *) *)) (extend-procedure (procedure! extend-procedure (procedure *) procedure)) (extended-procedure? (procedure extended-procedure? (*) boolean)) -(free (procedure! free (pointer) *)) +(free (procedure! free (pointer) undefined)) (locative->object (procedure! locative->object (locative) *)) (locative-ref (procedure! locative-ref (locative) *)) (locative-set! (procedure! locative-set! (locative *) *)) -(locative? (procedure locative? (*) boolean)) +(locative? (procedure? locative locative? (*) boolean)) (make-locative (procedure! make-locative (* #!optional fixnum) locative)) (make-pointer-vector (procedure! make-pointer-vector (fixnum #!optional pointer) pointer-vector)) -(make-record-instance (procedure make-record-instance (* #!rest) *)) +(make-record-instance (procedure make-record-instance (symbol #!rest) *)) (make-weak-locative (procedure! make-weak-locative (* #!optional fixnum) locative)) (move-memory! (procedure! move-memory! (* * #!optional fixnum fixnum fixnum) *) @@ -1195,8 +1329,10 @@ ((locative locative fixnum fixnum fixnum) (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) #(5) #(4)))) +(mutate-procedure! + (procedure! mutate-procedure (procedure (procedure (procedure) . *)) procedure)) + (mutate-procedure (deprecated mutate-procedure!)) -(mutate-procedure! (procedure! mutate-procedure! (procedure procedure) procedure)) (null-pointer deprecated) (null-pointer? deprecated) @@ -1263,7 +1399,7 @@ (pointer-u8-set! (procedure! pointer-u8-set! (pointer fixnum) undefined)) (pointer=? (procedure! pointer=? ((or pointer locative procedure port) - (or pointer procedure locative port)) boolean) + (or pointer locative procedure port)) boolean) ((pointer pointer) (##core#inline "C_pointer_eqp" #(1) #(2)))) (pointer? (procedure? pointer pointer? (*) boolean)) @@ -1279,15 +1415,19 @@ (tag-pointer (procedure! tag-pointer (pointer *) pointer)) (tagged-pointer? (procedure! tagged-pointer? (* #!optional *) boolean)) + ;; ports (call-with-input-string (procedure! call-with-input-string (string (procedure (port) . *)) . *)) (call-with-output-string (procedure! call-with-output-string ((procedure (port) . *)) string)) -(copy-port (procedure! copy-port (* * #!optional (procedure (*) *) (procedure (* *) *)) undefined)) +(copy-port (procedure! copy-port (* * #!optional (procedure (*) *) (procedure (* port) *)) undefined)) (make-input-port (procedure! make-input-port ((procedure () char) (procedure () *) (procedure () . *) #!optional * * * *) port)) (make-output-port (procedure! make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) port)) (port-for-each (procedure! port-for-each ((procedure (*) *) (procedure () . *)) undefined)) -(port-map (procedure! port-map ((procedure (*) *) (procedure () . *)) list)) + +(port-map + (forall (a b) (procedure! port-map ((procedure (a) b) (procedure () a)) (list b)))) + (port-fold (procedure! port-fold ((procedure (* *) *) * (procedure () *)) *)) (make-broadcast-port (procedure! make-broadcast-port (#!rest port) port)) (make-concatenated-port (procedure! make-concatenated-port (port #!rest port) port)) @@ -1297,6 +1437,7 @@ (with-output-to-port (procedure! with-output-to-port (port (procedure () . *)) . *)) (with-output-to-string (procedure! with-output-to-string ((procedure () . *)) . *)) + ;; posix (_exit (procedure _exit (fixnum) noreturn)) @@ -1312,18 +1453,21 @@ (create-pipe (procedure create-pipe () fixnum fixnum)) (create-session (procedure create-session () fixnum)) (create-symbolic-link (procedure! create-symbolic-link (string string) undefined)) -(current-directory (procedure! current-directory (#!optional string) string)) + +;; extra arg for "parameterize" - ugh, what a hack... +(current-directory (procedure! current-directory (#!optional string *) string)) + (current-effective-group-id (procedure current-effective-group-id () fixnum)) (current-effective-user-id (procedure current-effective-user-id () fixnum)) (current-effective-user-name (procedure current-effective-user-name () string)) (current-environment deprecated) -(get-environment-variables (procedure get-environment-variables () list)) +(get-environment-variables (procedure get-environment-variables () (list string))) (current-group-id (procedure current-group-id () fixnum)) (current-process-id (procedure current-process-id () fixnum)) (current-user-id (procedure current-user-id () fixnum)) (current-user-name (procedure current-user-name () string)) (delete-directory (procedure! delete-directory (string) string)) -(directory (procedure! directory (string #!optional *) list)) +(directory (procedure! directory (string #!optional *) (list string))) (directory? (procedure! directory? ((or string fixnum)) boolean)) (duplicate-fileno (procedure! duplicate-fileno (fixnum #!optional fixnum) fixnum)) (errno/2big fixnum) @@ -1387,9 +1531,9 @@ (file-position (procedure! file-position ((or port fixnum)) fixnum)) (file-read (procedure! file-read (fixnum fixnum #!optional *) list)) (file-read-access? (procedure! file-read-access? (string) boolean)) -(file-select (procedure! file-select (list list #!optional fixnum) list list)) +(file-select (procedure! file-select ((list fixnum) (list fixnum) #!optional fixnum) * *)) (file-size (procedure! file-size ((or string fixnum)) number)) -(file-stat (procedure! file-stat ((or string fixnum) #!optional *) vector)) +(file-stat (procedure! file-stat ((or string fixnum) #!optional *) (vector number))) (file-test-lock (procedure! file-test-lock (port #!optional fixnum *) boolean)) (file-truncate (procedure! file-truncate ((or string fixnum) fixnum) undefined)) (file-type (procedure! ((or string fixnum) #!optional * *) symbol)) @@ -1405,7 +1549,7 @@ (glob (procedure! glob (#!rest string) list)) (group-information (procedure! group-information (fixnum #!optional *) *)) (initialize-groups (procedure! initialize-groups (string fixnum) undefined)) -(local-time->seconds (procedure! local-time->seconds (vector) number)) +(local-time->seconds (procedure! local-time->seconds ((vector number)) number)) (local-timezone-abbreviation (procedure local-timezone-abbreviation () string)) (map-file-to-memory (procedure! map-file-to-memory (* fixnum fixnum fixnum fixnum #!optional fixnum) (struct mmap))) (map/anonymous fixnum) @@ -1452,12 +1596,15 @@ (perm/ixusr fixnum) (pipe/buf fixnum) (port->fileno (procedure! port->fileno (port) fixnum)) -(process (procedure! process (string #!optional list list) port port fixnum)) -(process* (procedure! process* (string #!optional list list) port port fixnum *)) -(process-execute (procedure! process-execute (string #!optional list list) noreturn)) +(process (procedure! process (string #!optional (list string) (list string)) port port fixnum)) +(process* (procedure! process* (string #!optional (list string) (list string)) port port fixnum *)) + +(process-execute + (procedure! process-execute (string #!optional (list string) (list string)) noreturn)) + (process-fork (procedure! process-fork (#!optional (procedure () . *)) fixnum)) (process-group-id (procedure! process-group-id () fixnum)) -(process-run (procedure! process-run (string #!optional list) fixnum)) +(process-run (procedure! process-run (string #!optional (list string)) fixnum)) (process-signal (procedure! process-signal (fixnum #!optional fixnum) undefined)) (process-wait (procedure! process-wait (fixnum #!optional *) fixnum fixnum fixnum)) (prot/exec fixnum) @@ -1466,9 +1613,9 @@ (prot/write fixnum) (read-symbolic-link (procedure! read-symbolic-link (string) string)) (regular-file? (procedure! regular-file? ((or string fixnum)) boolean)) -(seconds->local-time (procedure! seconds->local-time (#!optional number) vector)) +(seconds->local-time (procedure! seconds->local-time (#!optional number) (vector number))) (seconds->string (procedure! seconds->string (#!optional number) string)) -(seconds->utc-time (procedure! seconds->utc-time (#!optional number) vector)) +(seconds->utc-time (procedure! seconds->utc-time (#!optional number) (vector number))) (seek/cur fixnum) (seek/end fixnum) (seek/set fixnum) @@ -1478,7 +1625,7 @@ (set-groups! (procedure! set-groups! (list) undefined)) (set-root-directory! (procedure! set-root-directory! (string) undefined)) (set-signal-handler! (procedure! set-signal-handler! (fixnum (procedure (fixnum) . *)) undefined)) -(set-signal-mask! (procedure! set-signal-mask! (list) undefined)) +(set-signal-mask! (procedure! set-signal-mask! ((list fixnum)) undefined)) (setenv (procedure! setenv (string string) undefined)) (signal-handler (procedure! signal-handler (fixnum) (procedure (fixnum) . *))) (signal-mask (procedure signal-mask () fixnum)) @@ -1526,82 +1673,147 @@ (unmap-file-from-memory (procedure! unmap-file-from-memory ((struct mmap) #!optional fixnum) undefined)) (unsetenv (procedure! unsetenv (string) undefined)) (user-information (procedure! user-information ((or string fixnum) #!optional *) *)) -(utc-time->seconds (procedure! utc-time->seconds (vector) number)) +(utc-time->seconds (procedure! utc-time->seconds ((vector number)) number)) (with-input-from-pipe (procedure! with-input-from-pipe (string (procedure () . *) #!optional symbol) . *)) (with-output-to-pipe (procedure! with-output-to-pipe (string (procedure () . *) #!optional symbol) . *)) + ;; srfi-1 -(alist-cons (procedure alist-cons (* * *) list)) -(alist-copy (procedure! alist-copy (list) list)) -(alist-delete (procedure! alist-delete (* list #!optional (procedure (* *) *)) list)) -(alist-delete! (procedure! alist-delete! (* list #!optional (procedure (* *) *)) undefined)) -(any (procedure! any ((procedure (* #!rest) *) list #!rest list) *)) +(alist-cons (forall (a b c) (procedure alist-cons (a b (list c)) (pair a (pair b (list c)))))) +(alist-copy (forall (a) (procedure! alist-copy ((list a)) (list a)))) +(alist-delete (forall (a b) (procedure! alist-delete (a (list b) #!optional (procedure (a b) *)) list))) +(alist-delete! (forall (a b) (procedure! alist-delete! (a (list b) #!optional (procedure (a b) *)) undefined))) +(any (forall (a) (procedure! any ((procedure (a #!rest) *) (list a) #!rest list) *))) (append! (procedure! append! (#!rest list) list)) -(append-map (procedure! append-map ((procedure (#!rest) *) list #!rest list) pair)) -(append-map! (procedure! append-map! ((procedure (#!rest) *) list #!rest list) pair)) + +(append-map + (forall (a b) (procedure! append-map ((procedure (a #!rest) (list b)) (list a) #!rest list) + (list b)))) + +(append-map! + (forall (a b) (procedure! append-map! ((procedure (a #!rest) (list b)) (list a) #!rest list) + (list b)))) + (append-reverse (procedure! append-reverse (list list) list)) (append-reverse! (procedure! append-reverse! (list list) list)) -(break (procedure! break ((procedure (*) *) list) list list)) -(break! (procedure! break! ((procedure (*) *) list) list list)) -(car+cdr (procedure! car+cdr (pair) * *)) +(break (forall (a) (procedure! break ((procedure (a) *) (list a)) (list a) (list a)))) +(break! (forall (a) (procedure! break! ((procedure (a) *) (list a)) (list a) (list a)))) +(car+cdr (forall (a b) (procedure! car+cdr ((pair a b)) a b))) (circular-list (procedure circular-list (#!rest) list)) (circular-list? (procedure circular-list? (*) boolean) ((null) (let ((#(tmp) #(1))) '#f))) -(concatenate (procedure! concatenate (list) list)) -(concatenate! (procedure! concatenate! (list) list)) -(cons* (procedure cons* (* #!rest) pair)) -(count (procedure! count ((procedure (*) *) list #!rest list) fixnum)) -(delete (procedure! delete (* list #!optional (procedure (* *) *)) list)) -(delete! (procedure! delete! (* list #!optional (procedure (* *) *)) list)) -(delete-duplicates (procedure! delete-duplicates (list #!optional (procedure (* *) *)) list)) -(delete-duplicates! (procedure! delete-duplicates! (list #!optional (procedure (* *) *)) list)) +(concatenate (procedure! concatenate ((list list)) list)) +(concatenate! (procedure! concatenate! ((list list)) list)) +(cons* (forall (a) (procedure cons* (a #!rest) (pair a *)))) +(count (forall (a) (procedure! count ((procedure (a #!rest) *) (list a) #!rest list) fixnum))) +(delete (forall (a b) (procedure! delete (a (list b) #!optional (procedure (a *) *)) (list b)))) +(delete! (forall (a b) (procedure! delete! (a (list b) #!optional (procedure (a *) *)) (list b)))) + +(delete-duplicates + (forall (a) (procedure! delete-duplicates ((list a) #!optional (procedure (a *) *)) (list a)))) + +(delete-duplicates! + (forall (a) (procedure! delete-duplicates! ((list a) #!optional (procedure (a *) *)) (list a)))) + (dotted-list? (procedure dotted-list? (*) boolean)) -(drop (procedure! drop (list fixnum) list)) -(drop-right (procedure! drop-right (list fixnum) list)) -(drop-right! (procedure! drop-right! (list fixnum) list)) -(drop-while (procedure! drop-while ((procedure (*) *) list) list)) +(drop (forall (a) (procedure! drop ((list a) fixnum) (list a)))) +(drop-right (forall (a) (procedure! drop-right ((list a) fixnum) (list a)))) +(drop-right! (forall (a) (procedure! drop-right! ((list a) fixnum) (list a)))) +(drop-while (forall (a) (procedure! drop-while ((procedure (a) *) (list a)) (list a)))) (eighth (procedure! eighth (pair) *)) -(every (procedure! every ((procedure (* #!rest) *) list #!rest list) *)) + +(every + (forall (a) (procedure! every ((procedure (a #!rest) *) (list a) #!rest list) *))) + (fifth (procedure! fifth (pair) *)) -(filter (procedure! filter ((procedure (*) *) list) list)) -(filter! (procedure! filter! ((procedure (*) *) list) list)) -(filter-map (procedure! filter-map ((procedure (* #!rest) *) list #!rest list) list)) -(find (procedure! find ((procedure (*) *) list) *)) -(find-tail (procedure! find-tail ((procedure (*) *) list) *)) +(filter (forall (a) (procedure! filter ((procedure (a) *) (list a)) (list a)))) +(filter! (forall (a) (procedure! filter! ((procedure (a) *) (list a)) (list a)))) + +(filter-map + (forall (a b) (procedure! filter-map ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) -(first (procedure! first (pair) *) +(find (forall (a) (procedure! find ((procedure (a) *) (list a)) *))) +(find-tail (forall (a) (procedure! find-tail ((procedure (a) *) (list a)) *))) + +(first (forall (a) (procedure! first ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1)))) -(fold (procedure! fold ((procedure (* #!rest) *) * #!rest list) *)) -(fold-right (procedure! fold-right ((procedure (* #!rest) *) * #!rest list) *)) -(fourth (procedure! fourth (pair) *)) -(iota (procedure! iota (fixnum #!optional fixnum fixnum) list)) +(fold (procedure! fold ((procedure (* #!rest) *) * #!rest list) *)) ;XXX +(fold-right (procedure! fold-right ((procedure (* #!rest) *) * #!rest list) *)) ;XXX + +(fourth (forall (a) (procedure! fourth ((pair * (pair * (pair * (pair a *))))) a)) + (((pair * (pair * (pair * (pair * *))))) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_cdr" + (##core#inline "C_u_i_cdr" #(1))))))) + +(iota (procedure! iota (fixnum #!optional fixnum fixnum) (list number))) (last (procedure! last (pair) *)) (last-pair (procedure! last-pair (pair) *)) (length+ (procedure! length+ (list) *)) -(list-copy (procedure! list-copy (list) list)) -(list-index (procedure! list-index ((procedure (* #!rest) *) list #!rest list) *)) -(list-tabulate (procedure! list-tabulate (fixnum (procedure (fixnum) *)) list)) +(list-copy (forall (a) (procedure! list-copy ((list a)) (list a)))) +(list-index (forall (a) (procedure! list-index ((procedure (a #!rest) *) (list a) #!rest list) *))) +(list-tabulate (forall (a) (procedure! list-tabulate (fixnum (procedure (fixnum) a)) (list a)))) (list= (procedure! list= (#!rest list) boolean)) -(lset-adjoin (procedure! lset-adjoin ((procedure (* *) *) list #!rest) list)) -(lset-diff+intersection (procedure! lset-diff+intersection ((procedure (* *) *) list #!rest list) list)) -(lset-diff+intersection! (procedure! lset-diff+intersection! ((procedure (* *) *) list #!rest list) list)) -(lset-difference (procedure! lset-difference ((procedure (* *) *) list #!rest list) list)) -(lset-difference! (procedure! lset-difference! ((procedure (* *) *) list #!rest list) list)) -(lset-intersection (procedure! lset-intersection ((procedure (* *) *) list #!rest list) list)) -(lset-intersection! (procedure! lset-intersection! ((procedure (* *) *) list #!rest list) list)) -(lset-union (procedure! lset-union ((procedure (* *) *) list #!rest list) list)) -(lset-union! (procedure! lset-union! ((procedure (* *) *) list #!rest list) list)) -(lset-xor (procedure! lset-xor ((procedure (* *) *) list #!rest list) list)) -(lset-xor! (procedure! lset-xor! ((procedure (* *) *) list #!rest list) list)) -(lset<= (procedure! lset<= ((procedure (* *) *) list #!rest list) boolean)) -(lset= (procedure! lset= ((procedure (* *) *) list #!rest list) boolean)) -(make-list (procedure! make-list (fixnum #!optional *) list)) -(map! (procedure! map! ((procedure (*) *) list #!rest list) list)) -(map-in-order (procedure! map-in-order ((procedure (*) *) list #!rest list) list)) + +(lset-adjoin + (forall (a) (procedure! lset-adjoin ((procedure (a a) *) (list a) #!rest a) (list a)))) + +(lset-diff+intersection + (forall (a) + (procedure! lset-diff+intersection ((procedure (a a) *) (list a) #!rest (list a)) + (list a)))) + +(lset-diff+intersection! + (forall (a) + (procedure! lset-diff+intersection! ((procedure (a a) *) (list a) #!rest (list a)) + (list a)))) + +(lset-difference + (forall (a) (procedure! lset-difference ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-difference! + (forall (a) (procedure! lset-difference! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-intersection + (forall (a) (procedure! lset-intersection ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-intersection! + (forall (a) (procedure! lset-intersection! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-union + (forall (a) (procedure! lset-union ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-union! + (forall (a) (procedure! lset-union! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-xor + (forall (a) (procedure! lset-xor ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset-xor! + (forall (a) (procedure! lset-xor! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) + +(lset<= + (forall (a) (procedure! lset<= ((procedure (a a) *) (list a) #!rest (list a)) boolean))) + +(lset= + (forall (a) (procedure! lset= ((procedure (a a) *) (list a) #!rest (list a)) boolean))) + +;; see note about "make-vector", above +(make-list (forall (a) (procedure! make-list (fixnum #!optional a) list))) + +(map! + (forall (a b) (procedure! map! ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) + +(map-in-order + (forall + (a b) + (procedure! map-in-order ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) + (ninth (procedure! ninth (pair) *)) (not-pair? (procedure not-pair? (*) boolean) @@ -1613,50 +1825,67 @@ ((list) (let ((#(tmp) #(1))) '#f)) ((null) (let ((#(tmp) #(1))) '#t))) -(pair-fold (procedure! pair-fold (procedure * list #!rest list) *)) -(pair-fold-right (procedure! pair-fold-right (procedure * list #!rest list) *)) -(pair-for-each (procedure! pair-for-each ((procedure (#!rest) . *) list #!rest list) undefined)) -(partition (procedure! partition ((procedure (*) *) list) list list)) -(partition! (procedure! partition! ((procedure (*) *) list) list list)) +(pair-fold (procedure! pair-fold (procedure * list #!rest list) *)) ;XXX do this +(pair-fold-right (procedure! pair-fold-right (procedure * list #!rest list) *)) ;XXX +(pair-for-each (procedure! pair-for-each ((procedure (#!rest) . *) list #!rest list) undefined)) ;XXX +(partition (forall (a) (procedure! partition ((procedure (a) *) (list a)) (list a) (list a)))) +(partition! (forall (a) (procedure! partition! ((procedure (a) *) (list a)) (list a) (list a)))) (proper-list? (procedure proper-list? (*) boolean) ((null) (let ((#(tmp) #(1))) '#t))) -(reduce (procedure! reduce ((procedure (* *) *) * list) *)) -(reduce-right (procedure! reduce-right ((procedure (* *) *) * list) *)) -(remove (procedure! remove ((procedure (*) *) list) list)) -(remove! (procedure! remove! ((procedure (*) *) list) list)) -(reverse! (procedure! reverse! (list) list)) -(second (procedure! second (pair) *)) +(reduce (procedure! reduce ((procedure (* *) *) * list) *)) ;XXX +(reduce-right (procedure! reduce-right ((procedure (* *) *) * list) *)) ;XXX +(remove (forall (a) (procedure! remove ((procedure (a) *) (list a)) (list a)))) +(remove! (forall (a) (procedure! remove! ((procedure (a) *) (list a)) (list a)))) +(reverse! (forall (a) (procedure! reverse! ((list a)) (list a)))) + +(second (forall (a) (procedure! second ((pair * (pair a *))) a)) + (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))) + (seventh (procedure! seventh (pair) *)) (sixth (procedure! sixth (pair) *)) -(span (procedure! span ((procedure (*) *) list) list list)) -(span! (procedure! span! ((procedure (*) *) list) list list)) -(split-at (procedure! split-at (list fixnum) list list)) -(split-at! (procedure! split-at! (list fixnum) list list)) -(take (procedure! take (list fixnum) list)) -(take! (procedure! take! (list fixnum) list)) -(take-right (procedure! take-right (list fixnum) list)) -(take-while (procedure! take-while ((procedure (*) *) list) list)) -(take-while! (procedure! take-while! ((procedure (*) *) list) list)) +(span (forall (a) (procedure! span ((procedure (a) *) (list a)) (list a) (list a)))) +(span! (forall (a) (procedure! span! ((procedure (a) *) (list a)) (list a) (list a)))) +(split-at (forall (a) (procedure! split-at ((list a) fixnum) (list a) (list a)))) +(split-at! (forall (a) (procedure! split-at! ((list a) fixnum) (list a) (list a)))) +(take (forall (a) (procedure! take ((list a) fixnum) (list a)))) +(take! (forall (a) (procedure! take! ((list a) fixnum) (list a)))) +(take-right (forall (a) (procedure! take-right ((list a) fixnum) (list a)))) +(take-while (forall (a) (procedure! take-while ((procedure (a) *) (list a)) (list a)))) +(take-while! (forall (a) (procedure! take-while! ((procedure (a) *) (list a)) (list a)))) (tenth (procedure! tenth (pair) *)) -(third (procedure! third (pair) *)) -(unfold (procedure! unfold ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) -(unfold-right (procedure! unfold-right ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) -(unzip1 (procedure! unzip1 (list) list)) -(unzip2 (procedure! unzip2 (list) list list)) -(unzip3 (procedure! unzip3 (list) list list list)) -(unzip4 (procedure! unzip4 (list) list list list list)) -(unzip5 (procedure! unzip5 (list) list list list list list)) -(xcons (procedure xcons (* *) pair)) -(zip (procedure! zip (list #!rest list) list)) + +(third (forall (a) (procedure! third ((pair * (pair * (pair a *)))) a)) + (((pair * (pair * (pair * *)))) + (##core#inline "C_u_i_car" + (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) + +(unfold (procedure! unfold ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX +(unfold-right (procedure! unfold-right ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX +(unzip1 (forall (a) (procedure! unzip1 ((list (pair a *))) (list a)))) +(unzip2 (forall (a b) (procedure! unzip2 ((list (pair a (pair b *)))) (list a) (list b)))) + +(unzip3 + (forall (a b c) (procedure! unzip3 ((list (pair a (pair b (pair c *))))) (list a) (list b) (list c)))) + +(unzip4 (procedure! unzip4 (list) list list list list)) ; yeah +(unzip5 (procedure! unzip5 (list) list list list list list)) ; yeah, too +(xcons (forall (a b) (procedure xcons (a b) (pair b a)))) +(zip (forall (a) (procedure! zip ((list a) #!rest list) (list (pair a *))))) + ;; srfi-13 (check-substring-spec (procedure! check-substring-spec (* string fixnum fixnum) undefined)) (kmp-step (procedure! kmp-step (string vector char fixnum (procedure (char char) *) fixnum) fixnum)) (make-kmp-restart-vector (procedure! make-kmp-restart-vector (string #!optional (procedure (* *) *) fixnum fixnum) vector)) -(string-any (procedure! string-any (* string #!optional fixnum fixnum) boolean)) + +(string-any + (procedure! + string-any + ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) + boolean)) (string-append/shared (procedure! string-append/shared (#!rest string) string) ((string string) (##sys#string-append #(1) #(2)))) @@ -1681,10 +1910,10 @@ (string-compare (procedure! string-compare (string string (procedure (fixnum) *) (procedure (fixnum) *) (procedure (fixnum) *) #!optional fixnum fixnum fixnum fixnum) *)) (string-compare-ci (procedure! string-compare (string string (procedure (fixnum) *) (procedure (fixnum) *) (procedure (fixnum) *) #!optional fixnum fixnum fixnum fixnum) *)) -(string-concatenate (procedure! string-concatenate (list) string)) -(string-concatenate-reverse (procedure! string-concatenate-reverse (list #!optional string fixnum) string)) -(string-concatenate-reverse/shared (procedure! string-concatenate-reverse/shared (list #!optional string fixnum) string)) -(string-concatenate/shared (procedure! string-concatenate/shared (list) string)) +(string-concatenate (procedure! string-concatenate ((list string)) string)) +(string-concatenate-reverse (procedure! string-concatenate-reverse ((list string) #!optional string fixnum) string)) +(string-concatenate-reverse/shared (procedure! string-concatenate-reverse/shared ((list string) #!optional string fixnum) string)) +(string-concatenate/shared (procedure! string-concatenate/shared ((list string)) string)) (string-contains (procedure! string-contains (string string #!optional fixnum fixnum fixnum fixnum) (or fixnum boolean))) (string-contains-ci (procedure! string-contains-ci (string string #!optional fixnum fixnum fixnum fixnum) (or fixnum boolean))) (string-copy (procedure! string-copy (string #!optional fixnum fixnum) string)) @@ -1695,15 +1924,39 @@ (string-downcase! (procedure! string-downcase! (string #!optional fixnum fixnum) string)) (string-drop (procedure! string-drop (string fixnum) string)) (string-drop-right (procedure! string-drop-right (string fixnum) string)) -(string-every (procedure! string-every (* string #!optional fixnum fixnum) boolean)) + +(string-every + (procedure! + string-every + ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) + boolean)) + (string-fill! (procedure! string-fill! (string char #!optional fixnum fixnum) string)) -(string-filter (procedure! string-filter (* string #!optional fixnum fixnum) string)) -(string-fold (procedure! string-fold ((procedure (char *) *) * string #!optional fixnum fixnum) *)) -(string-fold-right (procedure! string-fold-right ((procedure (char *) *) * string #!optional fixnum fixnum) *)) + +(string-filter + (procedure! + string-filter + ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) + string)) + +(string-fold (procedure! string-fold ((procedure (char *) *) * string #!optional fixnum fixnum) *)) ;XXX + +(string-fold-right (procedure! string-fold-right ((procedure (char *) *) * string #!optional fixnum fixnum) *)) ;XXX (string-for-each (procedure! string-for-each ((procedure (char) . *) string #!optional fixnum fixnum) undefined)) (string-for-each-index (procedure! string-for-each-index ((procedure (fixnum) . *) string #!optional fixnum fixnum) undefined)) -(string-index (procedure! string-index (string * #!optional fixnum fixnum) (or fixnum boolean))) -(string-index-right (procedure! string-index-right (string * #!optional fixnum fixnum) (or fixnum boolean))) + +(string-index + (procedure! + string-index + (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) + (or fixnum boolean))) + +(string-index-right + (procedure! + string-index-right + (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) + (or fixnum boolean))) + (string-join (procedure! string-join (list #!optional string symbol) string)) (string-kmp-partial-search (procedure! string-kmp-partial-search (string vector string fixnum #!optional (procedure (char char) *) fixnum fixnum fixnum) fixnum)) (string-map (procedure! string-map ((procedure (char) char) string #!optional fixnum fixnum) string)) @@ -1723,8 +1976,19 @@ (string-replace (procedure! string-replace (string string fixnum fixnum #!optional fixnum fixnum) string)) (string-reverse (procedure! string-reverse (string #!optional fixnum fixnum) string)) (string-reverse! (procedure! string-reverse! (string #!optional fixnum fixnum) string)) -(string-skip (procedure! string-skip (string * #!optional fixnum fixnum) (or fixnum boolean))) -(string-skip-right (procedure! string-skip-right (string * #!optional fixnum fixnum) (or fixnum boolean))) + +(string-skip + (procedure! + string-skip + (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) + (or fixnum boolean))) + +(string-skip-right + (procedure! + string-skip-right + (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) + (or fixnum boolean))) + (string-suffix-ci? (procedure! string-suffix-ci? (string string #!optional fixnum fixnum fixnum fixnum) boolean)) (string-suffix-length (procedure! string-suffix-length (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) (string-suffix-length-ci (procedure! string-suffix-length-ci (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) @@ -1734,12 +1998,30 @@ (string-take-right (procedure! string-take-right (string fixnum) string)) (string-titlecase (procedure! string-titlecase (string #!optional fixnum fixnum) string)) (string-titlecase! (procedure! string-titlecase! (string #!optional fixnum fixnum) string)) -(string-tokenize (procedure! string-tokenize (string #!optional * fixnum fixnum) list)) -(string-trim (procedure! string-trim (string #!optional * fixnum fixnum) string)) -(string-trim-both (procedure! string-trim-both (string #!optional * fixnum fixnum) string)) -(string-trim-right (procedure! string-trim-right (string #!optional * fixnum fixnum) string)) -(string-unfold (procedure! string-unfold (procedure procedure procedure * #!optional * procedure) string)) -(string-unfold-right (procedure! string-unfold-right (procedure procedure procedure * #!optional * procedure) string)) + +(string-tokenize + (procedure! string-tokenize (string #!optional (struct char-set) fixnum fixnum) list)) + +(string-trim + (procedure! + string-trim + (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) + string)) + +(string-trim-both + (procedure! + string-trim-both + (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) + string)) + +(string-trim-right + (procedure! + string-trim-right + (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) + string)) + +(string-unfold (procedure! string-unfold (procedure procedure procedure * #!optional * procedure) string)) ;XXX +(string-unfold-right (procedure! string-unfold-right (procedure procedure procedure * #!optional * procedure) string)) ;XXX (string-upcase (procedure! string-upcase (string #!optional fixnum fixnum) string)) (string-upcase! (procedure! string-upcase! (string #!optional fixnum fixnum) string)) (string-xcopy! (procedure! string-xcopy! (string string string fixnum #!optional fixnum fixnum fixnum) string)) @@ -1766,6 +2048,7 @@ (substring/shared (procedure! substring/shared (string fixnum #!optional fixnum) string)) (xsubstring (procedure! xsubstring (string fixnum #!optional fixnum fixnum fixnum) string)) + ;; srfi-14 (->char-set (procedure ->char-set (*) (struct char-set)) @@ -1839,6 +2122,7 @@ (ucs-range->char-set (procedure! ucs-range->char-set (fixnum fixnum #!optional * (struct char-set)) (struct char-set))) (ucs-range->char-set! (procedure! ucs-range->char-set! (fixnum fixnum #!optional * (struct char-set)) (struct char-set))) + ;; srfi-18 (abandoned-mutex-exception? (procedure abandoned-mutex-exception? (*) boolean)) @@ -1917,6 +2201,7 @@ (uncaught-exception-reason (procedure! uncaught-exception-reason ((struct condition)) *)) (uncaught-exception? (procedure uncaught-exception? (*) boolean)) + ;; srfi-4 (blob->f32vector (procedure! blob->f32vector (blob) (struct f32vector))) @@ -1961,14 +2246,14 @@ (f64vector? (procedure? (struct f64vector) f64vector? (*) boolean)) -(list->f32vector (procedure! list->f32vector (list) (struct f32vector))) -(list->f64vector (procedure! list->f64vector (list) (struct f64vector))) -(list->s16vector (procedure! list->s16vector (list) (struct s16vector))) -(list->s32vector (procedure! list->s32vector (list) (struct s32vector))) -(list->s8vector (procedure! list->s8vector (list) (struct s8vector))) -(list->u16vector (procedure! list->u16vector (list) (struct u16vector))) -(list->u32vector (procedure! list->u32vector (list) (struct u32vector))) -(list->u8vector (procedure! list->u8vector (list) (struct u8vector))) +(list->f32vector (procedure! list->f32vector ((list number)) (struct f32vector))) +(list->f64vector (procedure! list->f64vector ((list number)) (struct f64vector))) +(list->s16vector (procedure! list->s16vector ((list fixnum)) (struct s16vector))) +(list->s32vector (procedure! list->s32vector ((list number)) (struct s32vector))) +(list->s8vector (procedure! list->s8vector ((list fixnum)) (struct s8vector))) +(list->u16vector (procedure! list->u16vector ((list fixnum)) (struct u16vector))) +(list->u32vector (procedure! list->u32vector ((list number)) (struct u32vector))) +(list->u8vector (procedure! list->u8vector ((list fixnum)) (struct u8vector))) (make-f32vector (procedure! make-f32vector (fixnum #!optional * * *) (struct f32vector))) (make-f64vector (procedure! make-f64vector (fixnum #!optional * * *) (struct f64vector))) (make-s16vector (procedure! make-s16vector (fixnum #!optional * * *) (struct s16vector))) @@ -1983,7 +2268,7 @@ (s16vector (procedure! s16vector (#!rest fixnum) (struct s16vector))) (s16vector->blob (procedure! s16vector->blob ((struct s16vector)) blob)) (s16vector->blob/shared (procedure! s16vector->blob/shared ((struct s16vector)) blob)) -(s16vector->list (procedure! s16vector->list ((struct s16vector)) list)) +(s16vector->list (procedure! s16vector->list ((struct s16vector)) (list fixnum))) (s16vector-length (procedure! s16vector-length ((struct s16vector)) fixnum) (((struct s16vector)) (##core#inline "C_u_i_16vector_length" #(1)))) @@ -1996,7 +2281,7 @@ (s32vector (procedure! s32vector (#!rest number) (struct s32vector))) (s32vector->blob (procedure! s32vector->blob ((struct 32vector)) blob)) (s32vector->blob/shared (procedure! s32vector->blob/shared ((struct s32vector)) blob)) -(s32vector->list (procedure! s32vector->list ((struct s32vector)) list)) +(s32vector->list (procedure! s32vector->list ((struct s32vector)) (list number))) (s32vector-length (procedure! s32vector-length ((struct s32vector)) fixnum) (((struct s32vector)) (##core#inline "C_u_i_32vector_length" #(1)))) @@ -2009,7 +2294,7 @@ (s8vector (procedure! s8vector (#!rest fixnum) (struct s8vector))) (s8vector->blob (procedure! s8vector->blob ((struct s8vector)) blob)) (s8vector->blob/shared (procedure! s8vector->blob/shared ((struct s8vector)) blob)) -(s8vector->list (procedure! s8vector->list ((struct s8vector)) list)) +(s8vector->list (procedure! s8vector->list ((struct s8vector)) (list fixnum))) (s8vector-length (procedure! s8vector-length ((struct s8vector)) fixnum) (((struct s8vector)) (##core#inline "C_u_i_8vector_length" #(1)))) @@ -2030,7 +2315,7 @@ (u16vector (procedure! u16vector (#!rest fixnum) (struct u16vector))) (u16vector->blob (procedure! u16vector->blob ((struct u16vector)) blob)) (u16vector->blob/shared (procedure! u16vector->blob/shared ((struct u16vector)) blob)) -(u16vector->list (procedure! u16vector->list ((struct u16vector)) list)) +(u16vector->list (procedure! u16vector->list ((struct u16vector)) (list fixnum))) (u16vector-length (procedure! u16vector-length ((struct u16vector)) fixnum) (((struct u16vector)) (##core#inline "C_u_i_16vector_length" #(1)))) @@ -2043,7 +2328,7 @@ (u32vector (procedure! u32vector (#!rest number) (struct u32vector))) (u32vector->blob (procedure! u32vector->blob ((struct u32vector)) blob)) (u32vector->blob/shared (procedure! u32vector->blob/shared ((struct u32vector)) blob)) -(u32vector->list (procedure! u32vector->list ((struct u32vector)) list)) +(u32vector->list (procedure! u32vector->list ((struct u32vector)) (list number))) (u32vector-length (procedure! u32vector-length ((struct u32vector)) fixnum) (((struct u32vector)) (##core#inline "C_u_i_32vector_length" #(1)))) @@ -2056,7 +2341,7 @@ (u8vector (procedure! u8vector (#!rest fixnum) (struct u8vector))) (u8vector->blob (procedure! u8vector->blob ((struct u8vector)) blob)) (u8vector->blob/shared (procedure! u8vector->blob/shared ((struct u8vector)) blob)) -(u8vector->list (procedure! u8vector->list ((struct u8vector)) list)) +(u8vector->list (procedure! u8vector->list ((struct u8vector)) (list fixnum))) (u8vector-length (procedure! u8vector-length ((struct u8vector)) fixnum) (((struct u8vector)) (##core#inline "C_u_i_8vector_length" #(1)))) @@ -2068,15 +2353,16 @@ (write-u8vector (procedure! write-u8vector ((struct u8vector) #!optional port fixnum fixnum) undefined)) + ;; srfi-69 -(alist->hash-table (procedure! alist->hash-table (list #!rest) (struct hash-table))) +(alist->hash-table (procedure! alist->hash-table ((list pair) #!rest) (struct hash-table))) (eq?-hash (procedure! eq?-hash (* #!optional fixnum) fixnum)) (equal?-hash (procedure! equal?-hash (* #!optional fixnum) fixnum)) (eqv?-hash (procedure! eqv?-hash (* #!optional fixnum) fixnum)) (hash (procedure! hash (* #!optional fixnum) fixnum)) (hash-by-identity (procedure! hash-by-identity (* #!optional fixnum) fixnum)) -(hash-table->alist (procedure! hash-table->alist ((struct hash-table)) list)) +(hash-table->alist (procedure! hash-table->alist ((struct hash-table)) (list pair))) (hash-table-clear! (procedure! hash-table-clear! ((struct hash-table)) undefined)) (hash-table-copy (procedure! hash-table-copy ((struct hash-table)) (struct hash-table))) (hash-table-delete! (procedure! hash-table-delete! ((struct hash-table) *) boolean)) @@ -2137,6 +2423,7 @@ (string-hash-ci (procedure! string-hash-ci (string #!optional fixnum fixnum fixnum) number)) (string-ci-hash (procedure! string-ci-hash (string #!optional fixnum fixnum fixnum) number)) + ;; tcp (tcp-abandon-port (procedure! tcp-abandon-port (port) undefined)) @@ -2161,6 +2448,7 @@ (tcp-read-timeout (procedure! tcp-read-timeout (#!optional number) number)) (tcp-write-timeout (procedure! tcp-write-timeout (#!optional number) number)) + ;; utils (for-each-argv-line deprecated) @@ -2169,6 +2457,6 @@ (system* (procedure! system* (string #!rest) undefined)) (qs (procedure! qs (string) string)) (compile-file (procedure! compile-file (string #!rest) (or boolean string))) -(compile-file-options (procedure! compile-file-options (#!optional list) list)) +(compile-file-options (procedure! compile-file-options (#!optional (list string)) (list string))) (scan-input-lines (procedure! scan-input-lines (* #!optional port) *)) (yes-or-no? (procedure! yes-or-no? (string #!rest) *)) diff --git a/types.db.new b/types.db.new deleted file mode 100644 index db17f7f6..00000000 --- a/types.db.new +++ /dev/null @@ -1,2462 +0,0 @@ -;;;; types.db - Type-information for core library functions -*- Scheme -*- -; -; Copyright (c)2009-2011, The Chicken Team -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following -; conditions are met: -; -; Redistributions of source code must retain the above copyright notice, this list of conditions and the following -; disclaimer. -; Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -; disclaimer in the documentation and/or other materials provided with the distribution. -; Neither the name of the author nor the names of its contributors may be used to endorse or promote -; products derived from this software without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS -; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -; AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR -; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -; SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY -; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -; OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -; POSSIBILITY OF SUCH DAMAGE. - - -;;; Notes: -; -; - numeric types are disjoint, "fixnum" or "float" will not match "number" in the -; rewrite rules -; - for a description of the type-specifier syntax, see "scrutinizer.scm" (top of file) -; - in templates, "#(INTEGER)" refers to the INTEGERth argument (starting from 1) -; - in templates, "#(INTEGER ...)" refers to the INTEGERth argument (starting from 1) and -; all remaining arguments -; - in templates "#(SYMBOL)" binds X to a temporary gensym'd variable, further references -; to "#(SYMBOL)" allow backreferences to this generated identifier -; - a type of the form "(procedure! ...)" is internally treated like "(procedure ..." -; but declares the procedure as "argument-type enforcing" -; - a type of the form "(procedure? TYPE ...)" is internally treated like "(procedure ..." -; but declares the procedure as a predicate over TYPE. -; - a type of the form "(procedure!? TYPE ...)" or "(procedure?! TYPE ...)" is the obvious. -; - types in specializations are currently not validated - - -;; scheme - -(not (procedure not (*) boolean) - (((not boolean)) (let ((#(tmp) #(1))) '#t))) - -(boolean? (procedure? boolean boolean? (*) boolean)) - -(eq? (procedure eq? (* *) boolean)) - -(eqv? (procedure eqv? (* *) boolean) - (((not float) *) (eq? #(1) #(2))) - ((* (not float)) (eq? #(1) #(2)))) - -(equal? (procedure equal? (* *) boolean) - (((or fixnum symbol char eof null undefined) *) (eq? #(1) #(2))) - ((* (or fixnum symbol char eof null undefined)) (eq? #(1) #(2)))) - -(pair? (procedure? pair pair? (*) boolean)) - -(cons (forall (a b) (procedure cons (a b) (pair a b)))) - -(##sys#cons (forall (a b) (procedure ##sys#cons (a b) (pair a b)))) - -(car (forall (a) (procedure! car ((pair a *)) a)) ((pair) (##core#inline "C_u_i_car" #(1)))) -(cdr (forall (a) (procedure! cdr ((pair * a)) a)) ((pair) (##core#inline "C_u_i_cdr" #(1)))) - -(caar (forall (a) (procedure! caar ((pair (pair a *) *)) a)) - (((pair (pair * *) *)) (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1))))) -(cadr (forall (a) (procedure! cadr ((pair * (pair a *))) a)) - (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))) -(cdar (forall (a) (procedure! cdar ((pair (pair * a) *)) a)) - (((pair (pair * *) *)) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1))))) -(cddr (forall (a) (procedure! cddr ((pair * (pair * a))) a)) - (((pair * (pair * *))) (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1))))) - -(caaar (forall (a) (procedure! caaar ((pair (pair (pair a *) *) *)) a)) - (((pair (pair (pair * *) *) *)) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))) - -(caadr (forall (a) (procedure! caadr ((pair * (pair (pair a *) *))) a)) - (((pair * (pair (pair * *) *))) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))) - -(cadar (forall (a) (procedure! cadar ((pair (pair * (pair a *)) *)) a)) - (((pair (pair * (pair * *)) *)) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))) - -(caddr (forall (a) (procedure! caddr ((pair * (pair * (pair a *)))) a)) - (((pair * (pair * (pair * *)))) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) - -(cdaar (forall (a) (procedure! cdaar ((pair (pair (pair * a) *) *)) a)) - (((pair (pair (pair * *) *) *)) - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_car" (##core#inline "C_u_i_car" #(1)))))) - -(cdadr (forall (a) (procedure! cdadr ((pair * (pair (pair * a) *))) a)) - (((pair * (pair (pair * *) *))) - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1)))))) - -(cddar (forall (a) (procedure! cddar ((pair (pair * (pair * a)) *)) a)) - (((pair (pair * (pair * *)) *)) - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_car" #(1)))))) - -(cdddr (forall (a) (procedure! cdddr ((pair * (pair * (pair * a)))) a)) - (((pair * (pair * (pair * *)))) - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) - -(caaaar (forall (a) (procedure! caaaar ((pair (pair (pair (pair a *) *) *) *)) a))) -(caaadr (forall (a) (procedure! caaadr ((pair * (pair (pair (pair a *) *) *))) a))) -(caadar (forall (a) (procedure! caadar ((pair (pair * (pair (pair a *) *)) *)) a))) -(caaddr (forall (a) (procedure! caaddr ((pair * (pair * (pair (pair a *) *)))) a))) -(cadaar (forall (a) (procedure! cadaar ((pair (pair (pair * (pair a *)) *) *)) a))) -(cadadr (forall (a) (procedure! cadadr ((pair * (pair (pair * (pair a *)) *))) a))) -(caddar (forall (a) (procedure! caddar ((pair (pair * (pair * (pair a *))) *)) a))) -(cadddr (forall (a) (procedure! cadddr ((pair * (pair * (pair * (pair a *))))) a))) -(cdaaar (forall (a) (procedure! cdaaar ((pair (pair (pair (pair * a) *) *) *)) a))) -(cdaadr (forall (a) (procedure! cdaadr ((pair * (pair (pair (pair * a) *) *))) a))) -(cdadar (forall (a) (procedure! cdadar ((pair (pair * (pair (pair * a) *)) *)) a))) -(cdaddr (forall (a) (procedure! cdaddr ((pair * (pair * (pair (pair * a) *)))) a))) -(cddaar (forall (a) (procedure! cddaar ((pair (pair (pair * (pair * a)) *) *)) a))) -(cddadr (forall (a) (procedure! cddadr ((pair * (pair (pair * (pair * a)) *))) a))) -(cdddar (forall (a) (procedure! cdddar ((pair (pair * (pair * (pair * a))) *)) a))) -(cddddr (forall (a) (procedure! cddddr ((pair * (pair * (pair * (pair * a))))) a))) - -(set-car! (procedure! set-car! (pair *) undefined) - ((pair (or fixnum char boolean eof null undefined)) (##sys#setislot #(1) '0 #(2))) - ((pair *) (##sys#setslot #(1) '0 #(2)))) - -(set-cdr! (procedure! set-cdr! (pair *) undefined) - ((pair (or fixnum char boolean eof null undefined)) (##sys#setislot #(1) '1 #(2))) - ((pair *) (##sys#setslot #(1) '1 #(2)))) - -(null? (procedure? null null? (*) boolean)) -(list? (procedure? list list? (*) boolean)) - -(list (procedure list (#!rest) list)) -(##sys#list (procedure ##sys#list (#!rest) list)) -(length (procedure! length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) -(##sys#length (procedure! ##sys#length (list) fixnum) ((list) (##core#inline "C_u_i_length" #(1)))) -(list-tail (forall (a) (procedure! list-tail ((list a) fixnum) (list a)))) -(list-ref (forall (a) (procedure! list-ref ((list a) fixnum) a))) -(append (procedure append (list #!rest) *)) -(##sys#append (procedure ##sys#append (list #!rest) *)) -(reverse (forall (a) (procedure! reverse ((list a)) (list a)))) -(memq (procedure memq (* list) *) ((* list) (##core#inline "C_u_i_memq" #(1) #(2)))) - -(memv (procedure memv (* list) *) - (((or fixnum boolean char eof undefined null) list) - (##core#inline "C_u_i_memq" #(1) #(2)))) - -;; this may be a bit much... -(member (forall (a) (procedure member (* list #!optional (procedure (* *) *)) *)) - (((or fixnum boolean char eof undefined null) list) - (##core#inline "C_u_i_memq" #(1) #(2))) - ((* (list (or fixnum boolean char eof undefined null))) - (##core#inline "C_u_i_memq" #(1) #(2)))) - -(assq (procedure assq (* list) *) ((* list) (##core#inline "C_u_i_assq" #(1) #(2)))) - -(assv (procedure assv (* list) *) - (((or fixnum boolean char eof undefined null) list) - (##core#inline "C_u_i_assq" #(1) #(2))) - ((* (list (or fixnum boolean char eof undefined null))) - (##core#inline "C_u_i_assq" #(1) #(2)))) - -(assoc (procedure assoc (* list #!optional (procedure (* *) *)) *) - (((or fixnum boolean char eof undefined null) list) - (##core#inline "C_u_i_assq" #(1) #(2))) - ((* (list (or fixnum boolean char eof undefined null))) - (##core#inline "C_u_i_assq" #(1) #(2)))) - -(symbol? (procedure? symbol symbol? (*) boolean)) - -(symbol-append (procedure! symbol-append (#!rest symbol) symbol)) -(symbol->string (procedure! symbol->string (symbol) string)) -(string->symbol (procedure! string->symbol (string) symbol)) - -(number? (procedure? number number? (*) boolean)) - -;;XXX predicate? -(integer? (procedure integer? (*) boolean) - ((fixnum) (let ((#(tmp) #(1))) '#t)) - ((float) (##core#inline "C_u_i_fpintegerp" #(1)))) - -(exact? (procedure? fixnum exact? (*) boolean)) -(real? (procedure? number real? (*) boolean)) -(complex? (procedure? number complex? (*) boolean)) -(inexact? (procedure? float inexact? (*) boolean)) - -;;XXX predicate? -(rational? (procedure rational? (*) boolean) - ((fixnum) (let ((#(tmp) #(1))) '#t))) - -(zero? (procedure! zero? (number) boolean) - ((fixnum) (eq? #(1) '0)) - ((number) (##core#inline "C_u_i_zerop" #(1)))) - -(odd? (procedure! odd? (number) boolean) ((fixnum) (fxodd? #(1)))) -(even? (procedure! even? (number) boolean) ((fixnum) (fxeven? #(1)))) - -(positive? (procedure! positive? (number) boolean) - ((fixnum) (##core#inline "C_fixnum_greaterp" #(1) '0)) - ((number) (##core#inline "C_u_i_positivep" #(1)))) - -(negative? (procedure! negative? (number) boolean) - ((fixnum) (##core#inline "C_fixnum_lessp" #(1) '0)) - ((number) (##core#inline "C_u_i_negativep" #(1)))) - -(max (procedure! max (#!rest number) number) - ((fixnum fixnum) (fxmax #(1) #(2))) - ((float float) (##core#inline "C_i_flonum_max" #(1) #(2)))) - -(min (procedure! min (#!rest number) number) - ((fixnum fixnum) (fxmin #(1) #(2))) - ((float float) (##core#inline "C_i_flonum_min" #(1) #(2)))) - -(+ (procedure! + (#!rest number) number) - (() (fixnum) '0) - ((fixnum) (fixnum) #(1)) - ((float) (float) #(1)) - ((number) #(1)) - ((float fixnum) (float) - (##core#inline_allocate - ("C_a_i_flonum_plus" 4) - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) - (float) - (##core#inline_allocate - ("C_a_i_flonum_plus" 4) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (float) - (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) #(2)))) - -(- (procedure! - (number #!rest number) number) - ((fixnum) (fixnum) - (##core#inline "C_u_fixnum_negate" #(1))) - ((float fixnum) (float) - (##core#inline_allocate - ("C_a_i_flonum_difference" 4) - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (float) - (##core#inline_allocate - ("C_a_i_flonum_difference" 4) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (float) - (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) #(2))) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1)))) - -(* (procedure! * (#!rest number) number) - (() (fixnum) '1) - ((fixnum) (fixnum) #(1)) - ((float) (float) #(1)) - ((number) (number) #(1)) - ((float fixnum) (float) - (##core#inline_allocate - ("C_a_i_flonum_times" 4) - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (float) - (##core#inline_allocate - ("C_a_i_flonum_times" 4) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (float) - (##core#inline_allocate ("C_a_i_flonum_times" 4) #(1) #(2)))) - -(/ (procedure! / (number #!rest number) number) - ((float fixnum) (float) - (##core#inline_allocate - ("C_a_i_flonum_quotient_checked" 4) - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (float) - (##core#inline_allocate - ("C_a_i_flonum_quotient_checked" 4) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (float) - (##core#inline_allocate ("C_a_i_flonum_quotient_checked" 4) #(1) #(2)))) - -(= (procedure! = (#!rest number) boolean) - ((fixnum fixnum) (eq? #(1) #(2))) - ((float fixnum) (##core#inline - "C_flonum_equalp" - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (##core#inline - "C_flonum_equalp" - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (##core#inline "C_flonum_equalp" #(1) #(2)))) - -(> (procedure! > (#!rest number) boolean) - ((fixnum fixnum) (fx> #(1) #(2))) - ((float fixnum) (##core#inline - "C_flonum_greaterp" - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (##core#inline - "C_flonum_greaterp" - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (##core#inline "C_flonum_greaterp" #(1) #(2)))) - -(< (procedure! < (#!rest number) boolean) - ((fixnum fixnum) (fx< #(1) #(2))) - ((float fixnum) (##core#inline - "C_flonum_lessp" - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (##core#inline - "C_flonum_lessp" - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (##core#inline "C_flonum_lessp" #(1) #(2)))) - -(>= (procedure! >= (#!rest number) boolean) - ((fixnum fixnum) (fx>= #(1) #(2))) - ((float fixnum) (##core#inline - "C_flonum_greater_or_equal_p" - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (##core#inline - "C_flonum_greater_or_equal_p" - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (##core#inline "C_flonum_greater_or_equal_p" #(1) #(2)))) - -(<= (procedure! <= (#!rest number) boolean) - ((fixnum fixnum) (fx<= #(1) #(2))) - ((float fixnum) (##core#inline - "C_flonum_less_or_equal_p" - #(1) - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(2)))) - ((fixnum float) (##core#inline - "C_flonum_less_or_equal_p" - (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)) - #(2))) - ((float float) (##core#inline "C_flonum_less_or_equal_p" #(1) #(2)))) - -(quotient (procedure! quotient (number number) number) - ;;XXX flonum/mixed case - ((fixnum fixnum) (fixnum) - (##core#inline "C_fixnum_divide" #(1) #(2)))) - -(remainder (procedure! remainder (number number) number) - ;;XXX flonum/mixed case - ((fixnum fixnum) (fixnum) - (##core#inline "C_fixnum_modulo" #(1) #(2)))) - -(modulo (procedure! modulo (number number) number)) - -(gcd (procedure! gcd (#!rest number) number) ((* *) (##sys#gcd #(1) #(2)))) -(lcm (procedure! lcm (#!rest number) number) ((* *) (##sys#lcm #(1) #(2)))) - -(abs (procedure! abs (number) number) - ((fixnum) (fixnum) - (##core#inline "C_fixnum_abs" #(1))) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1)))) - -(floor (procedure! floor (number) number) - ((fixnum) (fixnum) #(1)) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_floor" 4) #(1)))) - -(ceiling (procedure! ceiling (number) number) - ((fixnum) (fixnum) #(1)) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_ceiling" 4) #(1)))) - -(truncate (procedure! truncate (number) number) - ((fixnum) (fixnum) #(1)) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_truncate" 4) #(1)))) - -(round (procedure! round (number) number) - ((fixnum) (fixnum) #(1)) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_round" 4) #(1)))) - -(exact->inexact (procedure! exact->inexact (number) float) - ((float) #(1)) - ((fixnum) (##core#inline_allocate ("C_a_i_fix_to_flo" 4) #(1)))) - -(inexact->exact (procedure! inexact->exact (number) fixnum) ((fixnum) #(1))) - -(exp (procedure! exp (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_exp" 4) #(1)))) - -(log (procedure! log (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_log" 4) #(1)))) - -(expt (procedure! expt (number number) number) - ((float float) (float) - (##core#inline_allocate ("C_a_i_flonum_expt" 4) #(1) #(2)))) - -(sqrt (procedure! sqrt (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1)))) - -(sin (procedure! sin (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_sin" 4) #(1)))) - -(cos (procedure! cos (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_cos" 4) #(1)))) - -(tan (procedure! tan (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_tan" 4) #(1)))) - -(asin (procedure! asin (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_asin" 4) #(1)))) - -(acos (procedure! acos (number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1)))) - -(atan (procedure! atan (number #!optional number) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1))) - ((float float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4) #(1)))) - -(number->string (procedure! number->string (number #!optional number) string) - ((fixnum) (##sys#fixnum->string #(1)))) - -(string->number (procedure! string->number (string #!optional number) (or number boolean))) - -(char? (procedure? char char? (*) boolean)) - -;; we could rewrite these, but this is done by the optimizer anyway (safe) -(char=? (procedure! char=? (char char) boolean)) -(char>? (procedure! char>? (char char) boolean)) -(char<? (procedure! char<? (char char) boolean)) -(char>=? (procedure! char>=? (char char) boolean)) -(char<=? (procedure! char<=? (char char) boolean)) - -(char-ci=? (procedure! char-ci=? (char char) boolean)) -(char-ci<? (procedure! char-ci<? (char char) boolean)) -(char-ci>? (procedure! char-ci>? (char char) boolean)) -(char-ci>=? (procedure! char-ci>=? (char char) boolean)) -(char-ci<=? (procedure! char-ci<=? (char char) boolean)) -(char-alphabetic? (procedure! char-alphabetic? (char) boolean)) -(char-whitespace? (procedure! char-whitespace? (char) boolean)) -(char-numeric? (procedure! char-numeric? (char) boolean)) -(char-upper-case? (procedure! char-upper-case? (char) boolean)) -(char-lower-case? (procedure! char-lower-case? (char) boolean)) -(char-upcase (procedure! char-upcase (char) char)) -(char-downcase (procedure! char-downcase (char) char)) - -(char->integer (procedure! char->integer (char) fixnum)) -(integer->char (procedure! integer->char (fixnum) char)) - -(string? (procedure? string string? (*) boolean)) - -(string=? (procedure! string=? (string string) boolean) - ((string string) (##core#inline "C_u_i_string_equal_p" #(1) #(2)))) - -(string>? (procedure! string>? (string string) boolean)) -(string<? (procedure! string<? (string string) boolean)) -(string>=? (procedure! string>=? (string string) boolean)) -(string<=? (procedure! string<=? (string string) boolean)) -(string-ci=? (procedure! string-ci=? (string string) boolean)) -(string-ci<? (procedure! string-ci<? (string string) boolean)) -(string-ci>? (procedure! string-ci>? (string string) boolean)) -(string-ci>=? (procedure! string-ci>=? (string string) boolean)) -(string-ci<=? (procedure! string-ci<=? (string string) boolean)) - -(make-string (procedure! make-string (fixnum #!optional char) string) - ((fixnum char) (##sys#make-string #(1) #(2))) - ((fixnum) (##sys#make-string #(1) '#\space))) - -(string-length (procedure! string-length (string) fixnum) - ((string) (##sys#size #(1)))) - -(string-ref (procedure! string-ref (string fixnum) char) - ((string fixnum) (##core#inline "C_subchar" #(1) #(2)))) - -(string-set! (procedure! string-set! (string fixnum char) undefined) - ((string fixnum char) (##core#inline "C_setsubchar" #(1) #(2) #(3)))) - -(string-append (procedure! string-append (#!rest string) string) - ((string string) (##sys#string-append #(1) #(2)))) - -;(string-copy (procedure! string-copy (string) string)) - we use the more general version from srfi-13 - -(string->list (procedure! string->list (string) (list char))) -(list->string (procedure! list->string ((list char)) string)) -(substring (procedure! substring (string fixnum #!optional fixnum) string)) -;(string-fill! (procedure! string-fill! (string char) string)) - s.a. -(string (procedure! string (#!rest char) string)) - -(vector? (procedure? vector vector? (*) boolean)) - -;; not result type "(vector a)", since it may be mutated! -(make-vector (forall (a) (procedure! make-vector (fixnum #!optional a) vector))) - -(vector-ref (forall (a) (procedure! vector-ref ((vector a) fixnum) a))) -(##sys#vector-ref (forall (a) (procedure! ##sys#vector-ref ((vector a) fixnum) a))) -(vector-set! (procedure! vector-set! (vector fixnum *) undefined)) -(vector (procedure vector (#!rest) vector)) -(##sys#vector (procedure ##sys#vector (#!rest) vector)) - -(vector-length (procedure! vector-length (vector) fixnum) - ((vector) (##sys#size #(1)))) -(##sys#vector-length (procedure! ##sys#vector-length (vector) fixnum) - ((vector) (##sys#size #(1)))) - -(vector->list (forall (a) (procedure! vector->list ((vector a)) (list a)))) -(##sys#vector->list (forall (a) (procedure! ##sys#vector->list ((vector a)) (list a)))) -(list->vector (forall (a) (procedure! list->vector ((list a)) (vector a)))) -(##sys#list->vector (forall (a) (procedure! ##sys#list->vector ((list a)) (vector a)))) -(vector-fill! (procedure! vector-fill! (vector *) undefined)) - -(procedure? (procedure? procedure procedure? (*) boolean)) - -(vector-copy! (procedure! vector-copy! (vector vector #!optional fixnum) undefined)) -(map (forall (a b) (procedure! map ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) - -(for-each - (forall (a) (procedure! for-each ((procedure (a #!rest) . *) (list a) #!rest list) undefined))) - -(apply (procedure! apply (procedure #!rest) . *)) -(##sys#apply (procedure! ##sys#apply (procedure #!rest) . *)) - -(force (procedure force (*) *) - (((not (struct promise))) #(1))) - -(call-with-current-continuation - (procedure! call-with-current-continuation ((procedure (procedure) . *)) . *)) - -(input-port? (procedure input-port? (*) boolean)) -(output-port? (procedure output-port? (*) boolean)) - -(current-input-port - (procedure! current-input-port (#!optional port) port) - ((port) (let ((#(tmp1) #(1))) - (let ((#(tmp2) (set! ##sys#standard-input #(tmp1)))) - #(tmp1)))) - (() ##sys#standard-input)) - -(current-output-port - (procedure! current-output-port (#!optional port) port) - ((port) (let ((#(tmp1) #(1))) - (let ((#(tmp2) (set! ##sys#standard-output #(tmp1)))) - #(tmp1)))) - (() ##sys#standard-output)) - -(call-with-input-file - (procedure call-with-input-file (string (procedure (port) . *) #!rest) . *)) - -(call-with-output-file - (procedure call-with-output-file (string (procedure (port) . *) #!rest) . *)) - -(open-input-file (procedure! open-input-file (string #!rest symbol) port)) -(open-output-file (procedure! open-output-file (string #!rest symbol) port)) -(close-input-port (procedure! close-input-port (port) undefined)) -(close-output-port (procedure! close-output-port (port) undefined)) -(load (procedure load (string #!optional (procedure (*) . *)) undefined)) -(read (procedure! read (#!optional port) *)) - -(eof-object? (procedure? eof eof-object? (*) boolean)) - -;;XXX if we had input/output port distinction, we could specialize these: -(read-char (procedure! read-char (#!optional port) *)) ;XXX result (or eof char) ? -(peek-char (procedure! peek-char (#!optional port) *)) - -(write (procedure! write (* #!optional port) undefined)) -(display (procedure! display (* #!optional port) undefined)) -(write-char (procedure! write-char (char #!optional port) undefined)) -(newline (procedure! newline (#!optional port) undefined)) - -(with-input-from-file - (procedure! with-input-from-file (string (procedure () . *) #!rest symbol) . *)) - -(with-output-to-file - (procedure! with-output-to-file (string (procedure () . *) #!rest symbol) . *)) - -(dynamic-wind - (procedure! dynamic-wind ((procedure () . *) (procedure () . *) (procedure () . *)) . *)) - -(values (procedure values (#!rest values) . *)) -(##sys#values (procedure ##sys#values (#!rest values) . *)) - -(call-with-values (procedure! call-with-values ((procedure () . *) procedure) . *) - (((procedure () *) *) (let ((#(tmp1) #(1))) - (let ((#(tmp2) #(2))) - (#(tmp2) (#(tmp1))))))) - -(##sys#call-with-values - (procedure! ##sys#call-with-values ((procedure () . *) procedure) . *) - (((procedure () *) *) (let ((#(tmp1) #(1))) - (let ((#(tmp2) #(2))) - (#(tmp2) (#(tmp1))))))) - -(eval (procedure eval (* #!optional (struct environment)) *)) -(char-ready? (procedure! char-ready? (#!optional port) boolean)) - -(imag-part (procedure! imag-part (number) number) - (((or fixnum float number)) (let ((#(tmp) #(1))) '0))) - -(real-part (procedure! real-part (number) number) - (((or fixnum float number)) #(1))) - -(magnitude (procedure! magnitude (number) number) - ((fixnum) (fixnum) - (##core#inline "C_fixnum_abs" #(1))) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1)))) - -(numerator (procedure! numerator (number) number) - ((fixnum) (fixnum) #(1))) - -(denominator (procedure! denominator (number) number) - ((fixnum) (fixnum) (let ((#(tmp) #(1))) '1))) - -(scheme-report-environment - (procedure! scheme-report-environment (#!optional fixnum) (struct environment))) - -(null-environment - (procedure! null-environment (#!optional fixnum) (struct environment))) - -(interaction-environment - (procedure interaction-environment () (struct environment))) - -(port-closed? (procedure! port-closed? (port) boolean) - ((port) (##sys#slot #(1) '8))) - -;; chicken - -(abort (procedure abort (*) noreturn)) - -(add1 (procedure! add1 (number) number) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) '1.0))) - -(argc+argv (procedure argc+argv () fixnum (list string) fixnum)) -(argv (procedure argv () (list string))) -(arithmetic-shift (procedure! arithmetic-shift (number number) number)) - -(bit-set? (procedure! bit-set? (number fixnum) boolean) - ((fixnum fixnum) (##core#inline "C_u_i_bit_setp" #(1) #(2)))) - -(bitwise-and (procedure! bitwise-and (#!rest number) number) - ((fixnum fixnum) (fixnum) - (##core#inline "C_fixnum_and" #(1) #(2)))) - -(bitwise-ior (procedure! bitwise-ior (#!rest number) number) - ((fixnum fixnum) (fixnum) - (##core#inline "C_fixnum_or" #(1) #(2)))) - -(bitwise-not (procedure! bitwise-not (number) number)) - -(bitwise-xor (procedure! bitwise-xor (#!rest number) number) - ((fixnum fixnum) (fixnum) - (##core#inline "C_fixnum_xor" #(1) #(2)))) - -(blob->string (procedure! blob->string (blob) string)) - -(blob-size (procedure! blob-size (blob) fixnum) - ((blob) (##sys#size #(1)))) - -(blob? (procedure? blob blob? (*) boolean)) - -(blob=? (procedure! blob=? (blob blob) boolean)) -(build-platform (procedure build-platform () symbol)) -(call/cc (procedure! call/cc ((procedure (*) . *)) . *)) -(case-sensitive (procedure case-sensitive (#!optional *) *)) -(char-name (procedure! char-name ((or char symbol) #!optional char) *)) ;XXX -> (or char symbol) ? -(chicken-home (procedure chicken-home () string)) -(chicken-version (procedure chicken-version (#!optional *) string)) -(command-line-arguments (procedure command-line-arguments (#!optional (list string)) (list string))) -(condition-predicate (procedure! condition-predicate (symbol) (procedure ((struct condition)) boolean))) -(condition-property-accessor (procedure! condition-property-accessor (symbol symbol #!optional *) (procedure ((struct condition)) *))) - -(condition? (procedure? (struct condition) condition? (*) boolean)) - -(condition->list (procedure! condition->list ((struct condition)) (list (pair symbol *)))) -(continuation-capture (procedure! continuation-capture ((procedure ((struct continuation)) . *)) *)) -(continuation-graft (procedure! continuation-graft ((struct continuation) (procedure () . *)) *)) -(continuation-return (procedure! continuation-return (procedure #!rest) . *)) ;XXX make return type more specific? - -(continuation? (procedure? (struct continuation) continuation? (*) boolean)) - -(copy-read-table (procedure! copy-read-table ((struct read-table)) (struct read-table))) -(cpu-time (procedure cpu-time () fixnum fixnum)) - -(current-error-port - (procedure! current-error-port (#!optional port) port) - ((port) (let ((#(tmp1) #(1))) - (let ((#(tmp2) (set! ##sys#standard-error #(tmp1)))) - #(tmp1)))) - (() ##sys#standard-error)) - -(current-exception-handler - (procedure! current-exception-handler (#!optional (procedure (*) noreturn)) procedure) - ((procedure) (let ((#(tmp1) #(1))) - (let ((#(tmp2) (set! ##sys#current-exception-handler #(tmp1)))) - #(tmp1)))) - (() ##sys#current-exception-handler)) - -(current-gc-milliseconds (procedure current-gc-milliseconds () fixnum)) -(current-milliseconds (procedure current-milliseconds () float)) - -(current-read-table - (procedure current-read-table (#!optional (struct read-table)) (struct read-table))) - -(current-seconds (procedure current-seconds () float)) -(define-reader-ctor (procedure! define-reader-ctor (symbol procedure) undefined)) -(delete-file (procedure! delete-file (string) string)) -(enable-warnings (procedure enable-warnings (#!optional *) *)) - -(equal=? (procedure equal=? (* *) boolean) - (((or fixnum symbol char eof null undefined) *) (eq? #(1) #(2))) - ((* (or fixnum symbol char eof null undefined)) (eq? #(1) #(2))) - (((or float number) (or float number)) (= #(1) #(2)))) - -(er-macro-transformer - (procedure! - er-macro-transformer - ((procedure (* (procedure (*) *) (procedure (* *) *)) *)) - (struct transformer))) - -(errno (procedure errno () fixnum)) -(error (procedure error (* #!rest) noreturn)) -(##sys#error (procedure ##sys#error (* #!rest) noreturn)) -(##sys#signal-hook (procedure ##sys#signal-hook (* #!rest) noreturn)) -(exit (procedure exit (#!optional fixnum) noreturn)) -(exit-handler (procedure! exit-handler (#!optional (procedure (fixnum) . *)) procedure)) -(expand (procedure expand (* #!optional list) *)) -(extension-information (procedure extension-information (symbol) *)) -(feature? (procedure feature? (symbol) boolean)) -(features (procedure features () (list symbol))) -(file-exists? (procedure! file-exists? (string) *)) -(directory-exists? (procedure! directory-exists? (string) *)) -(fixnum-bits fixnum) -(fixnum-precision fixnum) - -(fixnum? (procedure? fixnum fixnum? (*) boolean)) - -(flonum-decimal-precision fixnum) -(flonum-epsilon float) -(flonum-maximum-decimal-exponent fixnum) -(flonum-maximum-exponent fixnum) -(flonum-minimum-decimal-exponent fixnum) -(flonum-minimum-exponent fixnum) -(flonum-precision fixnum) -(flonum-print-precision (procedure! (#!optional fixnum) fixnum)) -(flonum-radix fixnum) - -(flonum? (procedure? float flonum? (*) boolean)) - -(flush-output (procedure! flush-output (#!optional port) undefined)) - -(foldl (forall (a b) (procedure! foldl ((procedure (a b) a) a (list b)) a))) -(foldr (forall (a b) (procedure! foldr ((procedure (a b) b) b (list a)) b))) - -(force-finalizers (procedure force-finalizers () undefined)) - -(fp- (procedure! fp- (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) #(2)) )) - -(fp* (procedure! fp* (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_times" 4) #(1) #(2)) )) - -(fp/ (procedure! fp/ (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_quotient" 4) #(1) #(2)) )) - -(fp+ (procedure! fp+ (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_plus" 4) #(1) #(2)) )) - -(fp< (procedure! fp< (float float) boolean) - ((float float) (##core#inline "C_flonum_lessp" #(1) #(2)) )) - -(fp<= (procedure! fp<= (float float) boolean) - ((float float) (##core#inline "C_flonum_less_or_equal_p" #(1) #(2)) )) - -(fp= (procedure! fp= (float float) boolean) - ((float float) (##core#inline "C_flonum_equalp" #(1) #(2)) )) - -(fp> (procedure! fp> (float float) boolean) - ((float float) (##core#inline "C_flonum_greaterp" #(1) #(2)) )) - -(fp>= (procedure! fp>= (float float) boolean) - ((float float) (##core#inline "C_flonum_greater_or_equal_p" #(1) #(2)) )) - -(fpabs (procedure! fpabs (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_abs" 4) #(1) ))) - -(fpacos (procedure! fpacos (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_acos" 4) #(1) ))) - -(fpasin (procedure! fpasin (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_asin" 4) #(1) ))) - -(fpatan (procedure! fpatan (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_atan" 4) #(1) ))) - -(fpatan2 (procedure! fpatan2 (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_atan2" 4) - #(1) #(2)))) -(fpceiling (procedure! fpceiling (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_ceiling" 4) #(1) ))) - -(fpcos (procedure! fpcos (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_cos" 4) #(1) ))) - -(fpexp (procedure! fpexp (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_exp" 4) #(1) ))) - -(fpexpt (procedure! fpexpt (float float) float) - ((float float) (##core#inline_allocate ("C_a_i_flonum_expt" 4) - #(1) #(2)))) - -(fpfloor (procedure! fpfloor (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_floor" 4) #(1) ))) - -(fpinteger? (procedure! fpinteger? (float) boolean) - ((float) (##core#inline "C_u_i_flonum_intergerp" #(1) ))) - -(fplog (procedure! fplog (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_log" 4) #(1) ))) - -(fpmax (procedure! fpmax (float float) float) - ((float float) (##core#inline "C_i_flonum_max" #(1) #(2)))) - -(fpmin (procedure! fpmin (float float) float) - ((float float) (##core#inline "C_i_flonum_min" #(1) #(2)))) - -(fpneg (procedure! fpneg (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_negate" 4) #(1) ))) - -(fpround (procedure! fpround (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_round" 4) #(1) ))) - -(fpsin (procedure! fpsin (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_sin" 4) #(1) ))) - -(fpsqrt (procedure! fpsqrt (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_sqrt" 4) #(1) ))) - -(fptan (procedure! fptan (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_tan" 4) #(1) ))) - -(fptruncate (procedure! fptruncate (float) float) - ((float) (##core#inline_allocate ("C_a_i_flonum_truncate" 4) #(1) ))) - -(fx- (procedure fx- (fixnum fixnum) fixnum)) -(fx* (procedure fx* (fixnum fixnum) fixnum)) -(fx/ (procedure fx/ (fixnum fixnum) fixnum)) -(fx+ (procedure fx+ (fixnum fixnum) fixnum)) -(fx< (procedure fx< (fixnum fixnum) boolean)) -(fx<= (procedure fx<= (fixnum fixnum) boolean)) -(fx= (procedure fx= (fixnum fixnum) boolean)) -(fx> (procedure fx> (fixnum fixnum) boolean)) -(fx>= (procedure fx>= (fixnum fixnum) boolean)) -(fxand (procedure fxand (fixnum fixnum) fixnum)) -(fxeven? (procedure fxeven? (fixnum) boolean)) -(fxior (procedure fxior (fixnum fixnum) fixnum)) -(fxmax (procedure fxmax (fixnum fixnum) fixnum)) -(fxmin (procedure fxmin (fixnum fixnum) fixnum)) -(fxmod (procedure fxmod (fixnum fixnum) fixnum)) -(fxneg (procedure fxneg (fixnum) fixnum)) -(fxnot (procedure fxnot (fixnum) fixnum)) -(fxodd? (procedure fxodd? (fixnum) boolean)) -(fxshl (procedure fxshl (fixnum fixnum) fixnum)) -(fxshr (procedure fxshr (fixnum fixnum) fixnum)) -(fxxor (procedure fxxor (fixnum fixnum) fixnum)) -(gc (procedure gc (#!optional *) fixnum)) -(gensym (procedure gensym (#!optional (or string symbol)) symbol)) - -(get (procedure! get (symbol symbol #!optional *) *) - ((symbol symbol *) (##core#inline "C_i_getprop" #(1) #(2) #(3)))) - -(get-call-chain (procedure! get-call-chain (#!optional fixnum (struct thread)) (list vector))) -(get-condition-property (procedure! get-condition-property ((struct condition) symbol symbol #!optional *) *)) -(get-environment-variable (procedure! get-environment-variable (string) *)) -(get-keyword (procedure! get-keyword (symbol list #!optional *) *)) -(get-output-string (procedure! get-output-string (port) string)) -(get-properties (procedure! get-properties (symbol list) symbol * list)) - -(getter-with-setter - (procedure! - getter-with-setter - ((procedure (#!rest) *) (procedure (* #!rest) . *) #!optional string) - procedure)) - -(implicit-exit-handler - (procedure! implicit-exit-handler (#!optional (procedure () . *)) procedure)) - -(ir-macro-transformer - (procedure - ir-macro-transformer - ((procedure (* (procedure (*) *) (procedure (* *) *)) *)) - (struct transformer))) - -(keyword->string (procedure! keyword->string (symbol) string)) -(keyword-style (procedure keyword-style (#!optional symbol) symbol)) -(keyword? (procedure keyword? (*) boolean)) -(load-library (procedure! load-library (symbol #!optional string) undefined)) -(load-relative (procedure! load-relative (string #!optional (procedure (*) . *)) undefined)) -(load-verbose (procedure load-verbose (#!optional *) *)) -(machine-byte-order (procedure machine-byte-order () symbol)) -(machine-type (procedure machine-type () symbol)) - -(make-blob (procedure! make-blob (fixnum) blob) - ((fixnum) (##sys#make-blob #(1)))) - -(make-composite-condition (procedure! make-composite-condition (#!rest (struct condition)) (struct condition))) -(make-parameter (procedure! make-parameter (* #!optional procedure) procedure)) -(make-property-condition (procedure! make-property-condition (symbol #!rest *) (struct condition))) -(maximum-flonum float) -(memory-statistics (procedure memory-statistics () (vector fixnum))) -(minimum-flonum float) -(most-negative-fixnum fixnum) -(most-positive-fixnum fixnum) -(on-exit (procedure! on-exit ((procedure () . *)) undefined)) -(open-input-string (procedure! open-input-string (string #!rest) port)) -(open-output-string (procedure open-output-string (#!rest) port)) -(parentheses-synonyms (procedure parentheses-synonyms (#!optional *) *)) - -(port-name (procedure! port-name (#!optional port) *) - ((port) (##sys#slot #(1) '3))) - -(port-position (procedure! port-position (#!optional port) fixnum)) - -(port? (procedure? port port? (*) boolean)) - -(print (procedure print (#!rest *) undefined)) -(print-call-chain (procedure! print-call-chain (#!optional port fixnum * string) undefined)) -(print-error-message (procedure! print-error-message (* #!optional port string) undefined)) -(print* (procedure print* (#!rest) undefined)) -(procedure-information (procedure! procedure-information (procedure) *)) -(program-name (procedure! program-name (#!optional string) string)) -(promise? (procedure? (struct promise) promise? (*) boolean)) - -(put! (procedure! put! (symbol symbol *) undefined) - ((symbol symbol *) - (##core#inline_allocate ("C_a_i_putprop" 8) #(1) #(2) #(3)))) - -(quit (procedure quit (#!optional *) noreturn)) -(register-feature! (procedure! register-feature! (#!rest symbol) undefined)) -(remprop! (procedure! remprop! (symbol symbol) undefined)) -(rename-file (procedure! rename-file (string string) string)) -(repl (procedure! repl (#!optional (procedure (*) . *)) undefined)) -(repl-prompt (procedure! repl-prompt (#!optional (procedure () string)) procedure)) -(repository-path (procedure repository-path (#!optional *) *)) -(require (procedure require (#!rest (or string symbol)) undefined)) -(reset (procedure reset () noreturn)) -(reset-handler (procedure! reset-handler (#!optional (procedure () . *)) procedure)) -(return-to-host (procedure return-to-host () . *)) -(reverse-list->string (procedure! reverse-list->string ((list char)) string)) -(set-finalizer! (procedure! set-finalizer! (* (procedure (*) . *)) *)) -(set-gc-report! (procedure set-gc-report! (*) undefined)) - -(set-parameterized-read-syntax! - (procedure! set-parameterized-read-syntax! (char (procedure (port fixnum) . *)) undefined)) - -(set-port-name! (procedure! set-port-name! (port string) undefined) - ((port string) (##sys#setslot #(1) '3 #(2)))) - -(set-read-syntax! (procedure! set-read-syntax! (char (procedure (port) . *)) undefined)) -(set-sharp-read-syntax! (procedure! set-sharp-read-syntax! (char (procedure (port) . *)) undefined)) -(setter (procedure! setter (procedure) procedure)) -(signal (procedure signal (*) . *)) -(signum (procedure! signum (number) number)) -(software-type (procedure software-type () symbol)) -(software-version (procedure software-version () symbol)) -(string->blob (procedure! string->blob (string) blob)) -(string->keyword (procedure! string->keyword (string) symbol)) -(string->uninterned-symbol (procedure! string->uninterned-symbol (string) symbol)) -(strip-syntax (procedure strip-syntax (*) *)) - -(sub1 (procedure! sub1 (number) number) - ((float) (float) - (##core#inline_allocate ("C_a_i_flonum_difference" 4) #(1) '1.0))) - -(subvector (forall (a) (procedure! subvector ((vector a) fixnum #!optional fixnum) (vector a)))) -(symbol-escape (procedure symbol-escape (#!optional *) *)) - -(symbol-plist (procedure! symbol-plist (symbol) list) - ((symbol) (##sys#slot #(1) '2))) - -(syntax-error (procedure syntax-error (* #!rest) noreturn)) -(system (procedure! system (string) fixnum)) -(unregister-feature! (procedure! unregister-feature! (#!rest symbol) undefined)) -(vector-resize (forall (a) (procedure! vector-resize ((vector a) fixnum) (vector a)))) -(void (procedure void (#!rest) undefined)) -(warning (procedure warning (* #!rest) undefined)) - -(with-exception-handler - (procedure! with-exception-handler ((procedure (*) . *) (procedure () . *)) . *)) - - -;; chicken (internal) - -(##sys#foreign-char-argument (procedure! ##sys#foreign-char-argument (char) char) - ((char) #(1))) -(##sys#foreign-fixnum-argument (procedure! ##sys#foreign-fixnum-argument (fixnum) fixnum) - ((fixnum) #(1))) -(##sys#foreign-flonum-argument (procedure! ##sys#foreign-flonum-argument (number) number) - ((float) #(1))) -(##sys#foreign-string-argument (procedure! ##sys#foreign-string-argument (string) string) - ((string) #(1))) -(##sys#foreign-symbol-argument (procedure! ##sys#foreign-symbol-argument (symbol) symbol) - ((symbol) #(1))) -(##sys#foreign-pointer-argument (procedure! ##sys#foreign-pointer-argument (pointer) pointer) - ((pointer) #(1))) - -(##sys#check-blob (procedure! ##sys#check-blob (blob #!optional *) *) - ((blob) (let ((#(tmp) #(1))) '#t)) - ((blob *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-pair (procedure! ##sys#check-pair (pair #!optional *) *) - ((pair) (let ((#(tmp) #(1))) '#t)) - ((pair *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-list (procedure! ##sys#check-list (list #!optional *) *) - (((or null pair list)) (let ((#(tmp) #(1))) '#t)) - (((or null pair list) *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-string (procedure! ##sys#check-string (string #!optional *) *) - ((string) (let ((#(tmp) #(1))) '#t)) - ((string) * (let ((#(tmp) #(1))) '#t))) -(##sys#check-number (procedure! ##sys#check-number (number #!optional *) *) - ((number) (let ((#(tmp) #(1))) '#t)) - ((number *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-exact (procedure! ##sys#check-exact (fixnum #!optional *) *) - ((fixnum) (let ((#(tmp) #(1))) '#t)) - ((fixnum *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-inexact (procedure! ##sys#check-inexact (float #!optional *) *) - ((float) (let ((#(tmp) #(1))) '#t)) - ((float *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-symbol (procedure! ##sys#check-symbol (symbol #!optional *) *) - ((symbol) (let ((#(tmp) #(1))) '#t)) - ((symbol *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-vector (procedure! ##sys#check-vector (vector #!optional *) *) - ((vector) (let ((#(tmp) #(1))) '#t)) - ((vector *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-char (procedure! ##sys#check-char (char #!optional *) *) - ((char) (let ((#(tmp) #(1))) '#t)) - ((char *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-boolean (procedure! ##sys#check-boolean (boolean #!optional *) *) - ((boolean) (let ((#(tmp) #(1))) '#t)) - ((boolean *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-locative (procedure! ##sys#check-locative (locative #!optional *) *) - ((locative) (let ((#(tmp) #(1))) '#t)) - ((locative *) (let ((#(tmp) #(1))) '#t))) -(##sys#check-closure (procedure! ##sys#check-closure (procedure #!optional *) *) - ((procedure) (let ((#(tmp) #(1))) '#t)) - ((procedure *) (let ((#(tmp) #(1))) '#t))) - - -;; data-structures - -(->string (procedure ->string (*) string) - ((string) #(1))) - -(alist-ref (procedure! alist-ref (* (list pair) #!optional (procedure (* *) *) *) *)) -(alist-update! (procedure! alist-update! (* * (list pair) #!optional (procedure (* *) *)) *)) -(always? deprecated) - -(any? (procedure any? (*) boolean) - ((*) (let ((#(tmp) #(1))) '#t))) - -(atom? (procedure atom? (*) boolean) - ((pair) (let ((#(tmp) #(1))) '#f)) - (((not (or pair list))) (let ((#(tmp) #(1))) '#t))) - -(binary-search (forall (a) (procedure! binary-search ((vector a) (procedure (a) *)) *))) -(butlast (forall (a) (procedure! butlast ((pair a *)) (list a)))) -(chop (forall (a) (procedure! chop ((list a) fixnum) (list a)))) -(complement (procedure! complement ((procedure (#!rest) *)) (procedure (#!rest) boolean))) -(compose (procedure! compose (#!rest procedure) procedure)) -(compress (forall (a) (procedure! compress (list (list a)) (list a)))) -(conc (procedure conc (#!rest) string)) -(conjoin (procedure! conjoin (#!rest (procedure (*) *)) (procedure (*) *))) -(constantly (forall (a) (procedure constantly (a) (procedure (#!rest) a)))) -(disjoin (procedure! disjoin (#!rest (procedure (*) *)) (procedure (*) *))) -(each (procedure! each (#!rest procedure) procedure)) -(flatten (procedure! flatten (pair) list)) -(flip (procedure! flip ((procedure (* *) . *)) (procedure (* *) . *))) -(identity (forall (a) (procedure identity (a) a))) -(intersperse (procedure! intersperse (list *) list)) -(join (procedure! join (list list) list)) -(list->queue (procedure! list->queue (list) (struct queue))) -(list-of? (procedure! list-of? ((procedure (*) *)) (procedure (list) boolean))) -(make-queue (procedure make-queue () (struct queue))) -(merge (procedure! merge (list list (procedure (* *) *)) list)) -(merge! (procedure! merge! (list list (procedure (* *) *)) list)) -(never? deprecated) -(none? deprecated) -(o (procedure! o (#!rest (procedure (*) *)) (procedure (*) *))) -(queue->list (procedure! queue->list ((struct queue)) list)) -(queue-add! (procedure! queue-add! ((struct queue) *) undefined)) - -(queue-empty? (procedure! queue-empty? ((struct queue)) boolean) - (((struct queue)) (##core#inline "C_i_nullp" (##sys#slot #(1) '1)))) - -(queue-first (procedure! queue-first ((struct queue)) *)) -(queue-last (procedure! queue-last ((struct queue)) *)) - -(queue-length (procedure! queue-length ((struct queue)) fixnum) - (((struct queue)) (##sys#slot #(1) '3))) - -(queue-push-back! (procedure! queue-push-back! ((struct queue) *) undefined)) -(queue-push-back-list! (procedure! queue-push-back-list! ((struct queue) list) undefined)) -(queue-remove! (procedure! queue-remove! ((struct queue)) *)) -(queue? (procedure? (struct queue) queue? (*) boolean)) - -(rassoc (procedure! rassoc (* (list pair) #!optional (procedure (* *) *)) *)) -(reverse-string-append (procedure! reverse-string-append ((list string)) string)) -(shuffle deprecated) -(sort (procedure! sort ((or list vector) (procedure (* *) *)) (or list vector))) -(sort! (procedure! sort! ((or list vector) (procedure (* *) *)) (or list vector))) -(sorted? (procedure! sorted? ((or list vector) (procedure (* *) *)) boolean)) -(topological-sort (procedure! topological-sort ((list list) (procedure (* *) *)) list)) -(string-chomp (procedure! string-chomp (string #!optional string) string)) -(string-chop (procedure! string-chop (string fixnum) (list string))) -(string-compare3 (procedure! string-compare3 (string string) fixnum)) -(string-compare3-ci (procedure! string-compare3-ci (string string) fixnum)) -(string-intersperse (procedure! string-intersperse ((list string) #!optional string) string)) -(string-split (procedure! string-split (string #!optional string *) (list string))) -(string-translate (procedure! string-translate (string * #!optional *) string)) -(string-translate* (procedure! string-translate* (string (list (pair string string))) string)) -(substring-ci=? (procedure! substring-ci=? (string string #!optional fixnum fixnum fixnum) boolean)) - -(substring-index (procedure! substring-index (string string #!optional fixnum) *) - ((* *) (##sys#substring-index #(1) #(2) '0)) - ((* * *) (##sys#substring-index #(1) #(2) #(3)))) - -(substring-index-ci (procedure! substring-index-ci (string string #!optional fixnum) *) - ((* *) (##sys#substring-index-ci #(1) #(2) '0)) - ((* * *) (##sys#substring-index-ci #(1) #(2) #(3)))) - -(substring=? (procedure! substring=? (string string #!optional fixnum fixnum fixnum) boolean)) -(tail? (procedure tail? (* *) boolean)) - - -;; extras - -(format (procedure format (#!rest) *)) -(fprintf (procedure! fprintf (port string #!rest) undefined)) -(pp (procedure! pp (* #!optional port) undefined)) -(pretty-print (procedure! pretty-print (* #!optional port) undefined)) -(pretty-print-width (procedure pretty-print-width (#!optional fixnum) *)) -(printf (procedure! printf (string #!rest) undefined)) -(random (procedure! random (fixnum) fixnum)) -(randomize (procedure! randomize (#!optional fixnum) undefined)) -(read-buffered (procedure! read-buffered (#!optional port) string)) -(read-byte (procedure! read-byte (#!optional port) *)) -(read-file (procedure! read-file (#!optional (or port string) (procedure (port) *) fixnum) list)) -(read-line (procedure! read-line (#!optional port (or boolean fixnum)) *)) -(read-lines (procedure! read-lines (#!optional (or port string) fixnum) (list string))) -(read-string (procedure! read-string (#!optional * port) string)) -(read-string! (procedure! read-string! (fixnum string #!optional port fixnum) fixnum)) -(read-token (procedure! read-token ((procedure (char) *) #!optional port) string)) -(sprintf (procedure! sprintf (string #!rest) string)) - -(write-byte (procedure! write-byte (fixnum #!optional port) undefined) - ((fixnum port) (##sys#write-char-0 (integer->char #(1)) #(2))) - ((fixnum) (##sys#write-char-0 (integer->char #(1)) ##sys#standard-output))) - -(write-line (procedure! write-line (string #!optional port) undefined)) -(write-string (procedure! write-string (string #!optional * port) undefined)) - - -;; files - -(delete-file* (procedure! delete-file* (string) *)) -(file-copy (procedure! file-copy (string string #!optional * fixnum) fixnum)) -(file-move (procedure! file-move (string string #!optional * fixnum) fixnum)) -(make-pathname (procedure! make-pathname (* #!optional string string) string)) -(directory-null? (procedure! directory-null? (string) boolean)) -(make-absolute-pathname (procedure! make-absolute-pathname (* #!optional string string) string)) -(create-temporary-directory (procedure! create-temporary-directory () string)) -(create-temporary-file (procedure! create-temporary-file (#!optional string) string)) -(decompose-directory (procedure! decompose-directory (string) * * *)) -(decompose-pathname (procedure! decompose-pathname (string) * * *)) -(absolute-pathname? (procedure! absolute-pathname? (string) boolean)) -(pathname-directory (procedure! pathname-directory (string) *)) -(pathname-extension (procedure! pathname-extension (string) *)) -(pathname-file (procedure! pathname-file (string) *)) -(pathname-replace-directory (procedure! pathname-replace-directory (string string) string)) -(pathname-replace-extension (procedure! pathname-replace-extension (string string) string)) -(pathname-replace-file (procedure! pathname-replace-file (string string) string)) -(pathname-strip-directory (procedure! pathname-strip-directory (string) string)) -(pathname-strip-extension (procedure! pathname-strip-extension (string) string)) -(normalize-pathname (procedure! normalize-pathname (string #!optional symbol) string)) - - -;; irregex - -;;XXX these need to be reviewed by Alex and/or sjamaan - -(irregex (procedure irregex (#!rest) *)) -;irregex-apply-match - -(irregex-dfa (procedure! irregex-dfa ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '1))) - -(irregex-dfa/extract (procedure! irregex-dfa/extract ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '3))) - -(irregex-dfa/search (procedure! irregex-dfa/search ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '2))) - -(irregex-extract (procedure! irregex-extract (* string #!optional fixnum fixnum) list)) -(irregex-flags (procedure! irregex-flags ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '5))) - -(irregex-fold (procedure! irregex-fold (* (procedure (fixnum (struct regexp-match) *) *) * string #!optional (procedure (fixnum *) *) fixnum fixnum) *)) - -(irregex-fold/chunked (procedure! irregex-fold/chunked (* (procedure (* fixnum (struct regexp-match) *) *) * procedure * #!optional (procedure (* fixnum *) *) fixnum fixnum) *)) - -(irregex-lengths (procedure! irregex-lengths ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '7))) - -(irregex-match (procedure! irregex-match (* string) *)) -;irregex-match? - -(irregex-match-data? (procedure? (struct regexp-match) irregex-match-data? (*) boolean)) - -(irregex-match-end (procedure irregex-match-end (* #!optional *) *)) -;irregex-match-end-chunk -(irregex-match-end-index (procedure! irregex-match-end-index ((struct regexp-match) #!optional *) fixnum)) - -(irregex-match-names (procedure! irregex-match-names ((struct regexp-match)) list) - (((struct regexp-match)) (##sys#slot #(1) '2))) - -(irregex-match-num-submatches (procedure! irregex-match-num-submatches ((struct regexp-match)) fixnum)) -(irregex-match-start (procedure irregex-match-start (* #!optional *) *)) -;irregex-match-start-chunk -(irregex-match-start-index (procedure! irregex-match-start-index ((struct regexp-match) #!optional *) fixnum)) -(irregex-match-string (procedure irregex-match-string (*) *)) -(irregex-match-subchunk (procedure! irregex-match-subchunk ((struct regexp-match) #!optional *) *)) -(irregex-match-substring (procedure irregex-match-substring (* #!optional *) *)) -(irregex-match/chunked (procedure! irregex-match/chunked (* * * #!optional fixnum) *)) - -(irregex-names (procedure! irregex-names ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '8))) - -(irregex-new-matches (procedure irregex-new-matches (*) *)) - -(irregex-nfa (procedure! irregex-nfa ((struct regexp)) *) - (((struct regexp)) (##sys#slot #(1) '4))) - -(irregex-num-submatches (procedure! irregex-num-submatches ((struct regexp)) - fixnum) - (((struct regexp)) (##sys#slot #(1) '6))) - -(irregex-opt (procedure! irregex-opt (list) *)) -(irregex-quote (procedure! irregex-quote (string) string)) -(irregex-replace (procedure! irregex-replace (* string #!rest) *)) -(irregex-replace/all (procedure! irregex-replace/all (* string #!rest) *)) -(irregex-reset-matches! (procedure irregex-reset-matches! (*) *)) -(irregex-search (procedure! irregex-search (* string #!optional fixnum fixnum) *)) -(irregex-search/matches (procedure! irregex-search/matches (* string fixnum fixnum *) *)) -(irregex-split (procedure! irregex-split (* string #!optional fixnum fixnum) list)) -(irregex-search/chunked (procedure! irregex-search/chunked (* procedure * #!optional fixnum fixnum *) *)) -(irregex-match-valid-index? - (procedure! irregex-match-valid-index? ((struct regexp-match) *) boolean)) - -(irregex? (procedure? (struct regexp) irregex? (*) boolean)) - -(make-irregex-chunker - (procedure! make-irregex-chunker - ((procedure (*) *) - (procedure (*) *) - #!optional - (procedure (*) *) - (procedure (*) *) - (procedure (* fixnum * fixnum) string) - (procedure (* fixnum * fixnum) *)) - *)) -(maybe-string->sre (procedure maybe-string->sre (*) *)) -(sre->irregex (procedure sre->irregex (#!rest) *)) -(string->irregex (procedure! string->irregex (string #!rest) *)) -(string->sre (procedure! string->sre (string #!rest) *)) - - -;; lolevel - -(address->pointer (procedure! address->pointer (fixnum) pointer) - ((fixnum) (##sys#address->pointer #(1)))) - -(align-to-word - (procedure - align-to-word - ((or number pointer locative procedure port)) - (or pointer number))) - -(allocate (procedure! allocate (fixnum) (or boolean pointer))) -(block-ref (procedure! block-ref (* fixnum) *)) -(block-set! (procedure! block-set! (* fixnum *) *)) -(extend-procedure (procedure! extend-procedure (procedure *) procedure)) -(extended-procedure? (procedure extended-procedure? (*) boolean)) -(free (procedure! free (pointer) undefined)) -(locative->object (procedure! locative->object (locative) *)) -(locative-ref (procedure! locative-ref (locative) *)) -(locative-set! (procedure! locative-set! (locative *) *)) -(locative? (procedure? locative locative? (*) boolean)) -(make-locative (procedure! make-locative (* #!optional fixnum) locative)) -(make-pointer-vector (procedure! make-pointer-vector (fixnum #!optional pointer) pointer-vector)) -(make-record-instance (procedure make-record-instance (symbol #!rest) *)) -(make-weak-locative (procedure! make-weak-locative (* #!optional fixnum) locative)) - -(move-memory! (procedure! move-memory! (* * #!optional fixnum fixnum fixnum) *) - ((pointer pointer fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) '0 '0)) - ((pointer pointer fixnum fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) '0 #(4))) - ((pointer pointer fixnum fixnum fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) #(5) #(4))) - ((locative locative fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) '0 '0)) - ((locative locative fixnum fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) '0 #(4))) - ((locative locative fixnum fixnum fixnum) - (##core#inline "C_copy_ptr_memory" #(2) #(1) #(3) #(5) #(4)))) - -(mutate-procedure! - (procedure! mutate-procedure (procedure (procedure (procedure) . *)) procedure)) - -(mutate-procedure (deprecated mutate-procedure!)) -(null-pointer deprecated) -(null-pointer? deprecated) - -(number-of-bytes (procedure number-of-bytes (*) fixnum) - (((or blob string)) (##sys#size #(1))) - (((or port procedure symbol pair vector locative float pointer-vector)) - ;; would be applicable to all structure types, but we can't specify - ;; "(struct *)" (yet) - (##core#inline "C_w2b" (##sys#size #(1))))) - -(number-of-slots (procedure number-of-slots (*) fixnum) - (((or vector symbol pair)) (##sys#size #(1)))) - -(object->pointer (procedure object->pointer (*) *)) -(object-become! (procedure object-become! (list) *)) -(object-copy (procedure object-copy (*) *)) -(object-evict (procedure! object-evict (* #!optional (procedure (fixnum) pointer)) *)) -(object-evict-to-location (procedure! object-evict-to-location (* (or pointer locative procedure port) #!optional fixnum) * pointer)) -(object-evicted? (procedure object-evicted? (*) boolean)) -(object-release (procedure! object-release (* #!optional (procedure (pointer) *)) *)) -(object-size (procedure object-size (*) fixnum)) -(object-unevict (procedure object-unevict (* #!optional *) *)) -(pointer+ (procedure! pointer+ ((or pointer procedure port locative) fixnum) pointer)) - -(pointer->address (procedure! pointer->address ((or pointer procedure port locative)) number) - ((pointer) (##sys#pointer->address #(1)))) - -(pointer->object (procedure! pointer->object (pointer) *) - ((pointer) (##core#inline "C_pointer_to_object" #(1)))) - -(pointer-like? (procedure pointer-like? (*) boolean) - (((or pointer locative procedure port)) (let ((#(tmp) #(1))) '#t))) - -(pointer-f32-ref (procedure! pointer-f32-ref (pointer) number)) -(pointer-f32-set! (procedure! pointer-f32-set! (pointer number) undefined)) -(pointer-f64-ref (procedure! pointer-f64-ref (pointer) number)) -(pointer-f64-set! (procedure! pointer-f64-set! (pointer number) undefined)) -(pointer-vector (procedure! pointer-vector (#!rest pointer-vector) boolean)) - -(pointer-vector? (procedure? pointer-vector pointer-vector? (*) boolean)) - -(pointer-vector-fill! (procedure! pointer-vector-fill! (pointer-vector pointer) undefined)) - -(pointer-vector-length (procedure! pointer-vector-length (pointer-vector) fixnum) - ((pointer-vector) (##sys#slot #(1) '1))) - -(pointer-vector-ref (procedure! pointer-vector-ref (pointer-vector fixnum) pointer)) -(pointer-vector-set! (procedure! pointer-vector-set! (pointer-vector fixnum pointer) undefined)) -(pointer-s16-ref (procedure! pointer-s16-ref (pointer) fixnum)) -(pointer-s16-set! (procedure! pointer-s16-set! (pointer fixnum) undefined)) -(pointer-s32-ref (procedure! pointer-s32-ref (pointer) number)) -(pointer-s32-set! (procedure! pointer-s32-set! (pointer number) undefined)) -(pointer-s8-ref (procedure! pointer-s8-ref (pointer) fixnum)) -(pointer-s8-set! (procedure! pointer-s8-set! (pointer fixnum) undefined)) - -(pointer-tag (procedure! pointer-tag ((or pointer locative procedure port)) (or boolean number)) - (((or locative procedure port)) (let ((#(tmp) #(1))) '#f))) - -(pointer-u16-ref (procedure! pointer-u16-ref (pointer) fixnum)) -(pointer-u16-set! (procedure! pointer-u16-set! (pointer fixnum) undefined)) -(pointer-u32-ref (procedure! pointer-u32-ref (pointer) number)) -(pointer-u32-set! (procedure! pointer-u32-set! (pointer number) undefined)) -(pointer-u8-ref (procedure! pointer-u8-ref (pointer) fixnum)) -(pointer-u8-set! (procedure! pointer-u8-set! (pointer fixnum) undefined)) - -(pointer=? (procedure! pointer=? ((or pointer locative procedure port) - (or pointer locative procedure port)) boolean) - ((pointer pointer) (##core#inline "C_pointer_eqp" #(1) #(2)))) - -(pointer? (procedure? pointer pointer? (*) boolean)) - -(procedure-data (procedure! procedure-data (procedure) *)) -(record->vector (procedure record->vector (*) vector)) -(record-instance? (procedure record-instance? (*) boolean)) -(record-instance-length (procedure record-instance-length (*) fixnum)) -(record-instance-slot (procedure! record-instance-slot (* fixnum) *)) -(record-instance-slot-set! (procedure! record-instance-slot-set! (* fixnum *) undefined)) -(record-instance-type (procedure record-instance-type (*) *)) -(set-procedure-data! (procedure! set-procedure-data! (procedure *) undefined)) -(tag-pointer (procedure! tag-pointer (pointer *) pointer)) -(tagged-pointer? (procedure! tagged-pointer? (* #!optional *) boolean)) - - -;; ports - -(call-with-input-string (procedure! call-with-input-string (string (procedure (port) . *)) . *)) -(call-with-output-string (procedure! call-with-output-string ((procedure (port) . *)) string)) -(copy-port (procedure! copy-port (* * #!optional (procedure (*) *) (procedure (* port) *)) undefined)) -(make-input-port (procedure! make-input-port ((procedure () char) (procedure () *) (procedure () . *) #!optional * * * *) port)) -(make-output-port (procedure! make-output-port ((procedure (string) . *) (procedure () . *) #!optional (procedure () . *)) port)) -(port-for-each (procedure! port-for-each ((procedure (*) *) (procedure () . *)) undefined)) - -(port-map - (forall (a b) (procedure! port-map ((procedure (a) b) (procedure () a)) (list b)))) - -(port-fold (procedure! port-fold ((procedure (* *) *) * (procedure () *)) *)) -(make-broadcast-port (procedure! make-broadcast-port (#!rest port) port)) -(make-concatenated-port (procedure! make-concatenated-port (port #!rest port) port)) -(with-error-output-to-port (procedure! with-error-output-to-port (port (procedure () . *)) . *)) -(with-input-from-port (procedure! with-input-from-port (port (procedure () . *)) . *)) -(with-input-from-string (procedure! with-input-from-string (string (procedure () . *)) . *)) -(with-output-to-port (procedure! with-output-to-port (port (procedure () . *)) . *)) -(with-output-to-string (procedure! with-output-to-string ((procedure () . *)) . *)) - - -;; posix - -(_exit (procedure _exit (fixnum) noreturn)) -(call-with-input-pipe (procedure! call-with-input-pipe (string (procedure (port) . *) #!optional symbol) . *)) -(call-with-output-pipe (procedure! call-with-output-pipe (string (procedure (port) . *) #!optional symbol) . *)) -(change-directory (procedure! change-directory (string) string)) -(change-file-mode (procedure! change-file-mode (string fixnum) undefined)) -(change-file-owner (procedure! change-file-owner (string fixnum fixnum) undefined)) -(close-input-pipe (procedure! close-input-pipe (port) fixnum)) -(close-output-pipe (procedure! close-output-pipe (port) fixnum)) -(create-directory (procedure! create-directory (string #!optional *) string)) -(create-fifo (procedure! create-fifo (string #!optional fixnum) undefined)) -(create-pipe (procedure create-pipe () fixnum fixnum)) -(create-session (procedure create-session () fixnum)) -(create-symbolic-link (procedure! create-symbolic-link (string string) undefined)) - -;; extra arg for "parameterize" - ugh, what a hack... -(current-directory (procedure! current-directory (#!optional string *) string)) - -(current-effective-group-id (procedure current-effective-group-id () fixnum)) -(current-effective-user-id (procedure current-effective-user-id () fixnum)) -(current-effective-user-name (procedure current-effective-user-name () string)) -(current-environment deprecated) -(get-environment-variables (procedure get-environment-variables () (list string))) -(current-group-id (procedure current-group-id () fixnum)) -(current-process-id (procedure current-process-id () fixnum)) -(current-user-id (procedure current-user-id () fixnum)) -(current-user-name (procedure current-user-name () string)) -(delete-directory (procedure! delete-directory (string) string)) -(directory (procedure! directory (string #!optional *) (list string))) -(directory? (procedure! directory? ((or string fixnum)) boolean)) -(duplicate-fileno (procedure! duplicate-fileno (fixnum #!optional fixnum) fixnum)) -(errno/2big fixnum) -(errno/acces fixnum) -(errno/again fixnum) -(errno/badf fixnum) -(errno/busy fixnum) -(errno/child fixnum) -(errno/deadlk fixnum) -(errno/dom fixnum) -(errno/exist fixnum) -(errno/fault fixnum) -(errno/fbig fixnum) -(errno/ilseq fixnum) -(errno/intr fixnum) -(errno/inval fixnum) -(errno/io fixnum) -(errno/isdir fixnum) -(errno/mfile fixnum) -(errno/mlink fixnum) -(errno/nametoolong fixnum) -(errno/nfile fixnum) -(errno/nodev fixnum) -(errno/noent fixnum) -(errno/noexec fixnum) -(errno/nolck fixnum) -(errno/nomem fixnum) -(errno/nospc fixnum) -(errno/nosys fixnum) -(errno/notdir fixnum) -(errno/notempty fixnum) -(errno/notty fixnum) -(errno/nxio fixnum) -(errno/perm fixnum) -(errno/pipe fixnum) -(errno/range fixnum) -(errno/rofs fixnum) -(errno/spipe fixnum) -(errno/srch fixnum) -(errno/wouldblock fixnum) -(errno/xdev fixnum) -(fcntl/dupfd fixnum) -(fcntl/getfd fixnum) -(fcntl/getfl fixnum) -(fcntl/setfd fixnum) -(fcntl/setfl fixnum) -(file-access-time (procedure! file-access-time ((or string fixnum)) number)) -(file-change-time (procedure! file-change-time ((or string fixnum)) number)) -(file-close (procedure! file-close (fixnum) undefined)) -(file-control (procedure! file-control (fixnum fixnum #!optional fixnum) fixnum)) -(file-creation-mode (procedure! file-creation-mode (#!optional fixnum) fixnum)) -(file-execute-access? (procedure! file-execute-access? (string) boolean)) -(file-link (procedure! file-link (string string) undefined)) -(file-lock (procedure! file-lock (port #!optional fixnum *) (struct lock))) -(file-lock/blocking (procedure! file-lock/blocking (port #!optional fixnum *) (struct lock))) -(file-mkstemp (procedure! file-mkstemp (string) fixnum string)) -(file-modification-time (procedure! file-modification-time ((or string fixnum)) number)) -(file-open (procedure! file-open (string fixnum #!optional fixnum) fixnum)) -(file-owner (procedure! file-owner ((or string fixnum)) fixnum)) -(file-permissions (procedure! file-permissions ((or string fixnum)) fixnum)) -(file-position (procedure! file-position ((or port fixnum)) fixnum)) -(file-read (procedure! file-read (fixnum fixnum #!optional *) list)) -(file-read-access? (procedure! file-read-access? (string) boolean)) -(file-select (procedure! file-select ((list fixnum) (list fixnum) #!optional fixnum) * *)) -(file-size (procedure! file-size ((or string fixnum)) number)) -(file-stat (procedure! file-stat ((or string fixnum) #!optional *) (vector number))) -(file-test-lock (procedure! file-test-lock (port #!optional fixnum *) boolean)) -(file-truncate (procedure! file-truncate ((or string fixnum) fixnum) undefined)) -(file-type (procedure! ((or string fixnum) #!optional * *) symbol)) -(file-unlock (procedure! file-unlock ((struct lock)) undefined)) -(file-write (procedure! file-write (fixnum * #!optional fixnum) fixnum)) -(file-write-access? (procedure! file-write-access? (string) boolean)) -(fileno/stderr fixnum) -(fileno/stdin fixnum) -(fileno/stdout fixnum) -(find-files (procedure! find-files (string #!rest) list)) -(get-groups (procedure get-groups () list)) -(get-host-name (procedure get-host-name () string)) -(glob (procedure! glob (#!rest string) list)) -(group-information (procedure! group-information (fixnum #!optional *) *)) -(initialize-groups (procedure! initialize-groups (string fixnum) undefined)) -(local-time->seconds (procedure! local-time->seconds ((vector number)) number)) -(local-timezone-abbreviation (procedure local-timezone-abbreviation () string)) -(map-file-to-memory (procedure! map-file-to-memory (* fixnum fixnum fixnum fixnum #!optional fixnum) (struct mmap))) -(map/anonymous fixnum) -(map/file fixnum) -(map/fixed fixnum) -(map/private fixnum) -(map/shared fixnum) -(memory-mapped-file-pointer (procedure! memory-mapped-file-pointer ((struct mmap)) pointer)) -(memory-mapped-file? (procedure memory-mapped-file? (*) boolean)) -(open-input-file* (procedure! open-input-file* (fixnum #!optional symbol) port)) -(open-input-pipe (procedure! open-input-pipe (string #!optional symbol) port)) -(open-output-file* (procedure! open-output-file* (fixnum #!optional symbol) port)) -(open-output-pipe (procedure! open-output-pipe (string #!optional symbol) port)) -(open/append fixnum) -(open/binary fixnum) -(open/creat fixnum) -(open/excl fixnum) -(open/fsync fixnum) -(open/noctty fixnum) -(open/nonblock fixnum) -(open/rdonly fixnum) -(open/rdwr fixnum) -(open/read fixnum) -(open/sync fixnum) -(open/text fixnum) -(open/trunc fixnum) -(open/write fixnum) -(open/wronly fixnum) -(parent-process-id (procedure parent-process-id () fixnum)) -(perm/irgrp fixnum) -(perm/iroth fixnum) -(perm/irusr fixnum) -(perm/irwxg fixnum) -(perm/irwxo fixnum) -(perm/irwxu fixnum) -(perm/isgid fixnum) -(perm/isuid fixnum) -(perm/isvtx fixnum) -(perm/iwgrp fixnum) -(perm/iwoth fixnum) -(perm/iwusr fixnum) -(perm/ixgrp fixnum) -(perm/ixoth fixnum) -(perm/ixusr fixnum) -(pipe/buf fixnum) -(port->fileno (procedure! port->fileno (port) fixnum)) -(process (procedure! process (string #!optional (list string) (list string)) port port fixnum)) -(process* (procedure! process* (string #!optional (list string) (list string)) port port fixnum *)) - -(process-execute - (procedure! process-execute (string #!optional (list string) (list string)) noreturn)) - -(process-fork (procedure! process-fork (#!optional (procedure () . *)) fixnum)) -(process-group-id (procedure! process-group-id () fixnum)) -(process-run (procedure! process-run (string #!optional (list string)) fixnum)) -(process-signal (procedure! process-signal (fixnum #!optional fixnum) undefined)) -(process-wait (procedure! process-wait (fixnum #!optional *) fixnum fixnum fixnum)) -(prot/exec fixnum) -(prot/none fixnum) -(prot/read fixnum) -(prot/write fixnum) -(read-symbolic-link (procedure! read-symbolic-link (string) string)) -(regular-file? (procedure! regular-file? ((or string fixnum)) boolean)) -(seconds->local-time (procedure! seconds->local-time (#!optional number) (vector number))) -(seconds->string (procedure! seconds->string (#!optional number) string)) -(seconds->utc-time (procedure! seconds->utc-time (#!optional number) (vector number))) -(seek/cur fixnum) -(seek/end fixnum) -(seek/set fixnum) -(set-alarm! (procedure! set-alarm! (number) number)) -(set-buffering-mode! (procedure! set-buffering-mode! (port symbol #!optional fixnum) undefined)) -(set-file-position! (procedure! set-file-position! ((or port fixnum) fixnum #!optional fixnum) undefined)) -(set-groups! (procedure! set-groups! (list) undefined)) -(set-root-directory! (procedure! set-root-directory! (string) undefined)) -(set-signal-handler! (procedure! set-signal-handler! (fixnum (procedure (fixnum) . *)) undefined)) -(set-signal-mask! (procedure! set-signal-mask! ((list fixnum)) undefined)) -(setenv (procedure! setenv (string string) undefined)) -(signal-handler (procedure! signal-handler (fixnum) (procedure (fixnum) . *))) -(signal-mask (procedure signal-mask () fixnum)) -(signal-mask! (procedure! signal-mask! (fixnum) undefined)) -(signal-masked? (procedure! signal-masked? (fixnum) boolean)) -(signal-unmask! (procedure! signal-unmask! (fixnum) undefined)) -(signal/abrt fixnum) -(signal/alrm fixnum) -(signal/chld fixnum) -(signal/cont fixnum) -(signal/fpe fixnum) -(signal/hup fixnum) -(signal/ill fixnum) -(signal/int fixnum) -(signal/io fixnum) -(signal/kill fixnum) -(signal/pipe fixnum) -(signal/prof fixnum) -(signal/quit fixnum) -(signal/segv fixnum) -(signal/stop fixnum) -(signal/term fixnum) -(signal/trap fixnum) -(signal/tstp fixnum) -(signal/urg fixnum) -(signal/usr1 fixnum) -(signal/usr2 fixnum) -(signal/vtalrm fixnum) -(signal/winch fixnum) -(signal/xcpu fixnum) -(signal/xfsz fixnum) -(signals-list list) -(sleep (procedure! sleep (fixnum) fixnum)) -(block-device? (procedure! block-device? ((or string fixnum)) boolean)) -(character-device? (procedure! character-device? ((or string fixnum)) boolean)) -(fifo? (procedure! fifo? ((or string fixnum)) boolean)) -(socket? (procedure! socket? ((or string fixnum)) boolean)) -(string->time (procedure! string->time (string #!optional string) vector)) -(symbolic-link? (procedure! symbolic-link? ((or string fixnum)) boolean)) -(system-information (procedure system-information () list)) -(terminal-name (procedure! terminal-name (port) string)) -(terminal-port? (procedure! terminal-port? (port) boolean)) -(terminal-size (procedure! terminal-size (port) fixnum fixnum)) -(time->string (procedure! time->string (vector #!optional string) string)) -(unmap-file-from-memory (procedure! unmap-file-from-memory ((struct mmap) #!optional fixnum) undefined)) -(unsetenv (procedure! unsetenv (string) undefined)) -(user-information (procedure! user-information ((or string fixnum) #!optional *) *)) -(utc-time->seconds (procedure! utc-time->seconds ((vector number)) number)) -(with-input-from-pipe (procedure! with-input-from-pipe (string (procedure () . *) #!optional symbol) . *)) -(with-output-to-pipe (procedure! with-output-to-pipe (string (procedure () . *) #!optional symbol) . *)) - - -;; srfi-1 - -(alist-cons (forall (a b c) (procedure alist-cons (a b (list c)) (pair a (pair b (list c)))))) -(alist-copy (forall (a) (procedure! alist-copy ((list a)) (list a)))) -(alist-delete (forall (a b) (procedure! alist-delete (a (list b) #!optional (procedure (a b) *)) list))) -(alist-delete! (forall (a b) (procedure! alist-delete! (a (list b) #!optional (procedure (a b) *)) undefined))) -(any (forall (a) (procedure! any ((procedure (a #!rest) *) (list a) #!rest list) *))) -(append! (procedure! append! (#!rest list) list)) - -(append-map - (forall (a b) (procedure! append-map ((procedure (a #!rest) (list b)) (list a) #!rest list) - (list b)))) - -(append-map! - (forall (a b) (procedure! append-map! ((procedure (a #!rest) (list b)) (list a) #!rest list) - (list b)))) - -(append-reverse (procedure! append-reverse (list list) list)) -(append-reverse! (procedure! append-reverse! (list list) list)) -(break (forall (a) (procedure! break ((procedure (a) *) (list a)) (list a) (list a)))) -(break! (forall (a) (procedure! break! ((procedure (a) *) (list a)) (list a) (list a)))) -(car+cdr (forall (a b) (procedure! car+cdr ((pair a b)) a b))) -(circular-list (procedure circular-list (#!rest) list)) - -(circular-list? (procedure circular-list? (*) boolean) - ((null) (let ((#(tmp) #(1))) '#f))) - -(concatenate (procedure! concatenate ((list list)) list)) -(concatenate! (procedure! concatenate! ((list list)) list)) -(cons* (forall (a) (procedure cons* (a #!rest) (pair a *)))) -(count (forall (a) (procedure! count ((procedure (a #!rest) *) (list a) #!rest list) fixnum))) -(delete (forall (a b) (procedure! delete (a (list b) #!optional (procedure (a *) *)) (list b)))) -(delete! (forall (a b) (procedure! delete! (a (list b) #!optional (procedure (a *) *)) (list b)))) - -(delete-duplicates - (forall (a) (procedure! delete-duplicates ((list a) #!optional (procedure (a *) *)) (list a)))) - -(delete-duplicates! - (forall (a) (procedure! delete-duplicates! ((list a) #!optional (procedure (a *) *)) (list a)))) - -(dotted-list? (procedure dotted-list? (*) boolean)) -(drop (forall (a) (procedure! drop ((list a) fixnum) (list a)))) -(drop-right (forall (a) (procedure! drop-right ((list a) fixnum) (list a)))) -(drop-right! (forall (a) (procedure! drop-right! ((list a) fixnum) (list a)))) -(drop-while (forall (a) (procedure! drop-while ((procedure (a) *) (list a)) (list a)))) -(eighth (procedure! eighth (pair) *)) - -(every - (forall (a) (procedure! every ((procedure (a #!rest) *) (list a) #!rest list) *))) - -(fifth (procedure! fifth (pair) *)) -(filter (forall (a) (procedure! filter ((procedure (a) *) (list a)) (list a)))) -(filter! (forall (a) (procedure! filter! ((procedure (a) *) (list a)) (list a)))) - -(filter-map - (forall (a b) (procedure! filter-map ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) - -(find (forall (a) (procedure! find ((procedure (a) *) (list a)) *))) -(find-tail (forall (a) (procedure! find-tail ((procedure (a) *) (list a)) *))) - -(first (forall (a) (procedure! first ((pair a *)) a)) - ((pair) (##core#inline "C_u_i_car" #(1)))) - -(fold (procedure! fold ((procedure (* #!rest) *) * #!rest list) *)) ;XXX -(fold-right (procedure! fold-right ((procedure (* #!rest) *) * #!rest list) *)) ;XXX - -(fourth (forall (a) (procedure! fourth ((pair * (pair * (pair * (pair a *))))) a)) - (((pair * (pair * (pair * (pair * *))))) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_cdr" - (##core#inline "C_u_i_cdr" #(1))))))) - -(iota (procedure! iota (fixnum #!optional fixnum fixnum) (list number))) -(last (procedure! last (pair) *)) -(last-pair (procedure! last-pair (pair) *)) -(length+ (procedure! length+ (list) *)) -(list-copy (forall (a) (procedure! list-copy ((list a)) (list a)))) -(list-index (forall (a) (procedure! list-index ((procedure (a #!rest) *) (list a) #!rest list) *))) -(list-tabulate (forall (a) (procedure! list-tabulate (fixnum (procedure (fixnum) a)) (list a)))) -(list= (procedure! list= (#!rest list) boolean)) - -(lset-adjoin - (forall (a) (procedure! lset-adjoin ((procedure (a a) *) (list a) #!rest a) (list a)))) - -(lset-diff+intersection - (forall (a) - (procedure! lset-diff+intersection ((procedure (a a) *) (list a) #!rest (list a)) - (list a)))) - -(lset-diff+intersection! - (forall (a) - (procedure! lset-diff+intersection! ((procedure (a a) *) (list a) #!rest (list a)) - (list a)))) - -(lset-difference - (forall (a) (procedure! lset-difference ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-difference! - (forall (a) (procedure! lset-difference! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-intersection - (forall (a) (procedure! lset-intersection ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-intersection! - (forall (a) (procedure! lset-intersection! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-union - (forall (a) (procedure! lset-union ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-union! - (forall (a) (procedure! lset-union! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-xor - (forall (a) (procedure! lset-xor ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset-xor! - (forall (a) (procedure! lset-xor! ((procedure (a a) *) (list a) #!rest (list a)) (list a)))) - -(lset<= - (forall (a) (procedure! lset<= ((procedure (a a) *) (list a) #!rest (list a)) boolean))) - -(lset= - (forall (a) (procedure! lset= ((procedure (a a) *) (list a) #!rest (list a)) boolean))) - -;; see note about "make-vector", above -(make-list (forall (a) (procedure! make-list (fixnum #!optional a) list))) - -(map! - (forall (a b) (procedure! map! ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) - -(map-in-order - (forall - (a b) - (procedure! map-in-order ((procedure (a #!rest) b) (list a) #!rest list) (list b)))) - -(ninth (procedure! ninth (pair) *)) - -(not-pair? (procedure not-pair? (*) boolean) - ((pair) (let ((#(tmp) #(1))) '#f)) - (((not (or pair list))) (let ((#(tmp) #(1))) '#t))) - -(null-list? (procedure! null-list? (list) boolean) - ((pair) (let ((#(tmp) #(1))) '#f)) - ((list) (let ((#(tmp) #(1))) '#f)) - ((null) (let ((#(tmp) #(1))) '#t))) - -(pair-fold (procedure! pair-fold (procedure * list #!rest list) *)) ;XXX do this -(pair-fold-right (procedure! pair-fold-right (procedure * list #!rest list) *)) ;XXX -(pair-for-each (procedure! pair-for-each ((procedure (#!rest) . *) list #!rest list) undefined)) ;XXX -(partition (forall (a) (procedure! partition ((procedure (a) *) (list a)) (list a) (list a)))) -(partition! (forall (a) (procedure! partition! ((procedure (a) *) (list a)) (list a) (list a)))) - -(proper-list? (procedure proper-list? (*) boolean) - ((null) (let ((#(tmp) #(1))) '#t))) - -(reduce (procedure! reduce ((procedure (* *) *) * list) *)) ;XXX -(reduce-right (procedure! reduce-right ((procedure (* *) *) * list) *)) ;XXX -(remove (forall (a) (procedure! remove ((procedure (a) *) (list a)) (list a)))) -(remove! (forall (a) (procedure! remove! ((procedure (a) *) (list a)) (list a)))) -(reverse! (forall (a) (procedure! reverse! ((list a)) (list a)))) - -(second (forall (a) (procedure! second ((pair * (pair a *))) a)) - (((pair * (pair * *))) (##core#inline "C_u_i_car" (##core#inline "C_u_i_cdr" #(1))))) - -(seventh (procedure! seventh (pair) *)) -(sixth (procedure! sixth (pair) *)) -(span (forall (a) (procedure! span ((procedure (a) *) (list a)) (list a) (list a)))) -(span! (forall (a) (procedure! span! ((procedure (a) *) (list a)) (list a) (list a)))) -(split-at (forall (a) (procedure! split-at ((list a) fixnum) (list a) (list a)))) -(split-at! (forall (a) (procedure! split-at! ((list a) fixnum) (list a) (list a)))) -(take (forall (a) (procedure! take ((list a) fixnum) (list a)))) -(take! (forall (a) (procedure! take! ((list a) fixnum) (list a)))) -(take-right (forall (a) (procedure! take-right ((list a) fixnum) (list a)))) -(take-while (forall (a) (procedure! take-while ((procedure (a) *) (list a)) (list a)))) -(take-while! (forall (a) (procedure! take-while! ((procedure (a) *) (list a)) (list a)))) -(tenth (procedure! tenth (pair) *)) - -(third (forall (a) (procedure! third ((pair * (pair * (pair a *)))) a)) - (((pair * (pair * (pair * *)))) - (##core#inline "C_u_i_car" - (##core#inline "C_u_i_cdr" (##core#inline "C_u_i_cdr" #(1)))))) - -(unfold (procedure! unfold ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX -(unfold-right (procedure! unfold-right ((procedure (*) *) (procedure (*) *) (procedure (*) *) * #!optional (procedure (*) *)) *)) ;XXX -(unzip1 (forall (a) (procedure! unzip1 ((list (pair a *))) (list a)))) -(unzip2 (forall (a b) (procedure! unzip2 ((list (pair a (pair b *)))) (list a) (list b)))) - -(unzip3 - (forall (a b c) (procedure! unzip3 ((list (pair a (pair b (pair c *))))) (list a) (list b) (list c)))) - -(unzip4 (procedure! unzip4 (list) list list list list)) ; yeah -(unzip5 (procedure! unzip5 (list) list list list list list)) ; yeah, too -(xcons (forall (a b) (procedure xcons (a b) (pair b a)))) -(zip (forall (a) (procedure! zip ((list a) #!rest list) (list (pair a *))))) - - -;; srfi-13 - -(check-substring-spec (procedure! check-substring-spec (* string fixnum fixnum) undefined)) -(kmp-step (procedure! kmp-step (string vector char fixnum (procedure (char char) *) fixnum) fixnum)) -(make-kmp-restart-vector (procedure! make-kmp-restart-vector (string #!optional (procedure (* *) *) fixnum fixnum) vector)) - -(string-any - (procedure! - string-any - ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) - boolean)) - -(string-append/shared (procedure! string-append/shared (#!rest string) string) - ((string string) (##sys#string-append #(1) #(2)))) - -(string-ci< (procedure! string-ci< (string string #!optional fixnum fixnum) boolean) - ((string string) (string-ci<? #(1) #(2)))) - -(string-ci<= (procedure! string-ci<= (string string #!optional fixnum fixnum) boolean) - ((string string) (string-ci<=? #(1) #(2)))) - -(string-ci<> (procedure! string-ci<> (string string #!optional fixnum fixnum) boolean) - ((string string) (not (##core#inline "C_i_string_ci_equal_p" #(1) #(2))))) - -(string-ci= (procedure! string-ci= (string string #!optional fixnum fixnum) boolean) - ((string string) (##core#inline "C_i_string_ci_equal_p" #(1) #(2)))) - -(string-ci> (procedure! string-ci> (string string #!optional fixnum fixnum) boolean) - ((string string) (string-ci>? #(1) #(2)))) - -(string-ci>= (procedure! string-ci>= (string string #!optional fixnum fixnum) boolean) - ((string string) (string-ci>=? #(1) #(2)))) - -(string-compare (procedure! string-compare (string string (procedure (fixnum) *) (procedure (fixnum) *) (procedure (fixnum) *) #!optional fixnum fixnum fixnum fixnum) *)) -(string-compare-ci (procedure! string-compare (string string (procedure (fixnum) *) (procedure (fixnum) *) (procedure (fixnum) *) #!optional fixnum fixnum fixnum fixnum) *)) -(string-concatenate (procedure! string-concatenate ((list string)) string)) -(string-concatenate-reverse (procedure! string-concatenate-reverse ((list string) #!optional string fixnum) string)) -(string-concatenate-reverse/shared (procedure! string-concatenate-reverse/shared ((list string) #!optional string fixnum) string)) -(string-concatenate/shared (procedure! string-concatenate/shared ((list string)) string)) -(string-contains (procedure! string-contains (string string #!optional fixnum fixnum fixnum fixnum) (or fixnum boolean))) -(string-contains-ci (procedure! string-contains-ci (string string #!optional fixnum fixnum fixnum fixnum) (or fixnum boolean))) -(string-copy (procedure! string-copy (string #!optional fixnum fixnum) string)) -(string-copy! (procedure! string-copy! (string fixnum string #!optional fixnum fixnum) undefined)) -(string-count (procedure! string-count (string * #!optional fixnum fixnum) fixnum)) -(string-delete (procedure! string-delete (* string #!optional fixnum fixnum) string)) -(string-downcase (procedure! string-downcase (string #!optional fixnum fixnum) string)) -(string-downcase! (procedure! string-downcase! (string #!optional fixnum fixnum) string)) -(string-drop (procedure! string-drop (string fixnum) string)) -(string-drop-right (procedure! string-drop-right (string fixnum) string)) - -(string-every - (procedure! - string-every - ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) - boolean)) - -(string-fill! (procedure! string-fill! (string char #!optional fixnum fixnum) string)) - -(string-filter - (procedure! - string-filter - ((or char (struct char-set) (procedure (char) *)) string #!optional fixnum fixnum) - string)) - -(string-fold (procedure! string-fold ((procedure (char *) *) * string #!optional fixnum fixnum) *)) ;XXX - -(string-fold-right (procedure! string-fold-right ((procedure (char *) *) * string #!optional fixnum fixnum) *)) ;XXX -(string-for-each (procedure! string-for-each ((procedure (char) . *) string #!optional fixnum fixnum) undefined)) -(string-for-each-index (procedure! string-for-each-index ((procedure (fixnum) . *) string #!optional fixnum fixnum) undefined)) - -(string-index - (procedure! - string-index - (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) - (or fixnum boolean))) - -(string-index-right - (procedure! - string-index-right - (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) - (or fixnum boolean))) - -(string-join (procedure! string-join (list #!optional string symbol) string)) -(string-kmp-partial-search (procedure! string-kmp-partial-search (string vector string fixnum #!optional (procedure (char char) *) fixnum fixnum fixnum) fixnum)) -(string-map (procedure! string-map ((procedure (char) char) string #!optional fixnum fixnum) string)) -(string-map! (procedure! string-map! ((procedure (char) char) string #!optional fixnum fixnum) string)) - -(string-null? (procedure! string-null? (string) boolean) - ((string) (##core#inline "C_zero_length_p" #(1)))) - -(string-pad (procedure! string-pad (string fixnum #!optional char fixnum fixnum) string)) -(string-pad-right (procedure! string-pad-right (string fixnum #!optional char fixnum fixnum) string)) -(string-parse-final-start+end (procedure! string-parse-final-start+end (procedure string #!rest) . *)) -(string-parse-start+end (procedure! string-parse-start+end (procedure string #!rest) . *)) -(string-prefix-ci? (procedure! string-prefix-ci? (string string #!optional fixnum fixnum fixnum fixnum) boolean)) -(string-prefix-length (procedure! string-prefix-length (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) -(string-prefix-length-ci (procedure! string-prefix-length-ci (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) -(string-prefix? (procedure! string-prefix? (string string #!optional fixnum fixnum fixnum fixnum) boolean)) -(string-replace (procedure! string-replace (string string fixnum fixnum #!optional fixnum fixnum) string)) -(string-reverse (procedure! string-reverse (string #!optional fixnum fixnum) string)) -(string-reverse! (procedure! string-reverse! (string #!optional fixnum fixnum) string)) - -(string-skip - (procedure! - string-skip - (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) - (or fixnum boolean))) - -(string-skip-right - (procedure! - string-skip-right - (string (or char (struct char-set) (procedure (char) *)) #!optional fixnum fixnum) - (or fixnum boolean))) - -(string-suffix-ci? (procedure! string-suffix-ci? (string string #!optional fixnum fixnum fixnum fixnum) boolean)) -(string-suffix-length (procedure! string-suffix-length (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) -(string-suffix-length-ci (procedure! string-suffix-length-ci (string string #!optional fixnum fixnum fixnum fixnum) fixnum)) -(string-suffix? (procedure! string-suffix? (string string #!optional fixnum fixnum fixnum fixnum) boolean)) -(string-tabulate (procedure! string-tabulate ((procedure (fixnum) char) fixnum) string)) -(string-take (procedure! string-take (string fixnum) string)) -(string-take-right (procedure! string-take-right (string fixnum) string)) -(string-titlecase (procedure! string-titlecase (string #!optional fixnum fixnum) string)) -(string-titlecase! (procedure! string-titlecase! (string #!optional fixnum fixnum) string)) - -(string-tokenize - (procedure! string-tokenize (string #!optional (struct char-set) fixnum fixnum) list)) - -(string-trim - (procedure! - string-trim - (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) - string)) - -(string-trim-both - (procedure! - string-trim-both - (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) - string)) - -(string-trim-right - (procedure! - string-trim-right - (string #!optional (or char (struct char-set) (procedure (char) *)) fixnum fixnum) - string)) - -(string-unfold (procedure! string-unfold (procedure procedure procedure * #!optional * procedure) string)) ;XXX -(string-unfold-right (procedure! string-unfold-right (procedure procedure procedure * #!optional * procedure) string)) ;XXX -(string-upcase (procedure! string-upcase (string #!optional fixnum fixnum) string)) -(string-upcase! (procedure! string-upcase! (string #!optional fixnum fixnum) string)) -(string-xcopy! (procedure! string-xcopy! (string string string fixnum #!optional fixnum fixnum fixnum) string)) - -(string< (procedure! string< (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (string<? #(1) #(2)))) - -(string<= (procedure! string<= (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (string<=? #(1) #(2)))) - -(string<> (procedure! string<> (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (not (##core#inline "C_i_string_equal_p" #(1) #(2))))) - -(string= (procedure! string= (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (##core#inline "C_i_string_equal_p" #(1) #(2)))) - -(string> (procedure! string> (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (string>? #(1) #(2)))) - -(string>= (procedure! string>= (string string #!optional fixnum fixnum fixnum fixnum) boolean) - ((string string) (string>=? #(1) #(2)))) - -(substring-spec-ok? (procedure! substring-spec-ok? (string fixnum fixnum) boolean)) -(substring/shared (procedure! substring/shared (string fixnum #!optional fixnum) string)) -(xsubstring (procedure! xsubstring (string fixnum #!optional fixnum fixnum fixnum) string)) - - -;; srfi-14 - -(->char-set (procedure ->char-set (*) (struct char-set)) - (((struct char-set)) #(1)) - ((string) (string->char-set #(1))) - ((char) (char-set #(1)))) - -(char-set (procedure! char-set (#!rest char) (struct char-set))) -(char-set->list (procedure! char-set->list ((struct char-set)) list)) -(char-set->string (procedure! char-set->string ((struct char-set)) string)) -(char-set-adjoin (procedure! char-set-adjoin ((struct char-set) #!rest char) (struct char-set))) -(char-set-adjoin! (procedure! char-set-adjoin! ((struct char-set) #!rest char) (struct char-set))) -(char-set-any (procedure! char-set-any ((procedure (char) *) (struct char-set)) *)) -(char-set-complement (procedure! char-set-complement ((struct char-set)) (struct char-set))) -(char-set-complement! (procedure! char-set-complement! ((struct char-set)) (struct char-set))) -(char-set-contains? (procedure! char-set-contains? ((struct char-set) char) boolean)) -(char-set-copy (procedure! char-set-copy ((struct char-set)) (struct char-set))) -(char-set-count (procedure! char-set-count ((procedure (char) *) (struct char-set)) fixnum)) -(char-set-cursor (procedure! char-set-cursor ((struct char-set)) fixnum)) -(char-set-cursor-next (procedure! char-set-cursor-next ((struct char-set) fixnum) fixnum)) -(char-set-delete (procedure! char-set-delete ((struct char-set) #!rest char) (struct char-set))) -(char-set-delete! (procedure! char-set-delete! ((struct char-set) #!rest char) (struct char-set))) -(char-set-diff+intersection (procedure! char-set-diff+intersection ((struct char-set) #!rest (struct char-set)) (struct char-set) (struct char-set))) -(char-set-diff+intersection! (procedure! char-set-diff+intersection! ((struct char-set) #!rest (struct char-set)) (struct char-set) (struct char-set))) -(char-set-difference (procedure! char-set-difference ((struct char-set) #!rest (struct char-set)) (struct char-set))) -(char-set-difference! (procedure! char-set-difference! ((struct char-set) #!rest (struct char-set)) (struct char-set))) -(char-set-every (procedure! char-set-every ((procedure (char) *) (struct char-set)) boolean)) -(char-set-filter (procedure! char-set-filter ((procedure (char) *) (struct char-set) #!optional (struct char-set)) (struct char-set))) -(char-set-filter! (procedure! char-set-filter! ((procedure (char) *) (struct char-set) #!optional (struct char-set)) (struct char-set))) -(char-set-fold (procedure! char-set-fold ((procedure (char *) *) * (struct char-set)) *)) -(char-set-for-each (procedure! char-set-for-each ((procedure (char) . *) (struct char-set)) undefined)) -(char-set-hash (procedure! char-set-hash ((struct char-set) #!optional number) number)) -(char-set-intersection (procedure! char-set-intersection (#!rest (struct char-set)) (struct char-set))) -(char-set-intersection! (procedure! char-set-intersection! (#!rest (struct char-set)) (struct char-set))) -(char-set-map (procedure! char-set-map ((procedure (char) char) (struct char-set)) (struct char-set))) -(char-set-ref (procedure! char-set-ref ((struct char-set) fixnum) char)) -(char-set-size (procedure! char-set-size ((struct char-set)) fixnum)) -(char-set-unfold (procedure! char-set-unfold (procedure procedure procedure * #!optional (struct char-set)) (struct char-set))) -(char-set-unfold! (procedure! char-set-unfold! (procedure procedure procedure * (struct char-set)) (struct char-set))) -(char-set-union (procedure! char-set-union (#!rest (struct char-set)) (struct char-set))) -(char-set-union! (procedure! char-set-union! (#!rest (struct char-set)) (struct char-set))) -(char-set-xor (procedure! char-set-xor (#!rest (struct char-set)) (struct char-set))) -(char-set-xor! (procedure! char-set-xor! (#!rest (struct char-set)) (struct char-set))) -(char-set:ascii (struct char-set)) -(char-set:blank (struct char-set)) -(char-set:digit (struct char-set)) -(char-set:empty (struct char-set)) -(char-set:full (struct char-set)) -(char-set:graphic (struct char-set)) -(char-set:hex-digit (struct char-set)) -(char-set:iso-control (struct char-set)) -(char-set:letter (struct char-set)) -(char-set:letter+digit (struct char-set)) -(char-set:lower-case (struct char-set)) -(char-set:printing (struct char-set)) -(char-set:punctuation (struct char-set)) -(char-set:symbol (struct char-set)) -(char-set:title-case (struct char-set)) -(char-set:upper-case (struct char-set)) -(char-set:whitespace (struct char-set)) -(char-set<= (procedure! char-set<= (#!rest (struct char-set)) boolean)) -(char-set= (procedure! char-set= (#!rest (struct char-set)) boolean)) - -(char-set? (procedure? (struct char-set) char-set? (*) boolean)) - -(end-of-char-set? (procedure! end-of-char-set? (fixnum) boolean)) -(list->char-set (procedure! list->char-set (list #!optional (struct char-set)) (struct char-set))) -(list->char-set! (procedure! list->char-set! (list #!optional (struct char-set)) (struct char-set))) -(string->char-set (procedure! string->char-set (string #!optional (struct char-set)) (struct char-set))) -(string->char-set! (procedure! string->char-set! (string #!optional (struct char-set)) (struct char-set))) -(ucs-range->char-set (procedure! ucs-range->char-set (fixnum fixnum #!optional * (struct char-set)) (struct char-set))) -(ucs-range->char-set! (procedure! ucs-range->char-set! (fixnum fixnum #!optional * (struct char-set)) (struct char-set))) - - -;; srfi-18 - -(abandoned-mutex-exception? (procedure abandoned-mutex-exception? (*) boolean)) -(condition-variable-broadcast! (procedure! condition-variable-broadcast! ((struct condition-variable)) undefined)) -(condition-variable-name (procedure! condition-variable-name ((struct condition-variable)) *)) -(condition-variable-signal! (procedure! condition-variable-signal! ((struct condition-variable)) undefined)) -(condition-variable-specific (procedure! condition-variable-specific ((struct condition-variable)) *)) -(condition-variable-specific-set! (procedure! condition-variable-specific-set! ((struct condition-variable) *) undefined)) - -(condition-variable? (procedure? (struct condition-variable) condition-variable? (*) - boolean)) - -(current-thread (procedure current-thread () (struct thread))) ;XXX - -(current-time (procedure current-time () (struct time))) -(join-timeout-exception? (procedure join-timeout-exception? (*) boolean)) -(make-condition-variable (procedure make-condition-variable (#!optional *) (struct condition-variable))) -(make-mutex (procedure make-mutex (#!optional *) (struct mutex))) -(make-thread (procedure! make-thread ((procedure () . *) #!optional *) (struct thread))) -(milliseconds->time deprecated) -(mutex-lock! (procedure! mutex-lock! ((struct mutex) #!optional * (struct thread)) boolean)) - -(mutex-name (procedure! mutex-name ((struct mutex)) *) - (((struct mutex)) (##sys#slot #(1) '1))) - -(mutex-specific (procedure! mutex-specific ((struct mutex)) *) - (((struct mutex)) (##sys#slot #(1) '6))) - -(mutex-specific-set! (procedure! mutex-specific-set! ((struct mutex) *) undefined) - (((struct mutex) *) (##sys#setslot #(1) '6 #(2)))) - -(mutex-state (procedure! mutex-state ((struct mutex)) symbol)) -(mutex-unlock! (procedure! mutex-unlock! ((struct mutex) #!optional (struct condition-variable) *) undefined)) - -(mutex? (procedure? (struct mutex) mutex? (*) boolean)) - -(raise (procedure raise (*) noreturn)) -(seconds->time (procedure! seconds->time (number) (struct time))) -(terminated-thread-exception? (procedure terminated-thread-exception? (*) boolean)) -(thread-join! (procedure! thread-join! ((struct thread) #!optional * *) *)) - -(thread-name (procedure! thread-name ((struct thread)) *) - (((struct thread)) (##sys#slot #(1) '6))) - -(thread-quantum (procedure! thread-quantum ((struct thread)) fixnum) - (((struct thread)) (##sys#slot #(1) '9))) - -(thread-quantum-set! (procedure! thread-quantum-set! ((struct thread) fixnum) undefined)) -(thread-resume! (procedure! thread-resume! ((struct thread)) undefined)) -(thread-signal! (procedure! thread-signal! ((struct thread) *) undefined)) -(thread-sleep! (procedure thread-sleep! (*) undefined)) - -(thread-specific (procedure! thread-specific ((struct thread)) *) - (((struct thread)) (##sys#slot #(1) '10))) - -(thread-specific-set! (procedure! thread-specific-set! ((struct thread) *) undefined) - (((struct thread) *) (##sys#setslot #(1) '10 #(2)))) - -(thread-start! (procedure! thread-start! ((or (struct thread) (procedure () . *))) (struct thread))) - -(thread-state (procedure! thread-state ((struct thread)) symbol) - (((struct thread)) (##sys#slot #(1) '3))) - -(thread-suspend! (procedure! thread-suspend! ((struct thread)) undefined)) -(thread-terminate! (procedure! thread-terminate! ((struct thread)) undefined)) -(thread-wait-for-i/o! (procedure! thread-wait-for-i/o! (fixnum #!optional symbol) undefined)) -(thread-yield! (procedure thread-yield! () undefined)) - -(thread? (procedure? (struct thread) thread? (*) boolean)) - -(time->milliseconds deprecated) -(time->seconds (procedure! time->seconds ((struct time)) number)) - -(time? (procedure? (struct time) time? (*) boolean)) - -(uncaught-exception-reason (procedure! uncaught-exception-reason ((struct condition)) *)) -(uncaught-exception? (procedure uncaught-exception? (*) boolean)) - - -;; srfi-4 - -(blob->f32vector (procedure! blob->f32vector (blob) (struct f32vector))) -(blob->f32vector/shared (procedure! blob->f32vector/shared (blob) (struct f32vector))) -(blob->f64vector (procedure! blob->f64vector (blob) (struct f64vector))) -(blob->f64vector/shared (procedure! blob->f64vector/shared (blob) (struct f64vector))) -(blob->s16vector (procedure! blob->s16vector (blob) (struct s16vector))) -(blob->s16vector/shared (procedure! blob->s16vector/shared (blob) (struct s16vector))) -(blob->s32vector (procedure! blob->s32vector (blob) (struct s32vector))) -(blob->s32vector/shared (procedure! blob->s32vector/shared (blob) (struct s32vector))) -(blob->s8vector (procedure! blob->s8vector (blob) (struct u8vector))) -(blob->s8vector/shared (procedure! blob->s8vector/shared (blob) (struct u8vector))) -(blob->u16vector (procedure! blob->u16vector (blob) (struct u16vector))) -(blob->u16vector/shared (procedure! blob->u16vector/shared (blob) (struct u16vector))) -(blob->u32vector (procedure! blob->u32vector (blob) (struct u32vector))) -(blob->u32vector/shared (procedure! blob->u32vector/shared (blob) (struct u32vector))) -(blob->u8vector (procedure! blob->u8vector (blob) (struct u8vector))) -(blob->u8vector/shared (procedure! blob->u8vector/shared (blob) (struct u8vector))) -(f32vector (procedure! f32vector (#!rest number) (struct f32vector))) -(f32vector->blob (procedure! f32vector->blob ((struct f32vector)) blob)) -(f32vector->blob/shared (procedure! f32vector->blob/shared ((struct f32vector)) blob)) -(f32vector->list (procedure! f32vector->list ((struct f32vector)) list)) - -(f32vector-length (procedure! f32vector-length ((struct f32vector)) fixnum) - (((struct f32vector)) (##core#inline "C_u_i_32vector_length" #(1)))) - -(f32vector-ref (procedure! f32vector-ref ((struct f32vector) fixnum) float)) -(f32vector-set! (procedure! f32vector-set! ((struct f32vector) fixnum number) undefined)) - -(f32vector? (procedure? (struct f32vector) f32vector? (*) boolean)) - -(f64vector (procedure! f64vector (#!rest number) (struct f64vector))) -(f64vector->blob (procedure! f64vector->blob ((struct f32vector)) blob)) -(f64vector->blob/shared (procedure! f64vector->blob/shared ((struct f64vector)) blob)) -(f64vector->list (procedure! f64vector->list ((struct f64vector)) blob)) - -(f64vector-length (procedure! f64vector-length ((struct f64vector)) fixnum) - (((struct f32vector)) (##core#inline "C_u_i_64vector_length" #(1)))) - -(f64vector-ref (procedure! f64vector-ref ((struct f64vector) fixnum) float)) -(f64vector-set! (procedure! f64vector-set! ((struct f64vector) fixnum number) undefined)) - -(f64vector? (procedure? (struct f64vector) f64vector? (*) boolean)) - -(list->f32vector (procedure! list->f32vector ((list number)) (struct f32vector))) -(list->f64vector (procedure! list->f64vector ((list number)) (struct f64vector))) -(list->s16vector (procedure! list->s16vector ((list fixnum)) (struct s16vector))) -(list->s32vector (procedure! list->s32vector ((list number)) (struct s32vector))) -(list->s8vector (procedure! list->s8vector ((list fixnum)) (struct s8vector))) -(list->u16vector (procedure! list->u16vector ((list fixnum)) (struct u16vector))) -(list->u32vector (procedure! list->u32vector ((list number)) (struct u32vector))) -(list->u8vector (procedure! list->u8vector ((list fixnum)) (struct u8vector))) -(make-f32vector (procedure! make-f32vector (fixnum #!optional * * *) (struct f32vector))) -(make-f64vector (procedure! make-f64vector (fixnum #!optional * * *) (struct f64vector))) -(make-s16vector (procedure! make-s16vector (fixnum #!optional * * *) (struct s16vector))) -(make-s32vector (procedure! make-s32vector (fixnum #!optional * * *) (struct s32vector))) -(make-s8vector (procedure! make-s8vector (fixnum #!optional * * *) (struct s8vector))) -(make-u16vector (procedure! make-u16vector (fixnum #!optional * * *) (struct u16vector))) -(make-u32vector (procedure! make-u32vector (fixnum #!optional * * *) (struct u32vector))) -(make-u8vector (procedure! make-u8vector (fixnum #!optional * * *) (struct u8vector))) -(read-u8vector (procedure! read-u8vector (#!optional fixnum port) (struct u8vector))) -(read-u8vector! (procedure! read-u8vector! (fixnum (struct u8vector) #!optional port fixnum) number)) -(release-number-vector (procedure release-number-vector (*) undefined)) -(s16vector (procedure! s16vector (#!rest fixnum) (struct s16vector))) -(s16vector->blob (procedure! s16vector->blob ((struct s16vector)) blob)) -(s16vector->blob/shared (procedure! s16vector->blob/shared ((struct s16vector)) blob)) -(s16vector->list (procedure! s16vector->list ((struct s16vector)) (list fixnum))) - -(s16vector-length (procedure! s16vector-length ((struct s16vector)) fixnum) - (((struct s16vector)) (##core#inline "C_u_i_16vector_length" #(1)))) - -(s16vector-ref (procedure! s16vector-ref ((struct s16vector) fixnum) fixnum)) -(s16vector-set! (procedure! s16vector-set! ((struct s16vector) fixnum fixnum) undefined)) - -(s16vector? (procedure? (struct s16vector) s16vector? (*) boolean)) - -(s32vector (procedure! s32vector (#!rest number) (struct s32vector))) -(s32vector->blob (procedure! s32vector->blob ((struct 32vector)) blob)) -(s32vector->blob/shared (procedure! s32vector->blob/shared ((struct s32vector)) blob)) -(s32vector->list (procedure! s32vector->list ((struct s32vector)) (list number))) - -(s32vector-length (procedure! s32vector-length ((struct s32vector)) fixnum) - (((struct s32vector)) (##core#inline "C_u_i_32vector_length" #(1)))) - -(s32vector-ref (procedure! s32vector-ref ((struct s32vector) fixnum) number)) -(s32vector-set! (procedure! s32vector-set! ((struct s32vector) fixnum number) undefined)) - -(s32vector? (procedure? (struct s32vector) s32vector? (*) boolean)) - -(s8vector (procedure! s8vector (#!rest fixnum) (struct s8vector))) -(s8vector->blob (procedure! s8vector->blob ((struct s8vector)) blob)) -(s8vector->blob/shared (procedure! s8vector->blob/shared ((struct s8vector)) blob)) -(s8vector->list (procedure! s8vector->list ((struct s8vector)) (list fixnum))) - -(s8vector-length (procedure! s8vector-length ((struct s8vector)) fixnum) - (((struct s8vector)) (##core#inline "C_u_i_8vector_length" #(1)))) - -(s8vector-ref (procedure! s8vector-ref ((struct s8vector) fixnum) fixnum)) -(s8vector-set! (procedure! s8vector-set! ((struct s8vector) fixnum fixnum) undefined)) - -(s8vector? (procedure? (struct s8vector) s8vector? (*) boolean)) - -(subf32vector (procedure! subf32vector ((struct f32vector) fixnum fixnum) (struct f32vector))) -(subf64vector (procedure! subf64vector ((struct f64vector) fixnum fixnum) (struct f64vector))) -(subs16vector (procedure! subs16vector ((struct s16vector) fixnum fixnum) (struct s16vector))) -(subs32vector (procedure! subs32vector ((struct s32vector) fixnum fixnum) (struct s32vector))) -(subs8vector (procedure! subs8vector ((struct s8vector) fixnum fixnum) (struct s8vector))) -(subu16vector (procedure! subu16vector ((struct u16vector) fixnum fixnum) (struct u16vector))) -(subu32vector (procedure! subu32vector ((struct u32vector) fixnum fixnum) (struct u32vector))) -(subu8vector (procedure! subu8vector ((struct u8vector) fixnum fixnum) (struct u8vector))) -(u16vector (procedure! u16vector (#!rest fixnum) (struct u16vector))) -(u16vector->blob (procedure! u16vector->blob ((struct u16vector)) blob)) -(u16vector->blob/shared (procedure! u16vector->blob/shared ((struct u16vector)) blob)) -(u16vector->list (procedure! u16vector->list ((struct u16vector)) (list fixnum))) - -(u16vector-length (procedure! u16vector-length ((struct u16vector)) fixnum) - (((struct u16vector)) (##core#inline "C_u_i_16vector_length" #(1)))) - -(u16vector-ref (procedure! u16vector-ref ((struct u16vector) fixnum) fixnum)) -(u16vector-set! (procedure! u16vector-set! ((struct u16vector) fixnum fixnum) undefined)) - -(u16vector? (procedure? (struct u16vector) u16vector? (*) boolean)) - -(u32vector (procedure! u32vector (#!rest number) (struct u32vector))) -(u32vector->blob (procedure! u32vector->blob ((struct u32vector)) blob)) -(u32vector->blob/shared (procedure! u32vector->blob/shared ((struct u32vector)) blob)) -(u32vector->list (procedure! u32vector->list ((struct u32vector)) (list number))) - -(u32vector-length (procedure! u32vector-length ((struct u32vector)) fixnum) - (((struct u32vector)) (##core#inline "C_u_i_32vector_length" #(1)))) - -(u32vector-ref (procedure! u32vector-ref ((struct u32vector) fixnum) number)) -(u32vector-set! (procedure! u32vector-set! ((struct u32vector) fixnum number) undefined)) - -(u32vector? (procedure? (struct u32vector) u32vector? (*) boolean)) - -(u8vector (procedure! u8vector (#!rest fixnum) (struct u8vector))) -(u8vector->blob (procedure! u8vector->blob ((struct u8vector)) blob)) -(u8vector->blob/shared (procedure! u8vector->blob/shared ((struct u8vector)) blob)) -(u8vector->list (procedure! u8vector->list ((struct u8vector)) (list fixnum))) - -(u8vector-length (procedure! u8vector-length ((struct u8vector)) fixnum) - (((struct u8vector)) (##core#inline "C_u_i_8vector_length" #(1)))) - -(u8vector-ref (procedure! u8vector-ref ((struct u8vector) fixnum) fixnum)) -(u8vector-set! (procedure! u8vector-set! ((struct u8vector) fixnum fixnum) undefined)) - -(u8vector? (procedure? (struct u8vector) u8vector? (*) boolean)) - -(write-u8vector (procedure! write-u8vector ((struct u8vector) #!optional port fixnum fixnum) undefined)) - - -;; srfi-69 - -(alist->hash-table (procedure! alist->hash-table ((list pair) #!rest) (struct hash-table))) -(eq?-hash (procedure! eq?-hash (* #!optional fixnum) fixnum)) -(equal?-hash (procedure! equal?-hash (* #!optional fixnum) fixnum)) -(eqv?-hash (procedure! eqv?-hash (* #!optional fixnum) fixnum)) -(hash (procedure! hash (* #!optional fixnum) fixnum)) -(hash-by-identity (procedure! hash-by-identity (* #!optional fixnum) fixnum)) -(hash-table->alist (procedure! hash-table->alist ((struct hash-table)) (list pair))) -(hash-table-clear! (procedure! hash-table-clear! ((struct hash-table)) undefined)) -(hash-table-copy (procedure! hash-table-copy ((struct hash-table)) (struct hash-table))) -(hash-table-delete! (procedure! hash-table-delete! ((struct hash-table) *) boolean)) -(hash-table-equivalence-function (procedure! hash-table-equivalence-function ((struct hash-table)) (procedure (* *) *))) -(hash-table-exists? (procedure! hash-table-exists? ((struct hash-table) *) boolean)) -(hash-table-fold (procedure! hash-table-fold ((struct hash-table) (procedure (* * *) *) *) *)) -(hash-table-for-each (procedure! hash-table-for-each ((struct hash-table) (procedure (* *) . *)) undefined)) - -(hash-table-has-initial? (procedure! hash-table-has-initial? ((struct hash-table)) boolean) - (((struct hash-table)) (##sys#slot #(1) '9))) ;XXX might return other than #t - -(hash-table-hash-function (procedure! hash-table-hash-function ((struct hash-table)) (procedure (* fixnum) fixnum)) - (((struct hash-table)) (##sys#slot #(1) '4))) - -(hash-table-initial (procedure! hash-table-initial ((struct hash-table)) *)) -(hash-table-keys (procedure! hash-table-keys ((struct hash-table)) list)) -(hash-table-map (procedure! hash-table-map ((struct hash-table) (procedure (* *) *)) list)) - -(hash-table-max-load (procedure! hash-table-max-load ((struct hash-table)) fixnum) - (((struct hash-table)) (##sys#slot #(1) '6))) - -(hash-table-merge (procedure! hash-table-merge ((struct hash-table) (struct hash-table)) (struct hash-table))) -(hash-table-merge! (procedure! hash-table-merge! ((struct hash-table) (struct hash-table)) undefined)) - -(hash-table-min-load (procedure! hash-table-min-load ((struct hash-table)) fixnum) - (((struct hash-table)) (##sys#slot #(1) '5))) - -(hash-table-ref (procedure! hash-table-ref ((struct hash-table) * #!optional (procedure () *)) *)) -(hash-table-ref/default (procedure! hash-table-ref/default ((struct hash-table) * *) *)) -(hash-table-remove! (procedure! hash-table-remove! ((struct hash-table) (procedure (* *) *)) undefined)) -(hash-table-set! (procedure! hash-table-set! ((struct hash-table) * *) undefined)) - -(hash-table-size (procedure! hash-table-size ((struct hash-table)) fixnum) - (((struct hash-table)) (##sys#slot #(1) '2))) - -(hash-table-update! (procedure! hash-table-update! ((struct hash-table) * (procedure (*) *) #!optional (procedure () *)) *)) -(hash-table-update!/default (procedure! hash-table-update!/default ((struct hash-table) * (procedure (*) *) *) *)) -(hash-table-values (procedure! hash-table-values ((struct hash-table)) list)) -(hash-table-walk (procedure! hash-table-walk ((struct hash-table) (procedure (* *) . *)) undefined)) - -(hash-table-weak-keys (procedure! hash-table-weak-keys ((struct hash-table)) boolean) - (((struct hash-table)) (##sys#slot #(1) '7))) - -(hash-table-weak-values (procedure! hash-table-weak-values ((struct hash-table)) boolean) - (((struct hash-table)) (##sys#slot #(1) '8))) - -(hash-table? (procedure? (struct hash-table) hash-table? (*) boolean)) - -;;XXX if we want to hardcode hash-default-bound here, we could rewrite the 1-arg case... -; (applies to all hash-functions) -(keyword-hash (procedure! keyword-hash (* #!optional fixnum) fixnum)) - -(make-hash-table (procedure! make-hash-table (#!rest) (struct hash-table))) -(number-hash (procedure! number-hash (fixnum #!optional fixnum) fixnum)) -(object-uid-hash (procedure! object-uid-hash (* #!optional fixnum) fixnum)) -(symbol-hash (procedure! symbol-hash (symbol #!optional fixnum) fixnum)) -(string-hash (procedure! string-hash (string #!optional fixnum fixnum fixnum) number)) -(string-hash-ci (procedure! string-hash-ci (string #!optional fixnum fixnum fixnum) number)) -(string-ci-hash (procedure! string-ci-hash (string #!optional fixnum fixnum fixnum) number)) - - -;; tcp - -(tcp-abandon-port (procedure! tcp-abandon-port (port) undefined)) -(tcp-accept (procedure! tcp-accept ((struct tcp-listener)) port port)) -(tcp-accept-ready? (procedure! tcp-accept-ready? ((struct tcp-listener)) boolean)) -(tcp-accept-timeout (procedure! tcp-accept-timeout (#!optional number) number)) -(tcp-addresses (procedure! tcp-addresses (port) string string)) -(tcp-buffer-size (procedure! tcp-buffer-size (#!optional fixnum) fixnum)) -(tcp-close (procedure! tcp-close ((struct tcp-listener)) undefined)) -(tcp-connect (procedure! tcp-connect (string #!optional fixnum) port port)) -(tcp-connect-timeout (procedure! tcp-connect-timeout (#!optional number) number)) -(tcp-listen (procedure! tcp-listen (fixnum #!optional fixnum *) (struct tcp-listener))) - -(tcp-listener-fileno (procedure! tcp-listener-fileno ((struct tcp-listener)) fixnum) - (((struct tcp-listener)) (##sys#slot #(1) '1))) - -(tcp-listener-port (procedure! tcp-listener-port ((struct tcp-listener)) fixnum)) - -(tcp-listener? (procedure? (struct tcp-listener) tcp-listener? (*) boolean)) - -(tcp-port-numbers (procedure! tcp-port-numbers (port) fixnum fixnum)) -(tcp-read-timeout (procedure! tcp-read-timeout (#!optional number) number)) -(tcp-write-timeout (procedure! tcp-write-timeout (#!optional number) number)) - - -;; utils - -(for-each-argv-line deprecated) -(for-each-line deprecated) -(read-all (procedure! read-all (#!optional (or port string)) string)) -(system* (procedure! system* (string #!rest) undefined)) -(qs (procedure! qs (string) string)) -(compile-file (procedure! compile-file (string #!rest) (or boolean string))) -(compile-file-options (procedure! compile-file-options (#!optional (list string)) (list string))) -(scan-input-lines (procedure! scan-input-lines (* #!optional port) *)) -(yes-or-no? (procedure! yes-or-no? (string #!rest) *))Trap