Slashdot Mirror


GNU Texinfo 5.0 Released

Four years after the last release, version 5.0 of Texinfo, the GNU documentation language, has been released. The primary highlight is a new implementation of makeinfo info in Perl rather than C. Although slower, the new version offers several advantages: cleaner code using a structured representation of the input document, Unicode support, and saner support for multiple output backends. There are over a dozen other improvements including better formatting of URLs, improved cross-manual references, and a program to convert Perl POD documentation to Texinfo.

47 of 173 comments (clear)

  1. Will an end user notice this speed degradation? by bogaboga · · Score: 2

    Although slower, the new version offers several advantages: cleaner code using a structured representation of the input document, Unicode support, and saner support for multiple output backends. (emphasis mine).

    Whether a end user will notice, I don't know for sure! Who does?

    1. Re:Will an end user notice this speed degradation? by larry+bagina · · Score: 5, Insightful

      how often do you run makeinfo? Probably never directly. And only indirectly if you're compiling and installing a GNU package from source (I mean, who else even uses it? )-- in which case configure checks and compilation times are the bottleneck, not makeinfo

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    2. Re:Will an end user notice this speed degradation? by Ed+Avis · · Score: 2

      What still-alive platform has a decent C compiler (crusty K&R ones don't count), but doesn't have a port of Perl?

      --
      -- Ed Avis ed@membled.com
    3. Re:Will an end user notice this speed degradation? by deepsky · · Score: 3, Interesting

      Texinfo produces very nice paper manuals effortlessly. With Docbook one has to dive into XSL-FO unpleasantness.

  2. Things you don't hear every day by Anonymous Coward · · Score: 5, Funny

    "Nobody could understand the source code anymore without massive doses of caffeine... ao we decided to rewrite the whole thing in Perl."

    1. Re:Things you don't hear every day by c0lo · · Score: 3, Funny

      "Nobody could understand the source code anymore without massive doses of caffeine... ao we decided to rewrite the whole thing in Perl."

      Oblig xkcd

      --
      Questions raise, answers kill. Raise questions to stay alive.
    2. Re:Things you don't hear every day by one+eyed+kangaroo · · Score: 5, Insightful

      A witty response, but really this is getting a bit tired.

      I suppose people are free to keep reading the same old, self-reinforcing sources that insist that Perl is somehow a language of the past. And if they read enough of these cliches, the anti-Perl FUD may seem to be accurate, but as any developer who spends time wrestling with real-world problems in modern Perl will attest, the so-called modern Perl ecosystem is, (just like the modern Python or PHP ecosystems), a fabulous place to work in.

      I work in all three.

    3. Re:Things you don't hear every day by VortexCortex · · Score: 5, Interesting

      "Nobody could understand the source code anymore without massive doses of caffeine... ao we decided to rewrite the whole thing in Perl."

      Oblig xkcd

      Obligatory Rebuttal xkcd

      This is interesting for two reasons:
      0. It was Perl's built in features, such as regex, system calls, and ability to be terse enough to enter a solution on a single swinging pass that make it an obvious choice -- It was made for this type of job.
      1. I'm confident that if we have not already, we will soon reach a point where entire discussions can be composed of no text other than xkcd links.

    4. Re:Things you don't hear every day by murdocj · · Score: 2

      Yes Perl has lots of libraries, lots of code, lots of support, and I'm sure if you spend all of your time in Perl, you eventually get used to it. But I spent time working on occasion on some Perl scripts we used for glue, and from that point of view, Perl is a nightmare. Random crap done by random characters depending on random context. Basically it looks like whenever Larry Wall needed to do something, he added some functionality and assigned the next unused character combination to it. I've programmed in a wide variety of languages, down to flipping switches and pressing a button to put the next opcode into computer memory, and Perl is far and away the most annoying.

  3. man texinfo by Anonymous Coward · · Score: 5, Insightful

    Can't be much use, it doesn't have a man page.

  4. Default to HTML yet? by Anonymous Coward · · Score: 5, Insightful

    I haven't used TexInfo for years, but what I remember most was the absolutely abysmal standalone "info" reader. That thing was the biggest piece of shit I've ever seen in any program. Hopefully they've abandoned the crappy "info" format and all of the shitty standalone readers to view info documents, and just use HTML by default now.

    1. Re:Default to HTML yet? by Waffle+Iron · · Score: 4, Insightful

      have you seen the HTML that gets generated from TeXInfo?

      Yes. It's usually broken up into a massive hierarchy with a couple of sentences per page. You'll get cramps clicking on the navigation links while searching for the particular thing you need to find like a needle in a haystack.

      Plain old man pages (especially when nicely rendered in KDE's Konqueror web browser by typing "#program-name" into the URL box) are almost invariably superior to the corresponding Texinfo docs converted to html.

    2. Re:Default to HTML yet? by Zontar+The+Mindless · · Score: 2

      have you seen the HTML that gets generated from TeXInfo?

      (Did they ever figure out how to output *valid* HTML? */me recalls many hours spent looking out over acres and acres of crossed and mismatched tags, and weeping softly to himself...*)

      Plain old man pages (especially when nicely rendered in KDE's Konqueror web browser by typing "#program-name" into the URL box) ...

      Fuck me! Been using KDE since 2004 and I had NO idea you could do that. (Works with Konq in both KDE 3 and 4, BTW.)

      Thanks for the tip!

      --
      Il n'y a pas de Planet B.
  5. Perl??? by mark-t · · Score: 2, Insightful

    Why on earth would they have picked perl? Perl isn't really a native gnu project. At least gcc is.

    1. Re:Perl??? by Darinbob · · Score: 2

      Probably because it's the second most widely known and used language on systems that run makeinfo, next to C?

    2. Re:Perl??? by ls671 · · Score: 2, Funny

      C and shell scripting is good enough for me and it should be for any GNU project. I do not use half-way solutions such as Perl. I use Java when bash and C becomes too messy. The idea is to reduce your inventory to a strict minimum.
       

      --
      Everything I write is lies, read between the lines.
    3. Re:Perl??? by jbolden · · Score: 2

      GCC is C. This is a job for a scripting language not a low level compiled language. Typically GNU uses Scheme as their scripting language. But knowledge of Scheme and Scheme syntax is decreasing. Perl has good support for parsing, tons of people know it, It seems like a reasonable choice for GNU to start doing scripting type stuff in. The Perl community has been active with free software for a long time and hasn't gotten involved in anything questionable.

      Seems like a reasonable choice.

  6. Speed. by Atzanteol · · Score: 3, Interesting

    I love how a language that was "fast enough" in the '90s is now suddenly "too slow" in 2013.

    What's with the "I need all my code hyper-optimized" crowd on /. these days? We running a Gentoo help forum I didn't notice?

    --
    "Ignorance more frequently begets confidence than does knowledge"

    - Charles Darwin
    1. Re:Speed. by Anonymous Coward · · Score: 2, Insightful

      I love how a language that was "fast enough" in the '90s is now suddenly "too slow" in 2013.

      No-one said it was "too slow", if they thought that they wouldn't have released it. They said it was slower than the C version, which is (presumably, as I haven't measured it myself) an objective fact.

    2. Re:Speed. by Sulphur · · Score: 2

      I love how a language that was "fast enough" in the '90s is now suddenly "too slow" in 2013.

      What's with the "I need all my code hyper-optimized" crowd on /. these days? We running a Gentoo help forum I didn't notice?

      Help me Obi Gentoo Kenobi. You're our only hope.

  7. Re:Perl POD is a good man input format by jgrahn · · Score: 3, Interesting

    It's very handy for generating both nroff man pages and their HTML counterparts from the same input text. Being extremely simple, it raises no barrier to writing man-page type documentation.

    Neither does nroff -man. If you're in a position where you'd want a man page, a percieved complexity in writing one in nroff is no excuse. Read man(7), groff_man(7) and groff_char(7), and look at some example man pages for inspiration.

    Also, if the cvs(1) man page of CVS 1.12.13 is a typical example of what Texinfo generates, I strongly recommend against using it for this. It's ugly and hard to read; doesn't really look like a man page at all.

  8. Re: Yes, spin it that way, why don't you. by Anonymous Coward · · Score: 2, Informative

    You sir, are full of it.

    Automake does not depend on perl.

    $ head -n1 /usr/bin/automake-1.11
    #!/usr/bin/perl -w

    Perl is not a hard dependency in "the base system" since this concept doesn't exist in "gnu/linux".

    Sure it does, it means the core, non-optional components of the OS.

  9. Do not want by GlobalEcho · · Score: 5, Insightful

    Allow me to initiate the inevitable hatefest:

    Every time I run man and get a pointer to texinfo, I want to beat my head on the keyboard. I do not have the time, once again, to look up those obscure keyboard commands so that I may navigate laboriously through the documentation. It's time to interrupt my command-line workflow, go to the nearest GUI and run a web search for the nearest HTML manual.

    1. Re:Do not want by one+eyed+kangaroo · · Score: 2

      I'm with you. The GNU folks we are told "in general, abhor man pages, and create info documents instead.". Tis a shame.

    2. Re:Do not want by Nimey · · Score: 3, Insightful

      Agreed. The worst is when a package has a half-assed manpage that points to the info documentation, and when you fire up info it's the exact same stuff as the manpage.

      Texinfo should be retired in favor of HTML for when there's too much documentation for a man page.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    3. Re:Do not want by Anonymous Coward · · Score: 2, Interesting

      Both texinfo and man have their place. texinfo is good for learning the deep details of a product. man pages are good for quick "what was that option for doing X again?" checks.

      The attitude of the FSF towards man pages is, to put it politely, stupid. And counterproductive. Damnit, the response to a bug report saying "the man page is out of date/inaccurate/incorrect" should be to fix the damn man page, not to remove it!

      Don't get me wrong, there are times when the texinfo documentation is incredibly useful, and I like having it available ... but I like having quick references as well!

    4. Re:Do not want by sombragris · · Score: 5, Informative

      Try pinfo. From the description:

      Pinfo is an info file viewer. It was created when the author, Przemek Borys, was very depressed trying to read gtk info entries using the standard tools.

      Pinfo is similar in use to lynx. It has similar key movements, and gives similar intuition. You just move across info nodes, and select links, follow them... Well, you know how it is when you view html with lynx. :) It supports as many colors as it could.

      Believe me, it's a lifesaver for reading info pages.

      --
      -- Look to the Rose that blows about us--"Lo, Laughing," she says, "into the World I blow..."
    5. Re:Do not want by swillden · · Score: 4, Funny

      I do not have the time, once again, to look up those obscure keyboard commands so that I may navigate laboriously through the documentation.

      What obscure keyboard commands? They're just the keybindings for the help system of the One True Editor. If you are using something inferior and have therefore memorized some truly obscure keyboard commands instead, how is that their fault?

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    6. Re:Do not want by Anonymous Coward · · Score: 2, Funny

      What obscure keyboard commands? They're just the keybindings for the help system of the One True Editor.

      You, sir, have no idea what the One True Editor actually is:

      http://www.gnu.org/fun/jokes/ed-msg.html

    7. Re:Do not want by dbIII · · Score: 4, Insightful

      It was even worse when you type "man foo", get a message telling you man is evil and to use info, then the info gives you nothing but a placeholder. The gnome stuff was full of that (gconf stuff especially) before they decided to not even bother pretending they had documentation.
      Back in the day doing "man grub", getting a rude message to use info, then "info grub" and getting a "grub is wonderful LILO sux" message and no documentation was definitely one of those moments where I wanted to beat somebody's head with a model M keyboard.
      At least "pinfo" can be used without having to spend more time working out how to use the info tool than reading the documentation.

    8. Re:Do not want by ais523 · · Score: 3, Informative

      info shows the manpage by default if the info documentation isn't installed. So what you're seeing is probably a packaging problem, where the documentation exists but, for whatever reason (perhaps you're using a Debian-based distro and forgot to explicitly ask for it), wasn't installed on your computer.

      --
      (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
    9. Re:Do not want by ais523 · · Score: 2

      Regex search over the entire info document is something I use a lot, and HTML doesn't (natively) support. (Index search via typing the name of an index entry, and then jumping to other entries that match the same string, is another thing that HTML doesn't do well.) These are arguably deficiencies in HTML, and could be fixed with mindboggling amounts of JavaScript or by doing things server-side, but both seem to be missing the point to some extent.

      I've been reading a lot of info pages recently, and learning the viewer was worth the effort (tip that helps a lot: 'l' undoes navigation commands, for when you've got completely lost due to pressing the wrong button). It'd be great if we had something that replaces Info without all its conveniences, but sadly nothing seems to have obsoleted it yet.

      --
      (1)DOCOMEFROM!2~.2'~#1WHILE:1<-"'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"
  10. HTML from the 1990s by tepples · · Score: 4, Insightful

    The 1990s, when HTML documents were readable and not stuffed to the gills with ads and social recommendation detritus. Really all a plain-jane HTML document is missing is a max-width:36em on body to make line lengths sane and a width=device-width on the viewport to make tablets not render it zoomed out.

  11. Re:Perl hater by Anonymous Coward · · Score: 2, Funny

    That high-level C crap is for wannabes, son...real men create their programs in native binary by manipulating the bits on their drive platters with pointy magnets

  12. Oblig oblig XKCD by swm · · Score: 3, Funny
    1. Re:Oblig oblig XKCD by Unknown+Lamer · · Score: 4, Interesting

      What I find interesting about this Perl rewrite is that Guile, ostensibly the official scripting language of GNU, has had excellent structured texinfo support for years now. It uses stexi which has the same structure as sxml, so you gain access to all of the really great Scheme XML processing tools, including SXSLT which is basically ideal for spitting out arbitrary formats.

      --

      HAL 7000, fewer features than the HAL 9000, but just as homicidal!
    2. Re:Oblig oblig XKCD by TheRaven64 · · Score: 3, Insightful

      Being the official anything of the GNU project pretty much guarantees that no other part of the GNU project will use your stuff.

      --
      I am TheRaven on Soylent News
    3. Re:Oblig oblig XKCD by LizardKing · · Score: 3, Informative

      Whenever I install Debian or a derivative of it, I always find it includes Guile, but that no packages depend on it. The only reason it exists is because RMS didn't like Tcl, which was the up and coming glue language at the time. Despite its shortcomings, Tcl was a very nice language to extend, whereas Guile was (and probably still is) an incomplete dialect of Scheme that only satisfies the Lisp obsessives.

  13. oxymoron by csumpi · · Score: 2, Informative

    ...perl...cleaner code...

    1. Re:oxymoron by tyrione · · Score: 2

      ...perl...cleaner code...

      True, not to mention with C11 you get Unicode and much more. C resurgence as a popular language is widely quantifiable. Perl as a dying language is widely quantifiable.

    2. Re:oxymoron by arielCo · · Score: 2

      No oxymoron here. Perl frees you to create real messes, but that's mostly because it's very expressive, which also helps you code with less temp variables, shorter loops, etc., which can be actually easier to read if you know the language (Perl has a higher "cognitive load" than other languages that may alienate casual participants).

      OTOH there are best-practices and style guides to ease things for the next lucky person to read your masterpiece (possibly a future you). So don't blame the language; hell, there's even a module that critiques your code.

      So with some discipline and common programmer smarts you can write succint code that may be more readable than "fluffier" implementations. In practice, I've found that in any language, superfluous steps and variables, bad naming, and not-so-logical flow is a bigger penalty to readability than anything else. No language forces good style on you.

      --
      This post contains no rudeness or derision of any kind. All arguments are friendly. Terms and exclusions may apply.
  14. perl dependency by manu0601 · · Score: 2

    Now we will have a perl dependency for all GNU stuff, and this to read documentation that is even less nice to read than man pages. The best thing they could have done to texinfo is to get rid of it, IMO.

  15. texinfo is good for writing documentation by Per+Bothner · · Score: 2

    Texinfo is is a decent format for writing documentation in - nicer and less verbose than HTML or DocBook. You can generate either HTML or DocBook or XML from Texinfo, and then do a bunch of processing on it. For example the documentation for Kawa is written in texinfo, then makeinfo converts it to docbook, which is then converted to html. The result isn't splashy but (if I say so myself) fairly nice.

  16. Just an End User by rueger · · Score: 3, Interesting

    I very happily gave up on man pages (and variants thereof) years ago because they were too obtuse and circular to be useful to me, a mere end user. Early on I figured out that the basic rule of man pages was that the one you need relied on you already having read and digested fifteen others, each of which relied on you having read an digested fifteen others.... actually finding what you needed was an endless exercise in frustration.

    Google + Forums is what real people rely on.

  17. I have always hated texinfo by e70838 · · Score: 2

    It has been used as a pretext for not providing correct man pages. For example man sed:
    COMMAND SYNOPSIS
    This is just a brief synopsis of sed commands to serve as a reminder to those who
    already know sed; other documentation (such as the texinfo document) must be con-
    sulted for fuller descriptions.

    When I have learned unix, man pages were complete, concise, accurate and uptodate documentation of all the system. I feel that because of this textinfo mess, man pages on Linux are incomplete and vague and that the documentation dislayed by info is not very clear.

  18. HTML 2 by SgtChaireBourne · · Score: 2

    I'd rather see the format scrapped and replaced with either better man pages or else HTML2. With HTML 2 you can use a text based browser like Lynx, which is more polished and gives you better navigation capabilities. There are also more modules, libraries and packages that can work directly with HTML, so less time is spent trying to reinvent the wheel.

    --
    Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
  19. Re:Perl hater by tibit · · Score: 4, Interesting

    I think that calling C "portable assembly" is really a bit untrue. One of the core features of most any machine language is that flags are part of the result of many computing operations. Yet C completely removes access to it.

    Suppose you have a code that adds two things, then jumps on overflow. On most machines that's two instructions if the operands have the right size. You look at it, and the intent is obvious: we add, then jump on overflow.

    Things are seriously wrong (IMHO) if a higher level language completely obfuscates this and requires code where it's not obvious at all what you mean! Heck, what's worse, each compiler likely requires slightly different code so that the meaning is extracted by the optimizer and the correct assembly output is produced without paying both code size and performance penalties! In C, the best you can do on a good compiler is to have an inlineable function that returns the numerical part of the result, uses comparisons to "recreate" the detection of overflow, and returns the overflow condition in a char* out-parameter. If the optimizer is good, it'll recognize that the out parameter accesses an automatic variable in the caller, and that your comparison is just checking for overflow. This code, while portable C, will perform horribly as soon as you compile it without state-of-the-art optimization capabilities. I'd think that means that if your compiler wasn't released in the last year or two, and isn't a mainstream decently optimizing one (like gcc, llvm, visual studio), you're out of luck. On many platforms a saturating increment/decrement is also two or three assembly instructions at most, without jumps -- but good luck getting a compiler to actually emit such code.

    I think that providing no way to access the flags part of arithmetic operation results is one of the biggest oversights in C. I'd think that every platform C runs on provides such flags.

    --
    A successful API design takes a mixture of software design and pedagogy.