Add "eval-and-compile" archive post
This commit is contained in:
parent
7e13a5b9b5
commit
40c78e93c9
1 changed files with 53 additions and 0 deletions
53
posts/eval-and-compile.mdwn
Normal file
53
posts/eval-and-compile.mdwn
Normal file
|
@ -0,0 +1,53 @@
|
|||
I'm reading up a little on byte-compilation in
|
||||
[GNU Emacs](http://www.gnu.org/software/emacs/) and I read about just
|
||||
exactly a feature that I needed.
|
||||
|
||||
A while ago, I was working on my init<sup><a class="footref"
|
||||
name="fnr.1" href="#fn.1">1</a></sup> file, adding some
|
||||
`auto-complete` code since I wanted to try it again. I
|
||||
noticed that, because `auto-complete` is installed through
|
||||
`package`, it couldn't load the appropriate files at
|
||||
compile time.
|
||||
|
||||
I know that `package-initialize` should be called before calling or
|
||||
using any `package`-installed functions and I have it in my
|
||||
init<sup><a class="footref" name="fnr.1.2" href="#fn.1">1</a></sup>
|
||||
file, but this doesn't help at compile time. So, ugly as I thought it
|
||||
was, I added
|
||||
|
||||
[[!format el """
|
||||
(eval-when-compile (package-initialize))
|
||||
"""]]
|
||||
|
||||
just above the call to the `auto-complete` functions. I hated having
|
||||
to do that, I know it's just one line, but its not at all DRY<sup><a
|
||||
class="footref" name="fnr.2" href="#fn.2">2</a></sup>.
|
||||
|
||||
Just now, though, I read about `eval-and-compile`, and according to
|
||||
the documentation in the elisp reference manual, it should do exactly
|
||||
what I want, eval both when running and when compiling.
|
||||
|
||||
[[!format el """
|
||||
(eval-and-compile (package-initialize))
|
||||
"""]]
|
||||
|
||||
I'm currently trying it out, I just tested it once and it seems to
|
||||
work like a charm.
|
||||
|
||||
*Of course*, this might never have been an issue if I didn't use
|
||||
`emacs -Q` to compile my init<sup><a class="footref" name="fnr.1.3"
|
||||
href="#fn.1">1</a></sup> file, just to speed up loading during
|
||||
compilation a little bit.
|
||||
|
||||
<div id="footnotes">
|
||||
<h3 class="footnotes">Footnotes: </h3>
|
||||
<div id="text-footnotes">
|
||||
<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> <a href="http://ryuslash.org/dotfiles/emacs/init.html">http://ryuslash.org/dotfiles/emacs/init.html</a>
|
||||
</p>
|
||||
<p class="footnote"><sup><a class="footnum" name="fn.2" href="#fnr.2">2</a></sup> Don't Repeat Yourself
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[[!meta date="2012-07-27 21:19:00"]]
|
||||
[[!tag emacs elisp dotfiles coding]]
|
Loading…
Reference in a new issue