222 comments

[ 3.1 ms ] story [ 260 ms ] thread
This is not relevant to the submitted article.
He calls himself "Chief GNUisance of the GNU Project" in the very same sig, so it doesn't seem like this is an attempt at stolen valour exactly.
Cheating and being permiscuous are two different things as are greed and theft. Obesity doesn't usually have to do with activity or anything associated with lazy.

This thread is just bad takes all the way down.

So... where is it?
It's a link in the email message to a git repo with Texinfo files.

  git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git
It's behind the link in the post. On, perhaps, the worst git repo browser ever.

RMS's link: https://savannah.gnu.org/git/?group=c-intro-and-ref

click "browse sources repository" https://git.savannah.nongnu.org/cgit/c-intro-and-ref.git

hunt for the word "tree" and click it: https://git.savannah.nongnu.org/cgit/c-intro-and-ref.git/tre...

Oh look, a directory listing! Click the manual! https://git.savannah.nongnu.org/cgit/c-intro-and-ref.git/tre...

What, you don't want to read the 13k-line tex source? Sorry. Clone it and build it yourself, I guess.

This is an idiologist's moral choice, not a choice of the most convenient technology, though, right? That's his "whole thing."
The other GNU manuals are available here: https://www.gnu.org/manual/manual.en.html

They don't try to hide them. This is the git repo of the new version of the C reference and will end up on that page at some point, replacing the one there now.

It's just cgit. It's a pretty good git browser that has few dependencies and runs fast. There's plenty of things to complain about with savannah, but I don't think cgit is one of them.
The first challenge for the prospective reader is building the manual itself.

  git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git
  cd c-intro-and-ref
  make c.pdf
On my machine this failed to build the index sections at the end.
The command in the Makefile should be "texi2dvi" or "texi2pdf".
Thanks for the instructions.

sudo apt update

sudo apt install texlive-latex-extra

sudo apt install dvipdf

sudo apt install ghostscript

sudo apt install texinfo

git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git

cd c-intro-and-ref

make c.pdf

makeinfo --html -v c.texi -o c.html --no-split

I ran these after creating a docker container on my mac.

> docker run -t -i -v $HOME/docker-mounted:/tmp ubuntu /bin/bash

And copy the c.pdf from /tmp in docker to my local mac.

With Docker:

  mkdir -p out.d ; chmod 1777 out.d
  docker run --rm -it -v "$(pwd)/out.d:/out.d" \
    debian:latest \
    sh -c "
        apt update && apt install --no-install-recommends -y \
          texlive-latex-extra \
          texlive-base \
          ghostscript \
          texinfo \
          git \
          ca-certificates \
        && git clone --depth 1 https://git.savannah.gnu.org/git/c-intro-and-ref.git \
        && cd c-intro-and-ref \
        && make c.pdf \
        && makeinfo --html -v c.texi -o /out.d/c.html --no-split
    "
> sudo apt install dvipdf

There's no such package.

I think the package texlive-base or texlive-latex-extra includes dvips (for PostScript), which provides the dvipdf command.
With Guix:

    guix shell --pure git texinfo make nss-certs
    [env] $ git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git
    [env] $ cd c-intro-and-ref
    [env] $ make c.info
...and read it in your Info reader; I recommend Emacs (C-u h i /path/to/c RET).

PDF is inferior because it doesn't have a convenient way to access the curated concept or variable index, whereas in Info you can just hit "i" and type something like "array, layout in memory" and jump straight to the relevant paragraph.

Yeah I wrote a quick `all` rule in the Makefile:

    all: c.info c.pdf c.dvi c.doc c.html c.txt
After building I am getting the title really badly shifted to the right and no contents page. It could be that my tex package is a little broken though.
The entire thread was a worthless soap opera until your comment saved the day, thank you!
As a reference manual, will this eventually replace the GCC info files?
This is a reference manual of the language, not their compiler.

They did however already have The GNU C Reference Manual[1] before, so I wonder if this is meant to replace that.

[1] https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html

I think it is, yes.

The introduction says: "This manual incorporates the former GNU C Preprocessor Manual, which was among the earliest GNU Manuals. It also uses some text from the earlier GNU C Manual that was written by Trevis Rothwell and James Youngman."

So, the C style they use is: function types on their own line and spaces between function names and their parameters?

That's not a style I would be encouraging to use today

It also uses sizeof to calculate the size of an array which would be good in any language except C

> It also uses sizeof to calculate the size of an array which would be good in any language except C

It is a pretty standard and popular way of finding the size on an array. The only caveat is that the programmer really has to be sure that it really is an array and not a pointer to an array.

On the contrary: the sizeof operator is the only way to generally get the size of an arbitrary array (with e.g. no known sentinel to mark its last element) in C. You couldn't use a function instead even if you wanted to.

Many other languages however don't have the equivalent of the sizeof operator because they don't expose an object's memory representation quite as much as C does.

You're right, but it only works for fixed-sized arrays (which are not as common). Also for a learner it is very easy to think that I can do:

    int * my_array;
    my_array = malloc(100*sizeof(int));
    int array_length = sizeof(my_array);
> it only works for fixed-sized arrays

It also works for variable length arrays.

    void f(int n)
    {
            float a[n];
            int m = sizeof a / sizeof *a;
            assert(n == m);
    }
In this case my_array isn't an array. Misleading learners that arbitrary blocks of memory are "arrays" is the bigger travesty.
> That's not a style I would be encouraging to use today

Shame on them for not promoting your personal taste in coding style.

