summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>2000-06-21 01:17:28 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>2000-06-21 01:17:28 +0000
commitaffb914f39ece0ed19fe8ffd80fb9f6dd76c843f (patch)
tree904f3e29544cf9107c78dc75694348be520e1622
parent90847923a4ba78f9b156095a4ec5c54f539aad58 (diff)
downloadguile-affb914f39ece0ed19fe8ffd80fb9f6dd76c843f.tar.gz
* null.scm, r5rs.scm, safe-r5rs.scm, safe.scm: New modules.
-rw-r--r--ice-9/null.scm38
-rw-r--r--ice-9/r5rs.scm51
-rw-r--r--ice-9/safe-r5rs.scm143
-rw-r--r--ice-9/safe.scm31
4 files changed, 263 insertions, 0 deletions
diff --git a/ice-9/null.scm b/ice-9/null.scm
new file mode 100644
index 000000000..594267bd2
--- /dev/null
+++ b/ice-9/null.scm
@@ -0,0 +1,38 @@
+;;;; Copyright (C) 2000 Free Software Foundation, Inc.
+;;;;
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;;
+;;;; This program is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING. If not, write to
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
+;;;;
+
+;;;; The null environment - only syntactic bindings
+
+(define-module (ice-9 null)
+ :use-module (ice-9 syncase))
+
+(export define quote lambda if set!
+
+ cond case and or
+
+ let let* letrec
+
+ begin do
+
+ delay
+
+ quasiquote unquote unquote-splicing
+
+ define-syntax
+ let-syntax letrec-syntax
+ )
diff --git a/ice-9/r5rs.scm b/ice-9/r5rs.scm
new file mode 100644
index 000000000..a3d0d2f66
--- /dev/null
+++ b/ice-9/r5rs.scm
@@ -0,0 +1,51 @@
+;;;; Copyright (C) 2000 Free Software Foundation, Inc.
+;;;;
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;;
+;;;; This program is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING. If not, write to
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
+;;;;
+
+;;;; R5RS bindings
+
+(define-module (ice-9 r5rs))
+
+(module-use! %module-public-interface (resolve-interface '(ice-9 safe-r5rs)))
+
+(export scheme-report-environment
+ interaction-environment
+
+ call-with-input-file call-with-output-file
+ with-input-from-file with-output-to-file
+ open-input-file open-output-file
+ close-input-port close-output-port
+
+ load
+ ;;transcript-on
+ ;;transcript-off
+ )
+
+(define scheme-report-interface %module-public-interface)
+
+(define (scheme-report-environment n)
+ (if (not (= n 5))
+ (scm-error 'misc-error 'scheme-report-environment
+ "~A is not a valid version"
+ (list n)
+ '()))
+ scheme-report-interface)
+
+(define interaction-interface (resolve-interface '(guile-user)))
+
+(define (interaction-environment)
+ interaction-interface)
diff --git a/ice-9/safe-r5rs.scm b/ice-9/safe-r5rs.scm
new file mode 100644
index 000000000..f5bf800d5
--- /dev/null
+++ b/ice-9/safe-r5rs.scm
@@ -0,0 +1,143 @@
+;;;; Copyright (C) 2000 Free Software Foundation, Inc.
+;;;;
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;;
+;;;; This program is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING. If not, write to
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
+;;;;
+
+;;;; Safe subset of R5RS bindings
+
+(define-module (ice-9 safe-r5rs))
+
+(module-use! %module-public-interface (resolve-interface '(ice-9 null)))
+
+(export eqv? eq? equal?
+ number? complex? real? rational? integer?
+ exact? inexact?
+ = < > <= >=
+ zero? positive? negative? odd? even?
+ max min
+ + * - /
+ abs
+ quotient remainder modulo
+ gcd lcm
+ numerator denominator
+ floor ceiling truncate round
+ rationalize
+ exp log sin cos tan asin acos atan
+ sqrt
+ expt
+ make-rectangualr make-polar real-part imag-part magnitude angle
+ exact->inexact inexact->exact
+
+ number->string string->number
+
+ boolean?
+ not
+
+ pair?
+ cons car cdr
+ set-car! set-cdr!
+ caar cadr cdar cddr
+ caaar caadr cadar caddr cdaar cdadr cddar cdddr
+ caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
+ cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
+ null?
+ list?
+ length
+ append
+ reverse
+ list-tail list-ref
+ memq memv member
+ assq assv assoc
+
+ symbol?
+ symbol->string string->symbol
+
+ char?
+ char=? char<? char>? char<=? char>=?
+ char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
+ char-alphabetic? char-numeric? char-whitespace?
+ char-upper-case? char-lower-case?
+ char->integer integer->char
+ char-upcase
+ char-downcase
+
+ string?
+ make-string
+ string
+ string-length
+ string-ref string-set!
+ string=? string-ci=?
+ string<? string>? string<=? string>=?
+ string-ci<? string-ci>? string-ci<=? string-ci>=?
+ substring
+ string-length
+ string-append
+ string->list list->string
+ string-copy string-fill!
+
+ vector?
+ make-vector
+ vector
+ vector-length
+ vector-ref vector-set!
+ vector->list list->vector
+ vector-fill!
+
+ procedure?
+ apply
+ map
+ for-each
+ force
+
+ call-with-current-continuation
+
+ values
+ call-with-values
+ dynamic-wind
+
+ eval
+ null-environment
+
+ input-port? output-port?
+ current-input-port current-output-port
+
+ read
+ read-char
+ peek-char
+ eof-object?
+ char-ready?
+
+ write
+ display
+ newline
+ write-char
+
+ ;;transcript-on
+ ;;transcript-off
+ )
+
+(define eval eval-in-module)
+
+(define null-interface (make-module 31))
+(set-module-kind! null-interface 'interface)
+
+(define (null-environment n)
+ (if (not (= n 5))
+ (scm-error 'misc-error 'null-environment
+ "~A is not a valid version"
+ (list n)
+ '()))
+ null-interface)
diff --git a/ice-9/safe.scm b/ice-9/safe.scm
new file mode 100644
index 000000000..fe6da1a31
--- /dev/null
+++ b/ice-9/safe.scm
@@ -0,0 +1,31 @@
+;;;; Copyright (C) 2000 Free Software Foundation, Inc.
+;;;;
+;;;; This program is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU General Public License as published by
+;;;; the Free Software Foundation; either version 2, or (at your option)
+;;;; any later version.
+;;;;
+;;;; This program is distributed in the hope that it will be useful,
+;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;;; GNU General Public License for more details.
+;;;;
+;;;; You should have received a copy of the GNU General Public License
+;;;; along with this software; see the file COPYING. If not, write to
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
+;;;;
+
+;;;; Safe subset of R5RS bindings
+
+(define-module (ice-9 safe))
+
+(define safe-r5rs-interface (resolve-interface '(ice-9 safe-r5rs)))
+
+(define-public (safe-environment n)
+ (if (not (= n 5))
+ (scm-error 'misc-error 'safe-environment
+ "~A is not a valid version"
+ (list n)
+ '()))
+ safe-r5rs-interface)