* procprop.c (scm_i_procedure_arity): Made global; New code to
[bpt/guile.git] / ice-9 / r4rs.scm
index 696ba40..e5db3d6 100644 (file)
@@ -1,7 +1,7 @@
 ;;;; r4rs.scm --- definitions needed for libguile to be R4RS compliant
 ;;;; Jim Blandy <jimb@cyclic.com> --- October 1996
 
-;;;;   Copyright (C) 1996 Free Software Foundation, Inc.
+;;;;   Copyright (C) 1996, 1997, 1998 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
 ;;;; 
 ;;;; 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, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+;;;; Boston, MA 02111-1307 USA
 
 \f
 ;;;; apply and call-with-current-continuation
 
-;;; These turn syntax, @apply and @call-with-current-continuation,
-;;; into procedures.  If someone knows why they have to be syntax to
-;;; begin with, please fix this comment.
+;;; We want these to be tail-recursive, so instead of using primitive
+;;; procedures, we define them as closures in terms of the primitive
+;;; macros @apply and @call-with-current-continuation.
 (set! apply (lambda (fun . args) (@apply fun (apply:nconc2last args))))
+(set-procedure-property! apply 'name 'apply)
 (define (call-with-current-continuation proc)
   (@call-with-current-continuation proc))
 
 ;;; "internally" in a few places.
 
 
-;; OPEN_READ, OPEN_WRITE, and OPEN_BOTH are used to request the proper
-;; mode to open files in.  MSDOS does carraige return - newline
-;; translation if not opened in `b' mode.
-;;
-(define OPEN_READ (case (software-type)
-                   ((MS-DOS WINDOWS ATARIST) "rb")
-                   (else "r")))
-(define OPEN_WRITE (case (software-type)
-                    ((MS-DOS WINDOWS ATARIST) "wb")
-                    (else "w")))
-(define OPEN_BOTH (case (software-type)
-                   ((MS-DOS WINDOWS ATARIST) "r+b")
-                   (else "r+")))
+;;; OPEN_READ, OPEN_WRITE, and OPEN_BOTH are used to request the
+;;; proper mode to open files in.
+;;;
+;;; If we want to support systems that do CRLF->LF translation, like
+;;; Windows, then we should have a symbol in scmconfig.h made visible
+;;; to the Scheme level that we can test here, and autoconf magic to
+;;; #define it when appropriate.  Windows will probably just have a
+;;; hand-generated scmconfig.h file.
+(define OPEN_READ "r")
+(define OPEN_WRITE "w")
+(define OPEN_BOTH "r+")
 
 (define *null-device* "/dev/null")
 
 
 (set! %load-hook %load-announce)
 
-;;; If we load boot-9.scm, it provides a definition for this which is
-;;; more sophisticated.
-(define read-sharp #f)
-
 (define (load name)
   (start-stack 'load-stack
-              (primitive-load name #t read-sharp)))
+              (primitive-load name)))