I agree, the code style is quite ugly and strange. They also seem to prefer not using braces for `if`, which is really error-prone. And the first example is a recursive Fibonacci function… Recursion is often hard to grasp for beginners, and while this isn’t a beginner-programmer’s book, couldn’t they have started with something easier?
> So, the C style they use is: function types on their own line and spaces between function names and their parameters?

Having function return types on an extra line is actually quite useful, because you can easily grep for the function implementation with `grep ^foo -r .`

This works quite well, even on huge code bases.

Not sure why you're being downvoted.. I came here to say exactly that.

FreeBSD maintains this style, so you can just 'git grep ^function' to find a function's definition.

When working with other codebases which don't follow this convention, its somewhat frustrating to find a function's definition with just grep.

It also scales with increased qualifiers:

    static inline const unsigned int *
    function()
Yes, I know. (I'm more bothered by the space in calls rather than this, though this is not my favourite way)

Or:

You can use ctags (like the Linux kernel)

or just grep for something like (egrep) '^[a-z]+ .+foo\(' if you're really bothered by grepping function calls instead of only definitions

Chapter 28 "Floating Point in Depth" is a lot more in depth than I expected, and has a nice list of references for further reading.
30 years late to the party, and in a format that is inaccessible to anyone just casually browsing the web but needs to be built using 40+ year old build systems, hosted on a server that apparently cannot handle the "gentle" influx of HN readers...

Sounds just like any other GNU project ;-)

I mean I seriously admire RMS's endurance and persistence, and I'm looking forward to this manual, I'm sure it'll be great, but is this really what GCC needs most? A new language manual?

Man, the FSF and the GNU project need a new refresh and new blood in them ASAP.

everything from their projects, to their websites is outdated and distant from how people actually use tech everyday.

IIRC Stallman 'browses the web' with something like a cron job scraping URLs with Lynx, and then it emails him the output so he can peruse it later. This isn't a joke lol
I believe he used to print them out, so perhaps we should consider at least reading them via an email client to be some sort of progress.

Although I'm sure it was to be more "eco-friendly" than anything

That sounds... reasonable. There are some web-to-newsletter services that try to sell this feature.
Given how intrusive, ad-encrusted, and potentially malware-encrusted the web is becoming, this sounds like one of those Stallman absurdities that make increasing amounts of sense the more you think on them.
Exactly. We need characters like RMS to buck the trends, even if they come off as a*holes to us. And RMS was right about the danger of software not being under our control.
Which is why RMS and FSF tried to get the software under their control. Thankfully, they are much less adept at it than the commercial firms, so that attempt ultimately failed.
Not understanding how they did this. The movement merely supports a license that insists code is available to end users.
The FSF demands copyright assignation for all contributions to its projects. E.g., if you want your code to make it into Emacs, both you and your employer need to sign it over to the FSF.
It is like that "Stallman was right" subreddit is getting righter and righter every day. Except that Stallman is under some kind of Cassandra Curse, so people ignore all the signs, even when they are repeated by persons more skilled in PR tactics.
He did that for a long time, maybe still does for certain things for all I know, but he started using GNU IceCat (a firefox derivative) some years ago.
I actually envy him for being able to do so.
Sounds like a great way to prevent brain death brought about by the WMD (weapons of mental destruction) such as infini-scroll, etc.
I used RSS to read HN up until Google killed their reader. (Being able to filter the feed by the post title was nice.)
You open the site and read, what else do you need?
I mean, you kinda can't easily read this language reference from the site. So making that an easy to access set of HTML files would be a start.
The reference doesn't exist yet. This is the source to the reference.
>everything from their projects, to their websites is outdated and distant from how people actually use tech everyday.

It makes sense if you think of the FSF as a religion, and consider the thesis of the Free Software movement as theological - free software is an ultimate moral good, proprietary software is an ultimate moral evil, and the FSF sees themselves as clergy spreading the gospel and purifying themselves from the corruption and degradation of modernity. Sacred rituals and texts tend not to change over time, after all, being sacred they don't need to change.

The religion analogy is unnecessary. The FSF is a non-profit with the goal of fostering free software. As a non-profit, their actions and their investments are focused on their goal, not on becoming profitable.

As an example, RMS himself actually recommends the dual licensing model of Qt for organizations looking to make a profit and contribute to the free software movement. With that model, the software is available under a copyleft license (GPL) and a proprietary commercial license (for those willing to pay)

But as the FSF is not focused on profits (again, because they’re a non-profit organization), all of their software is exclusively licensed using copyleft licenses like GPL and LGPL. Not because it’s a “religion”, but because it’s literally the entire goal of the organization.

> As a non-profit, their actions and their investments are focused on their goal, not on becoming profitable.

1)You can't succeed as a non-profit if you don't make money.

2)If the FSF cared about their goal of fostering free software blah blah, then why didn't they fire RMS out a cannon when basically the entire open-source world said "fire that serial sexual harasser who keeps opening his mouth about child rape not being rape, or we stop giving you money / working with you."

They chose, overwhelmingly and very petulantly, to continue letting RMS have a leadership role.

They didn't fire him because he did not do any sexual harassment, and his comment about children was made earnestly but out of a place of ignorance. I've met plenty of people who are at least that socially dense with that low of a filter, it's not really surprising that someone like this would have ignorance of such a topic + the lack of tact required to speak about it.

If anything, that kind of sheer honesty and invulnerability to peer pressure gives him an advantage over ordinary people in a leadership role.

Except the peer pressure he was under, in this specific case, was the kind he should have been vulnerable to. We're not talking about peer pressure from proprietary software advocates or anything, but "Actually Richard, pedophilia is bad and maybe you should stop creeping on the interns."

