Skip to content
Snippets Groups Projects
Commit 30c2e45f authored by rtoy's avatar rtoy
Browse files

o Work around issue pointed out by Madhu on cmucl-imp, 2010-04-24.

  Replace the call to (setf info) with a (new) function,
  set-defvar-textdomain, that calls (setf info).  The (setf info) was
  causing the compiler to run and producing an unexpected message.
  The compiler doesn't need to handle the new function specially.

o DEFCONSTANT was not recording the text domain for the new constant.
  Call set-defvar-textdomain to record the text domain.
parent 4c3c1c2a
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain. ;;; Carnegie Mellon University, and has been placed in the public domain.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.118 2010/04/23 13:23:29 rtoy Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.119 2010/04/27 23:29:30 rtoy Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -397,6 +397,9 @@ ...@@ -397,6 +397,9 @@
(setq inline-expansion lambda-expression)))) (setq inline-expansion lambda-expression))))
(c::%%defun name def doc inline-expansion))) (c::%%defun name def doc inline-expansion)))
(defun set-defvar-textdomain (name domain)
(setf (c::info variable textdomain name) domain))
;;; DEFCONSTANT -- Public ;;; DEFCONSTANT -- Public
;;; ;;;
(defmacro defconstant (var val &optional doc) (defmacro defconstant (var val &optional doc)
...@@ -410,6 +413,7 @@ ...@@ -410,6 +413,7 @@
(eval-when (:compile-toplevel) (eval-when (:compile-toplevel)
(c::do-defconstant-compile-time ',var ,val ',doc)) (c::do-defconstant-compile-time ',var ,val ',doc))
(eval-when (:load-toplevel :execute) (eval-when (:load-toplevel :execute)
(set-defvar-textdomain ',var ,intl::*default-domain*)
(c::%%defconstant ',var ,val ',doc (c::source-location))))) (c::%%defconstant ',var ,val ',doc (c::source-location)))))
(defun set-defvar-source-location (name source-location) (defun set-defvar-source-location (name source-location)
...@@ -437,7 +441,6 @@ ...@@ -437,7 +441,6 @@
(set-defvar-source-location name source-location) (set-defvar-source-location name source-location)
name) name)
(defmacro defvar (var &optional (val nil valp) (doc nil docp)) (defmacro defvar (var &optional (val nil valp) (doc nil docp))
"For defining global variables at top level. Declares the variable "For defining global variables at top level. Declares the variable
SPECIAL and, optionally, initializes it. If the variable already has a SPECIAL and, optionally, initializes it. If the variable already has a
...@@ -453,7 +456,7 @@ ...@@ -453,7 +456,7 @@
,@(when docp ,@(when docp
`((setf (documentation ',var 'variable) ',doc) `((setf (documentation ',var 'variable) ',doc)
(eval-when (:load-toplevel :execute) (eval-when (:load-toplevel :execute)
(setf (c::info variable textdomain ',var) ,intl::*default-domain*)))) (set-defvar-textdomain ',var ,intl::*default-domain*))))
(set-defvar-source-location ',var (c::source-location)) (set-defvar-source-location ',var (c::source-location))
',var)) ',var))
...@@ -470,7 +473,7 @@ ...@@ -470,7 +473,7 @@
,@(when docp ,@(when docp
`((setf (documentation ',var 'variable) ',doc) `((setf (documentation ',var 'variable) ',doc)
(eval-when (:load-toplevel :execute) (eval-when (:load-toplevel :execute)
(setf (c::info variable textdomain ',var) ,intl::*default-domain*)))) (set-defvar-textdomain ',var ,intl::*default-domain*))))
(set-defvar-source-location ',var (c::source-location)) (set-defvar-source-location ',var (c::source-location))
',var)) ',var))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment