discuss@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mandoc-1.12.4 released
@ 2014-08-20  3:14 Ingo Schwarze
  0 siblings, 0 replies; only message in thread
From: Ingo Schwarze @ 2014-08-20  3:14 UTC (permalink / raw)
  To: discuss

Hello,

you were no doubt already expecting the mandoc = mdocml 1.12.4
release announcement - here it is, i have just uploaded the
release tarball to <http://mdocml.bsd.lv/>:

  http://mdocml.bsd.lv/snapshots/mdocml-1.12.4.tar.gz

This is purely a backward compatibility release for systems requiring
apropos(1) and makewhatis(8) but lacking either SQLite3 or fts(3).
Anybody who has both SQLite3 and fts(3) as well as anybody who does
not need apropos(1) and makewhatis(8) should use 1.13.1 instead,
released ten days ago.

The 1.12.4 release contains all feature improvmenents and bugfixes
that are also contained in 1.13.1, with the exception of the main
1.13.1 feature, the SQLite3 based semantic search suite.  Instead,
the 1.12.4 release still contains the old Berkeley DB based search
suite.

While the non-database-related code in 1.12.4 is almost the same
as in 1.13.1, note that choosing the database backend is not just
a matter of which one is more convenient for you.  If there is any
way how you can use the SQLite3 version, you really should.  While
the version based on Berkeley DB is usable, many important improvements
have been achieved in the SQLite version regarding functionality,
reliability, and performance.  See my BSDCan talk, pages 16-24
for details about what is *not* available in 1.12.4, but only
in 1.13.1:

  http://www.openbsd.org/papers/bsdcan14-mandoc.pdf

The 1.12.4 release does contain a small number of post-1.13.1
bugfixes in non-database code, but that shouldn't be a reason to
stay on the 1.12 branch.  These bugfixes will of course make it
into 1.13.2 when that comes out.  For details, see the release
notes: <http://mdocml.bsd.lv/NEWS>

Many thanks to Thomas Klausner (NetBSD), Paul Onyschuk (Alpine
Linux), and Kristaps Dzonsons (bsd.lv) for release testing!  In
particular, Kristaps spent quite some time and effort hunting memory
access issues with valgrind, which led to a couple of bugs being
fixed in the last few days.


What about the future?

At this point in time, i will stop merging anything to the 1.12
branch, neither bugfixes nor feature improvements, because frankly,
i don't see why a 1.12.5 release might ever be needed.  So you
should all get ready to upgrade to 1.13.2 when it comes out, probably
later this year.  It will contain a compat implementation of fts(3),
so you need not worry much about that, but it will of course require
SQLite3 if you want to use the search suite.  However, if it turns
out the for any downstream distribution, upgrading to the 1.13
branch must be delayed and a 1.12.5 is needed, it will be possible
to do a merge then - though obviously, i don't promise that i will
do it, i'm just saying that it can be done if needed.  Please speak
up as soon as you see a need.


The feature i'm currently working on is integrating a reimplementation
of the traditional man(1) utility into mandoc(1); thanks to Paul
Onyschuk for suggesting that feature!  From a user perspective, it
will work just like it always did.  But internally, it will be
completely different.  Instead of searching through directories for
the requested page(s), it will use the mandoc.db(5) database to
find the matching page(s), then directly invoke the mandoc(1)
formatting code on the file name found in the database, without any
fork(2) or exec(2) in between.  The main benefit is that this will
make hard- and symlinks among manual pages and X.org style .so-only
pages obsolete.  As long as you put the right .Nm macros into the
NAME section of your manual, put it into the right directory, and
keep the mandoc.db(5) database up-to-date with makewhatis(8), it
will be found.  In a typical operating system installation, this
will free 3000-4000 inodes.

There is more potential to this approach.  For example, it allows
to directly go from an apropos(1) invocation to actually displaying
a manual, without going back to the shell and typing another command
in between.  That idea has been devised by Kristaps years ago but
lain dormant since, admittedly mostly due to my initial scepticism,
but in the context of the present approach as a whole, i now clearly
see the point.

Stay tuned!
  Ingo

--
Ingo Schwarze
http://www.openbsd.org/     http://mdocml.bsd.lv/
schwarze@openbsd.org        schwarze@mdocml.bsd.lv
--
 To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-08-20  3:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-20  3:14 mandoc-1.12.4 released Ingo Schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).