A good leader has empathy and the capacity to understand when their actions are causing harm to people, and should be willing to take advice when warned about such behavior, and adapt for the better, if not for themselves and their own reputation then at least for the good of the organization. Stallman's "sheer honesty" has done real damage to the FSF, and the culture around F/OSS as a whole. Granted, because the politics around this are sex and gender adjacent, many people couldn't care less on general anti-woke principle, but Richard Stallman as a leader should care.

Simply crossing his arms, digging his heels in and saying "fuck you I'll do what I want" for years on end hasn't given him an advantage over any "ordinary" person. Being an obstinate prick isn't a superpower.

Can you share an account by the interns that showed him acting creepy?

I have been hearing a lot of allegations against Stallman, but cant seem to find the original accusation etc. If you know the primary source information, please link to it in a reply.

I don't know what, specifically, you mean by "primary source," but numerous first-person accounts of Stallman's behavior in this regard can be found on the web, as there was a bit of a #metoo moment online after Stallman's original "deplatforming" when a lot of people shared their accounts.

No one is going to do your research for you. If you're actually interested, and not simply trying to yank people's chains, you can read any one of the multitudinous threads about it on HN, or do a bit of Googling.

I actually have Googled and I keep getting results and commentaries like yours. The search results are garbage.

> If you're actually interested, and not simply trying to yank people's chains, you can read any one of the multitudinous threads about it on HN, or do a bit of Googling.

Yes and all of these threads on HN are content free. The only information in this particular thread is about Stallman chewing his feet. Honestly, it looks like you don't actually know what these instances of harrassment are! I can't find anything in this HN thread or multiple others, or by Googling. It looks like you don't either.

Also HN threads are supposed to link to other sources. The only link here is to a Twitter account that is again just commentary.

I found the original comments.

RMS was not a professor or lecturer at MIT.

1st comment- a second hand report by a student that sounds like a joke.

2nd comment- RMS used to sleep overnight in his MIT office.

3rd comment- RMS was needy and pleading when asking for a date in 1985 or earlier.

I recall being told early in my freshman year “If RMS hits on you, just say ‘I’m a vi user’ even if it’s not true.”

— Bachelor’s in Computer Science, ’04

“He literally used to have a mattress on the floor of his office. He kept the door to his office open, to proudly showcase that mattress and all the implications that went with it. Many female students avoided the corridor with his office for that reason…I was one of the course 6 undergrads who avoided that part of NE43 precisely for that reason. (the mattress was also known to have shirtless people lounging on it…)”

— Bachelor’s in Computer Science, ‘99

“When I was a teen freshman, I went to a buffet lunch at an Indian restaurant in Central Square with a graduate student friend and others from the AI lab. I don’t know if he and I were the last two left, but at a table with only the two of us, Richard Stallman told me of his misery and that he’d kill himself if I didn’t go out with him.

I felt bad for him and also uncomfortable and manipulated. I did not like being put in that position — suddenly responsible for an “important” man. What had I done to get into this situation? I decided I could not be responsible for his living or dying, and would have to accept him killing himself. I declined further contact.

He was not a man of his word or he’d be long dead.”

—Betsy S., Bachelor’s in Management Science, ’85

I dont see how a "religion" has to have an outdated website, out of touch marketing and projects.
Here's an anecdote:

In 2014, as part of my job as fsf's web developer (a new position at the time), I suggested moving gnu.org's version control from a private cvs repo (that requires passing a test to get access to) to a public git repo as a step towards attracting new contributors. The argument was simple: Not many new volunteers are coming in to work on gnu.org and very few know cvs any more. Making it operate more like a regular free software project that can receive patches from anyone and using the most popular version control system would lower the barrier to entry and improve transparency. It was viewed as a reasonable goal by the people I worked with at the fsf, but gnu has its own governance and the idea was met with strong resistance from all of the longtime gnu.org contributors, including rms. I even received an unpleasant off-list email (not from rms) because I was viewed as an outsider that doesn't know anything. So, that was the end of that little idea.

There is a glimmer of hope for gnu's future in subprojects such as guix, which is doing technically interesting work and has created a healthy community that welcomes newcomers. Can that positive energy take hold and spread to the rest of the project? We'll see.

I still remember in 1996 searching for GNU online only to discover they weren’t running on their own domain, instead something buried on (IIRC) mit.edu.

I also couldn’t find any gcc binaries for Solaris online, had to steal a copy from my school’s IT administrator to help get a startup up and running.

They definitely have serious challenges with inertia.

Probably prep.ai.mit.edu. MIT does that kind of thing; It’s like tsx-11.mit.edu, the famous US Linux FTP mirror, which was, IIRC, originally Theodore Ts'o personal workstation at MIT.
A former boss still tells people about the time he emailed an address at gnu.org to inform them that a mirror was broken, and made the mistake of using "linux", and got a page-long rant from Stallman himself about how it was "gnu/linux"

...and nobody fixed the FTP site.

I appreciate what rms did technically and philosophically back in the 70s and 80s, but he is just the worst public relations person ever.
> he is just the worst public relations person ever

he campaigned a lot in the 80s/90s too, creating a lot of exposure for his ideas.

i think we just have different expectations nowadays...

I had the chance to speak with him in person once and he did a similar thing to me. I found that if you use a word he doesn't like, he'll just focus on that and ignore the content of your sentence.
>I found that if you use a word he doesn't like, he'll just focus on that and ignore the content of your sentence

This makes it sound like RMS was ahead of the curve since this is the standard operating procedure for a lot of people these days.

