unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: [Emacs-diffs] trunk r117152: Arrange to never byte-compile the generated -pkg.el file.
       [not found] <E1Wobcl-000254-5a@vcs.savannah.gnu.org>
@ 2014-05-25 20:29 ` Stefan Monnier
  2014-05-26  8:41   ` Thien-Thi Nguyen
  0 siblings, 1 reply; 3+ messages in thread
From: Stefan Monnier @ 2014-05-25 20:29 UTC (permalink / raw)
  To: Thien-Thi Nguyen; +Cc: emacs-devel

> +        ";;; -*- no-byte-compile: t -*-\n"

Sadly that doesn't help for the packages downloaded as tarballs which
already come with their own foo-pkg.el.  We really should instead call
`byte-recompile-directory' telling it to skip the foo-pkg.el.


        Stefan



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

* Re: [Emacs-diffs] trunk r117152: Arrange to never byte-compile the generated -pkg.el file.
  2014-05-25 20:29 ` [Emacs-diffs] trunk r117152: Arrange to never byte-compile the generated -pkg.el file Stefan Monnier
@ 2014-05-26  8:41   ` Thien-Thi Nguyen
  2014-05-26 18:17     ` Stefan Monnier
  0 siblings, 1 reply; 3+ messages in thread
From: Thien-Thi Nguyen @ 2014-05-26  8:41 UTC (permalink / raw)
  To: emacs-devel

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

() Stefan Monnier <monnier@iro.umontreal.ca>
() Sun, 25 May 2014 16:29:32 -0400

   Sadly that doesn't help for the packages downloaded as tarballs
   which already come with their own foo-pkg.el.  We really should
   instead call `byte-recompile-directory' telling it to skip the
   foo-pkg.el.

I see the ‘byte-recompile-directory’ guard expression:

     ;; It is an ordinary file.  Decide whether to compile it.
     (if (and (string-match emacs-lisp-file-regexp source)
              ;; The next 2 tests avoid compiling lock files
              (file-readable-p source)
              (not (string-match "\\`\\.#" file))
              (not (auto-save-file-name-p source))
              (not (string-equal dir-locals-file
                                 (file-name-nondirectory source))))
       ;; do it
       )

affords us only ‘auto-save-file-name-p’ and ‘dir-locals-file’ as
possible ways to exclude -pkg.el files, the latter probably a bit
easier since it's a variable, w/o modifying the filesystem.  If
modifying the filesystem is OK, i suppose another way is to make
the file temporarily unreadable around the
‘byte-recompile-directory’ call.

All of these strike me as inelegant.  Maybe now is good time to
address another issue of ‘byte-recompile-directory’, namely that
caller has no control over the order of the files processed.  As
author of ELPA package ‘xpm’, i would like this control and would
be willing to work a bit (i.e., manually specifying the desired
order) to get it.  I imagine others might desire similarly.

Support for explicit ordering (and thus, inclusion) in package.el
naturally lends itself to support for -pkg.el (or other
user-specified globbing / wildcards, for example) exclusion, a
nice (non-)coincidence, no?

Would such redesign be compatible w/ the package.el vision?

-- 
Thien-Thi Nguyen
   GPG key: 4C807502
   (if you're human and you know it)
      read my lisp: (responsep (questions 'technical)
                               (not (via 'mailing-list)))
                     => nil

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

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

* Re: [Emacs-diffs] trunk r117152: Arrange to never byte-compile the generated -pkg.el file.
  2014-05-26  8:41   ` Thien-Thi Nguyen
@ 2014-05-26 18:17     ` Stefan Monnier
  0 siblings, 0 replies; 3+ messages in thread
From: Stefan Monnier @ 2014-05-26 18:17 UTC (permalink / raw)
  To: emacs-devel

> affords us only ‘auto-save-file-name-p’ and ‘dir-locals-file’ as
> possible ways to exclude -pkg.el files, the latter probably a bit
> easier since it's a variable, w/o modifying the filesystem.

Indeed, the reason why *-pkg.el is currently recompiled is that the fix
wasn't as simple as let-binding a variable telling
byte-recompile-directory to ignore that file.

This said, it should be fairly easy to add a variable
(e.g. `byte-compile-ignored-files') for that purpose.

> If modifying the filesystem is OK,

Yuck!

> All of these strike me as inelegant.  Maybe now is good time to
> address another issue of ‘byte-recompile-directory’, namely that
> caller has no control over the order of the files processed.  As
> author of ELPA package ‘xpm’, i would like this control and would
> be willing to work a bit (i.e., manually specifying the desired
> order) to get it.  I imagine others might desire similarly.

I think this is ill-advised.  AFAIK the only kind of dependency that
might deserve such a treatment is the one where foo.el is newer than
foo.elc and where byte-compiling bar.el should not use the older
foo.elc.  But in the case of package.el there are no old elc files to
avoid, so there's no need for dependencies.

If you have another example where you think ordering of compilation
matters, feel free to post it, so I can try to shoot it down ;-)


        Stefan



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

end of thread, other threads:[~2014-05-26 18:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <E1Wobcl-000254-5a@vcs.savannah.gnu.org>
2014-05-25 20:29 ` [Emacs-diffs] trunk r117152: Arrange to never byte-compile the generated -pkg.el file Stefan Monnier
2014-05-26  8:41   ` Thien-Thi Nguyen
2014-05-26 18:17     ` Stefan Monnier

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).