[Top][All Lists]

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

Expansion of #$ in byte-compiled files

From: Michael Mauger
Subject: Expansion of #$ in byte-compiled files
Date: Thu, 3 Sep 2015 19:53:27 +0000 (UTC)

Please correct me if I am not right here, but it appears that in byte-compiled 
files (don't always?) expand #$ to the current elisp file name.

I wrote a module containing the following code:

  (message "x: %S" #$)

When I load this module using load-file of the .el file adds a line to the 
*Message* buffer

  Loading /user/michael/x.el (source)...

  x: "/user/michael/x.el"
  Loading /user/michael/x.el (source)...done

I then byte-compile the module, use load-file on the .elc file, and now I get 

  Loading /user/michael/x.elc...
  x: nil
  Loading /user/michael/x.elc...done

This causes all loading ELPA/MELPA packages to generate the following error 
during initialization:

  (wrong-type-argument stringp nil)

because of the following generated line in the package autoloads script:

  (add-to-list 'load-path (or (file-name-directory #$) (car load-path))) 

and then the autoloads file gets byte-compile'd when installed.

This is with the latest Cygwin version with the W32 GUI:

  GNU Emacs 24.5.1 (x86_64-unknown-cygwin)
   of 2015-06-23 on desktop-new

Are others seeing the issue? Is this cygwin specific?  I will try this out on a 
Linux latest dev version as soon as I can.

reply via email to

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