I equally detest websites which are extremely graphics and animation intensive. When I see a lot of graphics and presentation my mind goes: "Sales pitch upcoming. Be careful!!"

I actually like highly functional websites with a light touch that conveys sophistication. GNU's websites don't come in that category, of course.

I'm not asking for something full of animations.

I'm just asking for something modern and useful, like GitHub and Gitea.

The total opposite of Savannah.

Personally, most of the times I visit gnu.org I'm browsing the Emacs manuals and I do have to say I appreciate the simple HTML rendering. It makes them easy to read and navigate.
Not every thing is about ease of use. Sometimes doing things without a nice GUI interface forces you to understand the system better.

All the UI's and documentation systems are taking on the same boring corporate gloss. It has its uses, but it feels dead. It's not invigorating.

> everything from their projects, to their websites is outdated and distant from how people actually use tech everyday.

That's... kind of the point, no? Most people use computers most of the time in a way that's not free by FSF standards.

yeah, I expect GNU to go the way of the dodo in the not-so-distant future. Most projects will survive, of course, but probably under new leadership or something.

In every other industry you learn to adapt to new developments until you retire, yet GNU seems to insist on using decades-old software (cvs, autotools, ...) just because.

That just has to backfire at some point...

> Most projects will survive, of course, but probably under new leadership or something.

That is called a fork. For the fork to work you need momentum. Historically this did not work really well. And the forks mostly died.

What I do see is that big biz does not like (L)GPL (and absolutely hate AGPL), so they prefer to through their momentum behind BSD (and similar) licensed code. This is how a lot of momentum was focused away from GNU projects (e.g.: LLVM over GCC)

> That is called a fork

No that's not what I mean.

I mean more like GNOME which once was a GNU project and then left GNU to continue on their own. There are more examples like that. They don't need new manpower or inertia. They just drop GNU if they feel it keeps them back (which a lot of projects recently think, apparently, after the whole RMS drama some time back)

Not true. There's a large number of industries that prefer reliable older tech to unreliable ephemeral new tech.
People have been predicting the end of GNU ever since the beginning, perhaps starting in earnest in 1994, when the GNU project was 10 years old! Outdated, obsolete, practically one foot in the grave, surely, people said. And yet here we are in 2022, RMS being more right than ever.
Funny anecdote from an IRC chat I "overheard" today.

The chat was for a relatively new GNU command line tool. It was discussed whether it would be possible to detect changes to a file being edited through "outside" programs, before saving. The typical "the file you have opened was changed on disk. Overwrite/Reload/..." question.

It was suggested that they could use inotify for that. A GNU developer responded with "there's no inotify on OpenBSD". Then discussion went to "could we maybe use kqueue there?"

The response from said GNU developer? I quote, and this is not a joke: "There are plenty of systems without kqueue. Like TOPS-10"

The other developer jokingly said that he didn't know of anyone still using TOPS-10, to which the GNU developer responded along the lines of "Well, I am intending to compile and run this on TOPS-10, so we should use a mechanism similar to what EMACS does to detect those changes, as that is portable to more systems and is equally safe, i.e. race-condition-free"

I'm not sure if the race conditions in the "EMACS way" are actually there or not (I didn't feel like reading the elisp code for saving files), the discussion quickly went to filesystem requirements, NFS and other remote filesystems, etc.

But the fact that they are considering porting to an OS that has been out of (active) use for more than 30 years over using more recent APIs on more modern OS's shows how far in the past they are stuck. And this is only a very recent example that I wanted to share, there are many more such examples if you know where to look (mailing lists etc.). Things like "we cannot change this as SunOS requires this-or-that" and "this will break on VMS" are still things they are thinking about... I mean I get it, backwards compatibility is cool and all, but some things can be taken a bit to the extreme...

Agreed. This sounds like the kind of thing I'd like to fill my Tuesday evening with, but had to refer to the instructions from the kind commenter below to install packages to build the LaTeX file since my Texmaker refused point-blank to have anything to do with it.

Of course it's Linux only, so means using WSL on my Windows laptop.

Managed to open the file, no instructions whatsoever for finding a compiler other than 'get the GCC one'. Okay. Found the mirror, downloaded it and just now reading the installation manual. Yes, it's a manual, basically. Two dozen prerequisite packages to install by hand before I do anything else.

It's guaranteed not to work on WSL so I'll have to spend an hour or two just getting a compiler up and running, that's assuming it works at all and I don't just have to fire up a Debian VM and start again.

I get C is hard, and is supposed to be hard, but it's like GNU are going out of their way to make this intentionally more difficult than it needs to be.

You are kinda getting of the beaten path here and you seem to know it.
I’m sure they’ll eventually make a PDF and HTML pages easily available on their site, like they have for plenty of other manuals. This announcement is more along the lines of “if you want to help us with the finishing touches, here’s where to go.”
> C is hard, and is supposed to be hard

I don't know why anyone would say that. C remains a simple little language. It is programming, especially the kind C is used for, that is hard.

Exactly. C was a lot easier than the alternatives back when it got invented. It's simplicity that characterizes a good design.
I don't know TeXmaker, but it's highly unlikely that you can't compile this with any normal TeX distribution.

It's not a LaTeX file though, it's a TeXinfo file but since it includes the texinfo.tex file it shouldn't matter, you can run it like any plain TeX document. It uses texindex but that's included both in TeX Live and MikTeX, so you probably have it installed already. Just run on some kind of command line

> pdftex c.texi

> texindex c.cp

> texindex c.fn

> pdftex c.texi

> pdftex c.texi

