This patch will fix all problems in the clicc 0.6.5 pre-release, we encountered until today, Mon Dec 18 1995. It patches the pre-0.6.5 release and is used in the form: cd clicc-pre-0.6.5 patch -p1 > Makroexpansion ;; -------------- ! `(L:WITH-OPEN-STREAM (,var (L:MAKE-STRING-INPUT-STREAM ,string ,start ,end)) ! ,decl ! ,@expanded-body))) ;;------------------------------------------------------------------------------ ;; WITH-OUTPUT-TO-STRING (var [string]) {declaration}* {form}* --- 920,932 ---- ;; >> Makroexpansion ;; -------------- ! (if end ! `(L:WITH-OPEN-STREAM (,var (L:MAKE-STRING-INPUT-STREAM ,string ,start ,end)) ! ,decl ! ,@expanded-body) ! `(L:WITH-OPEN-STREAM (,var (L:MAKE-STRING-INPUT-STREAM ,string ,start)) ! ,decl ! ,@expanded-body)))) ;;------------------------------------------------------------------------------ ;; WITH-OUTPUT-TO-STRING (var [string]) {declaration}* {form}* diff -rc clicc-pre-0.6.5/src/compiler/zsdef.lisp clicc-0.6.5/src/compiler/zsdef.lisp *** clicc-pre-0.6.5/src/compiler/zsdef.lisp Mon Dec 12 15:44:44 1994 --- clicc-0.6.5/src/compiler/zsdef.lisp Mon Dec 18 17:05:48 1995 *************** *** 22,29 **** ;;;----------------------------------------------------------------------------- ;;; Funktion : Definition der Zwischensprachenimplementation ;;; ! ;;; $Revision: 1.148 $ ! ;;; $Id: zsdef.lisp,v 1.148 1994/12/12 14:44:44 hk Exp $ ;;;----------------------------------------------------------------------------- (in-package "CLICC") --- 22,29 ---- ;;;----------------------------------------------------------------------------- ;;; Funktion : Definition der Zwischensprachenimplementation ;;; ! ;;; $Revision: 1.149 $ ! ;;; $Id: zsdef.lisp,v 1.149 1995/12/15 15:37:13 wg Exp $ ;;;----------------------------------------------------------------------------- (in-package "CLICC") *************** *** 187,192 **** --- 187,198 ---- ;;------------------------------------------------------------------------------ (defzws dynamic (var) (sym :type sym)) ; das zugehoerige Symbol + + ;;------------------------------------------------------------------------------ + ;; Zugriff auf den Namen im Quellcode + ;;------------------------------------------------------------------------------ + (defmethod ?symbol ((a-dynamic dynamic)) + (?symbol (?sym a-dynamic))) ;;------------------------------------------------------------------------------ ;; Variablen Referenz diff -rc clicc-pre-0.6.5/src/runtime/c/unix.c clicc-0.6.5/src/runtime/c/unix.c *** clicc-pre-0.6.5/src/runtime/c/unix.c Tue Nov 22 15:54:01 1994 --- clicc-0.6.5/src/runtime/c/unix.c Mon Dec 18 17:06:49 1995 *************** *** 26,33 **** * - unix-readlink * - unix-get-unix-error-msg * ! * $Revision: 1.12 $ ! * $Id: unix.c,v 1.12 1994/11/22 14:54:01 hk Exp $ *--------------------------------------------------------------------------*/ #include --- 26,33 ---- * - unix-readlink * - unix-get-unix-error-msg * ! * $Revision: 1.13 $ ! * $Id: unix.c,v 1.13 1995/12/13 15:58:53 wg Exp $ *--------------------------------------------------------------------------*/ #include *************** *** 38,46 **** #include #ifdef __STDC__ ! extern char *getwd(char pathname[]); #else ! extern char *getwd(); #endif /*------------------------------------------------------------------------------ --- 38,46 ---- #include #ifdef __STDC__ ! extern char *getcwd(char pathname[], size_t size); #else ! extern char *getcwd(); #endif /*------------------------------------------------------------------------------ *************** *** 52,58 **** char pathname[MAXPATHLEN]; char *result; ! result = getwd(pathname); make_string(ARG(0), pathname); COPY(ARG(0), OFFSET(mv_buf, 0)); mv_count = 2; --- 52,58 ---- char pathname[MAXPATHLEN]; char *result; ! result = getcwd(pathname,MAXPATHLEN); make_string(ARG(0), pathname); COPY(ARG(0), OFFSET(mv_buf, 0)); mv_count = 2; diff -rc clicc-pre-0.6.5/src/runtime/lisp/read.lisp clicc-0.6.5/src/runtime/lisp/read.lisp *** clicc-pre-0.6.5/src/runtime/lisp/read.lisp Fri Mar 3 18:35:19 1995 --- clicc-0.6.5/src/runtime/lisp/read.lisp Mon Dec 18 17:07:04 1995 *************** *** 31,38 **** ;;; - READ-FROM-STRING ;;; - PARSE-INTEGER ;;; ! ;;; $Revision: 1.18 $ ! ;;; $Id: read.lisp,v 1.18 1995/03/03 17:35:19 wg Exp $ ;;;----------------------------------------------------------------------------- (in-package "LISP") --- 31,38 ---- ;;; - READ-FROM-STRING ;;; - PARSE-INTEGER ;;; ! ;;; $Revision: 1.20 $ ! ;;; $Id: read.lisp,v 1.20 1995/12/15 15:33:14 wg Exp $ ;;;----------------------------------------------------------------------------- (in-package "LISP") *************** *** 402,413 **** (defun set-syntax-from-char (to-char from-char &optional (to-readtable *readtable*) ! (from-readtable *standard-readtable*) &aux pair) ;; originale Readtable potentiell zerstoert ;;----------------------------------------- (setq *readtable-unchanged* nil) (setf (aref (readtable-syntax to-readtable) (char-code to-char)) (aref (readtable-syntax from-readtable) (char-code from-char))) --- 402,418 ---- (defun set-syntax-from-char (to-char from-char &optional (to-readtable *readtable*) ! (from-readtable nil) &aux pair) ;; originale Readtable potentiell zerstoert ;;----------------------------------------- (setq *readtable-unchanged* nil) + + ;; from-readtable defaults to nil meaning to use the syntaxes from + ;; the standard Lisp readtable + ;;---------------------------------------------------------------- + (unless from-readtable (setq from-readtable *standard-readtable*)) (setf (aref (readtable-syntax to-readtable) (char-code to-char)) (aref (readtable-syntax from-readtable) (char-code from-char))) *************** *** 1247,1257 **** (return)) (setq c (read-char stream nil nil recursive-p))))) ! (when (null c) ! (when eof-error-p (error "unexpected end of file")) ! eof-value) ! (prog1 c ! (unread-char c stream)))) ;;------------------------------------------------------------------------------ (defun read-from-string (string &optional (eof-error-p t) eof-value --- 1252,1262 ---- (return)) (setq c (read-char stream nil nil recursive-p))))) ! (if (null c) ! (if eof-error-p (error "unexpected end of file") ! eof-value) ! (prog1 c ! (unread-char c stream))))) ;;------------------------------------------------------------------------------ (defun read-from-string (string &optional (eof-error-p t) eof-value diff -rc clicc-pre-0.6.5/src/runtime/lisp/stream.lisp clicc-0.6.5/src/runtime/lisp/stream.lisp *** clicc-pre-0.6.5/src/runtime/lisp/stream.lisp Tue Nov 22 15:55:56 1994 --- clicc-0.6.5/src/runtime/lisp/stream.lisp Mon Dec 18 17:07:10 1995 *************** *** 26,33 **** ;;; - FILE-...-STREAM ;;; - CLOSE ;;; ! ;;; $Revision: 1.14 $ ! ;;; $Id: stream.lisp,v 1.14 1994/11/22 14:55:56 hk Exp $ ;;;----------------------------------------------------------------------------- (in-package "LISP") --- 26,33 ---- ;;; - FILE-...-STREAM ;;; - CLOSE ;;; ! ;;; $Revision: 1.15 $ ! ;;; $Id: stream.lisp,v 1.15 1995/12/15 15:31:31 wg Exp $ ;;;----------------------------------------------------------------------------- (in-package "LISP") *************** *** 233,239 **** (when (<= index start) (error "reached start of stream")) (decf index) (unless (eql c (char string index)) ! (error "%s should be eql to %s" c (char string index))) nil) ;;; :listen #'(lambda () (< index end)) :tell #'(lambda () index) --- 233,239 ---- (when (<= index start) (error "reached start of stream")) (decf index) (unless (eql c (char string index)) ! (error "~s should be eql to ~s" c (char string index))) nil) ;;; :listen #'(lambda () (< index end)) :tell #'(lambda () index)