X-Git-Url: https://pd.if.org/git/?p=pdclib.old;a=blobdiff_plain;f=Readme.rst;h=fce23ea414e1b76404c6789ffee7b76ce0ffa3c4;hp=b1143a950da8f82c3115932026df3db23cbab7e5;hb=2d43dbb1c70aee6c3474c254c0a2302ef39c0c7a;hpb=06c5dd05591191441da53f1e69c834b94cf9e0c2 diff --git a/Readme.rst b/Readme.rst index b1143a9..fce23ea 100644 --- a/Readme.rst +++ b/Readme.rst @@ -1,8 +1,9 @@ -PDCLib - the `Public Domain C Library`_ -================================ +============================================================== +PDCLib - the `Public Domain C Library `_ +============================================================== What is it ----------- +========== This is a C Standard Library - what's defined in ISO/IEC 9899 "Information technology — Programming languages — C" or extensions to the above defined in @@ -10,10 +11,11 @@ ISO/IEC 14882 "Information technology — Programming languages — C++". A few extensions may optionally be provided. License -------- +======= -Written in 2003-2012 by Martin "Solar" Baute, - 2012- by Owen Shepherd +Written in + * 2003-2012 by Martin "Solar" Baute, + * 2012- by Owen Shepherd To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain @@ -22,18 +24,33 @@ worldwide. This software is distributed without any warranty. You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see . - **Exception:** Portions of the test suite are under different licenses. - Where this is the case, it is clearly noted in the relevant location. +Exceptions +---------- + +Unicode Character Data +~~~~~~~~~~~~~~~~~~~~~~ +PDCLib necessarily includes Unicode character data derived from that provided by +Unicode, Inc in its' implementation of the localization and wide character +support (in particular for use by the ctype.h and wctype.h functions.) - The license of this code has no bearing upon the licensing of the built - library (as it does not comprise part of it). +Unicode, Inc licenses that data under a license agreement which can be found at +, or in the file +UNICODE_DATA_LICENSE.txt. found in the same directory as this file. - At the time this was written, this exception only applies to portions of the - printf test suite, which are released under the terms of the 2-clause BSD - license (see testing/printf_testcases.h for full details) +Test Suite +~~~~~~~~~~ +Portions of the test suite are under different licenses. Where this is the case, +it is clearly noted in the relevant location. + +The license of this code has no bearing upon the licensing of the built library +(as it does not comprise part of it). + +At the time this was written, this exception only applies to portions of the +printf test suite, which are released under the terms of the 2-clause BSD +license (see testing/printf_testcases.h for full details) Terms for extensions --------------------- +==================== Extensions are permitted only if they pass the following tests: Pre-existing wide usage @@ -94,7 +111,7 @@ flockfile, funlockfile, getc_unlocked, putc_unlocked, fwrite_unlocked, ... the existing I/O functions, and impossible to implement externally Internals ---------- +========= As a namespace convention, everything (files, typedefs, functions, macros) not defined in ISO/IEC 9899 is prefixed with _PDCLIB. @@ -144,7 +161,7 @@ of PDCLib (or link them into the appropriate places). That should be all that is actually required to make PDCLib work for your platform. Future directions ------------------ +================= Obviously, full C89, C99 and C11 conformance; and full support for the applicable portions of C++98, C++03 and C++11 (the version which acomplishes this will be christened "1.0"). @@ -157,51 +174,52 @@ version of a given function. Post 1.0, support for C11 Annexe K "Bounds checking interfaces" Development Status ------------------- - -v0.1 - 2004-12-12 -Freestanding-only C99 implementation without any overlay, and missing -the INTN_C() / UINTN_C() macros. still has the enquire.c -values hardcoded into it; not sure whether to include enquire.c in the -package, to leave to the overlay, or devise some parameterized -macro magic as for / . Not thoroughly tested, but -I had to make the 0.1 release sometime so why not now. - -v0.2 - 2005-01-12 -Adds implementations for (excluding strerror()), INTN_C() / -UINTN_C() macros, and some improvements in the internal headers. -Test drivers still missing, but added warnings about that. - -v0.3 - 2005-11-21 -Adds test drivers, fixes some bugs in . - -v0.4 - 2005-02-06 -Implementations for parts of . Still missing are the floating -point conversions, and the wide-/multibyte-character functions. - -v0.4.1 - 2006-11-16 -With v0.5 () taking longer than expected, v0.4.1 was set up as -a backport of bugfixes in the current development code. -- #1 realloc( NULL, size ) fails (fixed) -- #2 stdlib.h - insufficient documentation (fixed) -- #4 Misspelled name in credits (fixed) -- #5 malloc() splits off too-small nodes (fixed) -- #6 qsort() stack overflow (fixed) -- #7 malloc() bug in list handling (fixed) -- #8 strncmp() does not terminate at '\0' (fixed) -- #9 stdint.h dysfunctional (fixed) -- #10 NULL redefinition warnings (fixed) - -v0.5 - 2010-12-22 -Implementations for , , most parts of , -and strerror() from . -Still no locale / wide-char support. Enabled all GCC compiler warnings I -could find, and fixed everything that threw a warning. (You see this, -maintainers of Open Source software? No warnings whatsoever. Stop telling -me it cannot be done.) Fixed all known bugs in the v0.4 release. +================== + +``v0.1 - 2004-12-12`` + Freestanding-only C99 implementation without any overlay, and missing + the INTN_C() / UINTN_C() macros. still has the enquire.c + values hardcoded into it; not sure whether to include enquire.c in the + package, to leave to the overlay, or devise some parameterized + macro magic as for / . Not thoroughly tested, but + I had to make the 0.1 release sometime so why not now. + +``v0.2 - 2005-01-12`` + Adds implementations for (excluding strerror()), INTN_C() / + UINTN_C() macros, and some improvements in the internal headers. + Test drivers still missing, but added warnings about that. + +``v0.3 - 2005-11-21`` + Adds test drivers, fixes some bugs in . + +``v0.4 - 2005-02-06`` + Implementations for parts of . Still missing are the floating + point conversions, and the wide-/multibyte-character functions. + +``v0.4.1 - 2006-11-16`` + With v0.5 () taking longer than expected, v0.4.1 was set up as + a backport of bugfixes in the current development code. + + - #1 realloc( NULL, size ) fails + - #2 stdlib.h - insufficient documentation + - #4 Misspelled name in credits + - #5 malloc() splits off too-small nodes + - #6 qsort() stack overflow + - #7 malloc() bug in list handling + - #8 strncmp() does not terminate at '\0' + - #9 stdint.h dysfunctional + - #10 NULL redefinition warnings + +``v0.5 - 2010-12-22`` + Implementations for , , most parts of , + and strerror() from . + Still no locale / wide-char support. Enabled all GCC compiler warnings I + could find, and fixed everything that threw a warning. (You see this, + maintainers of Open Source software? No warnings whatsoever. Stop telling + me it cannot be done.) Fixed all known bugs in the v0.4 release. Near Future ------------ +=========== Current development directions are: Implement portions of the C11 standard that have a direct impact on the way @@ -210,10 +228,6 @@ PDCLib needs a threading abstraction; therefore, C11's thread library is being implemented to provide the backing for this (as there is no purpose in implementing two abstractions) -Cleanup portions of , particularly the backend. _PDCLIB_fillbuffer and -_PDCLIB_flushbuffer in particular do not feel 'well' factored and need to know -too much about FILE's internals. - Modularize the library somewhat. This can already be seen with components under "opt/". This structure is preliminary; it will likely change as the process continues. \ No newline at end of file