system has been added. (thanks to Alastair Bridgewater)
* fixed several bugs in and robustified the PPC FFI (including
callbacks). (thanks to Cyrus Harmon and Heiner Schwarte)
+ * bug fix: allow non-simple string symbol names (reported by Paul
+ Dietz)
* optimization: faster implementation of EQUAL
* fixed segfaults on x86 FreeBSD 7-current (thanks to NIIMI Satoshi)
(defun make-symbol (string)
#!+sb-doc
"Make and return a new symbol with the STRING as its print name."
- (make-symbol string))
+ (declare (type string string))
+ (%make-symbol (if (simple-string-p string)
+ string
+ (subseq string 0))))
(defun get (symbol indicator &optional (default nil))
#!+sb-doc
(defknown get-properties (list list) (values t t list) (foldable flushable))
(defknown symbol-name (symbol) simple-string (movable foldable flushable))
(defknown make-symbol (string) symbol (flushable))
+(defknown %make-symbol (simple-string) symbol (flushable))
(defknown copy-symbol (symbol &optional t) symbol (flushable))
(defknown gensym (&optional (or string unsigned-byte)) symbol ())
(defknown symbol-package (symbol) (or sb!xc:package null) (flushable))
(values)
())
(defknown style-warn (string &rest t) null ())
-
(define-primitive-object (symbol :lowtag other-pointer-lowtag
:widetag symbol-header-widetag
- :alloc-trans make-symbol)
+ :alloc-trans %make-symbol)
;; Beware when changing this definition. NIL-the-symbol is defined
;; using this layout, and NIL-the-end-of-list-marker is the cons
(unless do-not-optimize
(setf (node-reoptimize cast) nil)))
+
+(deftransform make-symbol ((string) (simple-string))
+ `(%make-symbol string))
(inst lea result (make-ea :byte :base result :disp lowtag))
(storew header result 0 lowtag))))
-(define-vop (make-symbol)
+(define-vop (%make-symbol)
(:policy :fast-safe)
- (:translate make-symbol)
+ (:translate %make-symbol)
(:args (name :scs (descriptor-reg) :to :eval))
(:temporary (:sc unsigned-reg :from :eval) temp)
(:results (result :scs (descriptor-reg) :from :argument))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.8.9"
+"0.9.8.10"