I mean, it's not even done yet. He doesn't really want anyone reading it yet. I imagine once it's complete we'll have the standard HTML single page, HTML multi-page, PDF, etc. options you see with all other GNU publications.
If he doesn't want anyone to read it, why does this announcement say

> Please report any flaws, including any passage that is unclear or hard to understand.

?

If you add a bit of nuance to your interpretation of GP’s comment this will make a whole lot of sense.

It’s pre-publish. That’s all they’re saying. And that’s clearly the case, it seems.

Yes they should put the built versions online when it's done.

Right now you can generate a PDF or HTML from the texi

The link is to the git hosting platform for GNU that contains the texinfo source and seems more intended as an announcement to those that want to get in early and build the manual for themselves. I'm sure it will ultimately be posted in html form on gnu.org, like every other manual.

I'm honestly shocked to see rms using git. He used to refuse to use it.

Yes, although, while actually working on the manual, we didn't use Git. We passed diffs back and forth over email.
There is nothing admirable about actively blocking progress by refusing to admit that you are unsuitable for your role as a representative an ambassador of a movement, unpopular to the point of hundreds of organizations criticizing you remaining in a leadership role / refusing to work with your org until you leave, and generally being ineffective.

Stallman should have passed the torch twenty years ago. Open source as a movement would have progressed far more if it had been represented by someone with a more pragmatic view and a modicum of basic social skills, instead of an inflexible, dogmatic, anti-social asshole.

Was that really necessary? Like him or not, he is still somewhat of a legend. For all those denigrating someone as being too old, they might look in the mirror. You will end up "too old" one day too. And faster than you think.
Nothing in my comment "denigrates RMS for being too old."

Lacking any form of social grace or interpersonal skills to the point that he picks and eats his toe-cheese while on-stage for a speaking engagement, being a serial sexual harasser and general pest of women (including telling multiple college-age women that if they don't date him he'd kill himself) to the point that all the women in his office kept substantial houseplant collections in their offices because he hates houseplants, and being unable to even shut his mouth about how 'really, age is just a number' when it comes to sex with kids, and becomes extremely petulant about it when everyone objects to those views...

...is not "denigrating someone as being too old."

> twenty years ago... college-age women

That's literally saying "too old."

(comment deleted)
(comment deleted)
Too old to hit on college-age women. That's a completely different complaint than "too old" in general.
(comment deleted)
There is no such thing as being “too old in general.”
Sexual harrassment is not the same thing as being crude or vulgar.
oh I definitely do not admire HIM.

I admire that he keeps resisting progress, still curl'ing websites and reading them locally in his EMACS just so that he doesn't have to touch a browser, and blissfully hacking away at a C language manual that the world has already hundreds of...

I like to think of him as the Amish of Computer Science. Which I don't mean in a disrespectful or derogatory way, just as someone who continuously resists any kind of progress...

> any kind of progress

Perhaps, not "any" kind of progress, just certain kind?

(comment deleted)
Does your modicum of basic social skills teach you to call people on the Internet inflexible, dogmatic, anti-social assholes? Is name calling the appropriate method for demonstrating your superior social abilities? I'm asking as I'm rather bad at people and would love to level up!
RMS is an inflexible, dogmatic, anti-social asshole. That's not even controversial, people have decades of receipts on that.

Hell, a lot of his followers consider those qualities virtuous.

If we were were to identify what GCC needs most, do you necessarily want RMS on that task?

There are enough people that someone else can work on what GCC needs most, while RMS hacks on a manual.

GCC is a bloated mess with 50+ megabyte back-end executables; in my opinion, what it needs most is to go on some kind of diet.

> 30 years late to the party.

Why 30 years late? Their earlier manual[1] already covers the C language as standardized 20 years ago with C99. This new one makes mention of at least C11. If it doesn't include features of a later standard, it's at most like 10 years late if you can expect anyone to write a publication like this in a single year.

> in a format that is inaccessible to anyone just casually browsing the web but needs to be built using 40+ year old build systems

Nothing wrong with software being old. It's stable and reliable. Also, I'm not sure the format has any competition, taking into account feature parity.

[1] https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html

So one remark with respect to being late to the party and writing a publication like this in a single year... I was the main author on that [1] link there. Richard contacted me ten years ago (in January 2012, as I recall) about his new forthcoming book. I ended up helping him with the new book, but I figured that with this new one coming out, no reason to do much more with the one I had written.

So indeed, it never got past coverage of C99 and other GCC extensions circa C99. I honestly did not expect that it was going to be ten years before his new book was finished, or I might would have put more work into the one that I started.

Oh well! The new one is finally out. :-)

> This new one makes mention of at least C11

Indeed, I haven't spotted these on my first glance over the document. So yeah, it's probably only 10-15 years late when it comes out. I'm still amazed that RMS is taking C11 into account, I would have guessed he prefered C99

> Nothing wrong with software being old. It's stable and reliable.

I'm sure you're having fun driving your old Ford Country Squire, watching television on an old RCA TV set and using a rotary phone to call friends and family ;-)

Of course you are right in that there is nothing inherently wrong with using old software. And yes, it might be more stable than the shiniest newest tech. But there are middle grounds that exist as well that get you nifty features or quality-of-life improvements, and don't intimidate newcomers that much than having to first find out what that CVS is that GNU is still using in some areas ;-)

> I'm sure you're having fun driving your old Ford Country Squire, watching television on an old RCA TV set and using a rotary phone to call friends and family ;-)

I said software. Have you stopped using 30 year old Linux, Python, Photoshop, etc.? They're not that much newer than Texinfo. Or do you think they should be discarded when they hit 40? MS Excel is about the same age as Texinfo. I guess Excel is obsolete now.

