projects
/
jscl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2ce46f0
)
SYMBOL-PACKAGE
author
David Vazquez
<davazp@gmail.com>
Fri, 18 Jan 2013 02:15:57 +0000
(
02:15
+0000)
committer
David Vazquez
<davazp@gmail.com>
Fri, 18 Jan 2013 02:15:57 +0000
(
02:15
+0000)
ecmalisp.lisp
patch
|
blob
|
history
diff --git
a/ecmalisp.lisp
b/ecmalisp.lisp
index
39c6a21
..
4ed550d
100644
(file)
--- a/
ecmalisp.lisp
+++ b/
ecmalisp.lisp
@@
-493,17
+493,25
@@
;; with the symbols built during bootstrap.
(defun %intern-symbol (symbol)
(let ((symbols (%package-symbols *package*)))
;; with the symbols built during bootstrap.
(defun %intern-symbol (symbol)
(let ((symbols (%package-symbols *package*)))
+ (oset symbol "package" *package*)
(oset symbols (symbol-name symbol) symbol)))
(defun intern (name &optional (package *package*))
(let ((symbols (%package-symbols package)))
(if (in name symbols)
(oget symbols name)
(oset symbols (symbol-name symbol) symbol)))
(defun intern (name &optional (package *package*))
(let ((symbols (%package-symbols package)))
(if (in name symbols)
(oget symbols name)
- (oset symbols name (make-symbol name)))))
+ (let ((symbol (make-symbol name)))
+ (oset symbol "package" package)
+ (oset symbols name symbol)))))
(defun find-symbol (name &optional (package *package*))
(let ((symbols (%package-symbols package)))
(defun find-symbol (name &optional (package *package*))
(let ((symbols (%package-symbols package)))
- (oget *package* name))))
+ (oget *package* name)))
+
+ (defun symbol-package (symbol)
+ (unless (symbolp symbol)
+ (error "it is not a symbol"))
+ (oget symbol "package")))