GNU Pth - The GNU Portable Threads
Copyright (c) 1999-2005 Ralf S. Engelschall <rse@gnu.org>
Pth is a very portable POSIX/ANSI-C based library for Unix platforms
which provides non-preemptive priority-based scheduling for multiple
threads of execution (aka ``multithreading'') inside event-driven
applications. All threads run in the same address space of the server
application, but each thread has it's own individual program-counter,
run-time stack, signal mask and errno variable.
The thread scheduling itself is done in a cooperative way, i.e., the
threads are managed by a priority- and event-based non-preemptive
scheduler. The intention is that this way one can achieve better
portability and run-time performance than with preemptive scheduling.
The event facility allows threads to wait until various types of events
occur, including pending I/O on file descriptors, asynchronous signals,
elapsed timers, pending I/O on message ports, thread and process
termination, and even customized callback functions.
The Perl garbage collector uses simple reference counting during the normal
execution of a program. This means that cycles or unweakened references in other
parts of code can keep an object around for longer than intended. To help avoid
this problem, the reference count of a new object from its class constructor
ought to be 1. This way, the caller can know the object will be properly
DESTROYed when it drops all of its references to it.
Test::Refcount provides two test functions to help ensure this property holds
for an object class, so as to be polite to its callers.
If the assertion fails; that is, if the actual reference count is different to
what was expected, a trace of references to the object can be printed, if Marc
Lehmann's Devel::FindRef module is installed. This may assist the developer in
finding where the references are.
This module adds the ability to quickly create new types of tie objects without
creating a complete class. It does so in such a way as to try and make the
programmers life easier when it comes to single-use ties that I find myself
wanting to use from time-to-time.
The Tie::Simple package is actually a front-end to other classes which really do
all the work once tied, but this package does the dwimming to automatically
figure out what you're trying to do.
I've tried to make this as intuitive as possible and dependent on other bits of
Perl where I can to minimize the need for documentation and to make this extra,
extra spiffy.
The Boehm-Weiser garbage collection package, for C and C++ -
garbage collection and memory leak detection libraries.
A garbage collector is something which automatically frees malloc'd
memory for you by working out what parts of memory your program
no longer has pointers to. As a result, garbage collectors can also
inform you of memory leaks (if they find memory they can free, it means
you have lost all of your pointers to it, but you didn't free it).
C programs may be linked against either of these, and should run (with
GC or leak detection) without change. C++ programs must include a header
to use garbage collection, though leak detection should work without
such source code modifications. See the man page and header files.
ps: garbage collection is addictive.
HTML_Template_IT:
Simple template API.
The Isotemplate API is somewhat tricky for a beginner although it is the best
one you can build. template::parse() [phplib template = Isotemplate] requests
you to name a source and a target where the current block gets parsed into.
Source and target can be block names or even handler names.
Features :
* Nested blocks
* Include external file
* Custom tags format (default {mytag})
HTML_Template_ITX :
With this class you get the full power of the phplib template class.
You may have one file with blocks in it but you have as well one main file
and multiple files one for each block. This is quite useful when you have
user configurable websites. Using blocks not in the main template allows
you to modify some parts of your layout easily.
Haskell bindings to the International Components for Unicode (ICU)
libraries. These libraries provide robust and full-featured Unicode
services on a wide variety of platforms.
Features include:
* Both pure and impure bindings, to allow for fine control over efficiency
and ease of use.
* Breaking of strings on character, word, sentence, and line boundaries.
* Access to the Unicode Character Database (UCD) of character metadata.
* String collation functions, for locales where the conventions for
lexicographic ordering differ from the simple numeric ordering of
character codes.
* Character set conversion functions, allowing conversion between Unicode
and over 220 character encodings.
* Unicode normalization. (When implementations keep strings in a normalized
form, they can be assured that equivalent strings have a unique binary
representation.)
* Regular expression search and replace.
The PyPA recommended tool for installing and managing Python packages.
pip is a replacement for easy_install. It uses mostly the same techniques
for finding packages, so packages that were made easy_installable should
be pip-installable as well.
pip is meant to improve on easy_install. Some of the improvements:
* All packages are downloaded before installation. Partially-completed
installation doesn't occur as a result.
* Care is taken to present useful output on the console.
* The reasons for actions are kept track of. For instance, if a package
is being installed, pip keeps track of why that package was required.
* Error messages should be useful.
* Packages don't have to be installed as egg archives, they can be
installed flat (while keeping the egg metadata).
py-rioritized_methods is an extension to PEAK-Rules to prioritize
methods in order to avoid AmbiguousMethods situations.This module
provides four decorators:
prioritized_when
prioritized_around
prioritized_before
prioritized_after
These behave like their peak.rules counterparts except that they accept
an optional prio argument which can be used to provide a comparable
object (usually an integer) that will be used to disambiguate situations
in which more than rule applies to the given arguments and no rule is
more specific than another. That is, situations in which an
peak.rules.AmbiguousMethods would have been raised.
This is useful for libraries which want to be extensible via generic
functions but want their users to easily override a method without
figuring out how to write a more specific rule or when it is not
feasible.
VCR.py simplifies and speeds up tests that make HTTP requests. The first
time you run code that is inside a VCR.py context manager or decorated
function, VCR.py records all HTTP interactions that take place through
the libraries it supports and serializes and writes them to a flat file
(in yaml format by default). This flat file is called a cassette.
When the relevant peice of code is executed again, VCR.py will read the
serialized requests and responses from the aforementioned cassette file,
and intercept any HTTP requests that it recognizes from the original test
run and return the responses that corresponded to those requests. This
means that the requests will not actually result in HTTP traffic, which
confers several benefits including:
* The ability to work offline
* Completely deterministic tests
* Increased test execution speed
This package contains HTML documentation for the Root framework.
The installed package is 110 MB large.
ROOT stand for "<R>OOTs <O>bject-<O>riented <T>echnologies" - it is an object
oriented data analysis framework written in C++. ROOT has its origin at the
Centre Europeenne pour la Recherche Nucleaire (CERN) and is a cross platform
tool well-known to high energy physicists, but it's also used in a wide range
of other data analysis applications. The system consists of the C/C++
interpreter CINT (for interactive development and rapid prototyping) and
hundreds of classes, which provides functionalities u.a. for:
- Data Histogram and Minimization Operations
- Linear Algebra, Matrix and Vector Operations
- Tree, Ntuple and other Data Containers/Structures
- 2D Graphics, 3D Graphics and Detector Geometry Modeling
- Graphical User Interface
- Operating System and Networking Interface
- Inline Documentation and PostScript Interface
- PROOF Server (parallel computing)