<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/emacs/Makefile.local, branch 0.21</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=0.21</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=0.21'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2014-08-05T11:07:27Z</updated>
<entry>
<title>emacs: Introduce notmuch-jump: shortcut keys to saved searches</title>
<updated>2014-08-05T11:07:27Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2014-08-05T01:45:20Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=3c1ad5bfa0039191f1202b0542eb3af7afd16c5c'/>
<id>urn:sha1:3c1ad5bfa0039191f1202b0542eb3af7afd16c5c</id>
<content type='text'>
This introduces notmuch-jump, which is like a user-friendly,
user-configurable global prefix map for saved searches.  This provides
a non-modal and much faster way to access saved searches than
notmuch-hello.

A user configures shortcut keys in notmuch-saved-searches, which are
immediately accessible from anywhere in Notmuch under the "j" key (for
"jump").  When the user hits "j", the minibuffer immediately shows a
helpful table of bindings reminiscent of a completions buffer.

This code is a combination of work from myself (originally,
"notmuch-go"), David Edmondson, and modifications from Mark Walters.
</content>
</entry>
<entry>
<title>emacs install: make sure all components to be installed are there</title>
<updated>2014-06-15T18:40:51Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-05-10T21:36:43Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f0ad36cb7f400f476ada451b683e1d272de7353b'/>
<id>urn:sha1:f0ad36cb7f400f476ada451b683e1d272de7353b</id>
<content type='text'>
`make install-emacs` will copy $(emacs_sources), $(emacs_images) and
$(emacs_bytecode) to their target directories. $(emacs_bytecode) was
already a prerequisite of make install-emacs as these obviously needed
to be build. Until a while ago all of $(emacs_sources) was available
in the repository, but now it includes `notmuch-version.el` which
is generated. In the future we may have generated emacs images too.
</content>
</entry>
<entry>
<title>emacs: add $(srcdir) to notmuch-version.el.tmpl dependency</title>
<updated>2014-04-13T11:42:51Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-04-12T11:59:46Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=c2048addd40be3047231c786dd8162cfb80a8181'/>
<id>urn:sha1:c2048addd40be3047231c786dd8162cfb80a8181</id>
<content type='text'>
This fixes out-of-tree build when generating emacs/notmuch-version.el.
</content>
</entry>
<entry>
<title>emacs: add notmuch-version.el.tmpl and create notmuch-version.el from it</title>
<updated>2014-04-11T02:25:36Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2014-03-19T20:37:10Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=cab1415a94f09c529ca7323904c5a159c996cbe0'/>
<id>urn:sha1:cab1415a94f09c529ca7323904c5a159c996cbe0</id>
<content type='text'>
The notmuch cli program and emacs lisp versions may differ (especially
in remote usage). It helps to resolve problems if we can determine
the versions of notmuch cli and notmuch emacs mua separately.

The build process now creates notmuch-version.el from template file
by filling the version info to notmuch-emacs-version variable.
</content>
</entry>
<entry>
<title>emacs: Avoid rebuilding .eldeps even when there's nothing to do</title>
<updated>2014-02-22T01:07:23Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2014-02-20T04:24:24Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=7c0a1b4d602fa0ff612ffcd7a463d11764a4ea09'/>
<id>urn:sha1:7c0a1b4d602fa0ff612ffcd7a463d11764a4ea09</id>
<content type='text'>
Previously, we updated .eldeps only if the file contents actually
needed to change.  This was done to avoid unnecessary make restarts
(if the .eldeps rule changes the mtime of .eldeps, make has to restart
to collect the new dependencies).  However, this meant that, after a
modification to any .el file that did not change dependencies, .eldeps
would always be out of date, so every make invocation would run the
.eldeps rule, which is both expensive because it starts up Emacs and
noisy.  This was true even when there was nothing to do.  E.g.,

$ make clean &amp;&amp; make
...
$ touch emacs/notmuch-lib.el &amp;&amp; make
...
$ make
Use "make V=1" to see the verbose compile lines.
EMACS emacs/.eldeps
make: Nothing to be done for `all'.
$ make
Use "make V=1" to see the verbose compile lines.
EMACS emacs/.eldeps
make: Nothing to be done for `all'.

