summaryrefslogtreecommitdiff
path: root/ANNOUNCE
diff options
context:
space:
mode:
authorrpj <rpj>2002-02-08 05:22:25 +0000
committerrpj <rpj>2002-02-08 05:22:25 +0000
commitf7654591c53819570bcf364dabc8f997304cb098 (patch)
tree29ec9d153d2edfcf696e4fe3064b70ab4dea6329 /ANNOUNCE
parentb29903300adc22ed277bbaa356aca8ed0c245957 (diff)
Update.
Diffstat (limited to 'ANNOUNCE')
-rw-r--r--ANNOUNCE32
1 files changed, 30 insertions, 2 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index feeda29..6141400 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -120,13 +120,41 @@ There are a few reasons:
wants it, once it's removed from the current version it will not be
nearly as visible to people who may have a use for it.
+Source module splitting
+-----------------------
+In order to enable smaller image sizes to be generated
+for applications that link statically with the library,
+most routines have been separated out into individual
+source code files.
+
+This is being done in such a way as to be backward compatible.
+The old source files are reused to congregate the individual
+routine files into larger translation units (via a bunch of
+# includes) so that the compiler can still optimise wherever
+possible, e.g. through inlining, which can only be done
+within the same translation unit.
+
+It is also possible to build the entire library by compiling
+the single file named "pthread.c", which just #includes all
+the secondary congregation source files. The compiler
+may be able to use this to do more inlining of routines.
+
+Although the GNU compiler is able to produce libraries with
+the necessary separation (the -ffunction-segments switch),
+AFAIK, the MSVC and other compilers don't have this feature.
+
+Finally, since I use makefiles and command-line compilation,
+I don't know what havoc this reorganisation may wreak amongst
+IDE project file users. You should be able to continue
+using your existing project files without modification.
+
New non-portable function
-------------------------
pthread_num_processors_np(): Returns the number of processors
in the system that are available to the process, as determined
from the processor affinity mask.
-platform dependence
+Platform dependence
-------------------
As Win95 doesn't provide one, the library now contains
it's own InterlockedCompareExchange() routine, which is used
@@ -139,7 +167,7 @@ processor platforms.
New routines
------------
-For source code portability only, rwlocks cannot be process shared yet.
+For source code portability only - rwlocks cannot be process shared yet.
pthread_rwlockattr_init()
pthread_rwlockattr_destroy()
pthread_rwlockattr_setpshared()