From: Christophe R. <cr...@us...> - 2003-07-16 08:26:05
|
Update of /cvsroot/sbcl/sbcl/src/compiler/ppc In directory sc8-pr-cvs1:/tmp/cvs-serv14620/src/compiler/ppc Modified Files: array.lisp c-call.lisp Log Message: 0.8.1.34: Merge vector_nil_string_branch ... many other incremental fixes, including * decrease of number of places array properties need to be specified; * rework of build order so that unknown types are never specialized; * primitive types need to know the specifier, not the ctype, so make it so; * fixes to the kernel classoid hierarchy, so more likely to be consistent internally. The good news is that, should it prove necessary, reverting this patch so that (vector nil) isn't a string is probably not very much work; all that needs to be changed are the kernel classoid supertypes and the STRING and SIMPLE-STRING definitions (and unparses). On the other hand, I'd be interested in trying to fix any performance problem "the right way" before reverting this behaviour. Index: array.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/array.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- array.lisp 8 Oct 2002 08:24:06 -0000 1.2 +++ array.lisp 16 Jul 2003 08:26:02 -0000 1.3 @@ -102,24 +102,16 @@ (macrolet ((def-data-vector-frobs (type variant element-type &rest scs) `(progn - (define-vop (,(intern (concatenate 'simple-string - "DATA-VECTOR-REF/" - (string type))) - ,(intern (concatenate 'simple-string - (string variant) - "-REF"))) + (define-vop (,(symbolicate "DATA-VECTOR-REF/" (string type)) + ,(symbolicate (string variant) "-REF")) (:note "inline array access") (:variant sb!vm:vector-data-offset sb!vm:other-pointer-lowtag) (:translate data-vector-ref) (:arg-types ,type positive-fixnum) (:results (value :scs ,scs)) (:result-types ,element-type)) - (define-vop (,(intern (concatenate 'simple-string - "DATA-VECTOR-SET/" - (string type))) - ,(intern (concatenate 'simple-string - (string variant) - "-SET"))) + (define-vop (,(symbolicate "DATA-VECTOR-SET/" (string type)) + ,(symbolicate (string variant) "-SET")) (:note "inline array store") (:variant sb!vm:vector-data-offset sb!vm:other-pointer-lowtag) (:translate data-vector-set) @@ -129,7 +121,7 @@ (value :scs ,scs)) (:results (result :scs ,scs)) (:result-types ,element-type))))) - (def-data-vector-frobs simple-string byte-index + (def-data-vector-frobs simple-base-string byte-index base-char base-char-reg) (def-data-vector-frobs simple-vector word-index * descriptor-reg any-reg) Index: c-call.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ppc/c-call.lisp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- c-call.lisp 18 Mar 2002 17:56:11 -0000 1.1 +++ c-call.lisp 16 Jul 2003 08:26:02 -0000 1.2 @@ -108,7 +108,7 @@ (:translate foreign-symbol-address) (:policy :fast-safe) (:args) - (:arg-types (:constant simple-string)) + (:arg-types (:constant simple-base-string)) (:info foreign-symbol) (:results (res :scs (sap-reg))) (:result-types system-area-pointer) |