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>
provides operations for encoding UTF8 strings to Word8 lists
and back, and for reading and writing UTF8 without truncation.
WWW: http://code.haskell.org/utf8-string/
PR: ports/129049
Submitted by: Ashish Shukla <wahjava at gmail.com>
lower-level library that provides a higher level interface to XML
processing, particularly in light of signing and encryption.
WWW: https://spaces.internet2.edu/display/OpenSAML/XMLTooling-C
PR: ports/127326
Submitted by: Janos Mohacsi
features for web application testing. The Test::WWW::Mechanize::Catalyst
module meshes the two to allow easy testing of Catalyst applications
without starting up a web server.
Testing web applications has always been a bit tricky, normally starting
a web server for your application and making real HTTP requests to it.
This module allows you to test Catalyst web applications but does not
start a server or issue HTTP requests. Instead, it passes the HTTP
request object directly to Catalyst. Thus you do not need to use a real
hostname: "http://localhost/" will do.
WWW: http://search.cpan.org/dist/Test-WWW-Mechanize-Catalyst/
PR: ports/129004
Submitted by: George Hartzell <hartzell at alerce.com>
subroutine whose name is passed to it. (To load the module without
importing the function, write use Sub::Delete();.)
This does more than simply undefine the subroutine in the manner of
undef &foo, which leaves a stub that can trigger AUTOLOAD (and,
consequently, won't work for deleting methods). The subroutine is
completely obliterated from the symbol table (though there may be
references to it elsewhere, including in compiled code).
WWW: http://search.cpan.org/dist/Sub-Delete/
PR: ports/128899
Submitted by: Gea-Suan Lin <gslin at gslin.org>
and comprehend either a simple program or a big source code tree
based on the source code by presenting the code in a searcheable
and tagged way.
It helps to speed up the learning curve and to make it more convenient
to get hands on a code from somebody, or also is convenient to
browse your own projects.
It includes functionality from such tools as: ctags, cscope and
ctree, but it is faster than any of them, and is offering the
features in one package.
In some way it can be viewed as a superset of ctags, cscope and
ctree.
WWW: http://silentbob.sourceforge.net/
PR: 128969
Submitted by: TAKATSU Tomonari <tota at rtfm dot jp>
discs. Currently it is comprised of libraries named libisofs,
libburn, libisoburn, a cdrecord emulator named cdrskin, and an
integrated multi-session tool named xorriso.
WWW: http://libburnia-project.org/
PR: ports/128795
Submitted by: J.R. Oldroyd <fbsd at opal.com>
discs. Currently it is comprised of libraries named libisofs,
libburn, libisoburn, a cdrecord emulator named cdrskin, and an
integrated multi-session tool named xorriso.
WWW: http://libburnia-project.org/
PR: ports/128794
Submitted by: J.R. Oldroyd <fbsd at opal.com>
repository to create a remote repo on Github using a previously
created account. This does not create Github accounts (and that
violates the terms of service).
WWW: http://search.cpan.org/dist/github_creator/
PR: ports/128876
Submitted by: Gea-Suan Lin <gslin at gslin.org>
File::Find. Students are always asking me what closures are good for,
and here's some examples. The functions mostly stand alone (i.e. they
don't need the rest of the module), so rather than creating a
dependency in your code, just lift the parts you want).
WWW: http://search.cpan.org/dist/File-Find-Closures/
PR: ports/128875
Submitted by: Gea-Suan Lin <gslin at gslin.org>
particularly useful for efficient logging and pretty printing, (e.g.
with the Writer monad), where list append quickly becomes too expensive.
WWW: http://code.haskell.org/~dons/code/dlist/
PR: ports/128770
Submitted by: Samy Al Bahra <sbahra at kerneled.org>
non-blocking I/O programming. It tries to bring back the
simplicity of the declarative programming style, that is
only otherwise available when one employs threads,
coroutines, or co-processes.
PR: ports/128652
Submitted by: Vany Serezhkin <ivan@serezhkin.com>
fattr.rb supercedes attributes.rb as that library,
even though it added only one method to the global
namespace, collided too frequently with user code
in particular rails' code.
WWW: http://codeforpeople.com/lib/ruby/fattr/
PR: ports/128662
Submitted by: Wen Heping <wenheping at gmail.com>
arrayfields works by adding only a few methods to arrays,
namely #fields= and fields, but the #fields= method is
hooked to extend an array on a per object basis.In
otherwords __only__ those arrays whose fields are set
will have auto-magical keyword access bestowed on
them - all other arrays remain unaffected.arrays with
keyword access require much less memory when compared
to hashes/objects and yet still provide fast lookup and
preserve data order.
WWW: http://codeforpeople.com/lib/ruby/arrayfields/
PR: ports/128663
Submitted by: Wen Heping <wenheping at gmail.com>
- unification of option, argument, keyword, and environment
parameter parsing
- auto generation of usage and help messages
- support for mode/sub-commands
- io redirection support
- logging hooks using ruby's built-in logging mechanism
- intelligent error handling and exit codes
- use as dsl or library for building Main objects
- parsing user defined ARGV and ENV
- zero requirements for understanding the obtuse apis of any
command line option parsers
- leather pants
In short main.rb aims to drastically lower the barrier to writing
uniform command line applications.
WWW: http://codeforpeople.com/lib/ruby/main/
PR: ports/128664
Submitted by: Wen Heping <wenheping at gmail.com>
an object oriented manner. Grit gives you object model access to your git
repository. Once you have created a repository object, you can traverse it
to find parent commit(s), trees, blobs, etc.
WWW: http://grit.rubyforge.org/
PR: ports/128592
Submitted by: Daniel Roethlisberger <daniel at roe.ch>
an object oriented manner. Grit gives you object model access to your git
repository. Once you have created a repository object, you can traverse it
to find parent commit(s), trees, blobs, etc.
This is the GitHub version of the grit gem called mojombo-grit.
WWW: http://grit.rubyforge.org/
PR: ports/128736
Submitted by: Daniel Roethlisberger <daniel at roe.ch>
manipulate Git repositories. Currently it is a wrapper around
the git binary, but there are plans to switch to C bindings at
some point in the future.
WWW: http://jointheconversation.org/rubygit/
PR: ports/128734
Submitted by: Daniel Roethlisberger <daniel at roe.ch>
working with OLE2 structured storage files, such as those produced by
Microsoft Office - eg *.doc, *.msg etc.
WWW: http://rubyforge.org/projects/ruby-ole
PR: ports/128471
Submitted by: Alexander Logvinov <ports at logvinov.com>
popular open source revision control software. It can be used as both client
and server for repositories and provides granular access control over data
stored in the repository. It aims to be as compatible as possible with other
CVS implementations, except when particular features reduce the overall
security of the system.
WWW: http://www.opencvs.org/
This port was requested by rdivacky@, who created the dist patches for
OpenCVS.
documentation. Doxygen is quite a powerful code documentation system that
already has built-in support for multiple programming languages.
WWW: http://www.bigsister.ch/doxygenfilter/doxygenfilter.html
PR: 128432
Submitted by: Sergei Golyashov <svvord at spline-studio dot ru>
Getopt::Euclid uses your program's own documentation to create a
command-line argument parser. This ensures that your program's documented
interface and its actual interface always agree.
WWW: http://search.cpan.org/dist/Getopt-Euclid/
repository that resides on a remote server. All data is dumped in
the format that can be read an written by svnadmin dump, so the
data which is produced can easily be imported into a new Subversion
repository.
WWW: http://saubue.boolsoft.org/projects/rsvndump/
constructors "strict". If your constructor is called with an attribute
init argument that your class does not declare, then it calls
"Carp::confess()". This is a great way to catch small typos.
WWW: http://search.cpan.org/dist/MooseX-StrictConstructor/
watch variables, gdb command completion, assembly windows, etc.
Clewn is a program controlling vim through the netBeans socket interface,
it runs concurrently with vim and talks to vim.
Clewn can only be used with gvim, the graphical implementation of vim,
as vim on a terminal does not support netBeans.
WWW: http://clewn.sourceforge.net/index.html
PR: ports/128289
Submitted by: Giacomo Mariani <giacomomariani_at_yahoo_dot_it>
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.
WWW: http://search.cpan.org/dist/Devel-Events-Objects/
structures and can be used to enumerate all the currently live SVs.
This can be used to hunt leaks and to profile memory usage.
WWW: http://search.cpan.org/dist/Devel-Gladiator/