[comp.std.c] Plauger's Standard C Library Source

rex@aussie.COM (Rex Jaeschke) (03/09/91)

In a recent posting reply I mentioned in passing that PJ Plauger was going
to make available source to a complete Standard C library.  Here's the
details I promised to post when I found them out.


	The name of the book is ``The Standard C
	Library.'' It will be published by Prentice-Hall
	about midyear/ the book selling for ca.  $27.  It
	contains about 9,000 lines of (dense) C code,
	covering essentially the entire Standard C
	library.  (I wave my arms over things like setjmp
	and longjmp.)

	R&D Publications (The C Users Journal, The C
	Users Group, Tech Specialist) in Lawrence KS will
	sell the machine-readable for ca.  $50.  It is
	NOT public-domain code, nor is it shareware, nor
	is it protected by ``copyleft.'' I retain the
	copyright.  Nevertheless, I permit anybody to
	muck with the source code on a single machine at
	a time.  You can also compile and bind library
	code into executables, then distribute copies of
	the executables with no additional royalty.

	If you want to distribute copies of unbound
	binaries of the library, however, or of the
	source code, you have to pay for a license.  Plum
	Hall Inc.  of Cardiff NJ will handle licensing
	and support.  We are hammering out terms right
	now.  My goal is to make the library cheap enough
	that even vendors who have Standard C compliant
	libraries will be encouraged to buy ``mineral
	rights.'' They can pick and choose any functions
	that might supplement what they already have.

	The code includes VERY flexible support for
	multibyte and wide characters.  You actually
	program finite-state machines to recognize and
	translate a broad class of character codes.  The
	library also includes fairly ambitious support
	for locales.  You can write text files fairly
	easily that specify all sorts of locale-specific
	information.  Function setlocale can read a
	locale file at runtime to set part or all of the
	locale you specify.

	The math library is also pretty good.  My goal is to have no
	math function lose more than two bits of precision for any
	argument.  I'm close, but not quite there yet.  I provide
	primitives that adapt easily to IEEE 2/4/8-byte floating-point
	and VAX/PDP-11 as well.  If you want something dramatically
	different, you'll have to work over half a dozen semi-numerical
	primitives.

Rex

----------------------------------------------------------------------------
Rex Jaeschke     |  Journal of C Language Translation  | C Users Journal
(703) 860-0091   |        2051 Swans Neck Way          | DEC PROFESSIONAL
rex@aussie.COM   |     Reston, Virginia 22091, USA     | Programmers Journal
----------------------------------------------------------------------------
Convener of the Numerical C Extensions Group (NCEG)
X3J11 member and US International Representative to ISO C (WG14)
----------------------------------------------------------------------------