emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: puresize / macro expansion


From: Bill Clementson
Subject: Re: puresize / macro expansion
Date: Fri, 29 Jul 2005 09:46:46 -0700

David,

One additional detail:

In order to replicate this, you'll have to download BOTH a common lisp
implementation and SLIME. The easiest steps to replicate this are:

1. Download the binary of Openmcl to the Desktop from:
http://clozure.com/openmcl/ftp/openmcl-darwinppc-all-0.14.3.tar.gz
2. Unpack Openmcl and you'll have a ccl directory on your desktop.
3. Download SLIME to the Desktop from:
http://common-lisp.net/cgi-bin/viewcvs.cgi/cvs_root.tar.gz?tarball=1&cvsroot=slime
4. Unpack SLIME and you'll have a cvsroot directory on your desktop.
5. Start emacs without any init files.
6. Evaluate the following statements in Emacs:

(defvar home-dir (concat (expand-file-name "~") "/Desktop/"))
(setq load-path (append (list (concat home-dir "")
                             (concat home-dir "cvsroot/slime"))
                       load-path))
(require 'slime)
(setq openmcl-dir (concat home-dir "ccl"))
(setenv "PATH" (concat openmcl-dir ":" (getenv "PATH")))
(setenv "CCL_DEFAULT_DIRECTORY" openmcl-dir)
(setq inferior-lisp-program (concat openmcl-dir "/dppccl"))
(slime)

Cheers,
Bill

On 7/29/05, David Reitter <address@hidden> wrote:
> Whenever I add
> 
>   #define SITELOAD_PURESIZE_EXTRA 500000
> 
> to puresize.h (as documented), Emacs will throw an error "invalid-
> function (macro ..." from within cl-macroexpand-all when called by
> the initialization function of slime.
> Slime is a Lisp mode, available from:
> 
> http://common-lisp.net/project/slime/
> 
> It is started with
> 
> (defvar home-dir (concat (expand-file-name "~") "/Desktop/"))
> (setq load-path (append (list (concat home-dir "")
>                    (concat home-dir "cvsroot/slime"))
>              load-path))
> (require 'slime)
> (setq openmcl-dir (concat home-dir "ccl"))
> (setenv "PATH" (concat openmcl-dir ":" (getenv "PATH")))
> (setenv "CCL_DEFAULT_DIRECTORY" openmcl-dir)
> (setq inferior-lisp-program (concat openmcl-dir "/dppccl"))
> (slime)
> 
> (provided common lisp is set up in ~/Desktop).
> 
> The error occurs in different configurations of Carbon Emacs, whether
> compiled on 10.3.9 or on 10.4.2 (w/o fink). It is well reproducible
> and occurred on different machines.  It occurs whether I precompile
> files (site-load.el) in the binary or not.
> 
> I'm sorry I can't provide a smaller test case. Tracing this bug down
> to puresize setting took Bill Clementson and me hours. I'm well aware
> that the actual bug is possibly not in the code that handles puresize.
> 
> Needless to say, the same version of Slime works just fine without
> the puresize setting.
> 
> 
> 
> 
> Stack trace:
> 
> 
> Debugger entered--Lisp error: (invalid-function (macro . #[(&rest
> body) "..." [body condition-case nil progn ((error nil))] 4 ("/
> Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/cl-
> macs.elc" . 95316)]))
>    ignore-errors(t)
>    cl-macroexpand-all((function attempt-connection) (("--cl-
> var--63109" (symbol-value --cl---cl-var--63109--) t) (defun . cl-
> defun-expander) (attempt-connection lambda (&rest cl-labels-args)
> (list* ... ... cl-labels-args)) ("process" (symbol-value --cl-
> process--) t) ("retries" (symbol-value --cl-retries--) t)
> ("attempt" (symbol-value --cl-attempt--) t) ("lisp-name" (symbol-
> value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((function attempt-
> connection))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] (1 nil
> (function attempt-connection)))
>    cl-macroexpand-body((1 nil (function attempt-connection)) (("--cl-
> var--63109" (symbol-value --cl---cl-var--63109--) t) (defun . cl-
> defun-expander) (attempt-connection lambda (&rest cl-labels-args)
> (list* ... ... cl-labels-args)) ("process" (symbol-value --cl-
> process--) t) ("retries" (symbol-value --cl-retries--) t)
> ("attempt" (symbol-value --cl-attempt--) t) ("lisp-name" (symbol-
> value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    cl-macroexpand-all((run-with-timer 1 nil (function attempt-
> connection)) (("--cl-var--63109" (symbol-value --cl---cl-
> var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((run-with-timer 1
> nil (function attempt-connection)))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] (slime-
> connect-retry-timer (run-with-timer 1 nil (function attempt-
> connection))))
>    cl-macroexpand-body((slime-connect-retry-timer (run-with-timer 1
> nil (function attempt-connection))) (("--cl-var--63109" (symbol-value
> --cl---cl-var--63109--) t) (defun . cl-defun-expander) (attempt-
> connection lambda (&rest cl-labels-args) (list* ... ... cl-labels-
> args)) ("process" (symbol-value --cl-process--) t) ("retries" (symbol-
> value --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t)
> ("lisp-name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-
> expander)))
>    cl-macroexpand-all((setq slime-connect-retry-timer (run-with-timer
> 1 nil (function attempt-connection))) (("--cl-var--63109" (symbol-
> value --cl---cl-var--63109--) t) (defun . cl-defun-expander) (attempt-
> connection lambda (&rest cl-labels-args) (list* ... ... cl-labels-
> args)) ("process" (symbol-value --cl-process--) t) ("retries" (symbol-
> value --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t)
> ("lisp-name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-
> expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((setq slime-
> connect-retry-timer (run-with-timer 1 nil (function attempt-
> connection))))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] (t (when
> retries (decf retries)) (setq slime-connect-retry-timer (run-with-
> timer 1 nil ...))))
>    cl-macroexpand-body((t (when retries (decf retries)) (setq slime-
> connect-retry-timer (run-with-timer 1 nil ...))) (("--cl-
> var--63109" (symbol-value --cl---cl-var--63109--) t) (defun . cl-
> defun-expander) (attempt-connection lambda (&rest cl-labels-args)
> (list* ... ... cl-labels-args)) ("process" (symbol-value --cl-
> process--) t) ("retries" (symbol-value --cl-retries--) t)
> ("attempt" (symbol-value --cl-attempt--) t) ("lisp-name" (symbol-
> value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-body] 3]((t (when retries
> (decf retries)) (setq slime-connect-retry-timer (run-with-timer 1
> nil ...))))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-body] 3] (((file-
> exists-p ...) (let ... ... ...)) ((and retries ...) (message "Failed
> to connect to Swank.")) (t (when retries ...) (setq slime-connect-
> retry-timer ...))))
>    cl-macroexpand-all((cond ((file-exists-p ...) (let ... ... ...))
> ((and retries ...) (message "Failed to connect to Swank.")) (t (when
> retries ...) (setq slime-connect-retry-timer ...))) (("--cl-
> var--63109" (symbol-value --cl---cl-var--63109--) t) (defun . cl-
> defun-expander) (attempt-connection lambda (&rest cl-labels-args)
> (list* ... ... cl-labels-args)) ("process" (symbol-value --cl-
> process--) t) ("retries" (symbol-value --cl-retries--) t)
> ("attempt" (symbol-value --cl-attempt--) t) ("lisp-name" (symbol-
> value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((cond ((file-
> exists-p ...) (let ... ... ...)) ((and retries ...) (message "Failed
> to connect to Swank.")) (t (when retries ...) (setq slime-connect-
> retry-timer ...))))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] ((unless
> (active-minibuffer-window) (message "Polling %S.. (Abort with `M-x
> slime-abort-connection'.)" ...)) (unless (slime-connected-p) (slime-
> set-state ...)) (when slime-connect-retry-timer (cancel-timer slime-
> connect-retry-timer)) (setq slime-connect-retry-timer nil) (cond
> (... ...) (... ...) (t ... ...))))
>    cl-macroexpand-body(((unless (active-minibuffer-window) (message
> "Polling %S.. (Abort with `M-x slime-abort-connection'.)" ...))
> (unless (slime-connected-p) (slime-set-state ...)) (when slime-
> connect-retry-timer (cancel-timer slime-connect-retry-timer)) (setq
> slime-connect-retry-timer nil) (cond (... ...) (... ...)
> (t ... ...))) (("--cl-var--63109" (symbol-value --cl---cl-
> var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    cl-macroexpand-all((function* (lambda nil (unless ... ...)
> (unless ... ...) (when slime-connect-retry-timer ...) (setq slime-
> connect-retry-timer nil) (cond ... ... ...))) (("--cl-
> var--63109" (symbol-value --cl---cl-var--63109--) t) (defun . cl-
> defun-expander) (attempt-connection lambda (&rest cl-labels-args)
> (list* ... ... cl-labels-args)) ("process" (symbol-value --cl-
> process--) t) ("retries" (symbol-value --cl-retries--) t)
> ("attempt" (symbol-value --cl-attempt--) t) ("lisp-name" (symbol-
> value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((function* (lambda
> nil (unless ... ...) (unless ... ...) (when slime-connect-retry-
> timer ...) (setq slime-connect-retry-timer nil) (cond ... ... ...))))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] (--cl-
> var--63109 (function* (lambda nil ... ... ... ... ...))))
>    cl-macroexpand-body((--cl-var--63109 (function* (lambda
> nil ... ... ... ... ...))) (("--cl-var--63109" (symbol-value --cl---
> cl-var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    cl-macroexpand-all((setq --cl-var--63109 (function* (lambda
> nil ... ... ... ... ...))) (("--cl-var--63109" (symbol-value --cl---
> cl-var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(x) "Â    \"‡" [x env cl-macroexpand-all] 3]((setq --cl-
> var--63109 (function* (lambda nil ... ... ... ... ...))))
>    mapcar(#[(x) "Â    \"‡" [x env cl-macroexpand-all] 3] ((setq --cl-
> var--63109 (function* ...)) (attempt-connection)))
>    cl-macroexpand-body(((setq --cl-var--63109 (function* ...))
> (attempt-connection)) (("--cl-var--63109" (symbol-value --cl---cl-
> var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    cl-macroexpand-all((progn (setq --cl-var--63109 (function* ...))
> (attempt-connection)) (("--cl-var--63109" (symbol-value --cl---cl-
> var--63109--) t) (defun . cl-defun-expander) (attempt-connection
> lambda (&rest cl-labels-args) (list* ... ... cl-labels-args))
> ("process" (symbol-value --cl-process--) t) ("retries" (symbol-value
> --cl-retries--) t) ("attempt" (symbol-value --cl-attempt--) t) ("lisp-
> name" (symbol-value --cl-lisp-name--) t) (defun . cl-defun-expander)))
>    #[(bindings &rest body) "ÆÇ    \"ÈÉBÆÊ\n\"ËC¤\f¤\"address@hidden/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]