See full list of changes at http://frama-c.com/Changelog.html#Nitrogen-20111001
Nitrogen Release [20111001]
Frama-C General
New Features
* [Cil] Enumerated constants are kept in the AST.
* [Cil] Implement precise dataflow on switch constructs. As side effect, improve precision of value analysis.
* [Cil] Fixed#720 (incorrect simplification of switch).
* [Cil] Support for &"constant_string" in parser.
* [Cil] Normalization of lval: T+1 ==> &T[1] when T is in fact an array (implies *(T+1) ==> T[1])
* [Cil] Pretty-printing lval and term_lval the same way
* [Cil] Cache results of offsets computations.
* [Cil] Add support for GCC specific cast from field of union to union
* [Kernel] Exit status on unknown error is now 125. 127 and 126 are reserved for the shell by POSIX.
* [Kernel] Better error message when plug-in crashes on loading (bts #737).
* [Kernel] Big integers can now be displayed using hexadecimal notation.
* [Kernel] \at(p,Old) is pretty-printed as \old(p).
* [Kernel] Some messages may be printed several time for the same line if they refer to different columns.
* [Kernel] Better handling of comments with -keep-comments and new API. See Cabshelper.Comments and Globals.get_comments_*
* [Kernel] Better pretty printing of lists of any elements
* [Kernel] Current pragmas no longer give rise to code annotations (as they do not contain anything that can be proven).
* [Kernel] Improve space complexity of function stmt_can_reach.
* [Kernel] New kind of command-line parameter, for commands that do heavy output. Used for Value, Pdg and Metrics.
* [Logic] Added support for bitwise operators --> and <--> into ACSL formula.
Carbon Release [20110201]
Frama-C General
New Features
* [Configure] Frama-C does not require Apron anymore (Why does for Jessie). Thus fix bug #647.
* [Kernel] Improve performance on platform with dynami.c loading. Mainly impact value analysis (for developers: improve
efficiency of Dynamic.get).
* [Kernel] Handle errors better when they occur when exiting Frama-C. Slight semantic changes for exit code: - old code 5 is now
127; - code 5 is now: error raised when exiting Frama-C normally; - code 6: error raised when exiting Frama-C abnormally.
* [Logic] Fix priority bug in parser.
* [Logic] Mentioning a formal on the left-hand side of an assigns clause is now an error when type-checking logic annotations.
* [Makefile] Fixed bug #638. By default, warnings are no more errors when compiling a public Frama-C distribution and plug-ins.
SVN versions of Frama-C are still compiled with "-warn-error A".
Carbon Release [20101201]
Frama-C General
New Features
* [Cil] Be less agressive during inline function merge. Alpha equivalent function are now kept separate.
* [Cil] Clean up local variables handling and pretty-printing modified pBlock method interface (unified pBlock and pInnerBlock)
* [Cil] Cil normalization takes care of abrupt clauses
* [Configure] Better detection of native dynlink support.
* [Kernel] Feature #484 about requires into named behaviors
* [Kernel] Fixed bug #548: limit.h now syntactically correct. Architectures other than x86_32 still unsupported.
Boron Release [20100401]
Frama-C General
New Features
* [Cil] Extend logic pretty printer to handle all specific clauses
* [Configure] Dynamic plug-ins are now statically linked by default whenever native dynlink is not usable (bts #301).
* [Configure] Compiling the GUI now requires LablGnomeCanvas.
* [Kernel] Add status for all clauses
* [Kernel] Clarification of the multiple accesses warning. Becomes "undefined multiple accesses in expression".
* [Kernel] Better error messages when a dynamic plug-in cannot be loaded.
* [Kernel] Better -*-help.
* [Kernel] New option -no-dynlink in order to prevent loading of dynamic plug-ins.
* [Kernel] The journal is generated only if the GUI is crashing, or if the option -journal-enable is explicitely set (fixed issue
#330).
* [Kernel] Backtrace when Frama-C is crashing (only if Frama-C is compiled with caml >= 3.11.0)
* [Kernel] New option "-plugin-h" as an alias for option "-plugin-help"
* [Kernel] Preliminary standard C library in $FRAMAC_SHARE/libc
* [Logic] Better error message when using = in annotations
* [Logic] ordering of clauses in contracts
* [Logic] If a C typedef integer, real or boolean exists, it takes precedence over corresponding logic type. The logic type
remains accessible through its utf-8 denomination.
* [Logic] Support for type abbreviation in logic
* [Logic] Support for "reads \nothing"
* [Logic] Adding "\pi" as built-in symbol
Beryllium Release [20090902]
Frama-C General
New Features
* [Configure] Detection of dot if required.
* [Journal] Better handling of exceptions.
* [Kernel] Slightly less false alarms with -warn-unspecified-order
* [Makefile] Why is no longer a compilation dependency. It is required only at runtime for the experimental WP plugin.
* [Makefile] Now possible to build custom binaries for plug-ins. Roughly these binaries are frama-c[.byte] + the plug-in
statically-linked. The goal is called "static" in the plug-in's makefile.
Fixed in Firefox 3.6.24
MFSA 2011-49 Memory corruption while profiling using Firebug
MFSA 2011-47 Potential XSS against sites using Shift-JIS
MFSA 2011-46 loadSubScript unwraps XPCNativeWrapper scope parameter (1.9.2 branch)
Fixed in Firefox 3.6.23
MFSA 2011-40 Code installation through holding down Enter
MFSA 2011-39 Defense against multiple Location headers due to CRLF Injection
MFSA 2011-38 XSS via plugins and shadowed window.location object
MFSA 2011-37 Integer underflow when using JavaScript RegExp
MFSA 2011-36 Miscellaneous memory safety hazards (rv:7.0 / rv:1.9.2.23)
Version 3.29 - 2 December 2011
Enhancements
- modified Makefile.in to allow configure to override the lib and include
destination directories.
- added (or restored actually) support for tile compression of 1-byte integer
images in imcomp_compress_tile. Support for that data type was overlooked
during recent updates to this routine.
- modified the fits_get_token command-line parsing routine to perform more
rigorous checks to determine if the token can be interpreted as a number
or not.
- made small modification to fpack.c to not allow the -i2f option (convert
image from integer to floating point) with the "-g -q 0" option (do lossless
gzip compression). It is more efficient to simply use the -g option alone.
- made modifications to fitsio.h and drvrfile.c to support reading and
writing large FITS files (> 2.1 GB) when building CFITSIO using
Microsoft Visual C++ on Windows platforms.
- added new WCS routine (ffgicsa) which returns the WCS keyword values
for a particular WCS version ('A' - 'Z').
Bug Fixes
- fixed a problem with multi-threaded apps that open/close FITS files
simultaneously by putting mutex locks around the call to
fits_already_open and in fits_clear_Fptr.
- fixed a bug when using the 'regfilter' function to select a subset of the
rows in a FITS table that have coordinates that lie within a specified
spatial region on the sky. This bug only affects the rarely used panda
(and epanda and bpanda) region shapes in which the region is defined by
the intersection of an annulus and a pie-shaped wedge. The previous code
(starting with version 3.181 of CFITSIO where support for the panda region
was first introduced) only worked correctly if the 2 angles that define
the wedge have values between -180 and +180. If not, then fewer rows than
expected may have been selected from the table.
- fixed the extended filename parser so that when creating a histogram by
binning 2 table columns, if a keyword or column name is given as the
weighting factor, then the output histrogram image will have a floating
point datatype, not the default integer datatype as is the case when no
weigth is specified (e.g. with a filename like
"myfile.fits[bin x,y; weight_column]"
- added fix to the code in imcompress.c to work around a problem with
dereferencing the value of a pointer, in cases where the address of
that pointer has not been defined (e.g., the nulval variable).
- modified the byte shuffling algorithm in fits_shuffle_8bytes to work
around a strange bug in the proprietary SunStudioExpress C compiler
under OpenSolaris.
- removed spurious messages on the CFITSIO error stack when opening a
FITS file with FTP (in drvrnet.c);
Drop ${PHP_BASE_VARS} from PKGVERSION by default.
It used to be required to support multiple php version.
But after PHP version based ${PHP_PKG_PREFIX} was introduced,
such trick is not required anymore.
In addition to this, such version name schme invokes unwanted version bump
when base php version is bumped, plus, such version scheme is hard to
use for DEPENDS pattern.
To avoid downgrading of package using such legacy version scheme,
PECL_LEGACY_VERSION_SCHEME is introduced.
If it is defined, current version scheme is still used for currently
supported PHP version (5 and 53), but instead of ${PHP_BASE_VARS},
current fixed PHP base version in pkgsrc is used to avoid unwanted version bump
from update of PHP base package.
With newer PHP (54, or so on), new version scheme will be used if
it is defined.
This trick will not be required and should be removed after php5 and php53 will
be gone away from pkgsrc.
## Rails 3.1.3 (unreleased) ##
* New apps should be generated with a sass-rails dependency of 3.1.5, not 3.1.5.rc.2
## Rails 3.1.2 (unreleased) ##
* Engines: don't blow up if db/seeds.rb is missing.
*Jeremy Kemper*
* `rails new foo --skip-test-unit` should not add the `:test` task to the rake default task.
*GH 2564*
*José Valim*
## Rails 3.1.1 (October 7, 2011) ##
* Add jquery-rails to Gemfile of plugins, test/dummy app needs it. Closes#3091. *Santiago Pastorino*
* Add config.assets.initialize_on_precompile which, when set to false, forces
`rake assets:precompile` to load the application but does not initialize it.
To the app developer, this means configuration add in
config/initializers/* will not be executed.
Plugins developers need to special case their initializers that are
meant to be run in the assets group by adding :group => :assets.
## Rails 3.1.0 (August 30, 2011) ##
* The default database schema file is written as UTF-8. *Aaron Patterson*
* Generated apps with --dev or --edge flags depend on git versions of
sass-rails and coffee-rails. *Santiago Pastorino*
* Rack::Sendfile middleware is used only if x_sendfile_header is present. *Santiago Pastorino*
* Add JavaScript Runtime name to the Rails Info properties. *DHH*
* Make pp enabled by default in Rails console. *Akira Matsuda*
* Add alias `r` for rails runner. *Jordi Romero*
* Make sprockets/railtie require explicit and add --skip-sprockets to app generator *José Valim*
* Added Rails.groups that automatically handles Rails.env and ENV["RAILS_GROUPS"] *José Valim*
* The new rake task assets:clean removes precompiled assets. *fxn*
* Application and plugin generation run bundle install unless --skip-gemfile or --skip-bundle. *fxn*
* Fixed database tasks for jdbc* adapters #jruby *Rashmi Yadav*
* Template generation for jdbcpostgresql #jruby *Vishnu Atrai*
* Template generation for jdbcmysql and jdbcsqlite3 #jruby *Arun Agrawal*
* The -j option of the application generator accepts an arbitrary string. If passed "foo",
the gem "foo-rails" is added to the Gemfile, and the application JavaScript manifest
requires "foo" and "foo_ujs". As of this writing "prototype-rails" and "jquery-rails"
exist and provide those files via the asset pipeline. Default is "jquery". *fxn*
* jQuery is no longer vendored, it is provided from now on by the jquery-rails gem. *fxn*
* Prototype and Scriptaculous are no longer vendored, they are provided from now on
by the prototype-rails gem. *fxn*
* The scaffold controller will now produce SCSS file if Sass is available *Prem Sichanugrist*
* The controller and resource generators will now automatically produce asset stubs (this can be turned off with --skip-assets). These stubs will use Coffee and Sass, if those libraries are available. *DHH*
* jQuery is the new default JavaScript library. *fxn*
* Changed scaffold, application, and mailer generator to create Ruby 1.9 style hash when running on Ruby 1.9 *Prem Sichanugrist*
So instead of creating something like:
redirect_to users_path, :notice => "User has been created"
it will now be like this:
redirect_to users_path, notice: "User has been created"
You can also passing `--old-style-hash` to make Rails generate old style hash even you're on Ruby 1.9
* Changed scaffold_controller generator to create format block for JSON instead of XML *Prem Sichanugrist*
* Add using Turn with natural language test case names for test_help.rb when running with minitest (Ruby 1.9.2+) *DHH*
* Direct logging of Active Record to STDOUT so it's shown inline with the results in the console *DHH*
* Added `config.force_ssl` configuration which loads Rack::SSL middleware and force all requests to be under HTTPS protocol *DHH, Prem Sichanugrist, and Josh Peek*
* Added `rails plugin new` command which generates rails plugin with gemspec, tests and dummy application for testing *Piotr Sarnacki*
* Added -j parameter with jquery/prototype as options. Now you can create your apps with jQuery using `rails new myapp -j jquery`. The default is still Prototype. *siong1987*
* Added Rack::Etag and Rack::ConditionalGet to the default middleware stack *José Valim*
* Added Rack::Cache to the default middleware stack *Yehuda Katz and Carl Lerche*
* Engine is now rack application *Piotr Sarnacki*
* Added middleware stack to Engine *Piotr Sarnacki*
* Engine can now load plugins *Piotr Sarnacki*
* Engine can load its own environment file *Piotr Sarnacki*
* Added helpers to call engines' route helpers from application and vice versa *Piotr Sarnacki*
* Task for copying plugins' and engines' migrations to application's db/migrate directory *Piotr Sarnacki*
* Changed ActionDispatch::Static to allow handling multiple directories *Piotr Sarnacki*
* Added isolate_namespace() method to Engine, which sets Engine as isolated *Piotr Sarnacki*
* Include all helpers from plugins and shared engines in application *Piotr Sarnacki*
## Rails 3.1.1 (October 7, 2011) ##
* Remove hard dependency on bcrypt-ruby to avoid make ActiveModel dependent on a binary library.
You must add the gem explicitly to your Gemfile if you want use ActiveModel::SecurePassword:
gem 'bcrypt-ruby', '~> 3.0.0'
See GH #2687. *Guillermo Iguaran*
## Rails 3.1.0 (August 30, 2011) ##
* Alternate I18n namespace lookup is no longer supported.
Instead of "activerecord.models.admins.post", do "activerecord.models.admins/post" instead *José Valim*
* attr_accessible and friends now accepts :as as option to specify a role *Josh Kalderimis*
* Add support for proc or lambda as an option for InclusionValidator,
ExclusionValidator, and FormatValidator *Prem Sichanugrist*
You can now supply Proc, lambda, or anything that respond to #call in those
validations, and it will be called with current record as an argument.
That given proc or lambda must returns an object which respond to #include? for
InclusionValidator and ExclusionValidator, and returns a regular expression
object for FormatValidator.
* Added ActiveModel::SecurePassword to encapsulate dead-simple password usage with BCrypt encryption and salting *DHH*
* ActiveModel::AttributeMethods allows attributes to be defined on demand *Alexander Uvarov*
* Add support for selectively enabling/disabling observers *Myron Marston*
## Rails 3.1.1 (October 7, 2011) ##
* ruby193: String#prepend is also unsafe *Akira Matsuda*
* Fix obviously breakage of Time.=== for Time subclasses *jeremyevans*
* Added fix so that file store does not raise an exception when cache dir does
not exist yet. This can happen if a delete_matched is called before anything
is saved in the cache. *Philippe Huibonhoa*
* Fixed performance issue where TimeZone lookups would require tzinfo each time *Tim Lucas*
* ActiveSupport::OrderedHash is now marked as extractable when using Array#extract_options! *Prem Sichanugrist*
## Rails 3.1.0 (August 30, 2011) ##
* ActiveSupport::Dependencies#load and ActiveSupport::Dependencies#require now
return the value from `super` *Aaron Patterson*
* Fixed ActiveSupport::Gzip to work properly in Ruby 1.8 *Guillermo Iguaran*
* Kernel.require_library_or_gem was deprecated and will be removed in Rails 3.2.0 *Josh Kalderimis*
* ActiveSupport::Duration#duplicable? was fixed for Ruby 1.8 *thedarkone*
* ActiveSupport::BufferedLogger set log encoding to BINARY, but still use text
mode to output portable newlines. *fxn*
* ActiveSupport::Dependencies now raises NameError if it finds an existing constant in load_missing_constant. This better reflects the nature of the error which is usually caused by calling constantize on a nested constant. *Andrew White*
* Deprecated ActiveSupport::SecureRandom in favour of SecureRandom from the standard library *Jon Leighton*
* New reporting method Kernel#quietly. *fxn*
* Add String#inquiry as a convenience method for turning a string into a StringInquirer object *DHH*
* Add Object#in? to test if an object is included in another object *Prem Sichanugrist, Brian Morearty, John Reitano*
* LocalCache strategy is now a real middleware class, not an anonymous class
posing for pictures.
* ActiveSupport::Dependencies::ClassCache class has been introduced for
holding references to reloadable classes.
* ActiveSupport::Dependencies::Reference has been refactored to take direct
advantage of the new ClassCache.
* Backports Range#cover? as an alias for Range#include? in Ruby 1.8 *Diego Carrion, fxn*
* Added weeks_ago and prev_week to Date/DateTime/Time. *Rob Zolkos, fxn*
* Added before_remove_const callback to ActiveSupport::Dependencies.remove_unloadable_constants! *Andrew White*
* JSON decoding now uses the multi_json gem which also vendors a json engine called OkJson. The yaml backend has been removed in favor of OkJson as a default engine for 1.8.x, while the built in 1.9.x json implementation will be used by default. *Josh Kalderimis*
=== 3.12 / 2011-12-15
* Minor enhancements
* Added DEVELOPERS document which contains an overview of how RDoc works and
how to add new features to RDoc.
* Improved title for HTML output to include <code>--title</code> in the
title element.
* <code>rdoc --pipe</code> now understands <code>--markup</code>.
* RDoc now supports irc-scheme hyperlinks. Issue #83 by trans.
* Bug fixes
* Fix title on HTML output for pages.
* Fixed parsing of non-indented HEREDOC.
* Fixed parsing of <code>%w[]</code> and other % literals. Issue #84 by
Erik Hollensbe
* Fixed arrow replacement in HTML output munging the spaceship operator.
Issue #85 by eclectic923.
* Verbatim sections with ERB that match the ruby code whitelist are no
longer syntax-highlighted. Issue #86 by eclectic923
* Line endings on windows are normalized immediately after reading with
binmode. Issue #87 by Usa Nakamura
* RDoc better understands directives for comments. Comment directives can
now be found anywhere in multi-line comments. Issue #90 by Ryan Davis
* Tidy links to methods show the label again. Issue #88 by Simon Chiang
* RDoc::Parser::C can now find comments directly above
+rb_define_class_under+. Issue #89 by Enrico
* In rdoc, backspace and ansi formatters, labels and notes without bodies
are now shown.
* In rdoc, backspace and ansi formatters, whitespace between label or note
and the colon is now stripped.
Changes from previous:
----------------------
2011-11-12 John Peacock <john.peacock@havurah-software.org>
* .hgtags:
Tagging version '0.95' using shipit.
[f76612f96814] [tip]
* README, t/coretests.pm, vutil/vxs.xs:
Turns out the XS code didn't prevent the math ops from working after
all. Add a test to make sure we catch that and update README for
release.
[9f4e1ff7704c] [0.95]
* t/06noop.t:
Forgot to add test file for math noop methods
[ca0bc8526ea5]
* MANIFEST, vperl/vpp.pm:
Restore 5.14.x behavior of UNIVERSAL::VERSION to pure Perl code
[1dd0281f09b8]
* t/coretests.pm, vutil/vutil.c, vutil/vutil.h, vutil/vxs.xs:
Fix segfault with versions that start with 'v', especially
'version'.
[868edaf0223b]
2011-10-30 John Peacock <john.peacock@havurah-software.org>
* lib/version.pm, t/01base.t, t/02derived.t, t/03require.t,
t/05sigdie.t, t/coretests.pm, vutil/lib/version/vxs.pm:
Bump $VERSION in preparation for eventual release.
[3bcfd3008cbc]
* vutil/vxs.xs:
Revert change to UNIVERSAL::VERSION replacement, pending ruling from
the bench.
[d5c1282dfe13]
* vperl/vpp.pm:
For some reason, nomethod doesn't work in pure Perl code, so be
explicit about ops that are not allowed.
[5cad9cde035e]
2011-08-21 John Peacock <john.peacock@havurah-software.org>
* .hgtags:
Tagging version '0.94' using shipit.
[743538f58cb7]
* Makefile.PL, lib/version.pod, lib/version/Internals.pod:
Tweak POD and add LICENSE to Makefile.PL. Resolves:
https://rt.cpan.org/Public/Bug/Display.html?id=70120
[3a4fae29c763] [0.94]
* MANIFEST, t/05sigdie.t:
Add test to confirm that the $SIG{__DIE__} handling is correct.
[4a421bba05c9]
* lib/version.pm, t/01base.t, t/02derived.t, t/03require.t,
vperl/vpp.pm, vutil/lib/version/vxs.pm:
Prevent DIE handlers in user code from tripping up loading version.
Don't know how this hasn't shown up until now. Resolves:
https://rt.cpan.org/Ticket/Display.html?id=70260
[754fd86858af]
=== 1.3.1 / 2011-09-22
* 1 minor enhancement:
* Added parenthesize to add parens in certain contexts.
* 10 bug fixes:
* Add newline to 'do nothing' comment in a block... seems contrived. (andreacampi)
* Binary operations not work properly with some complex statements. (smorss)
* Fixed if statements with no body (smorss)
* Fixed logic for call with hash args in various locations (smorss)
* Fixed match3 on an assignment. (smorss)
* Fixed multiple nested rescue/ensure exprs (larsch)
* Fixed process_alias to parenthesize (smorss)
* Fixed process_and to parenthenize only when it makes sense.
* Fixed rescue with 2+ statements in resbody (smorss)
* Regexps with options other than /o were not showing flags. (smorss)
=== 3.0.9 / 2011-12-07
* 1 minor enhancement:
* Add missing test for a ternary with nil without a space before the colon (brynary)
=== 3.0.8 / 2011-11-16
* 4 minor enhancements:
* Add 6 missing ruby 1.9 tests (brynary)
* Added new 1.9 hash tests to pt_testcase.rb
* Version specific tests are now skipped at runtime, not test creation time
* Added new block arg tests.
=== 3.0.7 / 2011-09-21
* 2 bug fixes:
* Fixed and test to not have mandatory parens
* Fixed r2r's handling of dregexp options
== 1.6.5 - 19-Sep-2011
* Added the String#to_path instance method. This returns a Pathname
object.
* The architecture for the Windows gem is now "universal", and some
gemspec dependencies were simplified.
=== 2.3.1 / 2011-09-21
* 2 bug fixes:
* Fixed line numbers at end of special var+whitespace (larsch)
* Holy crap I was smokin' something good... Fixed 1.9.3 warning
=== 2.12.4 / 2011-11-28
* 3 bug fixes:
* Fixed Hoe.read_utf to work on both 1.8 and 1.9. Unicode files FTW! (tenderlove)
* Moved the rdoc dependency to the publish plugin from hoe-seattlerb.
* Only load rdoc once to fix test loading bugs.
Changes from previous:
----------------------
3.23 2011-02-20
- Merge in changes from core. Thanks BinGOs.
- Made SourceHandler understand that an executable binary file
is probably an executable.
- Added workaround for Getopt::Long 2.25 handling of
multivalue options. Fixes test failure on stock perl 5.6.2.
unexpected that man pages, which most people would want, are split,
while tk and python dependencies, expected to be the first to be
jettisoned on small systems, are in the base package.
Changes from previous:
----------------------
0.13 Wed, 24 Aug 2010 09:33:00 +0000
* Fix issue in dist.ini which was causing links to be incorrectly generated.
* Re-package to remove BEGIN { $VERSION hackery by using a newer
Dist-Zilla.
Changes from previous:
----------------------
0.20 2011-02-18
- Now require Perl 5.8.3 or higher. 5.8 has effectively been the
required Perl all along thanks to the dependency on Digest::MD5.
- Added encoding option, to make sure that files are read in their
proper encoding.
- Significant refactoring; only visible change should be that the
actualy MD5 checksum will no longer be included in the `file_md5sum`
failure diagnostics.
- Renamed `file_md5sum` to `file_md5sum_is`. The old name remains as an
alias for backwards compatibility.
- Renamed `file_contents_identical` to `files_eq`. The old name remains
as an alias for backwards compatibility.
- Added `file_contents_eq_or_diff()` and `files_eq_or_diff()`.
0.10 2011-02-18
- Maintainership taken by David E. Wheeler.
- Removed `examples/simple.pl`, since it wouldn't run anyway.
- Added prototypes to the test functions.
- Failure diagnostics now appear after the failure message, rather than
before.
- Renamed `file_contents_is` and `file_contents_isnt` to
`file_contents_eq` and `file_contents_ne`, respectively. The old names
remain as aliases for backwards compatibility.
- Reworked default test descriptions to include the names of the files
being tested.
- Wordsmithed some of the diagnostic messages.
which is required to update www/p5-POE-Component-Server-PSGI.
MooseX::CompileTime::Traits allows role application at compile time via use
statements. What this class does is provide an import method that will apply
each of the roles (along with any arguments for parameterized roles).
Changes from previous:
----------------------
From 1.29:
[RT 69782] Zefram reported race condition in t/sh-c.t,
fixed by adding polling loop.
Found that kill(-sig, pid) sometimes fails with
'process id not found' although a previous kill(0, pid)
succeeded. This is a race condition condition caused
by a newly forked child that hasn't called setsid() yet
and therefore its new process group id doesn't exist yet,
although the child responds to poll(). kill() now
deals with this case.
From 1.28:
[RT 69103] Typo fix by Salvatore Bonaccorso
Added support for processes called via 'sh -c' by
system() (see "Shell Processes" note in the manpage).
From 1.27:
[RT 62802] Pod fix by Salvatore Bonaccorso
[RT 63833] Applied patch to stop reaping PIDs of
no longer existing processes (submitted by perlbotics).
Added licensizer
[RT 63833] (second part) Added cleanup() class method
to delete timing data of reaped processes, avoiding
infinite memory growth on long-running processes
From 1.26: [RT 62285] Pod fix for redirect_output()
Fixed github link