unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
@ 2012-07-03  3:28 Drew Adams
  2012-07-03  6:12 ` Drew Adams
  2012-07-03 13:42 ` Stefan Monnier
  0 siblings, 2 replies; 14+ messages in thread
From: Drew Adams @ 2012-07-03  3:28 UTC (permalink / raw)
  To: 11847

Started up the latest Windows binary, with my setup (not emacs -Q), and
immediately was presented with multiple "Error: Don't know how to
compile #[...]" messages in buffer `*Compile Log*.

The buffer is 161185 chars long (most of them binary, not printable
except as control chars, but some of the text seems to be from doc
strings).  That's 1154 very long lines.
 
Something seems very rotten in the State of Emacs.  It needs to calm
down, methinks.
 
My startup sequence loads some libraries, but it does not try to compile
anything.
 

In GNU Emacs 24.1.50.1 (i386-mingw-nt5.1.2600)
 of 2012-07-01 on MARVIN
Bzr revision: 108826 yamaoka@jpl.org-20120702004841-kzatmydft6dct0ry
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --enable-checking --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include
 -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
 -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
 






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03  3:28 bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."] Drew Adams
@ 2012-07-03  6:12 ` Drew Adams
  2012-07-03  6:21   ` Drew Adams
  2012-07-03 13:42 ` Stefan Monnier
  1 sibling, 1 reply; 14+ messages in thread
From: Drew Adams @ 2012-07-03  6:12 UTC (permalink / raw)
  To: 11847

> My startup sequence loads some libraries, but it does not try 
> to compile anything.

I take back that last part.  I do this kind of thing - but it is nothing new
(has always worked before):

(defcustom icicle-byte-compile-eval-after-load-flag t
  "*Non-nil means byte-compile definitions made within `eval-after-load'.
Some Icicles functions (commands, in particular) work only if a given
library is loaded.  Some such functions are defined inside an
`eval-after-load' form, which means they are defined only, and as soon
as, the required library is loaded.

If this option is non-nil then those function definitions are
byte-compiled.  This compilation adds a bit to the load time, in
effect, but it means that the functions run faster."
  :type 'boolean :group 'Icicles-Miscellaneous)

(defmacro icicle-maybe-byte-compile-after-load (function)
  "Byte-compile FUNCTION if `icicle-byte-compile-eval-after-load-flag'.
