notmuch clon
Find a file
Johannes Larsen e8261872dc ruby: fix "undefining the allocator of T_DATA" warnings
Ruby 3.2 introduced a warning when C-extensions use structs without
redefining the allocation default allocation routine meant for objects.
See https://bugs.ruby-lang.org/issues/18007 for details.

In the Ruby bindings this happens at `Data_Wrap_Notmuch_Object` call
sites, so the object types used there needed to update their allocation.

This ruby code (given a database at the hardcoded path with messages
matching `tag:tmp`) exercise all the ruby objects:

    require 'notmuch'
    Notmuch::Database.open File.expand_path("~/mail") do |db|
      db.get_directory("/tmp")
      db.query("tag:tmp").search_threads.each do |t|
        t.messages.each do |m|
          puts m.header("Subject")
        end
      end
    end

Before these changes with ruby 3.2.5 and notmuch 0.38.3 it outputs:

    notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Query
    notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Threads
    notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Thread
    notmuch.rb:6: warning: undefining the allocator of T_DATA class Notmuch::Messages
    notmuch.rb:6: warning: undefining the allocator of T_DATA class Notmuch::Message
    notmuch release 0.38.3 now available

(the last line is the message I tagged with tmp), and after the changes:

    notmuch release 0.38.3 now available
2025-03-08 10:39:22 -04:00
bindings ruby: fix "undefining the allocator of T_DATA" warnings 2025-03-08 10:39:22 -04:00
compat Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
completion cli: add options --offset and --limit to notmuch show 2022-11-05 13:18:15 -04:00
contrib python: move legacy python bindings to contrib. 2025-02-22 07:01:47 -04:00
debian debian: upload to experimental instead of unstable 2025-02-25 16:35:44 -04:00
devel build: remove handling for legacy python bindings version 2025-02-22 07:07:46 -04:00
doc docs: avoid nmbug in notmuch-git.1 2025-03-01 07:42:57 -05:00
emacs notmuch-show-imenu-prev-index-position-function: Don't recenter 2025-02-18 08:54:36 -04:00
lib config: allow custom separators in author lists 2024-07-26 15:59:11 +09:00
packaging Use https instead of http where possible 2016-06-05 08:32:17 -03:00
parse-time-string Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
performance-test perf-test/tag: add maildir sync tests 2024-04-05 07:33:41 -03:00
test Accept "key-missing" from a signature from a revoked key 2025-02-28 15:32:36 -05:00
util lib: replace some uses of Query::MatchAll with a thread-safe alternative 2023-03-31 08:11:39 -03:00
vim Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
.dir-locals.el Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
.gitignore Import notmuch_0.38.2-1.1.debian.tar.xz 2024-02-28 23:56:48 +00:00
.mailmap Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
.travis.yml Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
AUTHORS Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
command-line-arguments.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
command-line-arguments.h Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
configure Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
COPYING Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
COPYING-GPL-3 Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
debugger.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
gmime-filter-reply.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
gmime-filter-reply.h Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
hooks.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
INSTALL Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
Makefile Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
Makefile.global build: remove handling for legacy python bindings version 2025-02-22 07:07:46 -04:00
Makefile.local build: remove handling for legacy python bindings version 2025-02-22 07:07:46 -04:00
mime-node.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
NEWS NEWS: deprecate Emacs older than 27.1 2024-08-17 14:00:46 -03:00
notmuch-client-init.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-client.h Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-compact.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-config.c CLI: update commentary in config file to better match code 2024-07-25 19:30:54 +09:00
notmuch-count.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-dump.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-git.py CLI/git: add reset command 2024-07-25 17:39:50 +09:00
notmuch-insert.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-new.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-reindex.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-reply.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-restore.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-search.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-setup.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-show.c CLI/show: warn if crypto options are used with mbox format 2024-08-06 06:50:33 -03:00
notmuch-tag.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch-time.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
notmuch.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
query-string.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
README Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
README.rst Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
sprinter-json.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
sprinter-sexp.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
sprinter-text.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
sprinter.h Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
status.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
tag-util.c Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
tag-util.h Import notmuch_0.38.2.orig.tar.xz 2023-12-01 07:51:09 -04:00
version.txt version: bump to 0.39~rc1 2025-02-25 16:15:24 -04:00

Notmuch - thread-based email index, search and tagging.

Notmuch is a system for indexing, searching, reading, and tagging
large collections of email messages in maildir or mh format. It uses
the Xapian library to provide fast, full-text search with a convenient
search syntax.

Notmuch is free software, released under the GNU General Public
License version 3 (or later).

Building notmuch
----------------
See the INSTALL file for notes on compiling and installing notmuch.

Running notmuch
---------------
After installing notmuch, start by running "notmuch setup" which will
interactively prompt for configuration information such as your name,
email address, and the directory which contains your mail archive to
be indexed. You can change any answers later by running "notmuch
setup" again or by editing the .notmuch-config file in your home
directory.

With notmuch configured you should next run "notmuch new" which will
index all of your existing mail. This can take a long time, (several
hours) if you have a lot of email, (hundreds of thousands of
files). When new mail is delivered to your mail archive in the future,
you will want to run "notmuch new" again. These runs will be much
faster as they will only index new messages.

Finally, you can prove to yourself that things are working by running
some command-line searches such as "notmuch search
from:someone@example.com" or "notmuch search subject:topic". See
"notmuch help search-terms" for more details on the available search
syntax.

The command-line search output is not expected to be particularly
friendly for day-to-day usage. Instead, it is expected that you will
use an email interface that builds on the notmuch command-line tool or
the libnotmuch library.

Notmuch installs a full-featured email interface for use within
emacs. To use this, first add the following line to your .emacs file:

	(autoload 'notmuch "notmuch" "Notmuch mail" t)

Then, either run "emacs -f notmuch" or execute the command "M-x
notmuch" from within a running emacs.

If you're interested in a non-emacs-based interface to notmuch, then
please join the notmuch community. Various other interfaces are
already in progress, (an interface within vim, a curses interface,
graphical interfaces based on evolution, and various web-based
interfaces). The authors of these interfaces would love further
testing or contribution. See contact information below.

Contacting users and developers
-------------------------------
The website for Notmuch is:

	https://notmuchmail.org

The mailing list address for the notmuch community is:

	notmuch@notmuchmail.org

We welcome any sort of questions, comments, kudos, or code there.

Subscription is not required, (but if you do subscribe you'll avoid
any delay due to moderation). See the website for subscription
information.

There is also an IRC channel dedicated to talk about using and
developing notmuch:

	IRC server:	irc.libera.chat
	Channel:	#notmuch