]> Savannah Git Hosting - gnulib.git/commitdiff
doc: Add appendix about Gnulib history.
authorBruno Haible <bruno@clisp.org>
Thu, 2 May 2024 18:10:14 +0000 (20:10 +0200)
committerBruno Haible <bruno@clisp.org>
Thu, 2 May 2024 18:10:14 +0000 (20:10 +0200)
* doc/gnulib-history.texi: New file.
* doc/gnulib.texi: Include it.

ChangeLog
doc/gnulib-history.texi [new file with mode: 0644]
doc/gnulib.texi

index 22578578471174b33c90ab89fd46b0042b1b818d..8192b43aa76a08bc4d9cc6888d990f6edde7de35 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-05-02  Bruno Haible  <bruno@clisp.org>
+
+       doc: Add appendix about Gnulib history.
+       * doc/gnulib-history.texi: New file.
+       * doc/gnulib.texi: Include it.
+
 2024-05-02  Collin Funk  <collin.funk1@gmail.com>
 
        gnulib-tool.py: Don't leave temporary directories on exit.
diff --git a/doc/gnulib-history.texi b/doc/gnulib-history.texi
new file mode 100644 (file)
index 0000000..ed8e0ac
--- /dev/null
@@ -0,0 +1,64 @@
+@c Gnulib history
+
+@c Copyright 2024 Free Software Foundation, Inc.
+
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3 or
+@c any later version published by the Free Software Foundation; with no
+@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.  A
+@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+
+In the beginning, Richard Stallman maintained the regular expression engine
+of GNU and made it available to other GNU packages, such as
+@code{sed}, @code{awk}, @code{grep}, so that they could use the same engine.
+Recall that there was no GNU C library at the time.
+
+A couple of years later, Jim Meyering, who was maintaining
+the shell utilities, the file utilities, and the text processing utilities,
+collected the common parts of these three packages in the same repository.
+Paul Eggert joined in, with code coming from a few GNU packages that he
+maintained,
+and so did Bruno Haible, with reusable code from the GNU gettext package.
+
+As they cared for portability, many changes in the C code were accompanied
+by changes in the build infrastructure.
+Copying these changes into packages --- it was all done manually --- became
+cumbersome.  So they wrote a program, called @samp{gnulib-tool}, that does
+this job of copying the requested shared code into a particular package.
+This was in 2002.
+
+Providing a substitute / override for a system function was relatively easy.
+Providing a substitute / override for a system header file was significantly
+harder, but was done successively:
+for @code{stdint.h} in 2004,
+for @code{stdarg.h}, @code{sys/socket.h}, @code{sys/stat.h} in 2006,
+for @code{sys/time.h}, @code{wchar.h} in 2007,
+and the development of the corresponding idioms took until 2010.
+
+Unicode string modules (that make up GNU libunistring) were added in 2007--2009.
+
+Modules for numeric functions (@code{<math.h>}) were added in 2010--2011.
+
+Modules for container data structures were added between 2006 and 2018.
+
+Versatile bit-set modules were added in 2018.
+
+POSIX threads on non-POSIX platforms, as well as ISO C threads on all
+platforms, were added in 2019.
+
+The @code{posix_spawn} facility was brought to completion on native Windows
+in 2022, providing the world's first @code{posix_spawn} implementation for
+this platform.
+
+Support for Android was added in 2023 and immediately used by GNU Emacs
+for Android.
+
+Functions for working with Unicode characters in multibyte representation,
+based on @code{mbrtoc32}, were added in 2023.
+
+Modules for manipulating the floating-point environment (@code{fenv.h}) were
+added in 2023.
+
+The @samp{gnulib-tool} rewrite in Python, that was started by Dmitry Selyutin
+in 2012 but lay unfinished for many years, was completed by Collin Funk and
+Bruno Haible in 2024.
index aa0eb57f62a2e6be0b6e54ff3480d9cf26003008..55cf6ebcc9dbcc5cf4ba06d998464db98b32b59f 100644 (file)
@@ -89,6 +89,7 @@ Documentation License''.
 * Build Infrastructure Files::      Non-modules files for the build system.
 * Release Management Files::        Non-modules files for preparing releases.
 * GNU Free Documentation License::  Copying and sharing this manual.
+* Gnulib history::
 * Index::
 @end menu
 
@@ -7364,6 +7365,12 @@ This is a helper program that mimics the @code{ncftpput} program used by
 @include fdl-1.3.texi
 
 
+@node Gnulib history
+@appendix Gnulib history
+
+@include gnulib-history.texi
+
+
 @node Index
 @unnumbered Index