Do nothing if FUNCTION has not been defined (`fboundp')."
  `(when (and icicle-byte-compile-eval-after-load-flag (fboundp ',function))
    (require 'bytecomp)
    (let ((byte-compile-warnings  ())
          (byte-compile-verbose   nil))
      (byte-compile ',function))))

(defun icicle-cmd2-after-load-bookmark+ ()
  "Things to do for `icicles-cmd2.el' after loading `bookmark+.el'."
  (icicle-define-file-command icicle-bookmark-a-file ...)
  (icicle-maybe-byte-compile-after-load icicle-bookmark-a-file)
  ... ;; Etc. - more defs followed by maybe byte-compiling them.
  )

(eval-after-load "bookmark+" '(icicle-cmd2-after-load-bookmark+))

Where is the problem?  Why does Emacs now raise a runtime error?






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03  6:12 ` Drew Adams
@ 2012-07-03  6:21   ` Drew Adams
  0 siblings, 0 replies; 14+ messages in thread
From: Drew Adams @ 2012-07-03  6:21 UTC (permalink / raw)
  To: 11847

> such functions are defined inside an
> `eval-after-load' form, which means they are defined
> only, and as soon as, the required library is loaded.
> 
> If this option is non-nil then those function
> definitions are byte-compiled.

The error looks like Emacs is trying to byte-compile byte-compiled code.  So I
wonder: is a defun inside an eval-after-load byte-compiled when the file is
byte-compiled?

I was under the impression that it was not, hence the micmac.  If it is, then
presumably I can get rid of the option and explicit byte-compilation.  But if
this is the case, is it the case in older Emacs versions also?






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03  3:28 bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."] Drew Adams
  2012-07-03  6:12 ` Drew Adams
@ 2012-07-03 13:42 ` Stefan Monnier
  2012-07-03 14:44   ` Drew Adams
  1 sibling, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2012-07-03 13:42 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11847

> Started up the latest Windows binary, with my setup (not emacs -Q), and
> immediately was presented with multiple "Error: Don't know how to
> compile #[...]" messages in buffer `*Compile Log*.

Please set debug-on-error and byte-compile-debug to t to try and get
a backtrace for it.


        Stefan





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03 13:42 ` Stefan Monnier
@ 2012-07-03 14:44   ` Drew Adams
  2012-07-03 17:26     ` Stefan Monnier
  0 siblings, 1 reply; 14+ messages in thread
From: Drew Adams @ 2012-07-03 14:44 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

[-- Attachment #1: Type: text/plain, Size: 386 bytes --]

> Please set debug-on-error and byte-compile-debug to t to try and get
> a backtrace for it.

Attached.

But please see my other replies, where I acknowledge that my code does call
`byte-compile'.  See the question there about whether byte-compiling a Lisp file
also compiles a sexp (e.g. a defun) inside `eval-after-load' (and if so whether
that is true in older Emacs versions also).

[-- Attachment #2: throw-bug-11847.txt --]
[-- Type: text/plain, Size: 24603 bytes --]

Debugger entered--Lisp error: (error "Don't know how to compile #[nil \"p\x18\\306 \x19\\307\x1a\\310^[\\311\x1c\\312\\305!\\203\x15\0\r\\206\x17\0\x0e\\\"\x1e\\\"\x0e#\\206 \0\x0e$\x1e#\x0e%\\206)\0\x0e$\x1e%\x0e$\\203:\0\x0e&\\203:\0\x0e$\\202C\0\x0e&\\313>\\205C\0\x0e&\x1e&\x0e'\x1e(\x0e)\x1e*\x0e+\x1e,\x0e-\x1e.\x0e/\x1e0\\314\x1e1\\315\x0e2!\x1e3\x0e4\\203s\0\x0e5\\203s\0\x0e5\x166\\316\x164\x0e5\\203\\236\0\\317\x0e5\x0e3\\\"\\211\x1e7\\203\\223\0\x0e7\\320\x0e7\x0e3\\\"\\211\x163B\\202\\232\0\\321\x0e5B\x0e3B)\\202\\240\0\x0e3\x1e2\\322\x1e8\x0e9\\206\\255\0\\323\\324!\x1e9\f\\206\\266\0\\323\\324!\x1c\\325\x1e:\\326\x1e;\\327 \\210\\330\x1e<\x0e=\\203\\325\0\x0e>\\203\\325\0\\331\\332\\316\\217\\210\\202\\364\0\x0e=\\203\\342\0\\331\\333\\334\\217\\210\\202\\364\0\x0e>\\203\\357\0\\331\\335\\336\\217\\210\\202\\364\0\\331\\337\\340\\217\\210)\\341 .\x16\\207\" [icicle-orig-buff icicle-orig-window icicle-use-candidates-only-once-flag icicle-full-cand-fn icicle-all-candidates-list-alt-action-fn read-file-name-completion-ignore-case selected-window t icicle-make-bookmark-candidate #[(files) \"\\302\x18\\303\\304\\305!	B!)\\207\" [enable-recursive-minibuffers files t dired-other-window read-string \"Dired buffer name: \"] 3] boundp (t nil) icicle-remove-dups-if-extras copy-sequence nil rassq delete \"by `icicle-file-sort'\" #[(cand) \"\\302\b	\\\"\\207\" [cand current-prefix-arg icicle-describe-file] 3] icicle-alt-act-fn-for-type \"file\" icicle-delete-file-or-directory #[(candidate) \"\b	
\v\\306\\304!\\205\v\0\f\r\x0e\x18\x0e\x19\x0e\x1a\x0e^[\\306\\307!\\205\x1c\0\x0e\a\\306\\310!\\205$\0\x0e\b\x0e\x1c\x0e\x1d\x1e\x1d\x1e\x1c\x1e\b\x1e\a\x1e^[\x1e\x1a\x1e\x19\x1e\x18\x1d\x1c^[\x1a\x19\x18\\311\x0e\x1e\\312\x0e\x1f!\\\"\x16\x1e\\313\x1e \x0e!\\203]\0\x0e\\\"\\203]\0\\314\\315\\316\\217\\210\\202|\0\x0e!\\203j\0\\314\\317\\316\\217\\210\\202|\0\x0e\\\"\\203w\0\\314\\320\\321\\217\\210\\202|\0\\314\\322\\323\\217\\210)\\324\\325 !\\210\\326\\327 !\\210.\x0e\\316\\207\" [minibuffer-completion-table minibuffer-completion-predicate minibuffer-completion-confirm minibuffer-completing-file-name minibuffer-completing-symbol minibuffer-exit-hook boundp minibuffer-message-timeout minibuffer-prompt-properties expand-file-name icicle-file-name-directory #[nil \"\\305\b!\\203#\0\\306	!\\203#\0r\bq\\210\\307 \x1a\\310\\216\\311	!\\210\v\x1c\\312\f\\313\\211\\314$,\\207\\306	!\\203<\0\\307 \x1a\\315\\216\\311	!\\210\v\x1c\\312\f\\313\\211\\314$+\\207\v\x1c\\312\f\\313\\211\\314$)\\207\" [icicle-orig-buff icicle-orig-window save-selected-window-window candidate file buffer-live-p window-live-p selected-window ((select-window save-selected-window-window)) select-window bmkp-bookmark-a-file nil MSG ((select-window save-selected-window-window))] 5] in-action-fn (funcall body) nil (funcall body) (funcall body) ((error (byte-code \"\\304\b!\\305\\230\\204\x0f\0\\306\\307\\304\b!\\\"\\210\\310	!\\203\x1e\0\\311	!\\210\\312\\313 !\\210
^[\\314\v\\315\\211\\316$\\210)\\315\\207\" [in-action-fn icicle-orig-window candidate file error-message-string \"Cannot switch buffers in minibuffer window\" error \"%s\" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) (funcall body) ((error (byte-code \"\\304\b!\\305\\230\\204\x0f\0\\306\\307\\304\b!\\\"\\210\\310	!\\203\x1e\0\\311	!\\210\\312\\313 !\\210
^[\\314\v\\315\\211\\316$\\210)\\315\\207\" [in-action-fn icicle-orig-window candidate file error-message-string \"Cannot switch buffers in minibuffer window\" error \"%s\" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) select-window minibuffer-window select-frame-set-input-focus selected-frame minibuffer-help-form minibuffer-history-variable minibuffer-history-case-insensitive-variables minibuffer-history-sexp-flag minibuffer-setup-hook minibuffer-text-before-history candidate icicle-last-input body debug-on-error debug-on-quit] 14] icicle-bind-file-candidate-keys #[nil \"\b\\304W\\203\x10\0\\305\\306\\307\\211\\211\\211%\\202\x19\0\\305\\306\\307\\211\\211\\211\\211&\x06\x19\\307\x12	^[\\310\v\\307\\211\\311$*\\207\" [emacs-major-version file-choice icicle-candidate-action-fn file 21 read-file-name \"File to bookmark (autofile): \" nil bmkp-bookmark-a-file MSG] 7] act-on-choice (funcall body) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff))) (funcall body) ((error (byte-code \"\\302\b!\\210\\303\\304\\305	!\\\"\\207\" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error \"%s\" error-message-string] 4))) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff)) (error (byte-code \"\\302\b!\\210\\303\\304\\305	!\\\"\\207\" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error \"%s\" error-message-string] 4))) icicle-unbind-file-candidate-keys completion-ignore-case icicle-show-Completions-initially-flag icicle-files-ido-like-flag icicle-top-level-when-sole-completion-flag icicle-default-value icicle-file-match-regexp icicle-must-match-regexp icicle-file-no-match-regexp icicle-must-not-match-regexp icicle-file-predicate icicle-must-pass-after-match-predicate icicle-file-require-match-flag icicle-require-match-flag icicle-file-extras icicle-extra-candidates icicle-transform-function icicle-sort-orders-alist icicle--temp-orders icicle-file-sort-first-time-p icicle-file-sort icicle-sort-comparer already-there icicle-candidate-help-fn icicle-candidate-alt-action-fn icicle-delete-candidate-object icicle-candidate-action-fn body debug-on-error debug-on-quit] 5 \"Bookmark a file (create an autofile bookmark).
(You need library `Bookmark+' for this command.)
When prompted for the file you can use `M-n' to pick up the file name
at point, or if none then the visited file.
The autofile bookmark created has the same name as the file.

During file-name completion:
 You can use `C-x a +' or `C-x a -' to add or remove tags from the
  current-candidate file.  You are prompted for the tags.
  (This action requires library `Bookmark+'.)
 You can use `C-c C-d' (a la `cd') to change the `default-directory'.
 You can use `C-c +' to create a new directory.
 You can use `M-|' to open Dired on currently matching file names.
 You can use `S-delete' to delete a candidate file or (empty) dir.

Read input, then act on it.

Input-candidate completion and cycling are available.  While cycling,
these keys with prefix `C-' are active:

\\\\<minibuffer-local-completion-map>`C-mouse-2', `C-return' - Act on current completion candidate only
`C-down', `C-wheel-down' - Move to next completion candidate and act
`C-up', `C-wheel-up' - Move to previous completion candidate and act
`C-next'  - Move to next apropos-completion candidate and act
`C-prior' - Move to previous apropos-completion candidate and act
`C-end'   - Move to next prefix-completion candidate and act
`C-home'  - Move to previous prefix-completion candidate and act
`\\\\[icicle-all-candidates-action]'     - Act on *all* candidates, successively (careful!)

When candidate action and cycling are combined (e.g. `C-next'), user
option `icicle-act-before-cycle-flag' determines which occurs first.

With prefix `C-M-' instead of `C-', the same keys (`C-M-mouse-2',
`C-M-RET', `C-M-down', and so on) provide help about candidates.

Use `mouse-2', `RET', or `S-RET' to finally choose a candidate, or
`C-g' to quit.

This is an Icicles command - see command `icicle-mode'.\" nil]")
  signal(error ("Don't know how to compile #[nil \"p\x18\\306 \x19\\307\x1a\\310^[\\311\x1c\\312\\305!\\203\x15\0\r\\206\x17\0\x0e\\\"\x1e\\\"\x0e#\\206 \0\x0e$\x1e#\x0e%\\206)\0\x0e$\x1e%\x0e$\\203:\0\x0e&\\203:\0\x0e$\\202C\0\x0e&\\313>\\205C\0\x0e&\x1e&\x0e'\x1e(\x0e)\x1e*\x0e+\x1e,\x0e-\x1e.\x0e/\x1e0\\314\x1e1\\315\x0e2!\x1e3\x0e4\\203s\0\x0e5\\203s\0\x0e5\x166\\316\x164\x0e5\\203\\236\0\\317\x0e5\x0e3\\\"\\211\x1e7\\203\\223\0\x0e7\\320\x0e7\x0e3\\\"\\211\x163B\\202\\232\0\\321\x0e5B\x0e3B)\\202\\240\0\x0e3\x1e2\\322\x1e8\x0e9\\206\\255\0\\323\\324!\x1e9\f\\206\\266\0\\323\\324!\x1c\\325\x1e:\\326\x1e;\\327 \\210\\330\x1e<\x0e=\\203\\325\0\x0e>\\203\\325\0\\331\\332\\316\\217\\210\\202\\364\0\x0e=\\203\\342\0\\331\\333\\334\\217\\210\\202\\364\0\x0e>\\203\\357\0\\331\\335\\336\\217\\210\\202\\364\0\\331\\337\\340\\217\\210)\\341 .\x16\\207\" [icicle-orig-buff icicle-orig-window icicle-use-candidates-only-once-flag icicle-full-cand-fn icicle-all-candidates-list-alt-action-fn read-file-name-completion-ignore-case selected-window t icicle-make-bookmark-candidate #[(files) \"\\302\x18\\303\\304\\305!	B!)\\207\" [enable-recursive-minibuffers files t dired-other-window read-string \"Dired buffer name: \"] 3] boundp (t nil) icicle-remove-dups-if-extras copy-sequence nil rassq delete \"by `icicle-file-sort'\" #[(cand) \"\\302\b	\\\"\\207\" [cand current-prefix-arg icicle-describe-file] 3] icicle-alt-act-fn-for-type \"file\" icicle-delete-file-or-directory #[(candidate) \"\b	\n\v\\306\\304!\\205\v\0\f\r\x0e\x18\x0e\x19\x0e\x1a\x0e^[\\306\\307!\\205\x1c\0\x0e\a\\306\\310!\\205$\0\x0e\b\x0e\x1c\x0e\x1d\x1e\x1d\x1e\x1c\x1e\b\x1e\a\x1e^[\x1e\x1a\x1e\x19\x1e\x18\x1d\x1c^[\x1a\x19\x18\\311\x0e\x1e\\312\x0e\x1f!\\\"\x16\x1e\\313\x1e \x0e!\\203]\0\x0e\\\"\\203]\0\\314\\315\\316\\217\\210\\202|\0\x0e!\\203j\0\\314\\317\\316\\217\\210\\202|\0\x0e\\\"\\203w\0\\314\\320\\321\\217\\210\\202|\0\\314\\322\\323\\217\\210)\\324\\325 !\\210\\326\\327 !\\210.\x0e\\316\\207\" [minibuffer-completion-table minibuffer-completion-predicate minibuffer-completion-confirm minibuffer-completing-file-name minibuffer-completing-symbol minibuffer-exit-hook boundp minibuffer-message-timeout minibuffer-prompt-properties expand-file-name icicle-file-name-directory #[nil \"\\305\b!\\203#\0\\306	!\\203#\0r\bq\\210\\307 \x1a\\310\\216\\311	!\\210\v\x1c\\312\f\\313\\211\\314$,\\207\\306	!\\203<\0\\307 \x1a\\315\\216\\311	!\\210\v\x1c\\312\f\\313\\211\\314$+\\207\v\x1c\\312\f\\313\\211\\314$)\\207\" [icicle-orig-buff icicle-orig-window save-selected-window-window candidate file buffer-live-p window-live-p selected-window ((select-window save-selected-window-window)) select-window bmkp-bookmark-a-file nil MSG ((select-window save-selected-window-window))] 5] in-action-fn (funcall body) nil (funcall body) (funcall body) ((error (byte-code \"\\304\b!\\305\\230\\204\x0f\0\\306\\307\\304\b!\\\"\\210\\310	!\\203\x1e\0\\311	!\\210\\312\\313 !\\210\n^[\\314\v\\315\\211\\316$\\210)\\315\\207\" [in-action-fn icicle-orig-window candidate file error-message-string \"Cannot switch buffers in minibuffer window\" error \"%s\" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) (funcall body) ((error (byte-code \"\\304\b!\\305\\230\\204\x0f\0\\306\\307\\304\b!\\\"\\210\\310	!\\203\x1e\0\\311	!\\210\\312\\313 !\\210\n^[\\314\v\\315\\211\\316$\\210)\\315\\207\" [in-action-fn icicle-orig-window candidate file error-message-string \"Cannot switch buffers in minibuffer window\" error \"%s\" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) select-window minibuffer-window select-frame-set-input-focus selected-frame minibuffer-help-form minibuffer-history-variable minibuffer-history-case-insensitive-variables minibuffer-history-sexp-flag minibuffer-setup-hook minibuffer-text-before-history candidate icicle-last-input body debug-on-error debug-on-quit] 14] icicle-bind-file-candidate-keys #[nil \"\b\\304W\\203\x10\0\\305\\306\\307\\211\\211\\211%\\202\x19\0\\305\\306\\307\\211\\211\\211\\211&\x06\x19\\307\x12	^[\\310\v\\307\\211\\311$*\\207\" [emacs-major-version file-choice icicle-candidate-action-fn file 21 read-file-name \"File to bookmark (autofile): \" nil bmkp-bookmark-a-file MSG] 7] act-on-choice (funcall body) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff))) (funcall body) ((error (byte-code \"\\302\b!\\210\\303\\304\\305	!\\\"\\207\" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error \"%s\" error-message-string] 4))) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff)) (error (byte-code \"\\302\b!\\210\\303\\304\\305	!\\\"\\207\" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error \"%s\" error-message-string] 4))) icicle-unbind-file-candidate-keys completion-ignore-case icicle-show-Completions-initially-flag icicle-files-ido-like-flag icicle-top-level-when-sole-completion-flag icicle-default-value icicle-file-match-regexp icicle-must-match-regexp icicle-file-no-match-regexp icicle-must-not-match-regexp icicle-file-predicate icicle-must-pass-after-match-predicate icicle-file-require-match-flag icicle-require-match-flag icicle-file-extras icicle-extra-candidates icicle-transform-function icicle-sort-orders-alist icicle--temp-orders icicle-file-sort-first-time-p icicle-file-sort icicle-sort-comparer already-there icicle-candidate-help-fn icicle-candidate-alt-action-fn icicle-delete-candidate-object icicle-candidate-action-fn body debug-on-error debug-on-quit] 5 \"Bookmark a file (create an autofile bookmark).\n(You need library `Bookmark+' for this command.)\nWhen prompted for the file you can use `M-n' to pick up the file name\nat point, or if none then the visited file.\nThe autofile bookmark created has the same name as the file.\n\nDuring file-name completion:\n You can use `C-x a +' or `C-x a -' to add or remove tags from the\n  current-candidate file.  You are prompted for the tags.\n  (This action requires library `Bookmark+'.)\n You can use `C-c C-d' (a la `cd') to change the `default-directory'.\n You can use `C-c +' to create a new directory.\n You can use `M-|' to open Dired on currently matching file names.\n You can use `S-delete' to delete a candidate file or (empty) dir.\n\nRead input, then act on it.\n\nInput-candidate completion and cycling are available.  While cycling,\nthese keys with prefix `C-' are active:\n\n\\\\<minibuffer-local-completion-map>`C-mouse-2', `C-return' - Act on current completion candidate only\n`C-down', `C-wheel-down' - Move to next completion candidate and act\n`C-up', `C-wheel-up' - Move to previous completion candidate and act\n`C-next'  - Move to next apropos-completion candidate and act\n`C-prior' - Move to previous apropos-completion candidate and act\n`C-end'   - Move to next prefix-completion candidate and act\n`C-home'  - Move to previous prefix-completion candidate and act\n`\\\\[icicle-all-candidates-action]'     - Act on *all* candidates, successively (careful!)\n\nWhen candidate action and cycling are combined (e.g. `C-next'), user\noption `icicle-act-before-cycle-flag' determines which occurs first.\n\nWith prefix `C-M-' instead of `C-', the same keys (`C-M-mouse-2',\n`C-M-RET', `C-M-down', and so on) provide help about candidates.\n\nUse `mouse-2', `RET', or `S-RET' to finally choose a candidate, or\n`C-g' to quit.\n\nThis is an Icicles command - see command `icicle-mode'.\" nil]"))
  error("Don't know how to compile %S" #[nil "p\x18\306 \x19\307\x1a\310^[\311\x1c\312\305!\203\x15\0\r\206\x17\0\x0e\"\x1e\"\x0e#\206 \0\x0e$\x1e#\x0e%\206)\0\x0e$\x1e%\x0e$\203:\0\x0e&\203:\0\x0e$\202C\0\x0e&\313>\205C\0\x0e&\x1e&\x0e'\x1e(\x0e)\x1e*\x0e+\x1e,\x0e-\x1e.\x0e/\x1e0\314\x1e1\315\x0e2!\x1e3\x0e4\203s\0\x0e5\203s\0\x0e5\x166\316\x164\x0e5\203\236\0\317\x0e5\x0e3\"\211\x1e7\203\223\0\x0e7\320\x0e7\x0e3\"\211\x163B\202\232\0\321\x0e5B\x0e3B)\202\240\0\x0e3\x1e2\322\x1e8\x0e9\206\255\0\323\324!\x1e9\f\206\266\0\323\324!\x1c\325\x1e:\326\x1e;\327 \210\330\x1e<\x0e=\203\325\0\x0e>\203\325\0\331\332\316\217\210\202\364\0\x0e=\203\342\0\331\333\334\217\210\202\364\0\x0e>\203\357\0\331\335\336\217\210\202\364\0\331\337\340\217\210)\341 .\x16\207" [icicle-orig-buff icicle-orig-window icicle-use-candidates-only-once-flag icicle-full-cand-fn icicle-all-candidates-list-alt-action-fn read-file-name-completion-ignore-case selected-window t icicle-make-bookmark-candidate #[(files) "\302\x18\303\304\305!	B!)\207" [enable-recursive-minibuffers files t dired-other-window read-string "Dired buffer name: "] 3] boundp (t nil) icicle-remove-dups-if-extras copy-sequence nil rassq delete "by `icicle-file-sort'" #[(cand) "\302\b	\"\207" [cand current-prefix-arg icicle-describe-file] 3] icicle-alt-act-fn-for-type "file" icicle-delete-file-or-directory #[(candidate) "\b	\n\v\306\304!\205\v\0\f\r\x0e\x18\x0e\x19\x0e\x1a\x0e^[\306\307!\205\x1c\0\x0e\a\306\310!\205$\0\x0e\b\x0e\x1c\x0e\x1d\x1e\x1d\x1e\x1c\x1e\b\x1e\a\x1e^[\x1e\x1a\x1e\x19\x1e\x18\x1d\x1c^[\x1a\x19\x18\311\x0e\x1e\312\x0e\x1f!\"\x16\x1e\313\x1e \x0e!\203]\0\x0e\"\203]\0\314\315\316\217\210\202|\0\x0e!\203j\0\314\317\316\217\210\202|\0\x0e\"\203w\0\314\320\321\217\210\202|\0\314\322\323\217\210)\324\325 !\210\326\327 !\210.\x0e\316\207" [minibuffer-completion-table minibuffer-completion-predicate minibuffer-completion-confirm minibuffer-completing-file-name minibuffer-completing-symbol minibuffer-exit-hook boundp minibuffer-message-timeout minibuffer-prompt-properties expand-file-name icicle-file-name-directory #[nil "\305\b!\203#\0\306	!\203#\0r\bq\210\307 \x1a\310\216\311	!\210\v\x1c\312\f\313\211\314$,\207\306	!\203<\0\307 \x1a\315\216\311	!\210\v\x1c\312\f\313\211\314$+\207\v\x1c\312\f\313\211\314$)\207" [icicle-orig-buff icicle-orig-window save-selected-window-window candidate file buffer-live-p window-live-p selected-window ((select-window save-selected-window-window)) select-window bmkp-bookmark-a-file nil MSG ((select-window save-selected-window-window))] 5] in-action-fn (funcall body) nil (funcall body) (funcall body) ((error (byte-code "\304\b!\305\230\204\x0f\0\306\307\304\b!\"\210\310	!\203\x1e\0\311	!\210\312\313 !\210\n^[\314\v\315\211\316$\210)\315\207" [in-action-fn icicle-orig-window candidate file error-message-string "Cannot switch buffers in minibuffer window" error "%s" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) (funcall body) ((error (byte-code "\304\b!\305\230\204\x0f\0\306\307\304\b!\"\210\310	!\203\x1e\0\311	!\210\312\313 !\210\n^[\314\v\315\211\316$\210)\315\207" [in-action-fn icicle-orig-window candidate file error-message-string "Cannot switch buffers in minibuffer window" error "%s" window-live-p select-window select-frame-set-input-focus selected-frame bmkp-bookmark-a-file nil MSG] 5))) select-window minibuffer-window select-frame-set-input-focus selected-frame minibuffer-help-form minibuffer-history-variable minibuffer-history-case-insensitive-variables minibuffer-history-sexp-flag minibuffer-setup-hook minibuffer-text-before-history candidate icicle-last-input body debug-on-error debug-on-quit] 14] icicle-bind-file-candidate-keys #[nil "\b\304W\203\x10\0\305\306\307\211\211\211%\202\x19\0\305\306\307\211\211\211\211&\x06\x19\307\x12	^[\310\v\307\211\311$*\207" [emacs-major-version file-choice icicle-candidate-action-fn file 21 read-file-name "File to bookmark (autofile): " nil bmkp-bookmark-a-file MSG] 7] act-on-choice (funcall body) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff))) (funcall body) ((error (byte-code "\302\b!\210\303\304\305	!\"\207" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error "%s" error-message-string] 4))) (funcall body) ((quit (icicle-try-switch-buffer icicle-orig-buff)) (error (byte-code "\302\b!\210\303\304\305	!\"\207" [icicle-orig-buff act-on-choice icicle-try-switch-buffer error "%s" error-message-string] 4))) icicle-unbind-file-candidate-keys completion-ignore-case icicle-show-Completions-initially-flag icicle-files-ido-like-flag icicle-top-level-when-sole-completion-flag icicle-default-value icicle-file-match-regexp icicle-must-match-regexp icicle-file-no-match-regexp icicle-must-not-match-regexp icicle-file-predicate icicle-must-pass-after-match-predicate icicle-file-require-match-flag icicle-require-match-flag icicle-file-extras icicle-extra-candidates icicle-transform-function ...] 5 "Bookmark a file (create an autofile bookmark).\n(You need library `Bookmark+' for this command.)\nWhen prompted for the file you can use `M-n' to pick up the file name\nat point, or if none then the visited file.\nThe autofile bookmark created has the same name as the file.\n\nDuring file-name completion:\n You can use `C-x a +' or `C-x a -' to add or remove tags from the\n  current-candidate file.  You are prompted for the tags.\n  (This action requires library `Bookmark+'.)\n You can use `C-c C-d' (a la `cd') to change the `default-directory'.\n You can use `C-c +' to create a new directory.\n You can use `M-|' to open Dired on currently matching file names.\n You can use `S-delete' to delete a candidate file or (empty) dir.\n\nRead input, then act on it.\n\nInput-candidate completion and cycling are available.  While cycling,\nthese keys with prefix `C-' are active:\n\n\\<minibuffer-local-completion-map>`C-mouse-2', `C-return' - Act on current completion candidate only\n`C-down', `C-wheel-down' - Move to next completion candidate and act\n`C-up', `C-wheel-up' - Move to previous completion candidate and act\n`C-next'  - Move to next apropos-completion candidate and act\n`C-prior' - Move to previous apropos-completion candidate and act\n`C-end'   - Move to next prefix-completion candidate and act\n`C-home'  - Move to previous prefix-completion candidate and act\n`\\[icicle-all-candidates-action]'     - Act on *all* candidates, successively (careful!)\n\nWhen candidate action and cycling are combined (e.g. `C-next'), user\noption `icicle-act-before-cycle-flag' determines which occurs first.\n\nWith prefix `C-M-' instead of `C-', the same keys (`C-M-mouse-2',\n`C-M-RET', `C-M-down', and so on) provide help about candidates.\n\nUse `mouse-2', `RET', or `S-RET' to finally choose a candidate, or\n`C-g' to quit.\n\nThis is an Icicles command - see command `icicle-mode'." nil])
  #[0 "\306	!\307\211\211\211\211\211\n\v\f\r\x0e\x13\x1e\x13\x1d\x1c^[\x1a\x1e\x14\x1e\x15\x1e\x16\x1e\x17\x1e\x18\x1e\x19\x1e\x1a\x0e^[\x1e^[\3009\2037\0\310\300!\2058\0\300K\2028\0\300\211\242\311=\211\203D\0\x01A\262\x02\3009\203`\0\x01\242\312>\204U\0\313\314\x03\"\210\315\x02!\262\x02\x01@\316=\x16^[\x01\242\317=\204l\0\313\314\x03\"\210\320\x02!\262\x02\x01\242\321=\203\201\0\x01\211\x1e\x1cA@)\262\x02\322\x02!\262\x02\211\203\217\0\311\x02B\262\x02\3009\203\232\0\300\x02M\202\233\0\x01)\266\202.\f\207" [icicle-bookmark-a-file byte-compile-initial-macro-environment byte-compile-verbose byte-optimize byte-compile-dynamic byte-compile-dynamic-docstrings copy-alist nil fboundp macro (closure lambda) error "Don't know how to compile %S" byte-compile--refiy-function closure lambda byte-compile-preprocess function byte-compile-lambda byte-compile-warnings byte-compile-free-assignments byte-compile-free-references byte-compile-const-variables byte-compile-bound-variables byte-compile-function-environment byte-compile--outbuffer byte-compile-macro-environment lexical-binding x] 13 "\n\n(fn)"]()
  byte-compile(icicle-bookmark-a-file)
  icicle-cmd2-after-load-bookmark+()
  (lambda nil (icicle-cmd2-after-load-bookmark+))()
  funcall((lambda nil (icicle-cmd2-after-load-bookmark+)))
  eval((funcall (quote (lambda nil (icicle-cmd2-after-load-bookmark+)))))
  eval-after-load("bookmark+" (icicle-cmd2-after-load-bookmark+))
  byte-code("\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\207" [eval-after-load "bookmark+" (icicle-cmd2-after-load-bookmark+) "hexrgb" (icicle-cmd2-after-load-hexrgb) "highlight" (icicle-cmd2-after-load-highlight) "palette" (icicle-cmd2-after-load-palette) "synonyms" (icicle-cmd2-after-load-synonyms)] 3)
  require(icicles-cmd2)
  byte-code("\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\311\312\313\314\315\316\"\317Q\320\321\322\323\"\2035\0\324\2026\0\325\326\327\316FE\330B\"\210\331\332\333\334#\210\331\335\333\336#\210\331\337\333\340#\210\331\341\333\342#\210\331\343\333\344#\210\331\345\333\346#\210\347\350!\207" [require icicles-face icicles-opt icicles-var icicles-fn icicles-mcmd icicles-cmd1 icicles-cmd2 icicles-mode font-lock-add-keywords emacs-lisp-mode "(" regexp-opt ("icicle-define-add-to-alist-command" "icicle-define-command" "icicle-define-file-command" "icicle-define-sort-command") t "\\>[ 	'(]*\\(\\sw+\\)?" (1 font-lock-keyword-face) string-match "\\(?:\\)" "" 2 3 font-lock-function-name-face nil (("(\\(icicle-condition-case-no-debug\\)\\>" 1 font-lock-keyword-face)) put icicle-define-command common-lisp-indent-function (4 &body) icicle-define-file-command (4 &body) icicle-define-sort-command (4 4 &body) icicle-define-add-to-alist-command (4 &body) icicle-with-selected-window (4 &body) icicle-condition-case-no-debug (4 4 &body) provide icicles] 8)
  require(icicles nil t)
  eval-buffer(#<buffer  *load*> nil "c:/.emacs" nil t)  ; Reading at buffer position 55247
  load-with-code-conversion("c:/.emacs" "c:/.emacs" t t)
  load("~/.emacs" t t)
  #[0 "\b\205\262\0	\306=\203\x11\0\307\b\310Q\202;\0	\311=\204\x1e\0\307\b\312Q\202;\0\313\307\314\315#\203*\0\316\202;\0\313\307\314\317#\203:\0\320\nB\x12\321\202;\0\316\322\x13\323\x01\322\211#\210\v\322=\203a\0\324\325\326\307\b\327Q!\"\323\x01\322\211#\210\v\322=\203`\0\x01\x13\210\v\203\243\0\330\v!\331\232\203\243\0\332\v!\211\333P\334\x01!\203}\0\211\202\210\0\334\x02!\203\207\0\x01\202\210\0\314\262\x02\x01\203\241\0\335\x02\v\"\203\237\0\336\337\x03\v#\210\340\341!\210\x01\x13\266\x02\f?\205\260\0\314\x1d\323\342\322\211#)\262\x01\207" [init-file-user system-type delayed-warnings-list user-init-file inhibit-default-init inhibit-startup-screen ms-dos "~" "/_emacs" windows-nt "/.emacs" directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs" "^_emacs\\(\\.elc?\\)?$" (initialization "`_emacs' init file is deprecated, please use `.emacs'") "~/_emacs" t load expand-file-name "init" file-name-as-directory "/.emacs.d" file-name-extension "elc" file-name-sans-extension ".el" file-exists-p file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1 "default"] 7 "\n\n(fn)"]()
  command-line()
  normal-top-level()

^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03 14:44   ` Drew Adams
@ 2012-07-03 17:26     ` Stefan Monnier
  2012-07-03 18:00       ` Drew Adams
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2012-07-03 17:26 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11847

> But please see my other replies, where I acknowledge that my code does
> call `byte-compile'.  See the question there about whether
> byte-compiling a Lisp file also compiles a sexp (e.g. a defun) inside
> `eval-after-load'.

Byte-compilation is not done within quoted forms (i.e. forms that start
with '), so byte-compilation normally is not done on the code passed to
eval-after-load since that code is usually quoted.

> (and if so whether that is true in older Emacs versions also)

Yes, there has not been any change in this regard.  What has changed is
that byte-compile now complains when it can't do its job, whereas it
used to silently just return nil without doing anything.


        Stefan





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03 17:26     ` Stefan Monnier
@ 2012-07-03 18:00       ` Drew Adams
  2012-07-05 15:49         ` Drew Adams
  2012-07-17  5:50         ` Drew Adams
  0 siblings, 2 replies; 14+ messages in thread
From: Drew Adams @ 2012-07-03 18:00 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

 
> Byte-compilation is not done within quoted forms (i.e. forms 
> that start with '), so byte-compilation normally is not done
> on the code passed to eval-after-load since that code is
> usually quoted.

That's what I thought.  Which means that I still need that code to let Icicles
users optionally byte-compile the defuns in the `eval-after-load' contexts.

> > (and if so whether that is true in older Emacs versions also)
> 
> Yes, there has not been any change in this regard.  What has 
> changed is that byte-compile now complains when it can't do
> its job, whereas it used to silently just return nil without
> doing anything.

I guess the bug has to do with why it thinks it cannot do its job here.  Unless
there is some bug in my code that makes compilation impossible where it should
otherwise be possible.  Can you tell by looking at the code I sent?  Or do you
think there is a byte-compiler bug here?

Since older byte-compiler versions apparently were silent when they could not
compile, I don't know whether they were able to compile or not in this context.

Hence the value of the new error.  But I wonder whether it shouldn't be (perhaps
it already is?) configurable: e.g., ignore, warning message only, raise error.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03 18:00       ` Drew Adams
@ 2012-07-05 15:49         ` Drew Adams
  2012-07-05 16:14           ` Stefan Monnier
  2012-07-17  5:50         ` Drew Adams
  1 sibling, 1 reply; 14+ messages in thread
From: Drew Adams @ 2012-07-05 15:49 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

ping. 

> I guess the bug has to do with why it thinks it cannot do its 
> job here.  Unless there is some bug in my code that makes
> compilation impossible where it should otherwise be possible.
> Can you tell by looking at the code I sent?  Or do you
> think there is a byte-compiler bug here?

There was a similar bug report (#11837), which was closed after finding a
font-latex bug.  I don't know how to proceed with this bug.  I sent the
backtrace you requested.

One thing I wonder about, which might be pertinent here:

Function `icicle-cmd2-after-load-bookmark+' is invoked after Bookmark+ is
loaded:

(eval-after-load "bookmark+" '(icicle-cmd2-after-load-bookmark+))

That function does this:

(icicle-define-file-command 'icicle-bookmark-a-file...)

And `icicle-define-file-command' is a macro that is not available at runtime.
It was available at byte-compile time, so I was thinking that it would be
expanded in the body of `icicle-cmd2-after-load-bookmark+', and things would be
OK.

(And things did work OK before the Emacs 24 build of this bug report, since the
byte-compiler ignored some errors that apparently did not cause a problem for
this code.)

It is `icicle-cmd2-after-load-bookmark+' that tries to byte-compile
`icicle-bookmark-a-file' after defining it.

Does this info help?  I want to avoid loading the file of macros at runtime.
And I want to avoid defining `icicle-bookmark-a-file' and other bookmark
commands unless Bookmark+ is loaded.

Please advise.  Thx.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-05 15:49         ` Drew Adams
@ 2012-07-05 16:14           ` Stefan Monnier
  2012-07-05 16:20             ` Drew Adams
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2012-07-05 16:14 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11847

> ping. 

AFAIK your problem should be fixed in trunk now.


        Stefan


>> I guess the bug has to do with why it thinks it cannot do its 
>> job here.  Unless there is some bug in my code that makes
>> compilation impossible where it should otherwise be possible.
>> Can you tell by looking at the code I sent?  Or do you
>> think there is a byte-compiler bug here?

> There was a similar bug report (#11837), which was closed after finding a
> font-latex bug.  I don't know how to proceed with this bug.  I sent the
> backtrace you requested.

> One thing I wonder about, which might be pertinent here:

> Function `icicle-cmd2-after-load-bookmark+' is invoked after Bookmark+ is
> loaded:

> (eval-after-load "bookmark+" '(icicle-cmd2-after-load-bookmark+))

> That function does this:

> (icicle-define-file-command 'icicle-bookmark-a-file...)

> And `icicle-define-file-command' is a macro that is not available at runtime.
> It was available at byte-compile time, so I was thinking that it would be
> expanded in the body of `icicle-cmd2-after-load-bookmark+', and things would be
> OK.

> (And things did work OK before the Emacs 24 build of this bug report, since the
> byte-compiler ignored some errors that apparently did not cause a problem for
> this code.)

> It is `icicle-cmd2-after-load-bookmark+' that tries to byte-compile
> `icicle-bookmark-a-file' after defining it.

> Does this info help?  I want to avoid loading the file of macros at runtime.
> And I want to avoid defining `icicle-bookmark-a-file' and other bookmark
> commands unless Bookmark+ is loaded.

> Please advise.  Thx.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-05 16:14           ` Stefan Monnier
@ 2012-07-05 16:20             ` Drew Adams
  2012-07-17  5:56               ` Drew Adams
  0 siblings, 1 reply; 14+ messages in thread
From: Drew Adams @ 2012-07-05 16:20 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

> AFAIK your problem should be fixed in trunk now.

Excellent.  I'll give it a try with the next Windows build and let you know.
Thx.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-03 18:00       ` Drew Adams
  2012-07-05 15:49         ` Drew Adams
@ 2012-07-17  5:50         ` Drew Adams
  2012-07-17  6:37           ` Stefan Monnier
  1 sibling, 1 reply; 14+ messages in thread
From: Drew Adams @ 2012-07-17  5:50 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

> > Byte-compilation is not done within quoted forms (i.e. forms 
> > that start with '), so byte-compilation normally is not done
> > on the code passed to eval-after-load since that code is
> > usually quoted.
> 
> That's what I thought.  Which means that I still need that 
> code to let Icicles users optionally byte-compile the defuns
> in the `eval-after-load' contexts.

Or maybe not?  In the latest Windows build, from today (7/16), I'm seeing these
(new) messages during loading:

Function icicle-bookmark-a-file is already compiled
Function icicle-tag-a-file is already compiled
Function icicle-untag-a-file is already compiled
Function icicle-find-file-tagged is already compiled
etc.

Those are the functions that I was worried would not be compiled and so called
explicitly for their compilation.  Now I wonder.

So I guess I'm still not understanding.  I byte-compile the source file, which
has this kind of thing:

(defun icicle-cmd2-after-load-bookmark+ ()
  (icicle-define-file-command icicle-bookmark-a-file ...)
  (icicle-maybe-byte-compile-after-load icicle-bookmark-a-file)
  ... ; more of the same: function defs followed by calls to compile
)
(eval-after-load "bookmark+" '(icicle-cmd2-after-load-bookmark+))

`icicle-define-file-command' is a macro defined in a file available at compile
time.  It expands to a defun (e.g. that defines function
`icicle-bookmark-a-file' here).

`icicle-maybe-byte-compile-after-load' is this simple macro:

(defmacro icicle-maybe-byte-compile-after-load (function)
  `(when (and icicle-byte-compile-eval-after-load-flag (fboundp ',function))
    (require 'bytecomp)
    (let ((byte-compile-warnings  ())
          (byte-compile-verbose   nil))
      (byte-compile ',function))))

(Now that I look at that again I notice that that macro could/should just be a
function.  Dunno why I made it a macro.)

Do those messages indicate that the functions in question were already compiled
in the .elc where they are defined inside `icicle-cmd2-after-load-bookmark+'?

Looking at your previous response, it seems to suggest only that the _call_ to
`icicle-cmd2-after-load-bookmark+' would not be byte-compiled, because it is
quoted.  But the defuns (via the macro) that are in the body of
`icicle-cmd2-after-load-bookmark+': are they byte-compiled in the .elc where
`icicle-cmd2-after-load-bookmark+' is defined?  I was afraid they would not be,
but the messages seem to indicate that they are.

IOW, given those messages, I'm wondering again whether I really need the
(user-optional) calls to `icicle-maybe-byte-compile-after-load'.  I was
supposing that I needed them because the definitions are inside an
`eval-after-load' (with a quoted sexp, as you mentioned).

> > > (and if so whether that is true in older Emacs versions also)
> > 
> > Yes, there has not been any change in this regard.  What has 
> > changed is that byte-compile now complains when it can't do
> > its job, whereas it used to silently just return nil without
> > doing anything.
> 
> I guess the bug has to do with why it thinks it cannot do its 
> job here.  Unless there is some bug in my code that makes compilation 
> impossible where it should otherwise be possible.  Can you tell by
> looking at the code I sent?  Or do you think there is a byte-compiler
> bug here?

Since the bug is no longer manifested, now I'm guessing that it was previously
complaining that it could not compile only because the target was already
compiled.  Is that the case?

I'd be glad to get rid of the micmac of using
`icicle-maybe-byte-compile-after-load', if I understood that it did not actually
do anything worthwhile.  Looking for some understanding of this.  Thx.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-05 16:20             ` Drew Adams
@ 2012-07-17  5:56               ` Drew Adams
  0 siblings, 0 replies; 14+ messages in thread
From: Drew Adams @ 2012-07-17  5:56 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

> > AFAIK your problem should be fixed in trunk now.
> 
> Excellent.  I'll give it a try with the next Windows build 
> and let you know.  Thx.

Confirmed - I no longer get the error messages.  However, please see my followup
question about needed to byte-compile.  Now I'm getting messages saying that the
functions are already compiled.  Thx.






^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-17  5:50         ` Drew Adams
@ 2012-07-17  6:37           ` Stefan Monnier
  2012-07-17  6:40             ` Drew Adams
  0 siblings, 1 reply; 14+ messages in thread
From: Stefan Monnier @ 2012-07-17  6:37 UTC (permalink / raw)
  To: Drew Adams; +Cc: 11847

> Looking at your previous response, it seems to suggest only that the
> _call_ to `icicle-cmd2-after-load-bookmark+' would not be
> byte-compiled, because it is quoted.

Indeed.  Compilation looks at the text, not at the dynamic call-tree, so
the code that's not textually inside a ' will be compiled just fine.

> But the defuns (via the macro) that are in the body of
> `icicle-cmd2-after-load-bookmark+': are they byte-compiled in the .elc
> where `icicle-cmd2-after-load-bookmark+' is defined?

Of course.

> IOW, given those messages, I'm wondering again whether I really need the
> (user-optional) calls to `icicle-maybe-byte-compile-after-load'.  I was
> supposing that I needed them because the definitions are inside an
> `eval-after-load' (with a quoted sexp, as you mentioned).

No, the definitions are not inside an eval-after-load.  They are
*evaluated* from an eval-after-load, but they are not *located*
inside it.


        Stefan





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."]
  2012-07-17  6:37           ` Stefan Monnier
@ 2012-07-17  6:40             ` Drew Adams
  0 siblings, 0 replies; 14+ messages in thread
From: Drew Adams @ 2012-07-17  6:40 UTC (permalink / raw)
  To: 'Stefan Monnier'; +Cc: 11847

> the definitions are not inside an eval-after-load.  They are
> *evaluated* from an eval-after-load, but they are not *located*
> inside it.

That's what I wanted to hear.  Thanks.






^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-07-17  6:40 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-03  3:28 bug#11847: 24.1.50; Error: Don't know how to compile #[nil "..."] Drew Adams
2012-07-03  6:12 ` Drew Adams
2012-07-03  6:21   ` Drew Adams
2012-07-03 13:42 ` Stefan Monnier
2012-07-03 14:44   ` Drew Adams
2012-07-03 17:26     ` Stefan Monnier
2012-07-03 18:00       ` Drew Adams
2012-07-05 15:49         ` Drew Adams
2012-07-05 16:14           ` Stefan Monnier
2012-07-05 16:20             ` Drew Adams
2012-07-17  5:56               ` Drew Adams
2012-07-17  5:50         ` Drew Adams
2012-07-17  6:37           ` Stefan Monnier
2012-07-17  6:40             ` Drew Adams

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).