You don't need to make a whole new product to introduce improvements in software like you do with hardware.

Improvements happen in discrete steps, for hardware the same as for software.

If you build a new car by taking an existing one and swapping out the engine, is it still the same car? What if you also swap the body. And the drive train?

The same is true for software. In Linux, almost everything has been swapped out"from what it was 30 years before. Device drivers, Memory manager, you name it. Is it still the same old Linux? Probably not. Just because the name didn't change doesn't mean it's the same product.

However, take a look at what changes have been done in GNU Make in recent years. Other than a few bugfixes there was nothing of substance. GNU TexInfo? the same. This is what I mean by "old". I get the whole "never change a running system" thing, or "when it works exactly like it should, why change it"... But this is a surefire way to make sure your software is lost and abandoned when the last 2 developers working on it quit.

> However, take a look at what changes have been done in GNU Make in recent years. Other than a few bugfixes there was nothing of substance. GNU TexInfo? the same. This is what I mean by "old".

There's a clear scope. It makes sense to only have bugfixes, specially since it's FOSS.

> I get the whole [...] "when it works exactly like it should, why change it"...

Why complain about it then?

> But this is a surefire way to make sure your software is lost and abandoned when the last 2 developers working on it quit.

This is FOSS. You seem to think of this like for-profit software. Development in FOSS is typically done for the developer(s) own need and shared for free with the world on the off-chance that someone else finds it useful, because some people are cool like that. There's no for-profit incentive to make it as widely applicable as possible nor to retain market.

In the case of Texinfo, it's utility is mostly for development in the GNU space. It's essentially to write documentation once and turn it into nicely formed PDFs, single-page HTML, multi-page HTML, and info manuals, each with their format-specific functionality for table of contents and indices fulfilled. That idealizes their documentation for print media, web, and local access.

Do you have a use for that? No? Why do you care if it's lost and abandoned? Yes? Then contribute whatever it is you seem to think it's lacking.

Don't worry about loss of market. The only market developers owe anything to is themselves.

It's funny how people can't appreciate free things. It's one thing to provide constructive criticism and another to scoff.
This manual is not as "free" as it could be: For the vast majority of its target audience, it requires effort to get it into a readable format. I would consider a HTML rendition of the same TexInfo files more free (for a certain definition of "free" at least).
If it keeps him away from the rest of GCC then it's good for GCC.

Harsh but realistic.

> is this really what GCC needs most

Nah. It's what some programmers need most, especially those that cannot/willnot pirate a manual, or want to be able to give back improvements as they study it.

Make, tex, dvipdf, makeinfo? Still in active use.
It is possible to convert the TexInfo file to a PDF
It's a standard TeX file built using the GNU texinfo macros, it can be converted to a PDF using TeX or a HTML, docbook, or GNU info page using `makeinfo`
Perl is used to convert texi files to html, plaintext, pdf, etc.^1

How to get the perl script for coverting texi

On Linux install texinfo

On BSD install text2html

Below is a tiny script to make this manual as a 639K text file called "c.txt" to read with less(1) and edited with vi(1), according to personal preferences.^2 Your preferences may differ. We may be different people using different computers and different software.

1. https://www.nongnu.org/texi2html/ https://texfaq.org/FAQ-texinfo

2. Example personal preferences: Avoid git where it's not needed. Use links browser to dump html to text. Indent text at least 4 spaces, leave large right margins (here, column width = 70). Use curl only for HN examples. IRL, use tnftp.

   #!/bin/sh
   set -v;
   x0=c-intro-and-ref.git;
   x1=https://git.savannah.nongnu.org/cgit/;
   test -d $x0||mkdir $x0;cd $x0||exit;
   for x2 in Makefile c.texi cpp.texi fdl.texi fp.texi texinfo.tex;do 
   echo url=$x1$x0/plain/$x2;
   echo output=$x2;
   echo user-agent=\"\";
   done|curl -K/dev/stdin -s;
   case $(uname) in :)
   ;;*BSD) texi2html --no-headers --no-split --html c.texi
   ;;Linux) makeinfo --no-headers --no-split --html c.texi
   esac;
   links -width 70 -dump .html \
   |sed '/^ *Link:/d;/^ *\*/s/\*//;s/^/    /;/Jump to: /{N;N;d;}' > c.txt;
   # personal preference: uninstall perl to conserve space;
   exec less c.txt;
All GNU documentation is written in this format. But here they seem to have neglected the standard procedure of converting to HTML before publishing...
Not starting with "Hello World"? Is that even legal?
I have the “Primer of Algol 60 Programming” by Dijkstra. It was created ten years before K&R, so of course it doesn’t start with “Hello World.” But that fact surprised me a little the first time I read it.
I always thought Hello World was the dumbest example. Useful examples are always better.
A minimal viable program that demonstrates basic I/O and allows one to confirm their build tooling works isn't useful?
I try to start with a failing test, because tests not being identified or failures not breaking the build are serious problems.
I used to think foo and bar were really dumb and I thought less of writers who used them for not putting in more effort to provide realistic examples.

That has changed and I'm now grateful to writers who stick with foo and bar, the same way I'm grateful for syntax highlighting. It helps me focus on what is being demonstrated and skip over the stuff that isn't important. Use of foo and bar is good for this, and realistic examples aren't.

There's an argument to be made for hello world that falls along similar lines, probably.

I appreciated this:

> Personal note from Richard Stallman: Eating with hackers at a fish restaurant, I ordered Arctic Char. When my meal arrived, I noted that the chef had not signed it. So I complained, “This char is unsigned—I wanted a signed char!” Or rather, I would have said this if I had thought of it fast enough.

