From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Pascal Bourguignon Newsgroups: gmane.emacs.help Subject: Re: LISP symbols defined with DEFUN Date: Fri, 13 Apr 2007 18:48:33 +0200 Organization: Informatimago Message-ID: <87tzvki5jy.fsf@voyager.informatimago.com> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1176485777 27709 80.91.229.12 (13 Apr 2007 17:36:17 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 13 Apr 2007 17:36:17 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Apr 13 19:36:11 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HcPgv-0005i5-Rd for geh-help-gnu-emacs@m.gmane.org; Fri, 13 Apr 2007 19:36:10 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HcPlD-0002nD-QD for geh-help-gnu-emacs@m.gmane.org; Fri, 13 Apr 2007 13:40:35 -0400 Original-Path: shelby.stanford.edu!newshub.stanford.edu!news.tele.dk!news.tele.dk!small.news.tele.dk!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 35 Original-X-Trace: individual.net i+a8+RVhKr92/hFUWMGdJQ9pq26KSYTeBNeSpR0LWFmncWsQjb Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAQMAAABtzGvEAAAABlBMVEUAAAD///+l2Z/dAAAA oElEQVR4nK3OsRHCMAwF0O8YQufUNIQRGIAja9CxSA55AxZgFO4coMgYrEDDQZWPIlNAjwq9 033pbOBPtbXuB6PKNBn5gZkhGa86Z4x2wE67O+06WxGD/HCOGR0deY3f9Ijwwt7rNGNf6Oac l/GuZTF1wFGKiYYHKSFAkjIo1b6sCYS1sVmFhhhahKQssRjRT90ITWUk6vvK3RsPGs+M1RuR mV+hO/VvFAAAAABJRU5ErkJggg== X-Accept-Language: fr, es, en X-Disabled: X-No-Archive: no User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.94 (gnu/linux) Cancel-Lock: sha1:tc56PJkpxVO2636wQTYrI31pfhc= Original-Xref: shelby.stanford.edu gnu.emacs.help:147043 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:42648 Archived-At: A Soare writes: > How/Where LISP symbols defined with DEFUN are inserted in obarray? Symbols are not inserted in the obarray by defun. In lisp, symbols are put in the symbol table when they are read, not when they are "defined" by the compiler. When the compiler gets the symbols they have been inside the symbol table since a long time. The lisp reader puts the symbol it reads in the obarray (the symbol table), using the function intern. It looks like this (pseudo-code): (defun read (&optional stream) (let ((token (read-a-token stream))) ; token is basically a sequence of characters. (cond ((looks-like-an-integer token) (parse-integer token)) ((looks-like-a-string-literal token) (parse-string token)) ((string= "(" token) (loop for token = (peek-a-token stream) until (string= ")" token) ;; more stuff to handle dotted lists. collect (read stream))) ((looks-like-a-symbol token) (intern token)) (t (error "This token looks like nothing: %S" token))))) -- __Pascal Bourguignon__ http://www.informatimago.com http://pjb.ogamita.org