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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.