X-Git-Url: https://pd.if.org/git/?p=pdclib.old;a=blobdiff_plain;f=Notes.txt;h=09b0b1bb05dbba2cf86a71aed880c0764cd61fdc;hp=2e242786c02b63a7620b1f51b8f45ba55d44c2de;hb=2d43dbb1c70aee6c3474c254c0a2302ef39c0c7a;hpb=a3103c5d2dadb38c631ff4531925ad642e8a232f diff --git a/Notes.txt b/Notes.txt index 2e24278..09b0b1b 100644 --- a/Notes.txt +++ b/Notes.txt @@ -1,3 +1,5 @@ +$Id$ + Credits ======= @@ -19,25 +21,35 @@ would not have been able to create PDCLib at this quality, thanks. Paul Bourke (author of mathlib), for allowing me access to a complete math library under public domain terms so I could use it as a reference, thanks. -Peter ("Candy") Bindels (netizen of mega-tokyo.com), who located a copy of Cody +Peter ("Candy") Bindels (netizen of osdev.org), who located a copy of Cody & Waite's "Software Manual for the Elementary Functions" for me and saved me serious cash in the process, thanks. -Michael Moody, who contributed the generic implementation for which -can now be found in <_PDCLIB_config.h> to the Public Domain, thanks. +Michael Moody, who contributed the generic implementation for to +the Public Domain which can now be found in <_PDCLIB_config.h>, thanks. -Rob Pendelton, for pointing out several flaws in early versions of PDCLib and +Rod Pemberton, for pointing out several flaws in early versions of PDCLib and giving other valuable hints, thanks. +Brian Damgaard, for a very friendly exchange over the fine details of the +Quicksort algorithm and its implementation in PDCLib, thanks. + +Rink Springer, for very precise bug reports including patches, and a heads-up +on the capabilities of PDCLib when I most needed it, thanks. + Everyone involved in the first, "public" attempt at PDCLib, for bearing with me when I restarted from scratch, thanks. -Lennart Fridén and Sammy Nordström, who have been great pals even after I sunk -another project that had eaten countless hours of work between the three of us, -thanks. +Everyone bearing with me during the "stdio block", a period of many years in +which PDCLib received not a single update because I was stuck and could not +find the time and energy to work it out. -My wife and daughter, for sharing husband and daddy with this strange machine, -thanks. +Lennart Frid�n and Sammy Nordstr�m, who have been great pals even after I sunk +some other project that had eaten countless hours of work between the three of +us, thanks. + +My wife, daughter, and son for sharing husband and daddy with this strange +machine, thanks. Style @@ -47,39 +59,40 @@ I followed a set of guidelines in creating PDCLib. If you find some piece that does not adhere to them, that's a bug worth reporting. I mean it. I am a bit obsessive when it comes to coding style. ;-) -- all the stuff that is not part of the standard specification is "hidden" in +- All the stuff that is not part of the standard specification is "hidden" in the _PDCLIB_* namespace - functions, variables, macros, files, directories. This is to make it easier to distinguish between what the standard dictates and what I added to make PDCLib work. -- any internal includes (i.e. those not specified by the standard) have their - header guards defined in the *including* file, for a tiny bit of performance. +- Any internal includes (i.e. those not specified by the standard) have their + header guards defined in the *including* file, for a tiny bit of compile-time + performance. - I always try to minimize the use of local variables. Wherever possible I used - the parameters directly, and deferred declaration of locals to the innermost - block of statements, in hopes that it might reduce memory footprint when the - library is compiled with a compiler that is not that great at optimization. + parameters passed by-value directly, and deferred declaration of locals to the + innermost block of statements, in hopes that it might reduce memory footprint + when the library is compiled with a compiler that is not that great at + optimization. -- every function, every static data item that could possibly be shared, got its +- Every function, every static data item that could possibly be shared, got its own implementation file. This means the library itself is probably larger than strictly necessary, and might take a couple of clock cycles longer to link, - but it reduces size of fully-linked object files / executables. + but it reduces size of object files and executables. -- where possible, I tried to share functionality between similar functions (as +- Where possible, I tried to share functionality between similar functions (as can be seen in the atoi() and strtol() function families). This means one or two additional function calls, but again reduces memory footprint and eases maintenance of the library. -- standard function arguments are named exactly as in the standard document. +- Function arguments are named exactly as in the standard document. -- the standard is taken quite literally in places. For example, memcpy() really - copies char-wise. This runs contrary to earlier claims of performance, but is - consistent with the *letter* of the standard, and you will probably use your - compiler builtins (through a platform overlay) anyhow. +- The standard is taken quite literally in places. For example, the default + implementations of memcpy() really copies char-wise. This runs contrary to + earlier claims of performance, but is consistent with the *letter* of the + standard, and you will probably use your compiler builtins (through a platform + overlay) anyhow. -- every file (except the top-level *.txt files) has an Id and a Name tag, so - that the CVS Id string is on file for *every* code file, and the release tag - is on file for every code file in a release package. +- Every file has an Id tag, so that it is on file for *every* code file. - PDCLib code has no bias towards POSIX; indeed the absence of POSIX tidbits is one of its hallmarks. However, PDCLib also has no bias *against* POSIX, and @@ -87,7 +100,7 @@ obsessive when it comes to coding style. ;-) sheer familiarity. (This is mainly referring to naming and parameter lists of OS "glue" functions.) -- identifiers are tersely named, but not cryptically abbreviated, and should be +- Identifiers are tersely named, but not cryptically abbreviated, and should be intuitive enough to allow easy understanding of PDCLib inner workings. - I disagree with the notion that good code needs no comments. Code tells you @@ -96,3 +109,4 @@ obsessive when it comes to coding style. ;-) hopefully keeping overly ambitious editors from repeating my mistakes. The header files especially should be self-documenting to the point of being a suitable replacement for any library reference book you might be using. +