Skip to content

Commit

Permalink
0.8alpha.0.21:
Browse files Browse the repository at this point in the history
	The "uh, I thought we had users beta-testing for us" release:
	Make SETQ on globals return a value (and IN-PACKAGE, and ...)
	... the SET VOP and the %SET-SYMBOL-VALUE IR2 thingy are
		different, so one shouldn't translate the other;
	... instead, create an IR2 translator for %SET-SYMBOL-VALUE by
		hand, mimicking the effect of :SET-TRANS in
		DEFINE-PRIMITIVE-OBJECT;
	... this removes the need for late-symbol.lisp, so delete it.
	While we're in a deleting mood...
	... delete src/pcl/fast-init.lisp, which hasn't been part of the
		build for the last 5 months or so.
  • Loading branch information
csrhodes committed May 8, 2003
1 parent 1bbd405 commit d76c81b
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 980 deletions.
1 change: 0 additions & 1 deletion build-order.lisp-expr
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,6 @@
("src/compiler/early-aliencomp")
("src/compiler/target/c-call")
("src/compiler/target/cell")
("src/code/late-symbol" :not-host)
("src/compiler/target/values")
("src/compiler/target/alloc")
("src/compiler/target/call")
Expand Down
18 changes: 0 additions & 18 deletions src/code/late-symbol.lisp

This file was deleted.

6 changes: 2 additions & 4 deletions src/code/symbol.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,8 @@
(about-to-modify-symbol-value symbol)
(%set-symbol-value symbol new-value))

;;; can't do this yet, the appropriate vop only gets defined in
;;; compiler/target/cell, 400 lines hence
;;;(defun %set-symbol-value (symbol new-value)
;;; (%set-symbol-value symbol new-value))
(defun %set-symbol-value (symbol new-value)
(%set-symbol-value symbol new-value))

(defun makunbound (symbol)
#!+sb-doc
Expand Down
16 changes: 16 additions & 0 deletions src/compiler/generic/vm-ir2tran.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,19 @@
type lowtag result))
(do-inits node block name result lowtag inits args)
(move-continuation-result node block locs cont)))

;;; KLUDGE: this is set up automatically in #!-SB-THREAD builds by the
;;; :SET-TRANS thing in objdef.lisp. However, for #!+SB-THREAD builds
;;; we need to use a special VOP, so we have to do this by hand.
;;; -- CSR, 2003-05-08
#!+sb-thread
(let ((fun-info (fun-info-or-lose '%set-symbol-value)))
(setf (fun-info-ir2-convert fun-info)
(lambda (node block)
(let ((args (basic-combination-args node)))
(destructuring-bind (symbol value) args
(let ((value-tn (continuation-tn node block value)))
(vop set node block
(continuation-tn node block symbol) value-tn)
(move-continuation-result
node block (list value-tn) (node-cont node))))))))
3 changes: 1 addition & 2 deletions src/compiler/x86/cell.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,7 @@
(define-vop (set)
(:args (symbol :scs (descriptor-reg))
(value :scs (descriptor-reg any-reg)))
(:translate sb!kernel:%set-symbol-value)
(:temporary (:sc descriptor-reg ) tls)
(:temporary (:sc descriptor-reg) tls)
;;(:policy :fast-safe)
(:generator 4
(let ((global-val (gen-label))
Expand Down
Loading

0 comments on commit d76c81b

Please sign in to comment.