Suspensions are cumulative, and need to be matched by an equal number of
resume calls.
PR: ports/110476
Submitted by: Ruben van Staveren <ruben@verweg.com>
threads are terminated using threads->exit(). The thread is then
detached, and hence automatically cleaned up.
Threads that are suspended using Thread::Suspend do not need to be
resumed in order to be cancelled.
It is possible for a thread to cancel itself.
PR: ports/110475
Submitted by: Ruben van Staveren <ruben@verweg.com>
See http://library.gnome.org/misc/release-notes/2.24/ for the general
release notes. On the FreeBSD front, this release introduces Fuse support
in HAL, adds multi-CPU support to libgtop, WebKit updates, and fixes some
long-standing seahorse and gnome-keyring bugs. The documentation updates
to the website are forthcoming.
This release features commits by adamw, ahze, kwm, mezz, and myself. It would
not have been possible without are contributors and testers:
Alexander Loginov
Craig Butler [1]
Dmitry Marakasov [6]
Eric L. Chen
Joseph S. Atkinson
Kris Moore
Lapo Luchini [7]
Nikos Ntarmos
Pawel Worach
Romain Tartiere
TAOKA Fumiyoshi [3]
Yasuda Keisuke
Zyl
aZ [4]
bf [2] [5]
Florent Thoumie
Peter Wemm
pluknet
PR: 125857 [1]
126993 [2]
130031 [3]
127399 [4]
127661 [5]
124302 [6]
129570 [7]
129936
123790
This is a commonly re-written (or at least re-looked-up)
idiom in Perl programs.
WWW: http://search.cpan.org/dist/List-Uniq/
PR: ports/130322
Submitted by: Murilo Opsfelder <mopsfelder at gmail.com>
One line of code per option is all you need to write. For that, you get a
nice automatically-generated help page (fit to your screen size!), robust
option parsing, command subcompletion, and sensible defaults for everything
you don't specify.
WWW: http://trollop.rubyforge.org/
PR: ports/130240
Submitted by: Dennis Herrmann <adox at mcx2.org>
Distributed Object Technology system written entirely in Python, that is
designed to be very easy to use. Never worry about writing network
communication code again, when using Pyro you just write your Python
objects like you would normally. With only a few lines of extra code,
Pyro takes care of the network communication between your objects once
you split them over different machines on the network. All the gory
socket programming details are taken care of, you just call a method on
a remote object as if it were a local object!
Pyro provides an object-oriented form of RPC. You can use Pyro within a
single system but also use it for IPC. For those that are familiar with
Java, Pyro resembles Java's Remote Method Invocation (RMI). It is less
similar to CORBA - which is a system- and language independent
Distributed Object Technology and has much more to offer than Pyro or
RMI. But Pyro is small, simple and free!
WWW: http://pyro.sf.net
PR: ports/130053
Submitted by: Wen Heping <wenheping at gmail.com>
metaprogramming easier. For the lore of metaprogramming see Seeing
Metaclasses Clearly and Chapter Six of Why's (Poignant) Guide to Ruby.
WWW: http://rubyforge.org/projects/metaid/
validations similar to ActiveRecord's. The library follows ActiveRecord's
lead for features that are similar and introduces new features.
WWW: http://validatable.rubyforge.org/
Dynamic Scripting technique to create adaptive AI scripts automatically
from predefined rulesets.
WWW: http://sysfault.org/projects
PR: ports/129848
Submitted by: Marcus von Appen <mva at sysfault.org>
Python community by providing a knowledge-based inference engine (expert
system) written in 100% Python.
WWW: http://pyke.sourceforge.net
PR: ports/129877
Submitted by: Thinker K.F. Li <thinker at branda.to>
* Sequel provides thread safety, connection pooling and a concise
DSL for constructing database queries and table schemas.
* Sequel also includes a lightweight but comprehensive ORM layer for
mapping records to Ruby objects and handling associated records.
* Sequel supports advanced database features such as prepared
statements, bound variables, master/slave configurations, and database
sharding.
* Sequel makes it easy to deal with multiple records without having
to break your teeth on SQL.
* Sequel currently has adapters for ADO, DB2, DBI, Informix, JDBC,
MySQL, ODBC, OpenBase, Oracle, PostgreSQL and SQLite3.
WWW: http://sequel.rubyforge.org/
PR: ports/129901
Submitted by: Wen Heping<wenheping at gmail.com>
library. It contains a copy of reportlab, which is a BSD
licensed pdf generation library.
WWW: http://code.pediapress.com/
PR: ports/129835
Submitted by: Wen Heping <wenheping at gmail.com>
server nodes can increase or decrease (like in memcached). The
hashing ring is built using the same algorithm as libketama.
Consistent hashing is a scheme that provides a hash table functionality
in a way that the adding or removing of one slot does not significantly
change the mapping of keys to slots.
WWW: http://pypi.python.org/pypi/hash_ring
PR: 129890
Submitted by: Yi-Jheng Lin <yzlin at cs dot nctu dot edu dot tw>
This module allows you to load modules using only parts of their name,
relatively to the current module or to a given module. Module names are by
default searched below the current module, but can be searched upper in the
hierarchy using the ..:: syntax.
WWW: http://search.cpan.org/dist/relative/
PR: ports/129659
Submitted by: skreuzer at exit2shell.com
data represented in the language-neutral JSON format (which is often
used as a simpler substitute for XML in Ajax web applications). This
implementation tries to be as compliant to the JSON specification (RFC
4627) as possible, while still providing many optional extensions to
allow less restrictive JavaScript syntax. It includes complete Unicode
support, including UTF-32, BOM, and surrogate pair processing. It can
also support JavaScript's NaN and Infinity numeric types as well as
it's 'undefined' type. It also includes a lint-like JSON syntax
validator which tests JSON text for strict compliance to the standard.
WWW: http://deron.meranda.us/python/demjson/
PR: ports/129711
Submitted by: Wen Heping <wenheping at gmail.com>
compatible regular expressions.
The PCRE library is a set of functions that implement regular expression
pattern matching using the same syntax and semantics as Perl 5.
WWW: http://code.haskell.org/~dons/code/pcre-light
PR: ports/129683
Submitted by: pgj
Approved by: miwi
values may be encoded to and from binary formats, written to disk as
binary, or sent over the network. Serialisation speeds of over 1 G/sec
have been observed, so this library should be suitable for high
performance scenarios.
WWW: http://code.haskell.org/binary/
PR: ports/129678
Submitted by: pgj
Approved by: miwi
development and has changed the mental model used at Enthought for
programming in the already extremely efficient Python programming
language.
The Traits project allows Python programmers to use a special kind
of type definition called a trait, which gives object attributes
some additional characteristics, such as Initialization, Validation,
Delegation, Notification and Visualization.
A class can freely mix trait-based attributes with normal Python
attributes, or can opt to allow the use of only a fixed or open set
of trait attributes within the class. Trait attributes defined by
a classs are automatically inherited by any subclass derived from
the class.
WWW: http://pypi.python.org/pypi/Traits/
PR: ports/129589
Submitted by: Wen Heping <wenheping at gmail.com>
many other projects in the Enthought Tool Suite:
*enthought.etsconfig: Supports configuring settings that need to be
shared across multiple projects or programs on the same system. Most
significant of these is the GUI toolkit to be used. You can also
configure locations for writing application data and user data, and the
name of the company responsible for the software (which is used in the
application and user data paths on some systems).
*enthought.logger: Provides convenience functions for creating
logging handlers.
*enthought.util: Provides miscellaneous utility functions.
WWW: http://code.enthought.com/projects/enthought_base.php
PR: ports/129583
Submitted by: Wen Heping <wenheping at gmail.com>
Linux lrmi provides a simple interface to this for i386 machines, but this
doesn't help on other platforms. libx86 provides the Linux lrmi interface,
but will also run on platforms such as amd64 and alpha.
WWW: http://www.codon.org.uk/~mjg59/libx86/
This module tries to find middle ground between one at a time and all at
once processing of data sets.
The purpose of this module is to avoid the overhead of implementing an
iterative api when this isn't necessary, without breaking forward
compatibility in case that becomes necessary later on.
The API optimizes for when a data set typically fits in memory and is
returned as an array, but the consumer cannot assume that the data set is
bounded.
The API is destructive in order to minimize the chance that resultsets are
leaked due to improper usage.
WWW: http://search.cpan.org/dist/Data-Stream-Bulk/
are coded with a Base62 systen to make them short and handy (e.g. to use it as
part of a URL).
PR: ports/129265
Submitted by: Sergey V. Dyatko <sergey.dyatko at gmail.com>
This module is a plugin for Module::Starter, and allows the use of TT2 to
render templates.
WWW: http://search.cpan.org/dist/Module-Starter-Plugin-TT2/
PR: ports/129008
Submitted by: George Hartzell <hartzell at alerce.com>
frameworks. It includes a flexible test runner, and
supports both doctest and unittest.
WWW: http://www.python.org/pypi/zope.testing
PR: ports/129157
Submitted by: Wen Heping <wenheping at gmail.com>
create and manipulate infinite lists: data Stream a = Cons a (Stream a).
It provides alternative definitions for those Prelude functions that make
sense on such streams.
WWW: http://www.cs.nott.ac.uk/~wss/repos/Stream/dist/doc/html/
PR: ports/129215
Submitted by: Samy Al Bahra <sbahra at kerneled.org>
automatic persistence and versioning by recording messages sent to objects. It
offers a flexible versioning scheme where both individual objects and their
entire object graph can be versioned separately. The built-in object model is a
generalization of the property model used by the AddressBook framework. Foreign
model objects can be also integrated by wrapping them with a special proxy.
CoreObject uses the EtoileSerialize framework which, in many cases, allows
objects and messages to be automatically serialized with no extra code being
written.
WWW: http://www.etoile-project.org/
and deserialization of arbitrary objects.
So far, serialization and deserialization work for all simple types, object,
selectors and classes. Arrays and structures are believed to work, however
arrays containing structures and vice versa have not been tested.
WWW: http://www.etoile-project.org/
exclusively in SSA-form, starting at IR construction until assembler code
emission. It offers many analyses and optimizations, provides extensive debug
support and includes a backend framework.
* analyses: dominance, loop tree, execution frequency, control dependencies,
call graph, rapid type, def-use, alias analysis, class hierarchy analysis
* optimizations: dead code elimination (happens implicitly), constant folding,
local common subexpression elimination, arithmetic identities (happens on the
fly), unreachable code elimination, global common subexpression elimination,
code placement, strength reduction, scalar replacement, if-conversion,
load/store optimization, control flow optimizations, reassociation, partial
condition evaluation, tail recursion elimination, inlining, procedure cloning
* enhanced debugging support: extensive checkers, breakpoints on node creation,
entity creation, graph dumping
* lowering of intrinsics, double word arithmetics, bitfields
* generic backend features:
* novel SSA based register allocator
* several SSA copy coalescing and spilling algorithms
* algorithms for instruction and basic block scheduling
* working ia32 backend, unfinished backends for MIPS, ARM, PPC32
* handwritten recursive descent C89/C99 frontend available (lang/cparser)
WWW: http://libfirm.org/
PR: ports/129070
Submitted by: Christoph Mallon <christoph.mallon at gmx.de>