Oniguruma is a BSDL Regular Expression library written for ruby-m17n,
which implements all of Perl extensions, many of .NET extensions plus
more.
It provides multiple APIs for ease of use; GNU regex compatible API,
POSIX regex compatible API and its own.
This library is multilingualized by design and can have one encoding
for each regex object. Currently supported character encodings are
ASCII, UTF-8, EUC-JP and Shift_JIS.
4.x supports Ruby1.9.
Oniguruma is a BSDL Regular Expression library written for ruby-m17n,
which implements all of Perl extensions, many of .NET extensions plus
more.
It provides multiple APIs for ease of use; GNU regex compatible API,
POSIX regex compatible API and its own.
This library is multilingualized by design and can have one encoding
for each regex object. Currently supported character encodings are
ASCII, UTF-8, EUC-JP and Shift_JIS.
4.x supports Ruby1.9.
OpenGrok is a fast source code search and cross reference engine.
It helps you search, cross-reference and navigate your source tree. It can
understand various program file formats and version control histories like
Mercurial, Git, SCCS, RCS, CVS, Subversion, Teamware, ClearCase, Perforce
and Bazaar. In other words it lets you grok (profoundly understand) the
open source, hence the name OpenGrok. It is written in Java.
Mercurial is a fast, lightweight source control management system designed for
efficient handling of very large distributed projects. Features include:
* O(1) delta-compressed file storage and retrieval scheme
* Complete cross-indexing of file and changesets for efficient exploration
of project history
* Robust SHA1-based integrity checking and append-only storage model
* Decentralized development model with arbitrary merging between trees
* High-speed HTTP-based network merge protocol
* Easy-to-use command-line interface
* Integrated stand-alone web interface
* Small Python codebase
* GPL license
Carp::Assert::More is a set of wrappers around the Carp::Assert functions
to make the habit of writing assertions even easier.
Everything in here is effectively syntactic sugar. There's no technical
reason to use
assert_isa( $foo, 'HTML::Lint' );
instead of
assert( defined $foo );
assert( ref($foo) eq 'HTML::Lint' );
other than readability and simplicity of the code.
My intent here is to make common assertions easy so that we as programmers
have no excuse to not use them.
This module makes it easy to build classes using array based objects.
It's main goal is to allow one to create less memory hungry programs,
notably in memory-sensitive contexts such as mod_perl.
This module is little more than a cute way of defining constant subs in
your own package. Constant subs are very useful when dealing with array
based objects because they allow one to access array slots by name
instead of by index.
Date::Business provides the functionality to perform simple date manipulations
quickly. Support for calendar date and business date math is provided.
Business dates are weekdays only. Adding 1 to a weekend returns Monday,
subtracting 1 returns Friday.
The difference in business days between Friday and the following
Monday (using the diffb function) is one business day. The
number of business days between Friday and the following
Monday (using the betweenb function) is zero.
The Perl 5 module Devel::Events::Objects provides an event generator
and a handler for Devel::Events, that facilitate leak checking.
There are two components of this module: Devel::Events::Generator::Objects,
and Devel::Events::Handler::ObjectTracker. The first one uses some
trickery to generate events for every object creation and destruction
in code loaded after it was loaded. The second one will listen on
these events, and track all currently living objects.
Perl's global destruction is a little tricky to deal with WRT finalizers
because it's not ordered and objects can sometimes disappear.
Writing defensive destructors is hard and annoying, and usually if global
destruction is happenning you only need the destructors that free up non
process local resources to actually execute.
For these constructors you can avoid the mess by simply bailing out if global
destruction is in effect.
This module provides an attribute wrapper around Getopt::Long. Instead of
declaring the options in a hash with references to the variables and subroutines
affected by the options, you can use the Getopt attribute on the variables and
subroutines directly.
As you can see from the Synopsis, the attribute takes an argument of the same
format as you would give as the hash key for Getopt::Long. See the Getopt::Long
manpage for details.