Here, there, everywhere for mdocml

Franco Fichtner recently received commit rights for DragonFly.  This is so he could import mdocml, a OpenBSD-originating replacement for groff and man page display.  Mdocml has been mentioned before on the Digest, and there’s a downloadable book.  (See the more-interesting-than-it-sounds History of UNIX Manpages there too, but I digress.)

One advantage of using mdocml, as I understand it, is that groff is no longer required to view man pages.  The only thing left in DragonFly that required a C++ compiler was groff.  So, rebuilding could be a bit faster, and a bit less complicated.

Here’s the part that makes me happy: Changes made in DragonFly promptly made it back into NetBSD’s mdocml.   Other changes rolled from DragonFly back into OpenBSD, too, and mdocml is in FreeBSD 10, though I don’t have a src change to point at right now.  It all circled back around to DragonFly, too.  It’s really neat to have a BSD-grown cross-BSD product.

(Incidentally, if you have a Thinkpad and keyboard issues, Franco has a patch for you to try.)


5 Replies to “Here, there, everywhere for mdocml”

  1. the gold linker is written in c++, but you could argue that it’s optional (e.g. a C_ONLY switch could be created that would skip build of gold and a hypothetical c++ based compiler). However, unless our base compilers are downscaled to build C and only C, I don’t see the advantage.

  2. I remember people saying that c++ building was slow, therefore removing things like groff == speedup. I know, I know, hearsay rather than documented work.

    Even if I’m wrong, mdocml makes a good replacement. i.e. there’s more reasons to do this than “mdocml’s not groff”.

  3. “The only thing left in DragonFly that required a C++ compiler was groff.”

    All well and good I guess, but since version 4.8 “GCC now uses C++ as its implementation language. This means that to build GCC from sources, you will need a C++ compiler that understands C++ 2003.”

    So once GCC gets upgraded in DragonFly from its current version 4.7, you’ve got a big chunk of C++ code that needs to be built. Same issue if/when DF switches to Clang/LLVM.

  4. The changes that made it back to NetBSD are for man(1) (the one with man.conf(5)), which was also imported into DF to replace the old GNU man(1) soon. There are a few more fixes planned and NetBSD folks will be kind enough to pick those up as well. :)

    Indeed, it’s really cool so see so much cooperation between the BSD. And Ingo is doing a great job holding it all together through mdocml!

Comments are closed.