diff --git a/NEWS b/NEWS index 9d67dc3ee..5104c90d9 100644 --- a/NEWS +++ b/NEWS @@ -4,10 +4,6 @@ changes relative to sbcl-2.1.4: * optimization: file compilation now produces smaller fasls for files which reference package literals. * optimization: faster function calls on ARM64. - * incompatible change: on certain platforms (currently just x86-64), - dynamic-extent arrays specialized on character and numeric types and - created without either :INITIAL-ELEMENT or :INITIAL-CONTENTS will reflect - previous contents of the stack instead of #\null (or 0) in all elements. * bug fix: on x86-64, fix instruction encoding for TEST on RIP-relative addresses. (lp#1925808, reported by Shinmera on #sbcl, thanks also to 3b) diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp index 8ee6940e2..3a77cb1f0 100644 --- a/src/compiler/array-tran.lisp +++ b/src/compiler/array-tran.lisp @@ -916,7 +916,8 @@ (t ;; otherwise, reading an element can't cause an invalid bit pattern ;; to be observed, but the bits could be random. - data-alloc-form)))))) + ;; KLUDGE: backward-compatibile 0-fill + `(sb-vm::splat ,data-alloc-form nwords 0))))))) ;; Case (3) - constant :INITIAL-CONTENTS and LENGTH ((and c-length diff --git a/src/compiler/main.lisp b/src/compiler/main.lisp index 1bc029106..8db244328 100644 --- a/src/compiler/main.lisp +++ b/src/compiler/main.lisp @@ -843,7 +843,7 @@ necessary, since type inference may take arbitrarily long to converge.") ;;; The normal build sets it to T in make-target-2, despite that I think most people would ;;; prefer the nonstandard behavior. The standard behavior makes stored pathnames all wrong ;;; when files are physically moved. (Same problem as SBCL_HOME embedded into C pretty much) -(defglobal *merge-pathnames* t) +(defglobal *merge-pathnames* nil) ;;; Given a pathname, return a SOURCE-INFO structure. (defun make-file-source-info (file external-format &optional form-tracking-p) diff --git a/src/compiler/x86-64/alloc.lisp b/src/compiler/x86-64/alloc.lisp index 6362f6ae4..19ed03d51 100644 --- a/src/compiler/x86-64/alloc.lisp +++ b/src/compiler/x86-64/alloc.lisp @@ -550,7 +550,7 @@ (inst xor rdi rsp-tn) ; compute shadow address (zeroize rax) (inst rep) - (inst stos rax))))) + (inst stos :qword))))) ;;; ALLOCATE-LIST (macrolet ((calc-size-in-bytes (length answer)