[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Emacs 25.0.94: Is require failing to define macros and functions at
From: |
Drew Adams |
Subject: |
RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time? |
Date: |
Wed, 29 Jun 2016 15:42:00 -0700 (PDT) |
> > Is there a way to have it load the .el version of the file first and
> > then byte-compile it if that is what I want?
>
> Sure (there is always a way in Emacs...), but I don't think it's a good
> idea to use such a hack just for a more cosmetic purpose.
>
> IIRC the currently compiled file can be referred to with the variable
> `byte-compile-current-file', even from the file itself. I don't recall
> the downsides of loading the file while compiling (apart from making
> compiling slow and loading the package unnecessarily when compiling).
>From (elisp) `Named Features':
When 'require' is used at top level in a file, it takes effect when
you byte-compile that file (*note Byte Compilation::) as well as when
you load it. This is in case the required package contains macros that
the byte compiler must know about. It also avoids byte compiler
warnings for functions and variables defined in the file loaded with
'require'.
Although top-level calls to 'require' are evaluated during byte
compilation, 'provide' calls are not. Therefore, you can ensure that a
file of definitions is loaded before it is byte-compiled by including a
'provide' followed by a 'require' for the same feature, as in the
following example.
(provide 'my-feature) ; Ignored by byte compiler,
; evaluated by 'load'.
(require 'my-feature) ; Evaluated by byte compiler.
The compiler ignores the 'provide', then processes the 'require' by
loading the file in question. Loading the file does execute the
'provide' call, so the subsequent 'require' call does nothing when the
file is loaded.
- RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, (continued)
- RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Drew Adams, 2016/06/29
- Re: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Robert Weiner, 2016/06/29
- RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Drew Adams, 2016/06/29
- Re: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, John Mastro, 2016/06/29
- RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Herring, Davis, 2016/06/29
- Re: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Robert Weiner, 2016/06/30
RE: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Drew Adams, 2016/06/29
Re: Emacs 25.0.94: Is require failing to define macros and functions at compile time?, Michael Heerdegen, 2016/06/29