Errata, I posted too soon!

  |Date: 3 May 2006 12:08:43 +0530
  |From: Madhu <[EMAIL PROTECTED]>
  |  |From: Raymond Toy <[EMAIL PROTECTED]>
  |  |Date: Tue, 02 May 2006 11:06:34 -0400
[...]
     |Yes, this does seem to be a bug.  Another workaround is to set
     |lisp::*enable-package-locked-errors* to nil.

  |
  |Wanted to note that the following form (using the above workaround)
  |fails if the file it is in is being compiled.

Apologies, but I see that this code can be expected to fail:

  |(in-package "CL-USER")
  |(eval-when (:load-toplevel :execute :compile-toplevel)
  |  (setq lisp::*enable-package-locked-errors* nil)
  |  (defmacro mp::with-process-lock ((lock) &body body)
  |    `(mp:with-lock-held (,lock) ,@body))
  |  (setq lisp::*enable-package-locked-errors* t))
  |
  |The intent is to write code that works both if compiled first and
  |loaded, and just loaded.

The packge lock switch has to be set at toplevel for it to work.

 (in-package "CL-USER")
 (eval-when (:load-toplevel :execute :compile-toplevel)
   (setq lisp::*enable-package-locked-errors* nil))
 (eval-when (:load-toplevel :execute :compile-toplevel)
   (defmacro mp::with-process-lock ((lock) &body body)
     `(mp:with-lock-held (,lock) ,@body)))
 (eval-when (:load-toplevel :execute :compile-toplevel)
   (setq lisp::*enable-package-locked-errors* t))

--
Best Regards
Madhu



Reply via email to