From: Alejandro Colomar <alx@kernel.org>
To: Adam Sampson <ats@offog.org>
Cc: linux-man@vger.kernel.org
Subject: Re: [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type)
Date: Mon, 12 Jan 2026 15:28:03 +0100 [thread overview]
Message-ID: <aWUAXoVyRpanc-sF@devuan> (raw)
In-Reply-To: <y2abjj1cd4x.fsf@offog.org>
[-- Attachment #1: Type: text/plain, Size: 2598 bytes --]
Hi Adam,
On Sat, Jan 10, 2026 at 10:32:30PM +0000, Adam Sampson wrote:
> Alejandro Colomar <alx@kernel.org> writes:
>
> > I think 'void*' is important enough that it would be useful to dig in
> > its history further. Was it an invention of C89? Or was it an
> > extension in some existing compilers? If the latter, it would be
> > interesting to document which systems had it before C89.
>
> From evidence in the utzoo Usenet archive, the idea was around before
> the ANSI C effort.
>
> The first mention of "void *" is in November 1982, where Ken Dalka
> (ihuxe!dalka) observed in net.lang.c that void * was accepted as a type.
> He didn't say which compiler was being used, but an earlier post said
> ihuxe "runs USG 4.0 UN*X".
Huh, would this be the "System IV" that was never externally released?
The year seems consistent with that. Interesting! According to
<https://www.tuhs.org/Archive/Documentation/Manuals/Unix_4.0/README>,
the official name of this would be PWB 4.0. or Unix/TS 4.0.
Should we document it as Unix/TS 4.0?
This predates the C Committee by one year, BTW.
It would also be useful to know when the BSD lineage incorporated void*.
> The next is from Mary Ann Horton (mark@cbosgd.UUCP) in January 1984,
> also in net.lang.c, who suggests using "(void *) 0" as a definition of
> NULL, giving a varargs function with args terminated by NULL as an
> example.
>
> Then in March 1984, Doug Gwyn (gwyn@Brl-Vld.ARPA) says, as part of a
> discussion about casting the result of malloc in net.unix-wizards:
>
> > The C Language Standards Committee was talking about adding
> > (void *) to the language as a generic pointer type. Perhaps
> > that will eventually help...
>
> It then shows up in various posts in both of those groups throughout
> 1984, including a summary by Henry Spencer in June 1984 of Larry
> Rosler's presentation on the ANSI C project at Usenix saying:
>
> > II. "void *" is a new kind of pointer, which cannot be dereferenced but
> > can be assigned to any other type of pointer without a cast. The
> > idea here is that "char *" is no longer required to be the
> > "universal" pointer type which can point to anything. So for
> > example, the declaration of fread earlier really should go:
> >
> > extern int fread(void *, int, int, FILE *);
> >
> > (People who have machines where all pointers have the same
> > representation, don't complain. You are lucky. Others aren't.)
>
> Thanks,
Thanks a lot!
Have a lovely day!
Alex
--
<https://www.alejandro-colomar.es>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2026-01-12 14:28 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-09 6:40 [PATCH v1 00/25] man/man3type/*: Update history of all other types Seth McDonald
2026-01-09 6:40 ` [PATCH v1 01/25] man/man3type/div_t.3type: HISTORY: Update first SUS appearance of [l]div_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 02/25] man/man3type/id_t.3type: HISTORY: Update first POSIX appearance of id_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 03/25] man/man3type/intptr_t.3type: HISTORY: Split types and macros Seth McDonald
2026-01-09 6:40 ` [PATCH v1 04/25] man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [u]intptr_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 05/25] man/man3type/intptr_t.3type: HISTORY: Update first POSIX appearance of [U]INTPTR_MAX and INTPTR_MIN Seth McDonald
2026-01-09 6:40 ` [PATCH v1 06/25] man/man3type/intptr_t.3type: HISTORY: [U]INTPTR_WIDTH is not in POSIX Seth McDonald
2026-01-09 6:40 ` [PATCH v1 07/25] man/man3type/intptr_t.3type: DESCRIPTION: ffix Seth McDonald
2026-01-09 6:40 ` [PATCH v1 08/25] man/man3type/iovec.3type: HISTORY: Update first POSIX appearance of iovec(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 09/25] man/man3type/lconv.3type: HISTORY: Split lconv(3type) and int_[np]_{cs_precedes,sep_by_space,sign_posn} Seth McDonald
2026-01-09 6:40 ` [PATCH v1 10/25] man/man3type/lconv.3type: HISTORY: Update first SUS appearance of lconv(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 11/25] man/man3type/mbstate_t.3type: HISTORY: Update first SUS appearance of mbstate_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 12/25] man/man3type/ptrdiff_t.3type: HISTORY: Update first SUS appearance of ptrdiff_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 13/25] man/man3type/size_t.3type: HISTORY: Update first POSIX appearance of [s]size_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 14/25] man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of time_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 15/25] man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of suseconds_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 16/25] man/man3type/time_t.3type: HISTORY: Update first POSIX appearance of useconds_t(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 17/25] man/man3type/timeval.3type: HISTORY: Update first SUS appearance of timeval(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 18/25] man/man3type/va_list.3type: HISTORY: Update first SUS appearance of va_list(3type) Seth McDonald
2026-01-09 6:40 ` [PATCH v1 19/25] man/man3type/void.3type: HISTORY: Update first POSIX appearance of void(3type) Seth McDonald
2026-01-09 10:33 ` Alejandro Colomar
2026-01-10 7:57 ` Seth McDonald
2026-01-10 11:30 ` Alejandro Colomar
2026-01-10 11:52 ` origin of "void *" (was: " G. Branden Robinson
2026-01-10 12:07 ` Alejandro Colomar
2026-01-10 12:07 ` Alejandro Colomar
2026-01-10 22:32 ` Adam Sampson
2026-01-12 14:28 ` Alejandro Colomar [this message]
2026-01-09 6:40 ` [PATCH v1 20/25] man/man3type/wchar_t.3type: HISTORY: Split wchar_t(3type) and WCHAR_M{AX,IN} Seth McDonald
2026-01-09 6:40 ` [PATCH v1 21/25] man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of wchar_t(3type) Seth McDonald
2026-01-09 10:37 ` Alejandro Colomar
2026-01-10 9:08 ` Seth McDonald
2026-01-10 11:44 ` Alejandro Colomar
2026-01-09 6:40 ` [PATCH v1 22/25] man/man3type/wchar_t.3type: HISTORY: Update first SUS appearance of WCHAR_M{AX,IN} Seth McDonald
2026-01-09 6:40 ` [PATCH v1 23/25] man/man3type/wint_t.3type: HISTORY: Split wint_t(3type) and WEOF from WINT_M{AX,IN} Seth McDonald
2026-01-09 6:40 ` [PATCH v1 24/25] man/man3type/wint_t.3type: HISTORY: Update first SUS appearance of wint_t(3type) and WEOF Seth McDonald
2026-01-09 6:40 ` [PATCH v1 25/25] man/man3type/wint_t.3type: DESCRIPTION: ffix Seth McDonald
2026-01-09 10:39 ` [PATCH v1 00/25] man/man3type/*: Update history of all other types Alejandro Colomar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aWUAXoVyRpanc-sF@devuan \
--to=alx@kernel.org \
--cc=ats@offog.org \
--cc=linux-man@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox