<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mu.git, branch v1.12.9</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/'/>
<entry>
<title>build: bump version to 1.12.9</title>
<updated>2025-02-26T16:53:07+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-26T16:44:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=60340c525d6c614ea4527de01baa8d926b89bb29'/>
<id>60340c525d6c614ea4527de01baa8d926b89bb29</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>update NEWS.org</title>
<updated>2025-02-26T16:44:32+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-26T16:44:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=0ea6fd45a4bc575de7739c019c1c5f94a7850361'/>
<id>0ea6fd45a4bc575de7739c019c1c5f94a7850361</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>update NEWS.org</title>
<updated>2025-02-26T06:51:05+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-25T16:04:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=f5a8699993019e69f2649160ed509f0d3720b32c'/>
<id>f5a8699993019e69f2649160ed509f0d3720b32c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mu4e.texi: update debugging information</title>
<updated>2025-02-26T06:51:05+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-25T16:04:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=200ada502615581aa8cb4c126a85fbbb4333d575'/>
<id>200ada502615581aa8cb4c126a85fbbb4333d575</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>mu4e-headers: remove existence check</title>
<updated>2025-02-26T06:50:49+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-24T17:29:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=2714aa5e8cd56dd05a59f706c6c42855fef16978'/>
<id>2714aa5e8cd56dd05a59f706c6c42855fef16978</id>
<content type='text'>
This is already done on the server-side ("SkipUnreadable"), so we don't
need to replicate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is already done on the server-side ("SkipUnreadable"), so we don't
need to replicate.
</pre>
</div>
</content>
</entry>
<entry>
<title>indexer: minor tweaking</title>
<updated>2025-02-23T09:39:21+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-23T09:36:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=18092c7ff9d3a9f478dc9fb305bdec63254d945a'/>
<id>18092c7ff9d3a9f478dc9fb305bdec63254d945a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of index cleanup: use readdir(3), not access(2)</title>
<updated>2025-02-23T09:39:17+00:00</updated>
<author>
<name>Daniel Colascione</name>
<email>dancol@dancol.org</email>
</author>
<published>2025-02-22T19:48:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=cdb619e4f59b74d9a504df9244f726345c74f4e0'/>
<id>cdb619e4f59b74d9a504df9244f726345c74f4e0</id>
<content type='text'>
This change makes index cleanup ~4x faster by changing how we
determine whether a file mentioned by the database still exists on
disk.  Previously, we'd call access(2) for each file the database
mentioned.  Doing so produced a lot of system call overhead.  Now, we
read the directory entries of the directories containing the files
whose existence we're checking, build a hash table from what we find,
then do the existence check against this hash table instead of
entering the kernel.

The semantics of the cleanup check do change subtly, however.
Previously, we checked whether the mentioned file was *readable*.
Now we check merely that it exists.  Extant but unreadable files in
maildirs should be rare.

BEFORE:

$ time mu index --lazy-check
lazily indexing maildir /home/dancol/Mail -&gt; store /home/dancol/.cache/mu/xapian
/ indexing messages; checked: 0; updated/new: 0; cleaned-up: 0

real    0m19.310s
user    0m1.803s
sys     0m12.999s

AFTER:

$ time mu --debug index --lazy-check
lazily indexing maildir /home/dancol/Mail -&gt; store /home/dancol/.cache/mu/xapian
- indexing messages; checked: 0; updated/new: 0; cleaned-up: 0

real    0m4.584s
user    0m2.433s
sys     0m2.133s
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change makes index cleanup ~4x faster by changing how we
determine whether a file mentioned by the database still exists on
disk.  Previously, we'd call access(2) for each file the database
mentioned.  Doing so produced a lot of system call overhead.  Now, we
read the directory entries of the directories containing the files
whose existence we're checking, build a hash table from what we find,
then do the existence check against this hash table instead of
entering the kernel.

The semantics of the cleanup check do change subtly, however.
Previously, we checked whether the mentioned file was *readable*.
Now we check merely that it exists.  Extant but unreadable files in
maildirs should be rare.

BEFORE:

$ time mu index --lazy-check
lazily indexing maildir /home/dancol/Mail -&gt; store /home/dancol/.cache/mu/xapian
/ indexing messages; checked: 0; updated/new: 0; cleaned-up: 0

real    0m19.310s
user    0m1.803s
sys     0m12.999s

AFTER:

$ time mu --debug index --lazy-check
lazily indexing maildir /home/dancol/Mail -&gt; store /home/dancol/.cache/mu/xapian
- indexing messages; checked: 0; updated/new: 0; cleaned-up: 0

real    0m4.584s
user    0m2.433s
sys     0m2.133s
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2820 from dcolascione/mu-named-timer</title>
<updated>2025-02-23T09:22:58+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-23T09:22:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=b0f6e5cbb939c1735fd504a0cc778425114e6bca'/>
<id>b0f6e5cbb939c1735fd504a0cc778425114e6bca</id>
<content type='text'>
Use named function, not lambda, for refresh timer</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use named function, not lambda, for refresh timer</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2822 from dcolascione/mu-skip-readability-check-remote</title>
<updated>2025-02-23T09:21:52+00:00</updated>
<author>
<name>Dirk-Jan C. Binnema</name>
<email>djcb@djcbsoftware.nl</email>
</author>
<published>2025-02-23T09:21:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=17577444bef00d4da7f530889938035a2ae30bf0'/>
<id>17577444bef00d4da7f530889938035a2ae30bf0</id>
<content type='text'>
Call file-readable-p only on non-remote files</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Call file-readable-p only on non-remote files</pre>
</div>
</content>
</entry>
<entry>
<title>Call file-readable-p only on non-remote files</title>
<updated>2025-02-22T20:12:06+00:00</updated>
<author>
<name>Daniel Colascione</name>
<email>dancol@dancol.org</email>
</author>
<published>2025-02-22T19:54:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/mu.git/commit/?id=7d03d5f32ae86ced52fbe1a5aa154d696a29708b'/>
<id>7d03d5f32ae86ced52fbe1a5aa154d696a29708b</id>
<content type='text'>
Calling file-readable-p before reading a message file is fine
when the file is local, but when it's a remote file, doing so incurs
an extra network round trip.  It's not really necessary to do so
either: if the file is missing, we'll fail in the insert-file-contents
below anyway, so we're missing out only on a nicer warning message.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling file-readable-p before reading a message file is fine
when the file is local, but when it's a remote file, doing so incurs
an extra network round trip.  It's not really necessary to do so
either: if the file is missing, we'll fail in the insert-file-contents
below anyway, so we're missing out only on a nicer warning message.
</pre>
</div>
</content>
</entry>
</feed>
