This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

FYI: Manual updates



I've committed the appended patches for pretty printing the manual.
The FSF is planning to print a new version of the manual and Brian
noticed some problems in it.

Andreas

2001-08-28  Andreas Jaeger  <aj@suse.de>

	* manual/libc-texinfo.sh: Add entry about free manuals.

	* manual/contrib.texi (Contributors): Fix cross reference.

	* manual/libc.texinfo (Copying): Include freemanuals.

	* manual/Makefile (appendices): Add freemanuals.

	* manual/freemanuals.texi: New file.
	Patch by Brian Youmans <3diff@gnu.org>.

	* manual/libm-err-tab.pl: Pretty print more platforms, print a
	smaller table.

	* manual/math.texi (Errors in Math Functions): Fix grammar, start
	table on separate page.
	Patch by Brian Youmans <3diff@gnu.org>.

============================================================
Index: manual/libm-err-tab.pl
--- manual/libm-err-tab.pl	2001/07/06 04:55:35	1.3
+++ manual/libm-err-tab.pl	2001/08/28 07:59:58
@@ -52,10 +52,19 @@ use vars qw (%results @all_floats %suffi
 %pplatforms =
   ( "i386/fpu" => "ix86",
     "generic" => "Generic",
-    "alpha" => "Alpha"
+    "alpha/fpu" => "Alpha",
+    "ia64/fpu" => "IA64",
+    "m68k/fpu" => "M68k",
+    "mips/fpu" => "MIPS",
+    "powerpc/fpu" => "PowerPC",
+    "sparc/sparc32/fpu" => "Sparc 32-bit",
+    "sparc/sparc64/fpu" => "Sparc 64-bit",
+    "sh/sh4/fpu" => "SH4",
+    "s390/fpu" => "S/390",
+    "arm" => "ARM"
   );
 
-@all_functions = 
+@all_functions =
   ( "acos", "acosh", "asin", "asinh", "atan", "atanh",
     "atan2", "cabs", "cacos", "cacosh", "carg", "casin", "casinh",
     "catan", "catanh", "cbrt", "ccos", "ccosh", "ceil", "cexp", "cimag",
@@ -79,6 +88,8 @@ if ($#ARGV == 0) {
 
 find (\&find_files, $sources);
 
+@platforms = sort by_platforms @platforms;
+
 &print_all;
 
 sub find_files {
@@ -131,7 +142,7 @@ sub parse_ulps {
       } elsif ($eps eq "0") {
 	# ignore
 	next;
-      } elsif (!exists $results{$test}{$platform}{$type}{$float} 
+      } elsif (!exists $results{$test}{$platform}{$type}{$float}
 	    || $results{$test}{$platform}{$type}{$float} ne 'fail') {
 	$results{$test}{$platform}{$type}{$float} = $eps;
       }
@@ -150,7 +161,7 @@ sub parse_ulps {
 sub get_value {
   my ($fct, $platform, $type, $float) = @_;
 
-  return (exists $results{$fct}{$platform}{$type}{$float} 
+  return (exists $results{$fct}{$platform}{$type}{$float}
 	  ? $results{$fct}{$platform}{$type}{$float} : "0");
 }
 
@@ -163,27 +174,28 @@ sub canonicalize_platform {
   return exists $pplatforms{$platform} ? $pplatforms{$platform} : $platform;
 }
 
-sub print_all {
-  my ($fct, $platform, $float, $first, $i);
+sub print_platforms {
+  my (@p) = @_;
+  my ($fct, $platform, $float, $first, $i, $platform_no, $platform_total);
 
   print '@multitable {nexttowardf} ';
-  foreach (@platforms) {
+  foreach (@p) {
     print ' {1000 + i 1000}';
   }
   print "\n";
 
   print '@item Function ';
-  foreach (@platforms) {
+  foreach (@p) {
     print ' @tab ';
     print &canonicalize_platform ($_);
   }
   print "\n";
 
-  
+
   foreach $fct (@all_functions) {
     foreach $float (@all_floats) {
       print "\@item $fct$suffices{$float} ";
-      foreach $platform (@platforms) {
+      foreach $platform (@p) {
 	print ' @tab ';
 	if (exists $results{$fct}{$platform}{'normal'}{$float}
 	    || exists $results{$fct}{$platform}{'real'}{$float}
@@ -203,4 +215,25 @@ sub print_all {
   }
 
   print "\@end multitable\n";
+}
+
+sub print_all {
+  my ($i, $max);
+
+  my ($columns) = 5;
+
+  # Print only 5 platforms at a time.
+  for ($i=0; $i < $#platforms; $i+=$columns) {
+    $max = $i+$columns-1 > $#platforms ? $#platforms : $i+$columns-1;
+    print_platforms (@platforms[$i .. $max]);
+  }
+}
+
+sub by_platforms {
+  my ($pa, $pb);
+
+  $pa = $pplatforms{$a} ? $pplatforms{$a} : $a;
+  $pb = $pplatforms{$b} ? $pplatforms{$b} : $b;
+  
+  return $pa cmp $pb;
 }
============================================================
Index: manual/math.texi
--- manual/math.texi	2001/04/09 08:02:16	1.66
+++ manual/math.texi	2001/08/28 07:59:59
@@ -1230,12 +1230,12 @@ floating-point number representation.  I
 functions is always less than 0.5ulps.  Using rounding bits this is also
 possible and normally implemented for the basic operations.  To achieve
 the same for the complex math functions requires a lot more work and
-this was not spend so far.
+this has not yet been done.
 
 Therefore many of the functions in the math library have errors.  The
 table lists the maximum error for each function which is exposed by one
-of the existing tests in the test suite.  It is tried to cover as much
-as possible and really list the maximum error (or at least a ballpark
+of the existing tests in the test suite.  The table tries to cover as much
+as possible and list the actual maximum error (or at least a ballpark
 figure) but this is often not achieved due to the large search space.
 
 The table lists the ULP values for different architectures.  Different
@@ -1243,6 +1243,8 @@ architectures have different results sin
 floating-point operations varies and also the existing hardware support
 is different.
 
+@page
+@c This multitable does not fit on a single page
 @include libm-err.texi
 
 @node Pseudo-Random Numbers
============================================================
Index: manual/libc.texinfo
--- manual/libc.texinfo	2001/07/06 09:21:18	1.89
+++ manual/libc.texinfo	2001/08/28 07:59:59
@@ -33,11 +33,13 @@ Copyright (C) 1993, 1994, 1995, 1996, 19
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with the
-Invariant Sections being "GNU Lesser General Public License", the
-Front-Cover texts being (a) (see below), and with the Back-Cover Texts
-being (b) (see below).  A copy of the license is included in the section
-entitled "GNU Free Documentation License".
+Invariant Sections being "Free Software Needs Free Documentation" and
+"GNU Lesser General Public License", the Front-Cover texts being (a)
+(see below), and with the Back-Cover Texts being (b) (see below).  A
+copy of the license is included in the section entitled "GNU Free
+Documentation License".
 
+
 (a) The FSF's Front-Cover Text is:
 
      A GNU Manual
@@ -78,10 +80,11 @@ ISBN @value{ISBN} @*
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.1 or
 any later version published by the Free Software Foundation; with the
-Invariant Sections being "GNU Lesser General Public License", the
-Front-Cover texts being (a) (see below), and with the Back-Cover Texts
-being (b) (see below).  A copy of the license is included in the section
-entitled "GNU Free Documentation License".
+Invariant Sections being "Free Software Needs Free Documentation" and
+"GNU Lesser General Public License", the Front-Cover texts being (a)
+(see below), and with the Back-Cover Texts being (b) (see below).  A
+copy of the license is included in the section entitled "GNU Free
+Documentation License".
 
 (a) The FSF's Front-Cover Text is:
 
@@ -110,8 +113,11 @@ of the GNU C Library.
 @include top-menu.texi
 @include chapters.texi
 
+@node Free Manuals, Copying, Contributors, Top
+@include freemanuals.texi
+
 @set lgpl-appendix
-@node Copying, Documentation License, Contributors, Top
+@node Copying, Documentation License, Free Manuals, Top
 @include lesser.texi
 
 @node Documentation License, Concept Index, Copying, Top
============================================================
Index: manual/libc-texinfo.sh
--- manual/libc-texinfo.sh	2001/07/06 09:21:19	1.6
+++ manual/libc-texinfo.sh	2001/08/28 07:59:59
@@ -68,6 +68,7 @@ mv -f incl.$$ chapters.texi
   !/^\*/ { print; }
  ' smenu.$$
  cat <<EOF
+* Free Manuals::		 Free Software Needs Free Documentation.
 * Copying::                      The GNU Lesser General Public License says
                                   how you can copy and share the GNU C Library.
 * Documentation License::        This manual is under the GNU Free
============================================================
Index: manual/contrib.texi
--- manual/contrib.texi	1999/08/27 19:06:14	1.4
+++ manual/contrib.texi	2001/08/28 07:59:59
@@ -1,10 +1,10 @@
-@node Contributors, Copying, Maintenance, Top
+@node Contributors, Free Manuals, Maintenance, Top
 @c %MENU% Who wrote what parts of the GNU C library
 @appendix Contributors to the GNU C Library
 
============================================================
Index: manual/Makefile
--- manual/Makefile	2001/07/19 07:21:42	1.102
+++ manual/Makefile	2001/08/28 07:59:59
@@ -58,7 +58,8 @@ chapters = $(addsuffix .texi, \
 		       resource setjmp signal startup process job nss	\
 		       users sysinfo conf crypt debug)
 add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi))
-appendices = lang.texi header.texi install.texi maint.texi contrib.texi
+appendices = lang.texi header.texi install.texi maint.texi contrib.texi \
+	     freemanuals.texi
 
 -include texis
 texis: texis.awk $(chapters) $(add-chapters) $(appendices) lesser.texi fdl.texi
============================================================
Index: manual/freemanuals.texi
--- manual/freemanuals.texi	created
+++ manual/freemanuals.texi	Tue Aug 28 09:49:52 2001	1.1
@@ -0,0 +1,90 @@
+@appendix Free Software Needs Free Documentation
+@cindex free documentation
+
+The biggest deficiency in the free software community today is not in
+the software---it is the lack of good free documentation that we can
+include with the free software.  Many of our most important
+programs do not come with free reference manuals and free introductory
+texts.  Documentation is an essential part of any software package;
+when an important free software package does not come with a free
+manual and a free tutorial, that is a major gap.  We have many such
+gaps today.
+
+Consider Perl, for instance.  The tutorial manuals that people
+normally use are non-free.  How did this come about?  Because the
+authors of those manuals published them with restrictive terms---no
+copying, no modification, source files not available---which exclude
+them from the free software world.
+
+That wasn't the first time this sort of thing happened, and it was far
+from the last.  Many times we have heard a GNU user eagerly describe a
+manual that he is writing, his intended contribution to the community,
+only to learn that he had ruined everything by signing a publication
+contract to make it non-free.
+
+Free documentation, like free software, is a matter of freedom, not
+price.  The problem with the non-free manual is not that publishers
+charge a price for printed copies---that in itself is fine.  (The Free
+Software Foundation sells printed copies of manuals, too.)  The
+problem is the restrictions on the use of the manual.  Free manuals
+are available in source code form, and give you permission to copy and
+modify.  Non-free manuals do not allow this.
+
+The criteria of freedom for a free manual are roughly the same as for
+free software.  Redistribution (including the normal kinds of
+commercial redistribution) must be permitted, so that the manual can
+accompany every copy of the program, both on-line and on paper.
+
+Permission for modification of the technical content is crucial too.
+When people modify the software, adding or changing features, if they
+are conscientious they will change the manual too---so they can
+provide accurate and clear documentation for the modified program.  A
+manual that leaves you no choice but to write a new manual to document
+a changed version of the program is not really available to our
+community.
+
+Some kinds of limits on the way modification is handled are
+acceptable.  For example, requirements to preserve the original
+author's copyright notice, the distribution terms, or the list of
+authors, are ok.  It is also no problem to require modified versions
+to include notice that they were modified.  Even entire sections that
+may not be deleted or changed are acceptable, as long as they deal
+with nontechnical topics (like this one).  These kinds of restrictions
+are acceptable because they don't obstruct the community's normal use
+of the manual.
+
+However, it must be possible to modify all the @emph{technical}
+content of the manual, and then distribute the result in all the usual
+media, through all the usual channels.  Otherwise, the restrictions
+obstruct the use of the manual, it is not free, and we need another
+manual to replace it.
+
+Please spread the word about this issue.  Our community continues to
+lose manuals to proprietary publishing.  If we spread the word that
+free software needs free reference manuals and free tutorials, perhaps
+the next person who wants to contribute by writing documentation will
+realize, before it is too late, that only free manuals contribute to
+the free software community.
+
+If you are writing documentation, please insist on publishing it under
+the GNU Free Documentation License or another free documentation
+license.  Remember that this decision requires your approval---you
+don't have to let the publisher decide.  Some commercial publishers
+will use a free license if you insist, but they will not propose the
+option; it is up to you to raise the issue and say firmly that this is
+what you want.  If the publisher you are dealing with refuses, please
+try other publishers.  If you're not sure whether a proposed license
+is free, write to @email{licensing@@gnu.org}.
+
+You can encourage commercial publishers to sell more free, copylefted
+manuals and tutorials by buying them, and particularly by buying
+copies from the publishers that paid for their writing or for major
+improvements.  Meanwhile, try to avoid buying non-free documentation
+at all.  Check the distribution terms of a manual before you buy it,
+and insist that whoever seeks your business must respect your freedom.
+Check the history of the book, and try reward the publishers that have
+paid or pay the authors to work on it.
+
+The Free Software Foundation maintains a list of free documentation
+published by other publishers, at
+@url{http://www.fsf.org/doc/other-free-books.html}.


-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]