What is also nice about this story, is that it gives an official pronunciation for ‘char’.
(comment deleted)
> official pronunciation

Stallman didn’t design C or invent ‘char’ if that’s what you’re thinking.

I'm pretty sure I've heard someone in the Kernighan/Ritchie/Thompson camp (i.e guys who actually worked on the C Language) pronounce it like "care" in interviews before, so I'm not sure Stallman's pronunciation is really authoritative here. It really depends on whether you read it as its own word (like to "char" the grilled meat), or whether you read it as the first half of "character".
If you pronounce the start of "character" the same way you pronounce "care" then I'm afraid you're pretty far away from the norm already.
An American could say 'care-acter', while an English person might say 'caract-er'.
(conch 1 2) -> (1 . 2)

(char (conch 1 2)) -> 1

(chdr (conch 1 2)) -> 2 ;; "chowder"

> What is also nice about this story, is that it gives an official pronunciation for ‘char’.

One thing I was surprised to learn is that people working with dead languages rely on puns and rhymes in order to figure out how to speak a language. And then it's like solving some rows in a crossword- the more you can figure out, the more it lets you figure out others.

In Vancouver, Canada, you could have ordered your unsigned char at the C restaurant. It seems permanently closed now. EXIT_FAILURE?
I love Richard Stallman's sense of humor. It feels so youthful and innocent.

Also relevant: https://www.stallman.org/jokes.html

Yes, many 5-sigma overachieving autistic-spectrum obsessives struggle with social norms and cues.

Let's just accept that whatever is going on in RMS's head to give so much for free to the rest of the world comes with some rough edges, and there's no way to get one without the other. It's a fair trade.

Most of the ones I know don't.

I don't see any reason to accept it wholesale - picking his feet I can tolerate, blatantly obviously unacceptable social interactions with other people should not be tolerated: these are a skill that can be learnt by people who care, autistic or not.

Note that RMS says he doesn't have autism.

You don't know any 5-sigma outliers.
How do you know?
This is your reminder that the FSF unionized to provide protection for the FSF against his history of workplace harassment and more. Most of the FSF staff aren't comfortable being alone in the building with him.

As someone who is on the same boat: he's been asked to, and offered help with getting, counseling and behavioral therapy to help him see how he can improve his social skills. There's being an awkward socialite and then there's actively not working towards success.

From what I recall, the FSF staff unionized to get paid. RMS did not harass anyone. Please provide sources for your second-hand accusations. Here’s a handy rebuttal for all such I have seen to date: https://sterling-archermedes.github.io/
I guess it depends on what “workplace harassment” means; I, perhaps incorrectly, took it to mean sexualized or gender-specific harassment, since that’s what RMS is usually accused of, but I did not find anything of that nature in that Twitter thread. Of course, RMS might be guilty of harassing people in general at the workplace; that’s entirely possible, and not very surprising, since he’s never been one for social niceties.
As someone with a slightly nuanced perspective on "woke" matters: The abortion one I thought was a bit of a nothingburger, the virginity stuff at conferences is totally unacceptable.
What were the jokes? I couldn't find it in the tweet?
> virginity jokes

Is that about the "virgin of EMACS" joke from, what, 15 years ago now? Sure, it was silly and I personally wouldn't have said something like that, but come on... This doesn't make someone an asshole.

> At dinner at a Japanese restaurant, the person next to me said she wanted to work with abused children. Since we had not yet received the tempura, I responded, "If battered shrimps are your interest, we should have some here soon."

Yeah, I'm dying of laughter over here...

That pun is so silly and childish that I can't see how could anyone take it as a serious attack on abused children. It's a pun that RMS came up with, the same way as some child, unaware of PC culture and consequences of joking about no-no topics in the modern world, would make it.

If you assume bad intentions, everyone in the world will have made a faux pas that can be perceived as offensive. I do not assume bad intentions in RMS's case - he has done so much good for the world, and such a person obviously cares about humans, including abused children. The fact that he made a pun about abused children doesn't bring harm to anyone.

If you asked him for serious thoughts on the topic of abused children, you would most likely receive a completely different response, one that you would probably like.

> If you asked him for serious thoughts on the topic of abused children, you would most likely receive a completely different response, one that you would probably like.

You realize it's RMS we're talking about here? Who has repeatedly harassed female coworkers and interns, and who thinks that "sex with kids is okay"?

Even if he later tried to retract his statements, I'm not sure I would trust him with any "mature" take on the topic of child abuse (or any other social topic for that matter)

Please stop accusing RMS of harassing anyone without providing first-hand source. That is just blatant defamation.

He never said "sex with kids is okay", the quote was taken out of context - he was talking about the absurdity that the definition of "rape" is dependent on geographical location.

If you wish to change anyone's minds, please take some time to find and discuss RMS's original texts. Otherwise, I'm dismissing you as just another yellow press defamator who is talking about things he's read on Twitter as if they were objectively true.

If you want first-hand sources, they are readily available and were posted on HN and other sites more than often enough. If you search for them, you will find them.

And while he did indeed not say these exact words, the context was perfectly clear: "[...] possession of child pornography, incest and pedophilia [...] should be legal". Exact wording or not, I stand by my statement that he is a sick and horrible person, freedom-of-speech or not, and it makes me wonder why anyone would rush to defend him.

> If you want first-hand sources, they are readily available and were posted on HN and other sites more than often enough. If you search for them, you will find them.

And how am I supposed to disprove that claim? Scroll through the entire internet?

You're the one accusing - the burden of proof is on you.

