summaryrefslogtreecommitdiffstats
path: root/blog
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-07-27 21:43:19 +0200
committerGravatar Tom Willemsen2012-07-27 21:43:19 +0200
commitceb6fdaf4c58811e8b55d7dceda6e04299f98429 (patch)
treeead5d5c82310730f47205f752cf85b1b26a97300 /blog
parentf5a926783585b629de848bbc6baa681a7ccf4ca2 (diff)
downloadorgweb-ceb6fdaf4c58811e8b55d7dceda6e04299f98429.tar.gz
orgweb-ceb6fdaf4c58811e8b55d7dceda6e04299f98429.zip
Add "eval-and-compile" post
Diffstat (limited to 'blog')
-rw-r--r--blog/blog-2012-07-27-2119.org38
1 files changed, 38 insertions, 0 deletions
diff --git a/blog/blog-2012-07-27-2119.org b/blog/blog-2012-07-27-2119.org
new file mode 100644
index 0000000..d30e1c7
--- /dev/null
+++ b/blog/blog-2012-07-27-2119.org
@@ -0,0 +1,38 @@
+#+TITLE: eval-and-compile
+
+I'm reading up a little on byte-compilation in [[emacs][GNU Emacs]] and I read
+about just exactly a feature that I needed.
+
+A while ago, I was working on my
+init[fn:init:[[http://ryuslash.org/dotfiles/emacs/init.html]]] 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[fn:init] file, but this doesn't help at compile time. So, ugly
+as I thought it was, I added
+
+#+begin_src emacs-lisp
+ (eval-when-compile (package-initialize))
+#+end_src
+
+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[fn::Don't
+Repeat Yourself].
+
+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.
+
+#+begin_src emacs-lisp
+ (eval-and-compile (package-initialize))
+#+end_src
+
+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[fn:init] file, just to speed up loading during
+compilation a little bit.