use guile eval for elisp tree-il
[bpt/guile.git] / module / rnrs.scm
index 5df53fe..a132c53 100644 (file)
@@ -1,6 +1,6 @@
 ;;; rnrs.scm --- The R6RS composite library
 
 ;;; rnrs.scm --- The R6RS composite library
 
-;;      Copyright (C) 2010 Free Software Foundation, Inc.
+;;      Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
 
          boolean? symbol? char? vector? null? pair? number? string? procedure?
          define define-syntax syntax-rules lambda let let* let-values
 
          boolean? symbol? char? vector? null? pair? number? string? procedure?
          define define-syntax syntax-rules lambda let let* let-values
-         let*-values letrec begin quote lambda if set! cond case or and not
-         eqv? equal? eq? + - * / max min abs numerator denominator gcd lcm 
-         floor ceiling truncate round rationalize real-part imag-part 
+         let*-values letrec letrec* begin quote lambda if set! cond case or 
+          and not eqv? equal? eq? + - * / max min abs numerator denominator gcd
+          lcm floor ceiling truncate round rationalize real-part imag-part 
          make-rectangular angle div mod div-and-mod div0 mod0 div0-and-mod0
          expt exact-integer-sqrt sqrt exp log sin cos tan asin acos atan 
          make-polar magnitude angle complex? real? rational? integer? exact? 
          make-rectangular angle div mod div-and-mod div0 mod0 div0-and-mod0
          expt exact-integer-sqrt sqrt exp log sin cos tan asin acos atan 
          make-polar magnitude angle complex? real? rational? integer? exact? 
-         inexact? real-valued? rational-valued? integer-values? zero? 
+         inexact? real-valued? rational-valued? integer-valued? zero? 
          positive? negative? odd? even? nan? finite? infinite? exact inexact =
          positive? negative? odd? even? nan? finite? infinite? exact inexact =
-         < > <= >= number->string string->number cons car cdr caar cadr cdar 
-         cddr caaar caadr cadar cdaar caddr cdadr cddar cdddr caaaar caaadr 
-         caadar cadaar cdaaar cddaar cdadar cdaadr cadadr caaddr caddar cadddr
-         cdaddr cddadr cdddar cddddr list? list length append reverse 
+         < > <= >= number->string string->number boolean=? cons car cdr caar 
+          cadr cdar cddr caaar caadr cadar cdaar caddr cdadr cddar cdddr caaaar
+          caaadr caadar cadaar cdaaar cddaar cdadar cdaadr cadadr caaddr caddar
+          cadddr cdaddr cddadr cdddar cddddr list? list length append reverse 
          list-tail list-ref map for-each symbol->string string->symbol symbol=?
          char->integer integer->char char=? char<? char>? char<=? char>=?
          make-string string string-length string-ref string=? string<? string>?
          list-tail list-ref map for-each symbol->string string->symbol symbol=?
          char->integer integer->char char=? char<? char>? char<=? char>=?
          make-string string string-length string-ref string=? string<? string>?
 
          ;; (rnrs io ports)
 
 
          ;; (rnrs io ports)
 
-         eof-object? port? input-port? output-port? eof-object port-transcoder
-         binary-port? transcoded-port port-position set-port-position!
-         port-has-port-position? port-has-set-port-position!? call-with-port
+         file-options buffer-mode buffer-mode?
+         eol-style native-eol-style error-handling-mode
+         make-transcoder transcoder-codec transcoder-eol-style
+          transcoder-error-handling-mode native-transcoder
+         latin-1-codec utf-8-codec utf-16-codec
+         
+         eof-object? port? input-port? output-port? eof-object port-eof?
+         port-transcoder
+         binary-port? textual-port? transcoded-port
+         port-position set-port-position!
+         port-has-port-position? port-has-set-port-position!?
+          close-port call-with-port
          open-bytevector-input-port make-custom-binary-input-port get-u8 
          lookahead-u8 get-bytevector-n get-bytevector-n! get-bytevector-some 
          get-bytevector-all open-bytevector-output-port
          make-custom-binary-output-port put-u8 put-bytevector
           open-string-input-port open-string-output-port
          open-bytevector-input-port make-custom-binary-input-port get-u8 
          lookahead-u8 get-bytevector-n get-bytevector-n! get-bytevector-some 
          get-bytevector-all open-bytevector-output-port
          make-custom-binary-output-port put-u8 put-bytevector
           open-string-input-port open-string-output-port
-
+          call-with-bytevector-output-port
+          call-with-string-output-port
+          latin-1-codec utf-8-codec utf-16-codec
+          open-file-input-port open-file-output-port open-file-input/output-port
+          make-custom-textual-output-port
+          call-with-string-output-port
+         flush-output-port put-string
+          get-char get-datum get-line get-string-all get-string-n get-string-n!
+          lookahead-char
+          put-char put-datum put-string
+          standard-input-port standard-output-port standard-error-port
+          
          ;; (rnrs io simple)
          
          call-with-input-file call-with-output-file current-input-port
          ;; (rnrs io simple)
          
          call-with-input-file call-with-output-file current-input-port
 
          ;; (rnrs syntax-case)
 
 
          ;; (rnrs syntax-case)
 
-         make-variable-transformer syntax syntax-case identifier?
-         bound-identifier=? free-identifier=? syntax->datum datum->syntax
-         generate-temporaries with-syntax quasisyntax unsyntax
-         unsyntax-splicing syntax-violation)
+         make-variable-transformer syntax
+          ;; Until the deprecated support for a unified modules and
+          ;; bindings namespace is removed, we need to manually resolve
+          ;; a conflict between two bindings: that of the (rnrs
+          ;; syntax-case) module, and the imported `syntax-case'
+          ;; binding. We do so here and below by renaming the macro
+          ;; import.
+          (rename (syntax-case-hack syntax-case))
+          identifier?  bound-identifier=? free-identifier=?
+          syntax->datum datum->syntax generate-temporaries with-syntax
+          quasisyntax unsyntax unsyntax-splicing syntax-violation
+
+         ;; (rnrs unicode)
+         
+         char-upcase char-downcase char-titlecase char-foldcase
+         char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
+         char-alphabetic? char-numeric? char-whitespace? char-upper-case?
+         char-lower-case? char-title-case? char-general-category
+         string-upcase string-downcase string-titlecase string-foldcase
+         string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?
+         string-normalize-nfd string-normalize-nfkd string-normalize-nfc
+         string-normalize-nfkc)
 
   (import (rnrs arithmetic bitwise (6))
          (rnrs arithmetic fixnums (6))
 
   (import (rnrs arithmetic bitwise (6))
          (rnrs arithmetic fixnums (6))
          (rnrs control (6))
          (rnrs enums (6))
          (rnrs exceptions (6))
          (rnrs control (6))
          (rnrs enums (6))
          (rnrs exceptions (6))
-         (rnrs files (6))
+
+          (rnrs files (6))
+
          (rnrs hashtables (6))
 
          (rnrs io ports (6))
          (rnrs hashtables (6))
 
          (rnrs io ports (6))
          (rnrs records procedural (6))
          (rnrs records syntactic (6))
          (rnrs sorting (6))
          (rnrs records procedural (6))
          (rnrs records syntactic (6))
          (rnrs sorting (6))
-         (rnrs syntax-case (6))))
+          ;; See note above on exporting syntax-case.
+         (rename (rnrs syntax-case (6))
+                  (syntax-case syntax-case-hack))
+         (rnrs unicode (6))))