Fix this by replacing .eldeps with two files with identical content.
One tracks the mtime of the dependency information and triggers the
Emacs call to rebuild dependencies only when it may be necessary.  The
other tracks the content only; this rule over-triggers in the same way
the old rule did, but this rule is cheap and quiet.
</content>
</entry>
<entry>
<title>emacs: Makefile.local: HAVE_EMACS usage fixes</title>
<updated>2014-01-13T18:12:05Z</updated>
<author>
<name>Tomi Ollila</name>
<email>tomi.ollila@iki.fi</email>
</author>
<published>2013-08-27T19:00:47Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=f2a3d9799d68d567d2bdd43827ac158885a4c11b'/>
<id>urn:sha1:f2a3d9799d68d567d2bdd43827ac158885a4c11b</id>
<content type='text'>
If we don't have emacs, disable targets that used EMACS while doing
the recipes of that target.

If we do have emacs, make install-emacs depend on *.elc files,
as making the target will attempt to install those.
</content>
</entry>
<entry>
<title>emacs: add tree to the makefile</title>
<updated>2013-11-07T11:39:52Z</updated>
<author>
<name>Mark Walters</name>
<email>markwalters1009@gmail.com</email>
</author>
<published>2013-10-29T22:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=6e56912d1320c6500190b31240f937dedadf0714'/>
<id>urn:sha1:6e56912d1320c6500190b31240f937dedadf0714</id>
<content type='text'>
</content>
</entry>
<entry>
<title>emacs: Streaming S-expression parser</title>
<updated>2013-06-01T11:56:25Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-06-01T00:40:06Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=b89ffba3012603d3eb9b1e144bf0a81480588ea3'/>
<id>urn:sha1:b89ffba3012603d3eb9b1e144bf0a81480588ea3</id>
<content type='text'>
This provides the same interface as the streaming JSON parser, but
reads S-expressions incrementally.  The only difference is that the
`notmuch-sexp-parse-partial-list' helper does not handle interleaved
error messages (since we now have the ability to separate these out at
the invocation level), so it no longer takes an error function and
does not need to do the horrible resynchronization that the JSON
parser had to.

Some implementation improvements have been made over the JSON parser.
This uses a vector instead of a list for the parser data structure,
since this allows faster access to elements (and modern versions of
Emacs handle storage of small vectors efficiently).  Private functions
follow the "prefix--name" convention.  And the implementation is much
simpler overall because S-expressions are much easier to parse.
</content>
</entry>
<entry>
<title>emacs: Compute build dependencies to fix byte compile issues</title>
<updated>2013-05-23T11:06:12Z</updated>
<author>
<name>Austin Clements</name>
<email>amdragon@MIT.EDU</email>
</author>
<published>2013-05-17T20:13:31Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=68720286ebc5bf53c2b89a3486b7fcd691443783'/>
<id>urn:sha1:68720286ebc5bf53c2b89a3486b7fcd691443783</id>
<content type='text'>
Previously, we simply byte compiled each Elisp source file
independently.  This is actually the wrong thing to do and can lead to
issues with macros and performance issues with substitutions because
1) when the byte compiler encounters a (require 'x) form, it will load
x.elc in preference to x.el, even if x.el is newer, and as a result
may load old macro and substitution definitions and 2) if we update a
macro or substitution definition in one file, we currently won't
re-compile other files that depend on the file containing the
definition.

This patch addresses these problems by computing make dependency rules
from the (require 'x) forms in the Elisp source files, which we inject
into make's dependency database.
</content>
</entry>
<entry>
<title>emacs: create notmuch-tag.el, and move appropriate functions from notmuch.el</title>
<updated>2012-04-29T20:39:37Z</updated>
<author>
<name>Jameson Graef Rollins</name>
<email>jrollins@finestructure.net</email>
</author>
<published>2012-04-14T18:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=eb8feb16664fd0296ea0e07f4924c2a87a5b3bc3'/>
<id>urn:sha1:eb8feb16664fd0296ea0e07f4924c2a87a5b3bc3</id>
<content type='text'>
Tagging functions are used in notmuch.el, notmuch-show.el, and
notmuch-message.el.  There are enough common functions for tagging
that it makes sense to put them all in their own library.

No code is modified, just moved around.
</content>
</entry>
</feed>
