From: Adam Sampson <ats@offog.org>
To: Alejandro Colomar <alx@kernel.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: Sat, 10 Jan 2026 22:32:30 +0000 [thread overview]
Message-ID: <y2abjj1cd4x.fsf@offog.org> (raw)
In-Reply-To: <aWDZFvDvb-hAXQMJ@devuan> (Alejandro Colomar's message of "Fri, 9 Jan 2026 11:33:58 +0100")
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".
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,
--
Adam Sampson <ats@offog.org> <http://offog.org/>
next prev parent reply other threads:[~2026-01-10 22:32 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 [this message]
2026-01-12 14:28 ` Alejandro Colomar
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=y2abjj1cd4x.fsf@offog.org \
--to=ats@offog.org \
--cc=alx@kernel.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