on project management

Paul Eggert eggert@cs.ucla.edu
Tue Aug 11 16:42:17 GMT 2026


On 2026-08-11 05:49, Robert Elz wrote:
> I replied to Paul with more details, I saw the reply got to UCLA
> mail servers, but whether he received it, or it was treated as
> spam, I have no idea.
I got it. Thanks for the trip down memory lane. The amusing thing to me is how 7th Edition Unix got by without a single mem*-style function. When 7th Edition code wanted to (say) copy a block of memory it did so by hand, byte by byte.

Here are you sent me in your email dated Tue, 11 Aug 2026 03:56:27 +0700:
>     Date:        Mon, 10 Aug 2026 10:29:12 -0700
>     From:        Paul Eggert <eggert@cs.ucla.edu>
>     Message-ID:  <671ce30e-77ab-41db-afa3-28c53de65836@cs.ucla.edu>
> 
>   | In an email today[1], Ingo Schwarze mentioned your contribution to
>   | what became 4.3BSD,
> 
> There was some of that yes, starting around 3BSD, but:
> 
>   | a contribution that introduced <memory.h>.
> 
> I have no memory of anything related to that, and it sounds kind
> of unlikely  -- but that is all so long ago.   When I look in
> the sccs logs of memchr.c I see:
> 
> D 5.5   90/05/15 14:07:06 bostic        5 4     00022/00020/00011
> ANSI C version from Chris Torek
> 
> D 5.4   88/06/27 18:25:34 bostic        4 3     00010/00005/00021
> install approved copyright notice
> 
> D 5.3   88/05/25 14:23:52 bostic        3 2     00010/00008/00016
> written by Robert Elz; add Berkeley specific header
> 
> D 5.2   86/03/09 19:33:58 donn  2 1     00001/00001/00023
> added LIBC_SCCS condition for sccs ids
> 
> D 5.1   85/08/05 21:43:13 kre   1 0     00024/00000/00000
> date and time created 85/08/05 21:43:13 by kre
> 
> so I guess I probably did have something to do with some of it.
> 
> The comment at the top (after the copyright nonsense) says:
> 
> /*
>  * Sys5 compat routine
>  */
> 
> It included no header files.
> 
> But there was a <memory.h> created at about the same time:
> 
> D 5.4   90/05/15 19:43:57 bostic        4 3     00001/00001/00019
> string.h is ANSI C include file
> 
> D 5.3   90/02/12 12:20:39 bostic        3 2     00001/00005/00019
> might as well only have one copy.
> 
> D 5.2   88/08/12 14:13:46 bostic        2 1     00020/00013/00004
> correct list from manual page
> 
> D 5.1   85/08/05 21:21:49 kre   1 0     00017/00000/00000
> date and time created 85/08/05 21:21:49 by kre
> 
> The 5.3 change altered it to just be #include <strings.h> and then
> the 5.4 change made that <string.h>
> 
> (In both cases there were later revisions than shown here, but they're
> mostly just updates for 4.4 type stuff, different copyright/licence, etc,
> rather than anything substantive).
> 
>   | Ingo writes that the code's comment "appears to claim that <memory.h>
>   | along with these five functions [memccpy, memcmp, memcpy, memchr, memset]
>   | came from AT&T System V UNIX,
> 
> "came from" in the sense that SysV created those functions, and then
> CSRG (me it seems) made BSD implementations - they are all trivial.
> 
> 85 was probably the year I spent 3 months working at CSRG (I certainly
> remember there was such a 3 month period - I also remember never bothering
> to fill in a California Tax return, and recover the (about) $10 refund I
> would have had coming...   But I no longer actually remember which year that
> was.)
> 
>   | almost half a decade before ANSI C 89 standardized them to
>   | live in <string.h>."
> 
> Certainly could be - whether SysV used <memory.h> or whether that was an
> invention, I have no idea.
> 
> The comment at the head of that one just says:
> 
> /*
>  * Definitions of the Sys5 compat memory manipulation routines
>  */
> 
> No indication if SysV used the same file name or not.  If I had
> to guess, I'd suspect possibly so, as I doubt I would have called
> it "memory.h" had I been inventing its name - so that probably came
> from wherever the specs for the functions came from.
> ,,,
> I didn't check the other 4 functions, but if I wrote the initial version
> of memchr() for BSD, it seems likely I wrote the others as well, but the
> version distributed seems likely to have been Chris Torek's rewrite.
> My version had K&R C style function definitions.


More information about the Libc-alpha mailing list