From 074ea419432183745005ee18871b55bfc167dd5b Mon Sep 17 00:00:00 2001 From: David Vazquez Date: Fri, 18 Jan 2013 02:15:57 +0000 Subject: [PATCH] SYMBOL-PACKAGE --- ecmalisp.lisp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ecmalisp.lisp b/ecmalisp.lisp index 39c6a21..4ed550d 100644 --- 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*))) + (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 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))) - (oget *package* name)))) + (oget *package* name))) + + (defun symbol-package (symbol) + (unless (symbolp symbol) + (error "it is not a symbol")) + (oget symbol "package"))) -- 1.7.10.4