This is an expiring LRU cache, using Tie::Cache::LRU. Each entry
in this cache expires after 'EXPIRES' seconds (default 3600).
The cache is in RAM (see Tie::Cache::LRU).
ok merdely@
This is a base class for implementing virtual base classes (what
some people call an abstract class). Kinda kooky. It allows you to
explicitly declare what methods are virtual and that must be
implemented by subclasses. This might seem silly, since your program
will halt and catch fire when an unimplemented virtual method is
hit anyway, but there's some benefits.
The error message is more informative. Instead of the usual "Can't
locate object method" error, you'll get one explaining that a virtual
method was left unimplemented.
Subclass authors can explicitly check to make sure they've implemented
all the necessary virtual methods. When used as part of a regression
test, it will shield against the virtual method requirements changing
out from under the subclass.
Finally, subclass authors can get an explicit list of everything
they're expected to implement.
ok merdely@
Defines a set of symbolic constants with ordered numeric values ala
C enum types. What are they good for? Typical uses would be for giving
mnemonic names to indexes of arrays.
This not only reads easier, but can also be typo-checked at compile
time when run under use strict. That is, if you misspell Days_Fri
as Days_Fry, you'll generate a compile error.
Also capable of creating ordered bitmask constants, allowing the
easy creation of bitmask constants, allowing you to efficiently store
many true/false options within a single integer.
ok merdely@
This class implements an ordered hash-like object. It's a cross
between a Perl hash and a linked list. Use it whenever you want the
speed and structure of a Perl hash, but the orderedness of a list.
ok merdely@
This module provides an interface to concisely yet expressively create
classes Class::Meta. The intent is to provide a simpler, more meaningful
interface for creating Class::Meta classes while preserving the power
and flexibility of Class::Meta.
This module exports a number of functions that are useful for validating
and converting data types. It is intended for use in applications where
data types are more important than they typically are in Perl -- e.g.,
database applications.
IPC::Shareable allows you to tie a variable to shared memory making it
easy to share the contents of that variable with other Perl processes.
Scalars, arrays, and hashes can be tied. The variable being tied may
contain arbitrarily complex data structures - including references to
arrays, hashes of hashes, etc.
ok jasper@
hotspot and j2se). The j2se patches are from the bsd java repositories
1.5 -> 1.6 (performed by Greg Lewis) -> 1.7 by myself. j2se patches are
in sync with 1.6 patchset 1 plus the Runtime.exec fix from Michiel Boland
via FreeBSD PR http://www.freebsd.org/cgi/query-pr.cgi?pr=115557.
Also from FreeBSD: interactive JRL license verification. By default the
port is IS_INTERACTIVE=Yes. Add ACCEPT_JRL_LICENSE=Yes to /etc/mk.conf
to permanently accept the JRL license.
At some point in the future I will work on switching this back to
OpenJDK/GPLv2 src. That largely depends on Sun's progress at removing more
of the binary plug bits so that stubbing out the remainder is less
cumbersome and time consuming.
Testing, comments and okay ian@
Parallel::Forker manages parallel processes that are either subroutines
or system commands. Forker supports most of the features in all the other
little packages out there, with the addition of being able to specify
complicated expressions to determine which processes run after others, or
run when others fail.
CLASS and $CLASS are both synonyms for __PACKAGE__. Easier to type.
$CLASS has the additional benefit of working in strings.
CLASS is a constant, not a subroutine call. $CLASS is a plain variable,
it is not tied. There is no performance loss for using CLASS over
__PACKAGE__ except the loading of the module.
ok simon@