Show
Ignore:
Timestamp:
05/02/12 21:40:28 (2 years ago)
Author:
Raymond Toy <toy.raymond@…>
Branch:
default
Message:

Don't declare strings as (simple-array character). In general that's
incorrect for literal strings because they can be base-strings or
strings, depending on the implementation. (Ecl does this).

Thus, just declare them as simple-strings which includes all string
types.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/f2cl1.l

    r1135 r1140  
    204204  (flet ((relax-1 (decl) 
    205205           (cond ((and *relaxed-array-decls* (subtypep decl 'array)) 
    206                   (destructuring-bind (a n l) 
     206                  (destructuring-bind (a &optional n l) 
    207207                      decl 
    208                     `(,a ,n ,(mapcar (constantly '*) l)))) 
     208                    (if (subtypep a 'string) 
     209                        `(a ,(mapcar (constantly '*) l)) 
     210                        `(,a ,n ,(mapcar (constantly '*) l))))) 
    209211                 (t 
    210212                  decl)))) 
     
    10761078        (do-file) 
    10771079        (do-output outport)))) 
    1078      
    10791080 
    10801081(defun translate-and-write-subprog (prog-list outport output-path 
     
    11521153       ;; external. 
    11531154       (setf fun (fixup-f2cl-lib fun (cons (cadr fort-fun) *external-function-names*))) 
    1154         
     1155 
    11551156       (special-print fun outport) 
    11561157       (format outport "~2&(in-package #-gcl #:cl-user #+gcl \"CL-USER\")~%#+#.(cl:if (cl:find-package '#:f2cl) '(and) '(or))~%")