The fact that you haven't brought forward any proof only indicates to me that you have none.

And then the chef singed it.
Indeed, char should be signed by default - it's an integer type, after all (in C, anyway).
Where is the PDF and/or website? This is not that:

https://git.savannah.nongnu.org/cgit/c-intro-and-ref.git

I get not wanting to build an executable for different platforms, but FFS, this is HTML or a PDF, just build the thing for us please. Talk about tone deaf. Its not 1990 anymore.

I’m sure they’ll eventually make those available on gnu.org. This doesn’t look like an announcement that the book is generally ready, but that the first draft is ready enough for people to make suggestions. I’m sure they’ll have PDFs and webpages on gnu.org eventually, right next to their other manuals.
Now to download 500 dependencies of obscure tools so I can build it!
Those are hardly obscure. Tex, makeinfo, dvipdf?

If that's too much, wait for a finished version to appear on the literature download page.

I thought this website labelled "manual" would be a website that's a manual. Can we change the title to "source code" please?
It's best read with emacs info mode, given that RMS is an emacs lord.
I notice a few problems with this:

1. The text on the title page runs off the right border.

2. The contents are blank and the indexes say "(Index is nonexistent)".

3. The inline links are all broken, e.g., "See ⟨undefined⟩ [Arithmetic], page ⟨undefined⟩."

I generated the PDF by running "make c.pdf" in a Docker container from this Dockerfile:

  FROM archlinux
  RUN pacman -Syu --noconfirm texlive-most ghostscript make
Did I somehow build incorrectly, or are these issues with the upstream repository?
I believe the project's supporting files for other formats aren't complete ...

I also ran into the texinfo => tex => PDF version having title page & other errors in the rendering steps - but saw that the ASCII version "make c.txt > text.txt" generated the indexes / cross-references.

I think the build environment will be likely getting several enhancements to render correctly.

How is it that on HN, people are complaining about being given a link to the git repo for the project source?!?

Not only that, but Oh no!!, there's no `README.md` or `INSTALL.md` yet in this 4-day old, 2-commit repository to tell users how to build it? How will they ever figure it out, and find the 25-line `Makefile` out of the... 6 files in the repo?

Seriously?

That's one excellently human-readable makefile, too.
That's the use case where Makefile shines.

Though it's not a particularly good one, the dependencies are lacking. Eg, .html doesn't depend on .texi, and so this one won't work right.

IMO, Makefile is at its best on small projects with trivial rules and no configuration. Once you go to a generator it's a waste, because it's not human friendly anymore. And complex projects want something more like cmake anyway.

People are NOT complaining about that (git, source, 4day old code, readable makefile that is better than a readme, etc)

People here are programmed to react a certain way to the very mention of Stallman. I will not elaborate further.

(comment deleted)
When every other programming language community is trying to build an inclusive culture, well, C can't stop, won't stop being C.

Might want to chill with the gatekeeping, if you want to gatekeep a guide to learn the language. In the long run, that may not accrue to a language's benefit.

Actually C is user-friendly language. It's just a little bit picky when choosing a friends.
I always thought C was an enabler?
(comment deleted)
Nah, this is RMS being a boss uploading his work for others to distribute in various formats. His Emacs code base got a long way, so did his GCC and basic unix tools.

He did this before... And was quite successful at it.

> Nah, this is RMS being a boss

Don't care to participate in any hero worship. Not for me.

I was referring to the comment I replied to. "Might want to chill with the gatekeeping" is what I was saying. Thought this would be obvious, but I'll add it to my comment.

C doesn’t need a community or culture. It’s an industry standard which everyone who doesn’t write C is trying to kill. It will be just fine
(comment deleted)
I guess the anecdotes about interviewees not being able to figure out a (very) simple Git repo without hand holding (or write 'fizzbuzz') are true.
I sincerely wish those were fictions. I’ve been on the interviewing end of both of those cases. It’s OK (if a bit surprising) if someone’s never used Git before. Maybe they worked at a Perforce or Subversion shop. It’s not OK to be unable to Google “git basics” to figure out how to clone a repo.
It might be a bit over the top in the heat of a 30 minute interview, but for say an at-home two hour challenge it's not too unreasonable.
One manager I know says he gets "senior" candidates who can't do FizzBuzz. Not just have trouble with the modulo operator, but can't even get started.

Lying?

Just not able to interview well?

Also people who don't know about their package manager's whatprovides command.
If it's only 2-commits-old, why "release" it to the public? Why not say "alpha source code for a language reference is available?"

Hackers can still try to build it using random comments on the internet instead of a README.

What kind of person goes to the trouble of creating an entire reference manual and doesn't take the very last step of generating the readable files?

It's like inviting somebody over for a meal, only to dump a set of kitchen utensils, ingredients, and recipe in their lap.

[[[ To any NSA and FBI agents reading my email: please consider ]]]

[[[ whether defending the US Constitution against all enemies, ]]]

[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Man, oh man, just when I thought Stallman couldn't have gotten any more sanctimonious than he was 20 years ago ...

GNU manual is quite nice actually, a welcome companion to my worn copy of C: A Reference Manual, 5th Edition by Guy Steele and Harbison

Looking at https://crms.tiiny.site/#Function-Pointers I am glad I do not have to program C anymore..

  /\* Declare a function returning char *.  */
  char *a (char *);
  /\* Declare a pointer to a function returning char.  */
  char (*a) (char *);
  /* Declare a pointer to a function returning char *.  */
  char *(*a) (char \*);
This brings up 20 year old memories of pain. How did I ever remember this?
“cdecl” is available since 1996; I heartily recommend it.