view release on metacpan or search on metacpan
pod/Badger/Changes.pod view on Meta::CPAN
=head1 NAME
Badger::Changes - Summary of changes in the Badger toolkit
=head1 CHANGES
This document contains a brief overview of what has changed between
successive version of the Badger toolkit.
Badger is now considered to be mature, stable, reliable, and unlikely to
change significantly in future versions.
=head2 Version 0.16 - 5th June 2023
Fix numerous spelling mistakes in POD
L<https://github.com/abw/Badger/pull/18>
=head2 Version 0.15 - 24th August 2022
Added C<filename_format> option to L<Badger::Log::File>.
=head2 Version 0.14 - 16th August 2022
Added support for L<Cpanel::JSON::XS> to L<Badger::Codec::JSON>.
Added strftime option to L<Badger::Log>.
=head2 Version 0.13 - 18th October 2018
Silenced various "used only once" warnings.
Win32 fixes for L<Badger::Filesystem::Virtual>.
=head2 Version 0.12 - 12th December 2016
Added some tests for YAML modules in 3 test scripts that were failing.
=head2 Version 0.11 - 11th December 2016
Fix for missing file in distribution.
=head2 Version 0.10 - 11th December 2016
Added L<Badger::Comparable>, L<Badger::Date>, L<Badger::Duration>, L<Badger::Filter>,
L<Badger::Progress>, L<Badger::Workplace>, L<Badger::Workspace>
and L<Badger::Config::Filesystem>.
Refactored parts of L<Badger::Config>.
Changed L<Badger::Base> L<message()|Badger::Base/message()> method to allow
message formats to be defined in C<$self->{ messages }> when C<$self> is a
blessed hash object.
Added L<no_config()|Badger::Hub/no_config()> method to L<Badger::Hub>.
Fixed a bug in the L<auto_can|Badger::Class::Methods/auto_can()> feature
of L<Badger::Class::Methods> which prevented it from working with subclasses.
Fixed a bug in L<Badger::Debug> L<dump_ref()|Badger::Debug/dump_ref()>
to make it directly call other C<dump_XXX()> functions instead of relying on
inheritance of those methods through C<$self>.
Added L<plurality()|Badger::Utils/plurality()>,
L<inflect()|Badger::Utils/inflect()>,
L<list_each()|Badger::Utils/list_each()>,
L<hash_each()|Badger::Utils/hash_each()>,
L<extend()|Badger::Utils/extend()>,
L<merge()|Badger::Utils/merge()>,
L<split_to_list()|Badger::Utils/split_to_list()>,
L<join_uri()|Badger::Utils/join_uri()> and
L<resolve_uri()|Badger::Utils/resolve_uri()>,
to L<Badger::Utils>.
Added additional delegate hooks to L<Badger::Utils> to load utility functions
in L<Badger::Filesystem>, L<Badger::Timestamp>, L<Badger::Duration>,
L<Badger::Logic> and L<Badger::URL>.
Squashed a non-numerical warning in L<Badger::Timestamp>.
Added the L<UTF8|Badger::Constants/UTF8>, L<JSON|Badger::Constants/JSON>
and L<YAML|Badger::Constants/YAML> constants to L<Badger::Constants>.
Fixed L<Badger::Codec::YAML> to work better with L<YAML::XS> and
L<Badger::Codec::JSON> to work better with L<JSON::XS>.
Fixed a typo/bug in the L<Badger::Factory/type_args()> method which was
returning the wrong argument list.
Fixed a parser bug in L<Badger::Logic>.
Fixes to silence warnings in perl 5.22.
=head2 Version 0.09 - 8th February 2012
Added L<Badger::Codec::Timestamp>. Changed L<Badger::Timestamp> to numify
values to remove leading zeroes (e.g. 2012/04/20 now yields a month of 4
instead of 04).
Fixed some obscure bugs in the module loading code in L<Badger::Class> and
related modules that could potentially cause unpredictable results on
case insensitive file systems (e.g. Apple's HFS with default settings).
Added the L<restat()|Badger::Filesystem::Path/restat()> method to
L<Badger::Filesystem::Path>.
Added documentation for various methods that was missing. Temporary
disabled the Pod::Coverage tests on AUTOMATED_TESTING systems. We know
there's still stuff to do.
Added SLASH to Badger::Constants
=head2 Version 0.08 - 13th January 2012
Restored the C<$VERSION> variable to L<Badger.pm|Badger> rather than using
the C<version> import hook in L<Badger::Class> which confused PAUSE.
Changed L<Badger::Test::Manager> to detect undefined results.
Merged Michael Grubb's bug fix for L<Badger::Base>:
L<https://github.com/abw/Badger/pull/1>
Fixed some minor documentation issues.
=head2 Version 0.07 - 2nd January 2012
Added L<Badger::Storage>, L<Badger::Storage::Memory>.
and L<Badger::Storage::Filesystem>.
Added L<Badger::Codec::TT>.
Added the L<permissions()|Badger::Filesystem::Path/permissions()> method to
L<Badger::Filesystem::Path>. Added
L<temp_directory()|Badger::Filesystem/temp_directory()> and
L<temp_file()|Badger::Filesystem/temp_file()> methods to
L<Badger::Filesystem>. Also changed the L<Path()|Badger::Filesystem/Path()>,
L<File()|Badger::Filesystem/File()> and L<Dir()|Badger::Filesystem/Dir()>
functions to short-circuit and return if passed a single object that is
already of the expected type.
Added some extra comparison methods to L<Badger::Timestamp>
(L<not_equal()|Badger::Timestamp/not_equal()>,
(L<not_before()|Badger::Timestamp/not_before()> and
L<not_after()|Badger::Timestamp/not_after()>) and overloaded
these and other methods onto the C<==>, C<!=>, C<E<lt>>, C<E<gt>>, C<E<lt>=>
and C<E<gt>=> operators.
Added the L<export_before()|Badger::Exporter/export_before()> and
L<export_after()|Badger::Exporter/export_after()> methods to
L<Badger::Exporter>.
Added the L<if_env|Badger::Test/if_env> import hook and
C<-a|Badger::Test/all()> option to L<Badger::Test> to make it easier to
define tests that don't get run unless a particular environment variable
is set (e.g. for Pod coverage/kwalitee tests that you only want to run
if either of the C<RELEASE_TESTING> or C<AUTOMATED_TESTING> environment
variables is set).
Added the L<random_name()|Badger::Utils/random_name()>,
L<camel_case()|Badger::Utils/camel_case()> and
L<permute_fragments()|Badger::Utils/permute_fragments()> functions to
L<Badger::Utils>. Also add some extra debugging code to
L<params()|Badger::Utils/params()> and
L<self_params()|Badger::Utils/self_params()> to catch any attempt to pass an
odd number of arguments.
Changed the L<Badger::Factory> module to use
L<permute_fragments()|Badger::Utils/permute_fragments()> on the module path
when specified as a single string. Also added the
L<default()|Badger::Factory/default()> and
L<names()|Badger::Factory/names()> methods along with their corresponding
package variable magic.
Added the L<debug_callers()|Badger::Debug/debug_callers()>,
L<debugf()|Badger::Debug/debugf()> and L<debug_at()|Badger::Debug/debug_at()>
methods to L<Badger::Debug>.
Added the L<alias()|Badger::Class/alias()> method to
L<Badger::Class>.
Added the L<auto_can()|Badger::Class::Methods/auto_can()> method to
L<Badger::Class::Methods>.
Changed the L<Badger::Class::Config> module to store the configuration scheme
in C<$CONFIG_SCHEMA> instead of C<$CONFIG>.
Added the L<Badger::Codec::HTML> module which defines the C<html> codec.
Changed the L<throw()|Badger::Base/throw()> method in L<Badger::Base> to
pass the exception type to L<exception()|Badger::Base/exception()>.
Changed the L<try()|Badger::Base/try()> method in L<Badger::Base> to
preserve the list/scalar calling context and to handle false but defined
values.
Cleaned up and generalised the L<Badger::Hub> module. The Badger-specific
data has now been moved into L<Badger::Hub::Badger>. The C<configure()>
method is now called L<construct()|Badger::Hub/construct()>.
=head2 Version 0.06
Added L<copy_file()|Badger::Filesystem/copy_file()> and
L<move_file()|Badger::Filesystem/move_file()> to L<Badger::Filesystem> and
L<copy()|Badger::Filesystem/copy()> and L<move()|Badger::Filesystem/move()>
methods to L<Badger::Filesystem::File>.
Added L<chmod_path()|Badger::Filesystem/chmod_path()> to L<Badger::Filesystem>
and L<chmod()|Badger::Filesystem::Path/chmod()> to L<Badger::Filesystem::Path>.
Added L<Bin()|Badger::Filesystem/Bin()> to L<Badger::Filesystem>.
Added the L<encoding()|Badger::Filesystem::File/encoding()> method to
L<Badger::Filesystem::File> for specifying the encoding of a file, along
with the L<utf8()|Badger::Filesystem::File/utf8()>,
L<bytes()|Badger::Filesystem::File/bytes()>,
L<crlf()|Badger::Filesystem::File/crlf()> and
L<raw()|Badger::Filesystem::File/raw()> methods for enabling different
encoding layers.
Added the L<codec()|Badger::Filesystem::File/codec()> method to
L<Badger::Filesystem::File> for specifying a serialisation codec to use in
conjunction with the new L<data()|Badger::Filesystem::File/data()> method.
Added L<Badger::Timestamp>. This is returned by the new
L<created()|Badger::Filesystem::Path/created()>,
L<accessed()|Badger::Filesystem::Path/accessed()> and
L<modified()|Badger::Filesystem::Path/modified()> methods in
L<Badger::Filesystem::Path>.
Added L<Badger::Logic>.
Added L<Badger::Log> and L<Badger::Log::File>.
Added L<numlike()|Badger::Utils/numlike()> to L<Badger::Utils>
as an alias for C<looks_like_number>. It's the numerical counterpart
to L<textlike()|Badger::Utils/textlike()> and is significantly easier
to type.
Added L<debug_msg()|Badger::Base/debug_msg()> to L<Badger::Base>. Also added
the C<Badger::Base::Trial> class definition for use with the
L<try()|Badger::Base/try()> method.
Added L<lib|Badger/lib> import hook to L<Badger>.
Added L<bclass|Badger::Class/bclass> as an alias for
L<class|Badger::Class/class> in L<Badger::Class>.
Changed L<Badger::Class::Config> to maintain the order of configuration
parameters where possible (i.e. when expressed as a list ref rather than
a hash ref). Also added C<target:var> fallback which looks in the target
object or hash ref for the variable. This allows options to default to
the values set by preceeding options.
Changed L<Badger::Codec::JSON> to use L<JSON::XS> if available.
Mr T is now using Badger 0.06 in production code and is happy to report that
everything seems to be working rather well. Anyone for a game of tennis?
=head2 Version 0.05 - 23rd December 2008
Refactored L<Badger::Factory>.
Added support to L<Badger::Exporter> for the C<=> pseudo-sigil which can be
used to create constants on the fly.
package Badger::Example;
use Badger::Class
exports => {
tags => {
math => {
e => '=2.718',
pi => '=3.142',
phi => '=1.618',
},
}
};
package main;
use Badger::Example ':math';
print e; # 2.718
print pi; # 3.142
print phi; # 1.618
Mr T is starting to feel rather confident about building a production system
based on Badger v0.05.
=head2 Version 0.04 - 2nd December 2008
Added the L<throw_msg()|Badger::Base/throw_msg()> method to L<Badger::Base>.
Added L<init_method|Badger::Class/init_method> hook to L<Badger::Class> and
L<initialiaser()|Badger::Class/initialiaser()> to L<Badger::Class::Methods>.
Changed L<Badger::Exception> L<match_type()|Badger::Exception/match_type()>
method to accept a list or hash reference, or a string of whitespace delimited
exception types.
Changed L<Badger::Factory> to pass C<$name> as an argument to various methods.
Also passes arguments to load() (required for Template::TT2::Plugins)
Also modified L<item()|Badger::Factory/item()> to accept a non-textlike
type argument which bypasses the module lookup.
Moved a whole bunch of stuff out of L<Badger::Class> into C<Badger::Class::*>
modules.
Added L<Badger::Class::Config> for simple configuration.
Added L<hash()|Badger::Methods/hash()> method to L<Badger::Methods> and
L<hash_methods|Badger::Class|hash_methods> hook to L<Badger::Class>.
Added L<trace()|Badger::Exception/trace> hook and related paraphernalia to
L<Badger::Exception>. Added the C<-t> / C<--trace> command line options to
L<Badger::Test> to enable it when running tests. Also added C<-h> / C<--help>
options.
Added L<Codec()|Badger::Codecs/Codec()> exportable subroutine to
L<Badger::Codecs>.
Added L<Badger::Codec::URL>. It's similar to L<Badger::Codec::URI>,
but slightly different. See the TT uri/url filters for the reason.
Changed the L<prototype()|Badger::Prototype/prototype()> method in
L<Badger::Prototype> to accept a single C<undef> value to clear any current
prototype. Also added the L<has_prototype()|Badger::Prototype/has_prototype()>
method.
Mr T is looking on the bright side about the possibility of building a
production system based on Badger v0.04, but still advises caution.
=head2 Version 0.03 - 7th October 2008
Added delegate loaders to L<Badger>. This provides some semantic sugar
for loading a bunch of different C<Badger::*> modules in one go.
use Badger
Filesystem => 'FS $Bin',
Codecs => 'storable base64',
Debug => {
modules => 'My::Module',
};
Added L<different()|Badger::Test::Manager/different()> to
L<Badger::Test::Manager>.
Added L<textlike()|Badger::Utils/textlike()> to L<Badger::Utils>
Added the L<overload|Badger::Class/overload>
L<as_text|Badger::Class/as_text> and
L<is_true|Badger::Class/is_true> import hooks and related method to
L<Badger::Class>. These delegate to the C<overload> module.
Added the L<print|Badger::Filesystem::File/print()> method to
L<Badger::Filesystem::File>.
Added support for
L<dynamic root directories|Badger::Filesystem::Virtual/"virtual root directories">
to L<Badger::Filesystem::Virtual>.
Added the L<defaults|Badger::Class/defaults> and L<aliases|Badger::Class/aliases>
hooks to L<Badger::Class>, implemented by L<Badger::Class::Defaults> and
L<Badger::Class::Aliases>, respectively. There are still experimental.
Fixed up some stat handling in L<Badger::Filesystem> to help with subclassing
in L<Badger::Filesystem::Virtual>
Mr T pities the fool that attempts to builds a production system based on
Badger version 0.03 without first evaluating it carefully and reading the
documentation.
=head2 Version 0.02 - 6th September 2008
L<Badger::Class> got the L<vars|Badger::Class/vars()> method and hook
for declaring and defining variables.
L<Badger::Utils> gained the ability to load and export functions from
L<Scalar::Util>, L<List::Util>, L<List::MoreUtils>, L<Hash::Util> and
L<Digest::MD5>.
Various documentation updates.
Mr T admires the tenacity of anyone attempting to build a production system
based on Badger v0.02 and hopes they have a thorough test suite.
=head2 Version 0.01 - 27th August 2008
This was the first release version.
Mr T pities the fool who builds a production system based on Badger v0.01.
=head1 AUTHOR
Andy Wardley E<lt>abw@wardley.orgE<gt>
=head1 COPYRIGHT
Copyright (C) 2008-2013 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
pod/Changes.pod view on Meta::CPAN
=head1 NAME
Changes - Changes in FormBuilder 3.0, please also see the README
=head1 COMPATIBILITY
FormBuilder 3.x should be completely compatible with FormBuilder 2.x,
with the singular exception that you can no longer use the shortcut
autoload style of getting to fields:
$form->field(name => 'category', options => \@opt);
$form->category(options => \@opt); # WRONG
In order to allow the second form, you must specify the C<fieldsubs>
option to C<new()>.
=head1 VERSION 3.06
Maintenance release with a couple new features: support for "charset: utf8"
in C<Source::File>, add_before_option/add_after_option c/o Victor Porton,
and support for HTML5 type names c/o Wolfgang Radke.
=head1 VERSION 3.0501
Bugfix release to repair a memory leak and a few "other" field edge cases.
=head1 VERSION 3.05
Just a short time after 3.04, several new features evolved very quickly:
=head2 Fieldset support
A new C<fieldsets> option to C<new()> and a C<fieldset> option to
the C<field()> method can be used to organize your form into sections.
Currently works with the built-in C<< <table> >> and new C<< <div> >>
renderer only, but template support is in the works.
=head2 Div rendering
In addition to the builtin C<< <table> >> rendering module, a new
C<Div> rendering template has been included as well. If you select
this, you get a table-free form which you can manipulate using
stylesheets:
$form->new(template => {type => 'div'});
This provides a couple additional benefits, like separate divs
for every submit button.
=head2 Additional classes
A couple additional CSS classes were added, wrapping around the
fields as a unit for better styling. The C<< <form> >> tag now
gets a C<.fb_form> style as well.
=head2 Fixed HTML::Template support
A couple bugs were introduced in 3.04 that have been fixed, and
more tests added.
=head1 VERSION 3.04
In addition to the below features, a new Catalyst FormBuilder plugin
is available on CPAN, C<< Catalyst::Plugin::FormBuilder >>.
=head2 New $form->prepare() method
You can now use C<< $form->prepare() >> to get back an expanded
hashref just before C<< $form->render() >> is called. This allows
you to use FormBuilder with Catalyst or other frameworks more
easily, where the rendering is done elsewhere:
my %expansion = $form->prepare;
This could be passed directly to, say, Template Toolkit without
having to use FormBuilder's Template Toolkit support.
=head2 New "inflate" option to field()
This is used the convert fields on the fly into objects or other
values. For example, you could convert a "date" field into a
DateTime object. Nice patch from Mark Hedges, check it out.
=head2 Turkish messages
Thanks to Recai Oktas.
=head2 Added "missing" property for fields
This can be queried in templates. To see if a field is missing altogether,
you can check "field.missing" or "missing-field" depending on your
template engine of choice.
=head2 Removal of custom C<puke> and C<belch>
FormBuilder now uses C<Carp> and C<@CARP_NOT> to handle its errors.
As such, you will probably notice some differences in error output.
The benefit is that setting C<debug> will give you a stack trace
on fatal errors.
=head2 CGI::FormBuilder::Template::Builtin
Moved the C<render_builtin()> method to the above module, to
unify the rendering schemes.
=head2 New FORMBUILDER_DEBUG environment variable
Setting this has the same effect as using the C<debug> option.
=head2 Removal of excess documentation
Removed all the stub docs from C<Field::*> and C<Messages::*>
to make CPAN happy.
=head1 VERSION 3.0302
This is a bugfix release to repair these main items:
- optgroups bugfix for complex arrays
- removal of HTML::Entities support due to utf8 issues
- new es_ES Messages module with better translations
- a patch from Mark Hedges to enable plugin modules for mailresults()
The rest of the features remain the same as below.
=head1 VERSION 3.03
=head2 Subclassable Fields
Each field is now rendered by its own class, named for the field type.
For example, text fields are rendered by C<CGI::FormBuilder::Field::text>.
This allows you to create custom field types and plugging them in by
creating your own C<CGI::FormBuilder::Field::whatever_you_want> module.
Thanks to Peter Eichman for his contributions to this scheme.
=head2 Messages Localization
All messages are now handled in a similar way to field types: They are
delegated to C<CGI::FormBuilder::Messages::locale> where "locale" is
the appropriate string such as "en_US" or "da_DK". A number of localizations
are included as part of the standard distribution.
There are two ways to use these messages: Either the 'auto' messages
mode or by specifying a specific locale:
my $form = CGI::FormBuilder->new(messages => 'auto'); # check client
my $form = CGI::FormBuilder->new(messages => ':da_DK'); # specified
You can create your own messages by copying C<_example.pm> and modifying
it for your language. When using messages in this way, the HTTP Charset
is changed to C<utf-8>.
=head2 Select optgroup support
By using the C<field()> option C<optgroups>, you can now cause select
fields to automatically generate optgroup tags:
$form->field(name => 'browser', options => \@opt, optgroups => 1);
See the documentation on C<optgroups> for more details.
=head2 Data::FormValidator Support
Thanks to another great patch from Peter Eichman, C<Data::FormValidator>
is supported as a validation option to C<new()>, just by passing it in
as an object. See the documentation on C<validate> for more information.
=head2 Option sorting by LABELNAME or LABELNUM
You can now sort options by C<LABELNAME> or C<LABELNUM>, similar to
the value-based sorting of C<NAME> and C<NUM>. See the documentation
for more details.
=head2 XHTML Compliance
Generated code now validates against L<http://validator.w3.org>.
This includes stuff like lowercase C<get> and C<post> methods,
lowercase C<onchange> and C<onsubmit> actions, and so on.
=head1 VERSION 3.02
=head2 Multi-Page Form Support
A new module, C<CGI::FormBuilder::Multi>, has been added to handle the
navigation and state of multi-page forms. A multi-page form is actually
composed of several individual forms, tied together with the special
CGI param C<_page>:
my $multi = CGI::FormBuilder::Multi->new(
# first args are hashrefs per-form
\%form1_opts,
\%form2_opts,
\%form3_opts,
# remaining options apply to all forms
header => 1,
method => 'POST',
);
my $form = $multi->form; # current form
if ($form->submitted && $form->validate) {
# you write this
do_data_update($form->fields);
# last page?
if ($multi->page == $multi->pages) {
print $form->confirm;
exit;
}
$multi->page++; # next page counter
$form = $multi->form; # fetch next page's form
}
print $form->render;
For more details, see L<CGI::FormBuilder::Multi>.
=head2 External Source File
Inspired by Peter Eichman's C<Text::FormBuilder>, the new C<source>
option has been added to C<new()> which enables the use of an external
config file to initialize B<FormBuilder>. This file takes the format:
# sample config file
method: POST
header: 1
submit: Update, Delete
fields:
fname:
label: First Name
size: 50
validate: NAME
lname:
label: Last Name
size: 40
validate: NAME
sex:
label: Gender
options: M=Male, F=Female
jsclick: javascript:alert("Change your mind??");
validate: M,F
required: ALL
messages:
form_invalid_text: Please correct the following fields:
form_required_text: Please fill in all <b>bold</b> fields.
You can even pre-parse this file, and generate a module from it
which you can then reuse in multiple scripts using the C<write_module()>
function. For more details, see L<CGI::FormBuilder::Source::File>.
=head2 "Other" Fields
The new C<other> option has been added to C<field()>. If specified,
a text box will be added to the right of the field, and its value
will be used if the main field is not filled in. It will be subject
to the same required and validation checks as the main field:
$form->field(name => 'favorite_color',
options => [qw(Red Green Blue)],
validate => 'NAME',
other => 1); # allow "other"
This would create HTML something like this:
Favorite Color: []Red []Green []Blue []Other: [____________]
The text "Other:" is controlled by the message C<form_other_default>.
=head2 Growable Fields
Thanks to a patch from Peter Eichman, C<field()> now also accepts
a C<growable> option. This option enables some JavaScript hooks
that add an "Additional [label]" button on text and file fields:
Data File: [______________] [Additional Data File]
When you click on the "Additional Data File" button, another box will be
appended, allowing you to add more files. The values are then retrieved
in the usual fashion:
my @files = $form->field('data_file');
Like "other" fields, all elements are subject to validation checks. The
text "Additional %s" is controlled by the message C<form_grow_default>.
=head2 Support for C<CGI::FastTemplate>
Thanks once again to Peter Eichman (busy guy), the module C<CGI::FormBuilder::Template::Fast>
has been included. This adds the template type C<Fast> as an interface
to C<CGI::FastTemplate>:
my $form = CGI::FormBuilder->new(
template => {
type => 'Fast',
define => {
form => 'form.tmpl',
field => 'field.tmpl',
}
}
See L<CGI::FormBuilder::Template::Fast> for more details. Thanks again
Peter!
=head2 Subclassable Templates and tmpl_param()
The 2.x C<tmpl_param()> method has been reimplemented finally. In
addition, the included template modules are now completely subclassable,
meaning that you can create an entire template engine with something
like this:
package My::HTML::Template;
use CGI::FormBuilder::Template::HTML;
use base 'CGI::FormBuilder::Template::HTML';
# new() is inherited
sub render {
my $self = shift;
my $form = shift; # complete form object
# do any special actions here
$self->SUPER::render;
}
For more details, see L<CGI::FormBuilder::Template>.
=head2 Message Changes
All messages were reworded to make them shorter and easier to read.
The phrase "You must" was removed from all of them. To see the
new messages, cut-and-paste this code:
perl -MCGI::FormBuilder::Messages \
-e 'CGI::FormBuilder::Messages->messages'
In addition, the C<form_submit_default> and C<form_reset_default>
messages were not even being used, and field labels were not being
properly highlighted on error. These problems have been fixed.
=head2 Autoloaded Fields
The 2.x feature of C<< $form->$fieldname() >> has been reimplemented,
but using it requires the C<fieldsubs> option:
my $form = CGI::FormBuilder->new(fields => \@f, fieldsubs => 1);
Read the docs for some caveats.
=head2 Disabled Form
Similar to a static form, you can set C<< disabled => 1 >> in C<new()>
or C<render()> to display a form with grayed-out input boxes. You can
also set this on a per-field basis using C<field()>.
=head2 Verbatim HTML Options
If you want to include HTML in your field options, set C<cleanopts>
to 0 in C<field()> (for one field) or C<new()> (for all fields).
=head2 Compatibility Methods
For compatibility with other modules, B<FormBuilder> now includes
C<param()>, C<query_string()>, C<self_url()>, and C<script_name()>.
=head1 VERSION 3.01
This was a bugfix release, including the following changes:
- fixed major problems with keepextras, including a reversed ismember test
- added debug messages to keepextras and changed a few other debugs
- added patch from Peter Eichman to fix scalar $field->tag and $field->tag_value
- converted most all XHTML generation methods to only returning scalars
- fixed the columns option which was totally broken for radio buttons
- added a feature to plop in {border => 0} in columns as well
- added the 2.x 'override' alias for field() 'force' which was missing
- also added a 'defaults' alias for field() 'value' for CGI.pm happiness
- more tests since there were way too many bugs
In addition there were many documentation updates and changes.
=head1 VERSION 3.00
=head2 Internals
The internals have been completely rewritten, nearly from the ground up.
All of the major functions have been split into methods, and objects have
been created for the form, fields, messages, CGI params, and so on. Several
new sub-modules have been created, including:
CGI::FormBuilder::Field
CGI::FormBuilder::Messages
CGI::FormBuilder::Template
CGI::FormBuilder::Template::HTML
CGI::FormBuilder::Template::Text
CGI::FormBuilder::Template::TT2
Many of these modules can be subclassed and overridden if desired. In
addition, the template engine has been rewritten to allow "plugging in"
of additional template modules, simply by specifying the name of the
module to the 'template' option in new().
For more details, see the man pages for the individual modules above.
=head2 Style Sheets
Stylesheets are now generated if the C<stylesheet> option is specified
to B<FormBuilder>. This can either be C<1> to turn it on, or a full
path to a style sheet to include. When used, all tags are then output
with a C<class> attribute, named C<styleclass> plus the name of
the tag:
my $form = CGI::FormBuilder->new(
fields => [qw/name email/],
styleclass => 'myFB', # default is "fb_"
stylesheet => 1, # turn on style
);
print $form->render;
# HTML will include
# <input class="myFBname" id="name" name="name" type="text" />
# <input class="myFBemail" id="email" name="email" type="text" />
=head2 Compliant XHTML
The output should be fully-compliant XHTML finally. Really. Maybe.
=head2 Attributes and Field Objects
Individual accessors have been added for every attribute that FormBuilder
maintains. For example, here's a snippet of code to demonstrate:
if ($form->stylesheet) {
# loop thru fields, changing class
for ($form->fields) {
next if /_date$/; # skip fields named "XXX_date"
# each field is a stringifiable object with accessors
if ($_->options) {
# has options
$_->class('my_opt_style');
} else {
# plain text box
$_->class('my_text_style');
}
}
}
This code checks to see if the C<stylesheet> property has been set on
the main C<$form>. If so, then it loops thru all the fields, skipping
those named C<XXX_date>. Of the remaining fields, those that have options
have their C<class> attribute changed to C<my_opt_style>, and those
without options have it set to C<my_text_style>.
In addition, you can individually render every part of the form yourself.
by calling the appropriate method. For example:
print $form->header; # just the header
print $form->script; # opening JavaScript
print $form->title; # form title
print $form->start; # opening <form> tag
for ($form->fields) {
print $_->label; # each field's human label
print $_->tag; # each field's <input> tag
}
print $form->end; # closing </form> tag
For a complete list of accessors, see the documentation for both
L<CGI::FormBuilder> and L<CGI::FormBuilder::Field>.
=head2 Messages
Many messages have been reworded, and several new messages were added to
make it easier to customize individual text. In addition, you can now
specify messages to individual fields:
$form->field(name => 'email',
message => 'Please enter a valid email address');
For more details, see C<CGI::FormBuilder::Messages>.
=head2 HTML::Entities encoding
HTML character encoding is now dispatched to C<HTML::Entities>, if available.
This can be downloaded as part of the C<HTML::Parser> module set on CPAN.
=head2 Documentation
Documentation has been updated and somewhat reorganized, which was long
overdue.
=head1 AUTHOR
Copyright (c) L<Nate Wiger|http://nateware.com>. All Rights Reserved.
This module is free software; you may copy this under the terms of
the GNU General Public License, or the Artistic License, copies of
which should have accompanied your Perl kit.
view all matches for this distribution
view release on metacpan or search on metacpan
MakeMethods/Docs/Changes.pod view on Meta::CPAN
=head1 NAME
Class::MakeMethods::Docs::Changes - History of Class::MakeMethods
=head1 SYNOPSIS
Revision history for Class::MakeMethods.
=head1 CHANGES
=head2 Version 1.009
=over 4
=item 2003/09/25
Added Emulator::mcoder and compatibility tests.
Released to CPAN as Class-MakeMethods-1.009.tar.gz.
=item 2003/09/22
Added support for lvalue methods to Template and Template::Generic. Added a few tests to demonstrate it's working. Added an example to Docs::Examples.
Added Emulator::accessors and compatibility tests.
Minor documentation improvements.
=back
=head2 Version 1.008
=over 4
=item 2003/09/05
Adjusted layout of test directories in another attempt to solve a MakeMaker/shell-glob issue on Windows that was preventing make test from running correctly.
Removed Template::PseudoHash, since this package never really worked, as pointed out by a question from Mike Castle. Management of array-based objects can be handled by any of the existing ::Array subclasses, and support for pseudo-hashes would not p...
Added support for "Template::Universal:forward_methods -delegate" and "Template::Generic:object --soft_delegate" based on a suggestion from Peter Chen. Extended behavior of Template -subs handling to make it easy to add such functionality in the futu...
Released to CPAN as Class-MakeMethods-1.008.tar.gz.
=item 2003/09/02
Adjusted DESTROY behavior of Template::InsideOut and cleaned up documentation.
=back
=head2 Version 1.007
=over 4
=item 2003/09/01
Made Template definitions automatically import their class's generic
definitions, if present. This eliminates the need for Generic
subclasses to explicitly redeclare every method it inherits, and
should obviate the "missing declaration" problems referenced below.
Updated the names of several Template subclasses, with stubs at
the old names for backwards compatibility: Flyweight becomes
InsideOut, Static becomes Global, and Struct becomes Array.
Added Template::Inheritable and basic tests for it.
Eliminated use of legacy Test.pm from remaining tests, except for
MethodMaker emulation.
Rearranged test directories in an effort to avoid a reported bug
with the test path of t/*/*.t under Windows.
Released to CPAN as Class-MakeMethods-1.007.tar.gz.
=item 2003/08/27
Added section to Class::MakeMethods/EXTENDING documentation based
on question from Terrence Brannon.
=item 2003/02/07
Fixed missing declaration of Template::Hash:instance, reported via RT.
=back
=head2 Version 1.006
=over 4
=item 2003/01/26
Additional documentation touch-ups. Moved miscellaneous POD files into the Docs directory.
Added new test scripts from Class-MethodMaker-1.08, although we
don't yet pass them. In particular, I need to add support for the
new method types added in 1.04: tie_scalar, tie_list, object_tie_list,
object_tie_hash
Also need to compare against the changes included in Class-MethodMaker-1.09 and 1.10, which don't seem to include any new test code, but do include functionality changes.
=item 2002/12/12
Re-integrated Template and Emulator packages; the separate distribution
turned out to be a hastle rather than a convenience. However, in
order to keep test scripts for each subsystem separate, I'm now
using a Makefile.PL attribute to specify a two-level deep directory
tree of test scripts; I hope this doesn't break on Windows...
Fixed possible "use of undefined as a reference" problem in
Standard::*::array method generators, reported by Jared Rhine.
Tried to improve documentation, based on feedback from Jared Rhine.
Expunged ReadMe.pod. Extracted method catalogs into Catalog.pod.
Moved examples to new Example.pod, although that underlines how
few examples there are.
=back
=head2 Version 1.005
=over 4
=item 2002/06/06
Added Autoload interface.
Modifed Attribute interface to add "inheritable" default logic for
Maker class parameter. (Suggested by Malcolm Cook.)
Fixed typo in documentation for Standard::Universal. (Spotted by
Malcolm Cook.)
=back
=head2 Version 1.004
=over 4
=item 2002/03/23
Released to CPAN as Class-MakeMethods-1.004.tar.gz.
=item 2002/03/16
Allow double-colons between package name and method generator name.
=item 2002/02/19
Fixed related use of undef in Standard::*:hash methods.
=item 2002/02/14
Adjusted Standard::*:hash methods to avoid assuming that the hashref
already exists.
=item 2002/02/07
Added missing *_reset => clear to Template number --counter interface.
=item 2002/02/02
Adjusted error message in Utility::ArraySplicer
=item 2002/01/26
Applied small documentation corrections suggested by Adam Spiers.
Added Standard::Universal:alias.
=back
=head2 Version 1.003
=over 4
=item 2002/01/24
Folded "Getting Started Guide" POD into main module documentation.
Renamed Utility::TakeName to Emulator.
Split Template and Emulator packages into their own distributions.
B<Please Note:> This means that to fully upgrade you must retrieve
all three of these files:
Class-MakeMethods-1.003.tar.gz
Class-MakeMethods-Template-1.003.tar.gz
Class-MakeMethods-Emulator-1.003.tar.gz
Of course, if you're not using the Template or Emulator classes,
there's no need to download them...
=item 2002/01/21
Started bumping sub-version numbers and not using sub-sub-versions,
to shorten distribution names and more closely match standard
practice.
Added Composite::Inheritable:hook and matching test. Added
Composite->CurrentResults method to easily access, update composite
method results.
=back
=head2 Version 1.000.*
=over 4
=item v1.000.16 - 2002/01/21
Released to CPAN as v1.000.016.
=item v1.000.16 - 2002/01/20
Adjusted the hash and array methods in the Standard::* and Composite::*
packages to properly accept a set-contents call with a single
reference argument, and to return contents rather than ref in list
context.
=item v1.000.16 - 2002/01/14
Fixed a subtle bug in a test script inherited from Class::MethodMaker:
4_Template_hash_hash_array.t and 7_MethodMaker_hash_of_lists.t both
relied on "keys %hash" returning the keys in a particular order,
which *almost* always worked, but caused failures on one or more
Perl version/platform combinations.
=item v1.000.15 - 2002/01/14
Released to CPAN as v1.000.015.
=item v1.000.15 - 2002/01/12
Renamed Basic::Static to Basic::Global for consistency with Standard
and Composite. Hopefully, there aren't many users of this module
yet; please accept my apologies if this breaks your code.
Eliminated "local @_ = ...", which appears to cause a scoping
problem on Perl 5.6. Thanks to Adam Spiers for a thorough bug
report. (See http://www.perlmonks.org/index.pl?node_id=138370 for
details.)
Extended Template::Generic to support "array --get_set_ref" method
style requested by Adam Spiers.
Various documentation tweaks, including feedback from Adam Spiers:
Adjusted documentation to downplay Basic::* modules as a starting
point, in favor of Standard::* ones. Trimmed out some duplicated
documentation in favor of more "See LE<lt>...E<gt>" links. Adjusted
documentation of *::Inheritable packages in an attempt to clarify
the way in which the inheritance tree is searched for a value.
Factored out common code from Standard::Inheritable and
Composite::Inheritable to new module, Utility::Inheritable. Factored
out common code from Standard::Hash and Standard::Array to new
module, Utility::ArraySplicer. Factored out common code from
Template::Universal to new module, Utility::Ref. Renamed
Emulator::TakeName to Utility::TakeName (this is internal use only,
so there should be no public impact).
=item v1.000.15 - 2001/12/01
Adjusted Template::Universal's code for _CALL_METHODS_FROM_HASH_,
to ensure that method/arg pairs are called in order they were passed
in.
=item v1.000.15 - 2001/07/04, 2001/07/19
Minor additions to documentation of various method types.
=item v1.000.14 - 2001/07/01
Released as v1.000.014.
=item v1.000.14 - 2001/06/25, 2001/06/29, 2001/07/01
Removed Makefile rule from Makefile.PL to avoid warnings when used
with recent versions of ExtUtils::MakeMaker, which also define a
similar rule. (Based on bug report from Ron Savage.)
Fixed test failure for machines with P5.6 but no Attribute::Handlers.
(Reported by Ron Savage, Jay Lawrence.)
Added Template::Flyweight:string_index. (But still needs test
script.)
Added Standard::Universal. (But still needs test scripts.)
Minor touch-ups to ReadMe and Guide documentation.
=item v1.000.13 - 2001/05/16, 2001/05/18, 2001/05/20, 2001/06/02, 2001/06/22, 2001/06/24
To date, this module has been circulated under several provisional
names: it was originally floated as a possible version-2 rewrite
of Class::MethodMaker, then renamed to Class::Methods when it forked
from that project, and then briefly to Class::MethodGenerator.
(Note that it can be surprisingly difficult to comply with both of
these L<perlmodlib> guidelines: "To be portable each component of
a module name should be limited to 11 characters. [...] Always
try to use two or more whole words.") In the end, I selected
Class::MakeMethods, as it is two whole words, and is reminiscent
of Class::MethodMaker without being confusing (I hope!), and I
believe this issue is now settled.
Standardized syntax for global options; renamed -implementation to
-MakerClass and -target_class to -TargetClass. Moved $TargetClass
and other context information into %CONTEXT with _context accessor.
Added ForceInstall.
Completed re-simplification of build directories; we're back to a
single Makefile, which avoids a warning in P5.6.0.
Added Attribute interface for use with P5.6 and later, based on
Attribute::Handlers.
Renamed "Simple" subclasses to "Basic". Added documentation and
initial tests.
Added Standard subclasses with parameter parsing and more powerful
accessors.
Modified Emulator::Struct to use Standard::* methods. Found struct
test from P5.7, and added auto_init functionality to match.
Added Composite::* subclasses.
Added Emulator::AccessorFast.
Added Class::MakeMethods::Guide with introduction and examples.
Continued clean-up effort on Template documentation. Renamed Template
"attributes" to "method parameters" to avoid confusion with Perl
attributes. Retitled Template naming rules from "templates" to
"interfaces".
Changed initialization code expressions of Template::Class in hopes
of P5.6.1 compatibility. (Problem reported by M Schwern.)
Added 'Template::Generic:new --and_then_init' based on feedback
from Jay Lawrence.
=back
=head2 Early 1.000 versions
=over 4
=item v1.000.12 - 2001/05/14
Renamed module to Class::MethodGenerator, although naming questions
remain.
Moved Template subclasses into Template::* namespace. Simplified
build directory and makefile structure.
Changed initialization code expressions of Template::PackageVar,
ClassVar for P5.6.0 compatibility. (Reported by M Schwern.)
=item v1.000.11 - 2001/05/07, 2001/05/12
Eliminated Bundle file. Moved general documentation to cm_base.
Renamed Class::Methods::Base to Class::Methods::Generator.
Extracted code for Template declarations to new Class::Methods::Template
module. Extracted disk-caching to new Template::DiskCache module.
Moved TextBuilder into the Template:: tree.
Moved _namespace_capture code to new package
Class::Methods::Emulator::TakeName.
Added Simple::Hash subclass.
=item v1.000.10 - 2001/04/26, 2001/05/02, 2001/05/04
Moved _namespace_capture and _namespace_release to Class::Methods::Base.
Additional doc tweakage. Moved ReadMe documentation to
Bundle::ClassMethods. Merged Extending documentation into Base.
Removed spurious uses of -default => 'default' in templates.
Added new ClassInherit subclass and Emulator::Inheritable.
Expunged Index subclass in favor of boolean_index and string_index
types on Generic.
Moved Struct:builtin_isa type to new package, StructBuiltin.
Refactored code templating function as Class::Methods::Base::TextBuilder.
=item v1.000.9 - 2001/03/24
Reversed sense of - and --, as it was in 1.000.1.
Separated source files into separate directories with distinct
Makefiles and test hierarchies. This should clarify the boundaries
between the core method-generation code, the common constructor/accessor
methods, and the various emulator and experimental packages.
=item v1.000.8 - 2001/01/19
Following receipt of a suggestion to fork from the maintainer of
Class::MethodMaker, renamed packge from Class::MethodMaker v2.0 to
Class::Methods v1.000.
Adjusted documentation to reflect fork, although additional cleanup
is still needed.
Moved backward compatibility to Emulator::MethodMaker subclass.
Added Generic -compatibility array index_* and hash_of_arrays *_last
and *_set methods to match changes in Class::MethodMaker v1.02.
Added Emulator::MethodMaker support for the '-static' flag. The
emulator now completely satisfies the enclosed test suites, from
Class::MethodMaker v0.92 and v1.02.
=item v1.000.7 - 2001/01/05, 2001/01/06, 2001/01/07
Moved core code and internal code to Internals.pm. MethodMaker.pm
now contains only some require statements and the general user
guide documentation.
Moved ReadMe.pod, Changes.pod, and ToDo.pod into MethodMaker
directory. Separated Catalog.pod, Extending.pod, RelatedModules.pod.
Included version 1 docs as Class::Methods::OriginalDocs; minor
revisions for clarity.
Renamed Package subclass to PackageVar, Class to ClassVar.
Added Emulation::Struct subclass.
Added support for shifting targets with make( -target_class =>
Package, ... ).
Extended ClassName subclass to handle requiring, rather than creating
subclases.
=item v1.000.6 - 2000/12/29, 2001/01/02, 2001/01/04
Restored -sugar import option for compatibility with earlier
versions.
Added plural names to "Generic:hash -compatibility" to support
v0.92 usage.
Replaced use of substr(..., 0, 1) with ... =~ s/^-// for P5.004
compatibility; problem found by Scott Godin.
Copy @_ before splicing and pushing on to it for P5.004 compatibility.
Expunged duplicate lines from Generic.pm's array_of_objects; found
by Ron Savage.
Renamed Hash.pm's delete and exists behaviors to avoid possible
run-time import conflict with Generic.pm's behaviors; failure
reported by Ron Savage.
Added _STATIC_ATTR_{return_value_undefined} attributes to Generic
string and number to allow overrides of this functionality.
Minor doc touchups and expanded examples section.
=item v1.000.5 - 2000/11/28, 2000/12/16, 2000/12/28
Added Universal -warn_calls modifier.
Folded various pod files together into main module's inline
documentation. Updated catalog of existing implementations in
documentation. Added pointers to some tutorials and books which
discuss Class::Methods.
Standardized naming of test scripts.
Can now specify default template name, via -default=>"foo".
=item v1.000.4 - 2000/11/22
Separated string, number, and boolean from the Generic scalar
methods.
Provide _disk_cache to shortcut the lengthy _interpret_text_builder
process.
Fixes to ClassName implementation.
Change to forward methods to provide better error messages when
object is empty.
=item v1.000.3 - 2000/11/03
Rearranged documentation into separate files in the pod/ directory.
Collapsed find_target_class and make functionality into import;
moved support for the old functions to the Compatibility module.
Adjusted tests to generally use standard syntax, and not Compatibility
hooks.
=item v1.000.2.1 - 2000/10/23
Moved commonly-accessible information to Universal.
Added block{...} replacement for enhanced behavior templating.
Added modifier mechanism to support -private and -protected.
May need to be able to specify import ordering so that modifiers
are applied in the right order. This hasn't bit me yet, but it's
there. Darn.
=item v1.000.2 - 2000/10/22
Completed generalization of Generic methods from Static and Hash.
Rewrote ClassVar and PackageVar to use Generic framework.
Attribute expansion can now substitute values besides name, using
*{attr}.
Added _diagnostics function and documentation of all failure
messages.
Added SEE ALSO section to documentation, brief review of Class::*
on CPAN. Stumbled across Damian Conway's very nice Class::Contract
module.
Added Scalar and Flyweight implementations.
=item v1.000.1.1 - 2000/10/21
Rolled back change from yesterday; can still pick templates like
'-java'. Allow attributes to be specified as '--foo'=>'bar' or
'--'=>{foo=>'bar'}
Automated caching for meta-method definition hashes.
Generalized several Static and Hash interfaces into Generic templates.
Added Static:array and Static:code support.
Allow global -import to set default sources for templates, exprs,
behaviors.
=item v1.000.1 - 2000/10/19
Support inheritance of templates between meta-methods with -import.
Made "template" an attribute, rather than a special state variable.
Allow any attribute to be specified as -foo=>'bar'. Changed
selection of standard templates from '-java' to '--java'.
Initial support for string-eval behaviors and code_exprs, and
Generic.pm
=item v1.000.0 - 2000/10/14, 2000/10/15
Completed initial pass of full rewrite.
Assorted cleanup of syntax and documentation.
Moved Hash, Static, and Index implementations into separate packages.
=item v0.9.3 - 2000/09/30
Refactored subclass_name and class_registry.
Folded in some misc improvements from Class::MethodMaker 1.0.
=item v0.97x - 2000/08/04 to 2000/08/13
Forked from Class::MethodMaker 0.96. Substantial rewrite started
Created build_meta_method and refactored many methods to use it.
Added new_hash, hash_init, new_from_prototype.
Extended arg format. Added -template=>behavior_name. Added support
for array-of-names arguments.
Performance tuning. Additional refactoring to support AutoSplit
functionality.
Also folded in some older changes and additions from Evolution's
internal collection of MethodMaker subclasses:
=back
=head2 Class::MethodMaker::Extensions
Change notes from unreleased collection of extensions to Class::MethodMaker that were later folded into Class::MakeMethods:
2000/01/12 Added set_foo, clear_foo to class_var hashes.
1999/07/27 Added subclass_name.
1999/04/15 Changed class_var to use symbol table lookups, not eval "".
1999/04/05 Changed determine_once to check again if undefined.
1999/03/25 Added singleton method.
1998/09/18 Finished integration of class_registry handlers.
1998/07/31 Added class_var and classnames handlers.
1998/06/12 Added lookup handlers.
1998/05/09 Created no_op and determine_once method groups.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
MixinFactory/Changes.pod view on Meta::CPAN
=head1 NAME
Class::MixinFactory::Changes - Revision history for Class::MixinFactory.
=head1 HISTORY
=head2 Version 0.92
2004-11-16 Fixed namespace stash check to require missing classes when needed.
2004-11-16 Documentation tweaks.
=head2 Version 0.91
2004-11-15 Packaging and documentation. Separated Factory and Facade classes.
2004-11-14 Tests and additional interface and documentation work.
2004-11-13 Created.
=head1 SEE ALSO
L<Class::MixinFactory::ReadMe>
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Class/Prototyped/Mixin/Changes.pod view on Meta::CPAN
=head1 CHANGES
=head1 2.0
Initial submit to sourceforge. For some reason, the initial submit
was branched to 1.1.1.1, so I had to
cvs commit -r 2.0
to get my project going
view all matches for this distribution
view release on metacpan or search on metacpan
DBO2/Docs/Changes.pod view on Meta::CPAN
=head1 NAME
DBIx::DBO2::Docs::Changes - Revision History
=head1 CHANGES
Revision history for DBIx::DBO2:
=head2 Version 0.008
2004-04-04 Released to CPAN as DBIx-DBO2-0.008.tar.gz.
2004-04-03 Fixed use of deprecated DBIx::SQLEngine::Criteria::StringEquality
package; thanks to Robert Rothenberg for the bug report.
=head2 Version 0.007
2004-03-30 Released to CPAN as DBIx-DBO2-0.007.tar.gz.
2004-03-30 Expunged old schema classes in favor of DBIx::SQLEngine::Schema.
2004-03-26 Continued updates to work with DBIx::SQLEngine version 0.018.
2004-03-23 Beginning updates to work with DBIx::SQLEngine version 0.016.
2004-03-23 Moved POD files to a new Docs directory.
=head2 Version 0.006
2002-04-29 Released to CPAN as DBIx-DBO2-0.006.tar.gz.
2002-04-19 Addition of more types, rounding out range of calculated_ fields.
=head2 Version 0.005
2002-03-23 Distribution DBIx-DBO2-0.005.tar.gz.
2002-03-12 Addition of more field types, including first calculated_ fields.
2002-03-01 Fixed stringable_hash's run-time requires. Fixed missing parentheses in Field type storable_hash.
=head2 Version 0.004
2002-03-01 Released to CPAN as DBIx-DBO2-0.004.tar.gz.
2002-03-01 Minimize field-specific dependencies via run-time requires.
2002-02-19 Additional tweaks to Fields storable_hash.
2002-02-14 Added Record install_hooks method to simplify hook sub creation.
2002-02-13 Added Field types: storable_hash, stringified_hash.
2002-02-01 Added binary Field type.
2002-01-31 Fixed line_items fetch criteria.
=head2 Version 0.003
2002-01-31 Released to CPAN as DBIx-DBO2-0.003.tar.gz.
2002-01-31 Added comparison with other CPAN modules to ReadMe.
2002-01-26 Simon: Corrected Fields::alias(). Corrected Record's check of hooks before deletion and insertion. Added interfaces to Fields::line_items for cascade_delete, restrict_delete, and nullify_delete interfaces.
=head2 Version 0.002
2002-01-25 Simon: Corrected dependency; we require DBIx-SQLEngine-0.003. Eliminated pointless dependency on Perl 5.6.
=head2 Version 0.001
2002-01-21 Simon: Now using Composite::Inheritable hooks for post_fetch, etc.
2002-01-17 Simon: Update of Fields to use new version of Class::MakeMethods.
2002-01-15 Created centralized Changes and ToDo files.
2002-01-15 Added ColumnSet->as_hashes to simplify SQLEngine interface.
2001-12-01 Moved Adaptor and SQLWriter functionality to DBIx::SQLEngine.
2001-06-29 Updates.
2001-06-28 Moved query generation to SQLWriter.
2001-06-27 Moved to DBIx::DBO namespace. Flattened class hierarchy; we're only going to support SQL. Expunged old code. Switched to Class::MakeMethods
=head1 VERSION HISTORY FOR DBO
2001-05-04 Simon: Expunged Table's old dependency on Mysql.pm.
2001-04-10 Piglet: Added @_ to Record save method.
2001-04-09 Simon: Added line_items attrib: default_criteria=>[field=>value,...]
2001-03-07 Simon: added support for criteria in call to count_rows.
2001-02-07 Simon: Completed fields() method, and improved column attr detection.
2001-02-07 Simon: Added change_and_save method to Record.
2001-01-30 Simon: Added _readable method for all number fields (for ',000's).
2001-01-29 Simon: Filled in missing chunks of documentation for Fields.
2001-01-29 Simon: Added *_invalid methods and column-info detection.
2001-01-20 Simon: Added method_init method to Record.
2001-01-20 Simon: Added Fields saved_total_uspennies
2001-01-16 Simon: Added Fields saved_total
2000-12-?? Simon: Added Fields foreign_key and line_items types
2000-12-?? Simon: Added Fields currency_uspennies and timestamp
2000-12-15 Simon: Added table_or_die() to Record for better debugging output.
2000-11-29 Simon: Initial use of parameters for insert and update statements.
2000-11-29 Simon: Added re_init and de_init hooks to Record.
2000-08-04 Simon: Moved Record package into EBiz::Database.
2000-08-04 Simon: Moved Fields package into EBiz::Database.
2000-04-12 Simon: Check whether Record fetch is being called on instance or class before blessing.
2000-03-30 Simon: Julian day readable now calls method to access value.
2000-03-10 Simon: Added Fields: get_and_set, get_set_filter.
2000-03-06 Simon: Added Fields: get_set_alias
2000-02-29 Simon: Created Fields method generator.
2000-01-07 Simon: Restored support for criteria passed as array to be anded.
1999-10-21 Chaos: Added last_insert_id() for use with MySQL.
1999-10-08 Chaos: Altered sql_insert() to ignore columns with no values.
1999-10-08 Chaos: Altered quote_for_column() to preserve NULL values.
1999-09-26 Simon: Added Record subclassing import method.
1999-08-29 Chaos: Altered sql_quote() to use Mysql.pm's quoting.
1999-08-28 Chaos: Altered quote_for_column() to be less picky about types.
1999-08-22 Simon: Added Record insert_row, delete_row
1999-08-17 Added delete_where().
1999-08-15 Simon: Corrected non-ref return of Record fetch; added count_rows, delete_all
1999-08-04 Simon: Adjustments to Row.
1999-08-02 Richard: Created Record subclass.
1999-07-28 Tweaked generation of trivial_sql
1999-07-28 Added error handling for column_named.
1999-07-27 Simon: Created DBO::Row.
1999-07-27 Added use of DBO::Column package.
1999-07-27 Added use of DBO::Column package.
1999-02-21 Improved warnings in quote_for_column().
1999-01-31 Removed Data::Collection dependancy; now handlded by Data::DRef.
1999-01-28 Fixed arrayref in column_named.
1999-01-28 Changed usage of column_named to list context.
1999-01-16 Changes to quoted_column_values: unjoined list, default colnames
1998-11-01 Changed importing style for Class::MethodMaker::Compatibility.
1998-11-01 Changed importing style for Class::MethodMaker::Compatibility.
1998-10-05 Minor cleanups.
1998-08-10 Minor change.
1998-05-09 Moved connection behaviour from SQL Table into Adaptor classes.
1998-05-08 Extended Tableto work with new DBMS package for server-specific code.
1998-03-19 SQL table refactoring.
1998-03-15 Interface munged; doc added.
1998-03-12 DBAdaptor package (and subpackages) renamed to DBO::Table.
=head1 VERSION HISTORY FOR DBAdaptor
1998-03-02 Added ensure_source_exists method.
1998-02-25 Moved columnset->flat_columns call out of sql_create.
1998-02-24 Fixed scoping of temp list in quoted_column_values.
1998-02-01 Some debugging on update and quoting methods.
1997-11-16 Cleanup.
1997-11-16 Added datasource registry
1997-11-06 Addidional mucking with interface.
1997-11-04 Updated to use SubclassFactory; reviewed code and added comments
1997-10-15 Switched from msql to mysql, enhanced criteria.
1997-10-08 Added database selection for insert (if not loaded first).
1997-10-07 Query optimization for 'or' clauses and regex matching.
1997-10-03 Enhanced client-side/server-side criteria handling.
1997-09-24 IntraNetics97 Version 1.00.000
1997-09-03 Fixed the same typo in isstringinlist_criteria.
1997-09-02 Fixed typo in twiddle_criteria.
1997-08-11 Fixed the bug introduced by last night's minor change.
1997-08-10 Added isequal as synonym for equals to keep up with sql criteria
1997-04-10 Changed handling of criteria.
1997-03-** Various changes
1997-02-20 Simon: General cleanup; record data moved to datastore.pm.
=head1 VERSION HISTORY FOR Evo::msql
1997-02-01 Simon: Refactored existing code into adaptor subclasses.
1997-01-03 Simon: Added ()s around or'd sets of criteria
1996-09-08 Simon: Moved to Evo::msql.
1996-09-06 Simon: First build of database wrapper library.
=head1 SEE ALSO
L<DBIx::DBO2::ReadMe>
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
SQLEngine/Docs/Changes.pod view on Meta::CPAN
=head1 NAME
DBIx::SQLEngine::Docs::Changes - Revision history for DBIx::SQLEngine.
=head1 HISTORY
=head2 Version 0.93
2004-11-?? Released as DBIx-SQLEngine-0.93.
2004-11-29 Rearranged some documentation in top-level module's POD.
2004-11-29 Removed test config logic from Makefile to top of test.pl, and related updates of test.pl and test_cfg.pl.
2004-11-29 Fixed case-insensitive matching of "from" in sql_limit of several drivers; thanks to Michael Kroll for pointing out the issue.
=head2 Version 0.92
2004-11-28 Released as DBIx-SQLEngine-0.92.
2004-11-21 Added incomplete implementation of RecordSet::NextPrev class.
2004-11-21 Moved table-specific Record code into new Record::Table class.
2004-11-21 Sketched out interface for a new Record::PKey object.
2004-11-16 Modified Record class factory to use new Class::MixinFactory distribution.
2004-11-16 Eliminated unnecessary extra level in Record namespace for mixins.
2004-11-16 Moved Record::Set to a new RecordSet namespace to allow new mixins.
2004-11-16 Fixed SQLite definition for sequential fields, thanks to Ron Savage.
2004-11-13 Adjusted Related.pod docs for Rosetta based on email from Darren Duncan.
2004-11-13 Fixed test.config.pl to not die when run for the first time.
=head2 Version 0.91
2004-11-12 Released as DBIx-SQLEngine-0.91.
2004-11-12 Replaced compile-time @MIXINS in Record hierarchy with run-time NEXT method.
2004-11-12 Ran coverage tests and added test cases and documentation for missing items. We're now at over 90% for POD coverage, but still under 60% overall.
2004-11-12 Changed test_core/examplep.t to case-insensitive regex to compensate for case mangling on VMS file system, thanks to pitch from Peter (Stig) Edwards.
2004-11-09 Additional work on driver tests.
2004-11-09 Bumped up version number in preparation for a 1.0 release soon.
2004-11-08 Moved common behaviors of CSV and AnyData drivers to new shared trait named PerlDBLib. Added driver class for XBase.
2004-11-08 Additional work on test scripts.
2004-11-06 Added test.pl and reorganized test scripts for better driver testing.
2004-11-06 Reorganized ReadMe.pod and clipped credits from end of SQLEngine.pod. Other minor documentation cleanups.
2004-10-08 Fixed problem with define_named_connections and array reference reported via CPAN RT ticket 7464.
2004-06-06 Applied Driver::Oracle patch from Michael Kroll that should improve optimization of queries with rownum limits.
=head2 Version 0.028
2004-04-19 Released as DBIx-SQLEngine-0.028.
2004-04-19 Fixed file missing from manifest which made 027 totally broken.
=head2 Version 0.027
2004-04-19 Released as DBIx-SQLEngine-0.027.
2004-04-19 Moved Driver docs and Default code to a separate Driver module.
2004-04-18 Documentation tweaks, including labeling methods public or internal.
=head2 Version 0.026
2004-04-16 Released as DBIx-SQLEngine-0.026.
2004-04-15 Added subclasses to Driver::Mysql for various versions.
2004-04-15 Added Driver::Sybase and Driver::Sybase::MSSQL.
2004-04-15 Added Driver::Trait::DatabaseFlavors, Driver::Trait::NoPlaceholders.
2004-04-15 Minor bits of documentation cleanup.
2004-04-14 Fixed missing import of clone_with_parameters for interpret_named_connection(); thanks to Ron Savage for the bug report.
2004-04-14 Documentation fixes in Record::Trait::Cache POD.
2004-04-14 Added new makefile targets for development convenience; the
following are now all supported:
make everything - clean build with testsuite
make again - rebuilds Makefile and blib
make cleandist - clean build with manifest, docs, and dist
make cleanmanifest - rebuilds MANIFEST
make docs - runs pod2text on SQLEngine/Docs/*.pod files
make compile - makes sure that all of the modules compile
make testsuite - runs tests against multiple data sources
make t/*.t - runs whichever test scripts you name
make cover - runs testsuite under Devel::Cover with report
=head2 Version 0.025
2004-04-14 Released as DBIx-SQLEngine-0.025.
2004-04-14 Fixed undocumented (and un-necessary) dependency on String::Escape in Record::Trait::Cache which was causing a test failure. Thanks to the folks running automated cpan smokers, which caught this a few hours after I posted it.
=head2 Version 0.024
2004-04-14 Released as DBIx-SQLEngine-0.024.
2004-04-13 Fixed support for literal SQL in Schema::Table, Record::Trait::Cache.
2004-04-13 Added a few more methods to Record::Trait::Extras for compatibility with older DBO classes.
2004-04-11 Fixed a few problems in Record::Trait::Cache and Cache::TrivialCache. Added initial test script for record caching.
=head2 Version 0.023
2004-04-10 Released as DBIx-SQLEngine-0.023.
2004-04-10 Added feature matrix to Docs::Related. Added Docs::Comparison.
2004-04-10 Fixed test crasher in visit_select for Driver::Trait::NoUnions.
=head2 Version 0.022
2004-04-09 Released as DBIx-SQLEngine-0.022.
2004-04-09 Merged many methods from DBIx::DBO2::RecordSet into Record::Set.
2004-04-09 Added Record::Trait::Accessors and increased the minimum version of Class::MakeMethods to 1.006 to get the Autoload interface it uses.
2004-04-09 Added Record::Trait::Cached based on DBIx::DBO2::Record::Cached. Added cache packages DBIx::SQLEngine::Cache::TrivialCache and DBIx::SQLEngine::Cache::BasicCache.
2004-04-09 Added Record::Trait::Hooks based on DBIx::DBO2::Record and built a few tests.
2004-04-09 Initial working support for multiply-combinable Record class traits. Moved traits into nested namespaces Driver::Trait and Record::Trait.
2004-04-09 Revised synopsis and description to include more recent features.
2004-04-09 Added support for sql_select( columns => \%colnames_as_aliases ) and sql_select( tables => { "table1.column1" => "table2.column2" } ), both inspired by the interface described in the Sql::Simple documentation.
2004-04-08 Fixed tight loop detection (self-reference) in CloneWithParameters.
2004-04-06 Beginning support for multiply-combinable Record class traits.
=head2 Version 0.021
2004-04-05 Released as DBIx-SQLEngine-0.021.
2004-04-05 Doc adjustments. Additional work on Record classes.
=head2 Version 0.020
2004-04-05 Released as DBIx-SQLEngine-0.020.
2004-04-05 Added initial Row classes.
2004-04-04 Added named_connection interface.
2004-04-04 Migrated clone function to new Utility::CloneWithParams package. Generalized string substitution. Added more tests and documentation.
2004-04-04 Renamed Mixin::* packages to DriverTrait::*.
2004-04-04 Added "where" as a synonym for "criteria" in sql_* methods and changed documentation to use it instead. Added "distinct" support to sql_select.
=head2 Version 0.019
2004-04-04 Released as DBIx-SQLEngine-0.019.
2004-04-03 Added initial support for constructing complex joins and
Mixin::NoComplexJoins to provide emulation for the simplest inside joins.
2004-04-03 Added Mixin::NoUnions to provide emulation of unions where needed.
2004-04-02 Added initial support for selects with unions.
=head2 Version 0.018
2004-03-30 Released as DBIx-SQLEngine-0.018.
2004-03-30 Fixed sequential type in Driver::SQLite to say "integer" not "int".
2004-03-30 Removed driver for DBD::File, which isn't intended to be used directly.
2004-03-30 Changed Criteria::HashGroup to asciibetically sort the hash keys, so
that criteria are predictable for testing and better statement handle caching.
2004-03-26 Fixed Mixin::SeqTable's seq_fetch_current, which returned
undef due to scope confusion with return inside an eval block.
2004-03-26 Minor cleanup to Schema::Table to improve documentation.
2004-03-26 Fixed Schema::Column's new_from_hash() and type() methods.
=head2 Version 0.017
2004-03-26 Released as DBIx-SQLEngine-0.017.
2004-03-26 Fixed parens in Oracle's sql_limit, with apologies to Michael Kroll.
2004-03-25 Brough Schema::Table up to workable condition and added basic tests.
2004-03-25 Added simple last_query method to NullP for faster testing.
2004-03-23 Added fetch_select_rows() and visit_select_rows().
2004-03-23 Re-ordered a few chunks of code so that the POD pages are clearer.
=head2 Version 0.016
2004-03-23 Released as DBIx-SQLEngine-0.016.
2004-03-23 Fixed files missing from manifest.
=head2 Version 0.015
2004-03-22 Released as DBIx-SQLEngine-0.015.
2004-03-22 Added some database capability methods inspired by DBIx::Compat.
2004-03-22 Added create_ and drop_index methods inspired by DBIx::Renderer.
2004-03-22 Added create_ and drop_database methods inspired by
DBIx::DataSource.
2004-03-22 Removed do_ prefix from create_ and drop_table methods, with
aliases for backwards compatibility.
2004-03-22 Added initial interface for DBMS stored procedures.
2004-03-22 Added NullP subclass and null.t test with basic SQL generation
and named query tests.
2004-03-22 Added named_query interface to support libraries of named queries.
2004-03-22 Added visit_sql_rows.
2004-03-22 Applied patch to Driver::Oracle's sql_limit() from Michael Kroll.
2004-03-22 Incorporated support for mixing explicit SQL and additional
criteria by having sql_where() splice them together, based on a patch from
Michael Kroll.
=head2 Version 0.014
2004-03-14 Released as DBIx-SQLEngine-0.014.
2004-03-13 Fixed spacing problem for long column names in
sql_create_columns, curtesy of a patch from Ron Savage.
2004-03-13 Ported schema classes from DBO2 to DBIx::SQLEngine::Schema
namespace. These are not yet in use, but will be supported through
additions to the SQLEngine interface in upcoming versions in a way
that should not break any existing code.
=head2 Version 0.013
2004-03-12 Released as DBIx-SQLEngine-0.013.
2004-03-12 Fixed another minor POD error.
=head2 Version 0.012
2004-03-11 Released as DBIx-SQLEngine-0.012.
2004-03-11 Fixed several minor POD errors. Adjusted checking of
wantarray to preserve its value across eval{} boudaries.
=head2 Version 0.011
2004-03-10 Released as DBIx-SQLEngine-0.011.
2004-03-10 Moved driver-specific subclasses to a new Driver::
namespace and added documentation to each of them. The external
public interface is identical, but this may break naughty code that
checked ref() or isa(); however the fix is straightforward and this
keeps our namespaces clearer. If your code was negatively impacted
by this, let me know for future reference!
2004-02-24 Integrated some patches from Michael Kroll, including
new Oracle subclass, and created a new Criteria::StringComparison
class as an alternate way of addressing an issue raised in email.
=head2 Version 0.010
2003-09-07 Released as DBIx-SQLEngine-0.010.
=head2 Version 0.009
2003-02-02 Released as DBIx-SQLEngine-0.009.
2003-02-02 Merged the "Default" class used by AnyDBD into base
class via stash aliasing, simplifying documentation.
=head2 Version 0.008
2002-11-02 Released as DBIx-SQLEngine-0.008.
2002-11-02 Added basic subclass for MSSQL.
2002-11-02 Added "is null" support based on patches from Michael
Kroll at University of Innsbruck.
2002-11-02 Added some introductory documentation to Criteria::Comparison.
2002-11-02 For compatibility with the CPAN installer and automated
testing tools, the Makefile.PL now suggests that you set your
environment's DBI_DSN, rather than prompting you to enter it
interactively in test.pl.
2002-11-02 Refactored test script into several separate files.
2002-11-02 Added initial basic transaction support.
=head2 Version 0.007
2002-05-24 Minor error-handling improvements.
2002-05-24 Collect and return the results from visit_* methods.
2002-05-24 Added DBIx::SQLEngine::Criteria::Not, contributed by
Christian Glahn at University of Innsbruck.
2002-04-10 Added "fetch without execute" to the catch_query_exception
handler for MySQL and Pg.
=head2 Version 0.006
2002-03-23 Released as DBIx-SQLEngine-0.006.
2002-03-23 Added basic support for passing SQL functions and
expressions to SQLEngine::Default and SQLEngine::Critera::Comparison
in a way that allows them to be used directly, rather than being
treated as literals and bound to placeholders.
2002-03-01 Fixed syntax errors in MySQL subclass. Fixed suspected
Perl-version dependency (return from inside eval) in Default
detect_any.
=head2 Version 0.005
2002-03-01 Released as DBIx-SQLEngine-0.005.
2002-02-19 Simon: Added Pg catch_query_exception REDO for "out of
range 0..-1". I don't know what this error means but it always
seems to succeed when we retry.
2002-02-10 Simon: Modified format of error messages in Default.pm
2002-02-02 Eliminated complaint about empty subclauses in
Criteria::Compound
2002-01-31 Extracted Default sql_* criteria handling into
DBIx::SQLEngine::Criteria->auto* methods.
2002-01-31 Added catch_query_exception to Pg subclass for automatic
reconnection.
2002-01-31 Created new Criteria::LiteralSQL package. Remove redundant
parentheses around single-item list in Criteria::Compound.
=head2 Version 0.004
2002-01-30 Released as DBIx-SQLEngine-0.004.
2002-01-30 Expanded Pg subclass. Fixed Default's type_info handling
to not fall over when a type has multiple info hashes (needed for
Pg). Adjusted error handling to call $sth->finish() if there's an
exception after we prepare but before we complete retrieving the
results.
2002-01-27 Filled out documentation, especially of the public
interface in SQLEngine.pm. Added skeletal Pg subclass.
=head2 Version 0.003
2002-01-25 Released as DBIx-SQLEngine-0.003
2002-01-21 Fixed AnyData sql_create_column_text_long_type.
2002-01-20 Fixed typo in sql_drop_table. Added detect_any and
detect_table methods.
2002-01-15 Improvements to sql_create_table to support primary key
declarations. Completed DBIx::SQLEngine::Mixin::SeqTable. Added
DBIx::SQLEngine::CSV.
2002-01-14 Added initial version of DBIx::SQLEngine::Mixin::SeqTable.
2002-01-14 Fixed bug in test script; user and password were not
used! (Bug report from Terrence Brannon.)
=head2 Version 0.002
2002-01-14 Released as DBIx-SQLEngine-0.002
2002-01-13 Fixed logging scope errors. Filled in several mising
chunks of documentation. Makefile.PL touchups for distribution.
2001-12-01 Separated from object-relational mapping functionality.
Moved to DBIx::SQLEngine namespace.
2001-11-30 Began adjusting namespace for CPAN distribution. Fixed
use of AnyDBD to not require non-standard patch.
=head2 Version 0.001
2001-06-28 Use DBIx::AnyDBD for platform-specific issues. Moved
SQL-generation code from Table to SQLEngine.
2001-06-28 Ported some Criteria classes from earlier code into the
new SQLEngine class hierarchy.
2001-06-27 New version moved into separate DBIx::DBO2 namespace.
Renamed Adaptor to SQLEngine. Flattened class hierarchy; we're only
going to support DBI. Expunged old code. Switched to new
Class::MakeMethods distribution.
=head1 PRIOR VERSIONS
=head2 DBO
2001-02-14 Reversed boolean sense of 'nullable' to 'required'.
2001-01-29 Fixed code to detect length and nullable column information.
2001-01-29 Added boolean required to store whether column is nullable.
2001-01-13 Added retry on "Lost connection to MySQL" errors
2000-12-22 Added new_with_contents constructor to Criteria::Compound.
2000-12-13 Substantial revisions to record set functionality
2000-11-29 Switched to use of Class::MethodMaker 2.0 features.
2000-03-31 Added SQL-string to execution failure.
2000-03-03 Adjusted clear_connection.
1999-08-18 Added MySQL tinyint column code
1999-07-27 Added use of DBO::Column package.
1999-04-21 Added explicit disconnect if existing connection's ping
fails.
1999-04-05 Added reconnect if can't ping server behaviour; add'l
type codes
1998-12-08 Cleanup of logging.
1998-12-08 Added parameter handling and on-demand class loading.
1998-11-01 Changed importing style for Class::MethodMaker.
1998-10-05 Revised. Rewrote POD.
1998-05-09 Moved connection behaviour from SQL Table into Adaptor
classes.
1998-03-16 DBAdaptor package (and subpackages) renamed to DBO::Table.
1997-11-18 Simon: Updated to current practice.
=head2 DBAdaptor
1997-09-24 IntraNetics97 Version 1.00.000
1997-08-20 Eric: Extracted DBAdaptor class from prior code.
=head1 SEE ALSO
L<DBIx::SQLEngine::Docs::ReadMe>
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 Changelog for Danga::Socket::AnyEvent
=head2 v0.04, June 18 2012
Fix a bug in the F<Makefile.PL> causing the module to be installed at
the wrong location.
Fixes: L<http://www.cpantesters.org/cpan/report/e28dffee-b959-11e1-9066-3d54fb7543f5>
=head2 v0.02, v0.03, May, June 2012
Bugfix releases, affecting some corner case situations where events
were not being woken up, or would wake up in unexpected situations.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
corpus/DZT-bad-with-args/Changes.pod view on Meta::CPAN
0.000
view all matches for this distribution
view release on metacpan or search on metacpan
examples/site/src/Changes.pod view on Meta::CPAN
=head1 NAME
Changes
=head1 Description
Refer to this document to learn what changes were made to the
documents, since you've read these last time.
The most recent changes are listed first.
=head1 July 2, 2002
The new site has been released as Release Candidate 1.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=pod
=encoding iso8859-1
=head1 3.0.0 24. Nov 2023
- Final 3.0.0 version, no changes since 3.0.0-rc.2
=head1 3.0.0-rc.2 7. Oct 2023
- Add missing test files to MANIFEST
- Documentation updates
=head1 3.0.0-rc.1 3. Oct 2023
- Apply debian patches
(https://sources.debian.org/patches/libembperl-perl/2.5.0-17/).
Thanks to the Debian Perl Group, especially Dominic Hargreaves,
Florian Schlichting and Axel Beckert
- Apply patches for fedora
(https://rt.cpan.org/Public/Bug/Display.html?id=148621 and
https://rt.cpan.org/Public/Bug/Display.html?id=148702)
Thanks to Marcus Doemling
- Fixed compilation/Makefile of/for libxml2 and libxslt
- Fixed warnings about undefined values in log. Note this
is done by goning back to the old behaviour, were
using uninitialized values were not a warning. So if
you like to have warnings about uninitialized values
add [* use warnings "uninitialized" *] to your code.
- Add a lot of enhancements to Embperl::Form
=head1 2.5.0 16. March 2014
- Do not clear old code before compiling a Embperl page
in Perl >= 5.14.x because it causes seg faults. This
leads to "subroutine redifined" warings, when a
page was changed and is reloaded.
- Corrected use of G_KEEPERR when calling eval, because
of changed meaning, which cause the message "Compiling
error" instead of the real error message.
- Adapted tests to Perl 5.14 & 5.16
- Fixed a refcounting problem cause message "Attempt to
free unreferenced scalar" during mod_perl startup
with Perl 5.14.x
- Fix some dependencies on hash order inside the parser
which causes Embperl to fail with Perl >= 5.18 because
of hash randomisation.
- Changed the way exit passed through internaly, so it
works with Perl >= 5.18
- Adapted tests to Perl 5.18
- Adapted test httpd.conf to Apache 2.4. Embperl fully supports
Apache 2.4
- Makefile.PL now uses apache2 or httpd2 as Apache binary
- Makefile.PL now autodetects if mpm needs to loaded as
module for tests.
- Fix output inside of Registry script for mod_perl 2.0.4+
- Fix problem with error output on stderr for Windows 64Bit
- removed support for XALAN XML parser. It was outdated
anyway. libxml2 is still supported.
- Fixed a C type declaration which caused RTF files to not
correctly escaped with newer GCC's.
- Embperl::Form is totally overhauled with many new features.
It uses now jQuery as javascript library, instead
of prototype. NOTE: This is an incompatible change. If
you are using Embperl::Form before, you need to
adapt your html code!
- Fix some Unicode issues in Embperl::Form::Validate
- Embperl::Form::Validate is now able to highlight input
fields with wrong input
- Applied the following debian patches: delay.patch,
fix-string-typo.patch, fix-pod-errors.patch, fix-whatis.patch,
new_process_group.patch, fix-pod-unescaped-unicode.patch,
german.patch and utf8.patch which mainly corrects
spelling and typo errors. NOTE: modperl.patch and
Makefile.PL.patch are not applied, because they are
debian specific. Thanks to Florian Schlichting for
providing uptodate information about the patches
and adaptions for Embperl 2.5.
- Applied further spell corrections from Florian Schlichting.
- Log Errors form Embperl::Syntax::Mail to error log
- Fix compile problem on non intel plattforms due to missing
-m32 flag.
- Added support for utf8 sourcefiles. By setting
input_charset => 'utf8' sponsored by Perlover.
- Added optChdirToSource = 0x10000000 which will cause
Embperl to change to the directory of the source file
prior to execution.
Adaptions to Perl 5.14/16 were sponsored by NUREG GmbH
=head1 2.4.0 4. Oct 2010
- Support for CGI.pm 3.43 (included within Perl 5.10.1)
for file uplaods. CGI.pm < 2.43 is not supported anymore.
- A lot of enhancements for Embperl::Form
- Add example for usage of Embperl::Form. See
eg/forms/README.txt. Can be viewed used using "make start"
- Increased size limit for errormessage from 1024 to 4096
- Makefile.PL can now handle compiling 32Bit code on 64Bit
sytsem if Perl was compiled as 32Bit application
- Adaption of tests to changed error messages of perl 5.10
- Makefile.PL can now cope with OpenSuSE 11.2, if perl,
mod_perl and apache are installed from OpenSuSE packages.
- Fix make test error for Perl compiled with DEBUGGING on
- Support for internationalization in Emberl::Form
- Do not link against unused libz
- Supports now Perl 5.12: Cope with changed flags G_ARRAY
and G_SCALAR, SVt_RV is now SVt_IV
- Fix Execute parameter app_name (was appname, but app_name
is correct, appname is still accepted, but might not always
work)
- Add parameter checks for Execute parameters to avoid segfaults
in case of non refs where refs are expected.
- Add more controls to Embperl::Form
=head1 2.3.0 30. Sept. 2007
- Added support for Code ref in language message lookup hash.
That allows for internationalization to call a sub instead
of only looking up keys in a hash.
- Added UTF-8 messages to Embperl::Form::Validate.
- Include patch from Mark D. Anderson to make SSI syntax
behave more like mod_include.
- Make component -> curr_esc_mode available in Perl, requested
by Robert.
- Improve XHTML/XML support. Tags that are parsed by Embperl
like input, are now only have one slash at the end, if there
is already a slash in the source and output_mode is set to
xml. In addition checked attributes for input tags are now
added as checked="checked" to be valid xml.
Spotted by Villu Roogna.
- A lot of code was written for Embperl::Form a sophisticated
form creation/handling framework, which also contains some
nice AJAX and JS stuff like autocomplete input boxes,
grids and tabbed dialogs. Also the framework itself is ready
to use, there is not much documentation yet...
- Fixed wrong version numbers in make test files,
which caused make test to fail. Spotted by Matt Bockol.
- Use _stat() instead of stat() on Win32 to work around the problem
that Perl redefines stat() in an incompatibel way.
Spotted by Randy Korbes.
- Documented all options of embpexec.pl.
- Fixed default_language handling in Embperl::Form::Validate.
Patch from Kathryn Andersen.
- In Makefile.PL check for mod_perl2.pm instead of mod_perl
when mod_perl 2.x is used. Spotted by Dan Clawson.
- Included patch from Andrew O'Brian to correctly retrieve
Cookie header when running under Apache 2.
- Fixed timezone compiletime error on Mac OS-X. Patch from
Wolfgang Kinkeldei.
- Fixed segfault that might occur when an value of an input
attribute is removed. Spotted by Andrew Sitnikov.
- Fixed missing Perl Stack setup which causes memory errors on
BSD systems. Patch from Doug Rayner.
- Added internal check and error message when, due to a syntax
error in the source, a node is parsed as attribute.
Spotted by Kato M. Yoshiro.
- Fix segfault that occured during output of an error message
when not inside an Embperl request.
=head1 2.2.0 8. Apr. 2006
- Added new command [$ dump $] which can be used
to dump variables to logfiles or to the output
for debugging purpose.
- [$ sub $] return value is handled now corretly
in scalar and array context
- Added support for Apache 2.2
- Added Table of Content pod file, which lists
all available Embperl documentation, to get
a better overview. Thanks to Axel Beckert.
- Additional checked and notchecked Validationrules
- Fixed Cookie expire calculation, because
relative exipre times where only calculated
once at server startup. Spotted by Derrick Spell.
- Fixed parsing of Cache configuration functions in
httpd.conf. Spotted by Carl Eklof.
- Added better handling of Out Of Memory condition,
i.e. log error end try to clean up instead of
segfault.
- Fixed segfault that could occur because a non
string value is passed as string index, which
crashed if such a string index doesn't exists.
Spotted by Carl Eklof.
=head1 2.1.0 15. Nov 2005
- Added better UTF-8 support:
- Output escaping now takes Perl's UTF-8 flags into
account and will not escape UTF-8 chars anymore
- Diretive Embperl_Output_Esc_Charset allows to
generaly switch between Latin1, Latin2 and UTF-8.
(For UTF-8 this is not necessary when Perl's UTF-8
Flag is correctly set, but this is not the case
for all datasources)
- Form data that is send to Embperl and put into %fdat
get now Perl's internal UTF8 flags set, in case
the data posted contains a valid UTF8 string.
This can be disabled with the option
optFormDataNoUtf8.
- Added Module Embperl::Inline, which allows to embed
Embperl code in an ordinary Perl module. This makes
is easy to install system wide libraries, which need
to contain Embperl code/markup. See perldoc Embperl::Inline
- [$ sub $] now can takes arguments and inital code like:
[$ sub foo ($self, $a, $b) my $c = $self -> {bar} $]
- Embperl subroutines are now called in array context, to
allow to return multiple return values.
- Added validate type TimeValue, which is a numeric value
followed by s, m, h, d or w.
- Added validate type PosInteger, which is a positiv integer
value
- Added Support for calling Embperl::Object::Execute inside
an Embperl page. (Allow to nest new requests)
- Corrected HTML/XML escaping inside from <textarea> tags.
- Fixed Segfault that could occur when a Embperl sub does
not contain anything.
- Fixed compile problem with timezone on BSD systems
- Fixed URLs in website to work correctly on static mirrors
- Embperl development has been moved from CVS to SVN.
See L<"SVN.pod"|SVN.pod> .
=head1 2.0.1 3. October 2005
- Turn off Apache maintainer mode symbols, so it works with SuSE Apache
- Integrated KWiki into Embperl website (available under eg/web)
- Don't croak if Apache request record is not available (e.g. during startup)
- Fixed wrong setup of $epreq -> param -> filename, when a Embperl offline
processing is made inside an Embperl page. Reported by Gavin Carr.
- Return correct http status codes 403 and 404 if access to a file is
forbidden or the file was not found. Reported by Cliff Rayman.
- Added Date header for Embperl::Mail, Suggested by Robert.
=head1 2.0.0 14. August 2005
- http headers from %http_headers_out will now also be send when the
init method of an application object return non zero (e.g. 302 for redirect).
- Updated xsl stylesheet and css styles of website for better display
of code sections.
- Updated db/epwebapp.pl to make it more robust and fix some minor bugs
and also allows to set edit and view_level (anonymous, login, admin)
for every table.
=head1 2.0rc5 7. August 2005
- Added attribute content-type to mail:send tag (Syntax Mail).
Patch from Axel Beckert.
- Added preloadfiles parameter to %initparam, which allows to
preload files in the parent process, when running under mod_perl.
See perldoc Config.pod for details.
- Fixed unresolved symbol when compiling under SuSE 9.3 (because SuSE
compiles Apache 2 in maintainer mode)
- Fixed strange output when Perl code inside of [$ sub $] returns
before any output.
- Fixed mail:send tag (Syntax Mail), so that Perl code inside the tag
for example to set an attribute, is now executed correctly.
- Fixed incorrect quoting of single quotes inside of <textarea> values,
reported by Axel Beckert.
- Fixed a potential segfault in cache handling. Patch from Yatin Chawathe.
- Documentation cleanup
- Added test for optKeepSpaces.
- Added test for application object in Execute tests.
- Make sure Embperl is listed after Apache itself in the server signature.
=head1 2.0rc4 19. Juni 2005
- Adapted to new mod_perl namespace. Embperl now works correctly
with mod_perl version >= 2.0rc5 (older version are still supported)
NOTE: For file uploads to work you also need to upgrade CGI.pm
- Fixed problem with Execute when GlobalRequestRec option is not
set in mod_perl config.
- use gmtime_r instead of gmtime for time calculation to be thread safe
=head1 2.0rc3 14. March 2005
- Handle warnings the same way under Embperl and Embperl::Object, so they
are in both cases log to embperl.log and the Apache error log and show
up on the error page. Reported by Dirk Melchers.
- Report line number and file name in unstructures jump error messages.
Requested by Michael Smith.
- Fixed sigsegv under solaris cause by NULL point in debug output.
- Applied patches from Angus Lees to make Embperl compile and test on
64Bit machines and avoid some compiler warnings.
- Add pod for embpmsgid.pl from Angus Lees.
- Fix [= =] with included spaces in embpmsgid.pl. Reported by Robert.
- Make undef values for translation hashs treat as the same as
non exists. Requested by Robert.
- Let embpmsgid.pl parse out language tags of gettext, sort output
and don't convert chars > 128 to octal values. Requested by Robert.
- Fixed make test module load problem for mod_perl tests, when
mod_perl is staticly linked into Apache
- Documentation updates and cleanup
- Output an error message when an Embperl sub is called and no
Embperl request is active.
- Do not use method call to output in send_error_page to avoid
trouble with overloaded output function.
- Fixed segfault which occured sometimes randomly after compile
of Embperl page source.
- Reimplemented SetupSession, CleanupSession and SetSessionCookie
which can be used to access Embperl session data from outside,
for example from mod_perl Authentication handler.
- Fixed problem with undefined $req_rec when Embperl::Execute
is called from a registry script. Reported by Martin Moss.
- If an object is passed to die inside Execute the errors array
will receive this object and will not be stringified.
Requested by Robert Noris.
- $epreq -> errobj holds the last object passed to die during
the request.
- Added documentaion of Embperl's error handling and trapping.
- If optReturnError is set in the httpd.conf it is now reseted
for all sub components, to make sure all errors are reported
back. (It can still be set via the options argument of
Execute).
- Using ErrorDocument by setting optReturnError now also works
under EmbperlObject. Reported by Robert Noris.
- Fixed problem when calling Embperl sub via Execute inside a
file that is called via Execute. Reported by Michael Smith.
- Fixed segfault when requesting symbol tables informations
via Apache::Status, reported by Dan Wilga.
- Find apr.h if it is not in same directory as httpd.h in
Makefile.PL. (Necessary for RedHat)
=head1 2.0rc2 21. November 2004
- Flush output to client and send final chuck, before cleanup runs.
- Fix compiler error when compiling with Perl 5.005.
- Fix html input tag value set, when %fdat value is 0. Reported
by Torsten Luettgert.
- Fix test, for Apache 1.3 with static mod_perl and other dynamic
modules, by loading Embperl first. Reported by Christophe Le Bars.
- Fix FastCGI read of POST data, reported by Doug Rayner.
- Readded tests for CGI mode.
=head1 2.0rc1 24. August 2004
- Addeded configuration directive Embperl_Object_Reqpath, which allows to
search serveral directories for the file of the initial request.
- Added $epreq -> param -> cgi method to access the CGI.pm object. CGI.pm
object is only available in case of a file upload
- Fixed make test problem on RedHat, which reported wrong number of errors
due to escaping in Apache error log.
- Fixed test and compile problems on Windows with Perl 5.8.3
- Added more verbose error informations for PerlHash error
- Fixed problem when unloading Embperl.so under Apache, which cause
Perl Hash error and/or segfault.
- Fixed SegFault that occured when a Perl warning should be logged during
initialisation.
- Added single quotes arround xslt paramenters that are automaticly
generated from %fdat to avoid security problems.
- Fixed some memory leaks
- Fixed problem that checkboxes or options or not correctly selected
on the second request when value was html escaped
- Fixed Segfault under Apache 1.3 when doing a syntax check
- use Apache::ServerRec when mod_perl version is 1.99_15 or above.
Spotted by Aare Vesi.
- Fixed endless loop on 64Bit Alpha and ia64.
- Fixed make test problem on Windows.
=head1 2.0b11 15. March 2004
- Fixed problem with JavaScript code in Form::Validate, when fields names
are non JavaScript Identifier.
- Fixed endless loop with call sub inside table under some circumstances,
reported by Neil Gunton.
- Fixed problem with select and dynamic options when no name attribute is
given in select tag. Reported by Michael Stepanov.
- Fixed problem with nesting of dynamic table and dynamic select.
Reported by Doug Rayner.
- Fixed problem with CGI.pm 3.01+, which deletes uploaded files, when
CGI object is destroyed.
- Fixed problem with encrypted source files and Perl 5.8.3 IO layers.
Reported by Edwin Ramirez.
- Fixed problem with encrypted source files and set key length.
Reported by Edwin Ramirez.
- Fixed problem with <a />, <form /> and <option /> in xml output mode.
Reported by Jochen Topf.
- Fixed problem with relativ cookie expires time.
Patch from Torsten Luettgert.
- Fixed problem with <a> tag without href attribute when session ids
are embedded into the url. Reported by Torsten Luettgert.
- Added sanity checks to epcrypto.c
- Added posibility to pass fdat&ffld parameter to
Embperl::Object::Execute.
- Fixed problem with print OUT and call of subroutines as first statement
of a subroutine. Reported by various people.
=head1 2.0b10 23. Jan 2004
- Added -break parameter for haveing precondition to
Embperl::Form::Validate
- Added $epreq and $epapp for the request and application object, so
$r = shift isn't needed anymore on every page.
- Default for EMBPERL_DEBUG is now zero, which mean, that Embperl does
not write anymore to /tmp/embperl.log unless requested. Suggested by
Angus Lees and others.
- Added Embperl_Top_Include configuratin directive, which allows to add
Perl code to the top of every file, for example for doing a use Module.
- fixed various compiler warnings reported by Angus Lees.
- Added missing Form/Validate modules to distribution.
- fixed missing $req_rec in base template call from Embperl::Object.
Reported by Neil Gunton.
- Fixed include path for non standart apr directories.
- Fixed epchar.c.min and epchar.c.iso-latin-2 to conatin char2xml table
- Fixed problem with mod_perl 1.99_12 which reports wrong return value from
handler when some variable inside them Embperl page get tainted.
- Fixed tests for Perl 5.8.2 & 5.8.3
- Fixed a bug with print OUT at the end of a nested tag inside a loop reported
by Neil Gunton
- Documented exit with argument behaviour.
- Remved use Apache::Constats from Embperl::Mail so it works without mod_perl
installed.
=head1 2.0b9 10. Juni 2003
- libxml now searchs through Embperl search path when includeing external entities,
so for example <xsl:include> directives searchs files the same way as Execute
does under Embperl::Object.
- fixed typo in JavaScript code for Form::Validate reported by Axel Beckert
- fixed typo in Embperl::Mail reported by Axel Beckert.
- fixed small bugs in Embperl::Form::Validate test code reported by Axel Beckert.
- charcters 128-160 are now escaped in URLs to avoid problems with Mozilla.
- fixed missing escaping of '/' in Embperl::Form::Validate JS routines.
Patch from Axel Beckert.
- fixed spelling: CACKE_KEY -> CACHE_KEY. Reported by Andre Landwehr.
- URL escaping now fully conforms to RFC 2396. This mainly solves some problems
where IE interpreted characters in URLs as UTF8.
- Embperl::Form::Validate JavaScript code can now handle fieldnames that
aren't correct JavaScript identifier.
- Fix SIGSEGV when printing to Embperl::LOG before Embperl log file is setup.
- Fix problem when session id is given to Embperl, but session management
was not setup
- Added 'same' validation to check if two fileds have the same input enterd
- Fixed memory leak. Patch from Joshua Chamas.
- Use MP_AP_PREFIX as source for APache 2. Patch from Paul Dyer.
- Fixed a initialisation bug which caused under special conditions a segfault
when compiling a select tag.
- Fixed compiler warnings and errors when compiling with Perl 5.8.0.
- Replaced PL_sv_undef with ep_sv_undef (which is a copy of PL_sv_undef),
because storing PL_sv_undef in a Perl 5.8.0 hash is treated as a placeholder
and doesn't work as before.
- Fixed problem with [$ sub $] when running under Perl 5.8.0.
- Fixed problem when STDOUT is tied, because storage has changed in Perl 5.8.0.
- Fixed problem when single quote or backslash is inside of option or input value.
Bug reported by Saadiq Rodgers-King.
- Added [$last$], [$next$], [$redo$] and documented [* next *] etc.
- Readdeded missing MailFormTo and added test for it.
- Fixed escaping inside of html attributes of Embperl generated tags like input
and [$ hidden $]. Reported by Axel Beckert.
- checked and selected attributes are now correctly set when values contains
entities (e.g. <)
- Fixed segfault when cleanup is called to early. Reported by Neil Gunton.
- If no name is given for a key, Form::Validate now tries to lookup the correct
text via Embperl's gettext method.
- Fixed problem with message ids that are Perl keywords. Reported by Jaak.
- Added EMBPERL_COOKIE_SECURE option to transfer cookie only over a secure
connection.
- Added EMBPERL_OUTPUT_MODE that allows to change to XML output, which cause
generated tags to contains a closing slash, so they are valid XML/XHTML.
- Fixed make test to ignore different idention of newer versions of
libxslt.
- Added server_addr to the request param object.
- Keep spaces and newlines in <mail:send> tag.
- Embperl::Mail now encodes all header fields that contains characters between
128 and 255. Use headerencoding parameter to turn of or tell Embperl your charset.
- Fixed mod_perl 2 detection when mod_perl is build with MP_INST_APACHE2.
- Fixed problem with reseting $escmode, when using print OUT. Reported by
David Hull.
- Fixed compiling problem on FreeBSD.
- Added function XML::Embperl::DOM::iSetText to change name of Tag.
Requested by Yatin Chawathe.
- EMBPERL_COOKIE_EXPIRES now again accepts relatives times like +2h.
- embpexec.pl now correctly takes config values from environment
for application object.
- Added -type => Integer, IPAddr, IPAddr_Net, FQDN_IPAddr, TimeHHMM, TimeHHMMSS,
EMail and EMailRFC to Embperl::Form::Validate.
- Fixed problem with [$var$] and select reported by Joshua Spoerri.
- Embperl compiles and tests now correctly if mod_perl installed
under Apache2 namespace.
- Added tests for epform and subreq.
- Added patch from David Hull, which let you specify the status-code
when doing a redirect via %http_headers_out.
- Fix SIGSEGV on sparc in cleanup. Patch from Angus Lees.
- Apply patch from Angus Lees which avoids a lot of (harmless) compiler
warnings.
- %idat is now also populated for checkboxes and radiobuttons where no matching
value in %fdat is found. This avoid duplicate submission of formdata
when using [$ hidden $].
- fixed memory allocation problem that had occured when mod_perl was
staticly linked into Apache.
- removed old Embperl 1 test files from distribution
- corrected initialization of ap_filter_rec structure which had lead to random
segfaults when using the subreq parameter.
=head1 2.0b8 (BETA) 25. Juni 2002
- exit can now exit the whole request. When called without argument
it exits the current component, like before, when called with argument
it exits the whole request.
- Added support for Apache 2.0 / mod_perl 2.0 (prefork MPM).
- Added the possibility to catch the output of a sub-request
(e.g. a CGI script, Java or PHP output) when running under Apache 2.0
- when setting $r -> param -> filename in an application object
to a relativ path it is interpreted relativ to original request
- Start to catch up with new features of Embperl 2 in the docs. Added
Config.pod for configuration and calling.
- Lots of improvments in the new Embperl website, which serves as best
example for using the new Embperl 2 features. It's part of the distribution
and can be found under eg/web. See eg/web/README.
- fixed bug with setting of escmode and print Out reported by
Eric-Olivier Le Bigot.
- fixed incorrected escaping inside of an URL when expanding an hash
or array reference. Reported by Axel Beckert.
- fixed possible endless loop when expanding hash or array inside of
an URL.
- fixed a segfault that occured when source file encryption was enabled.
Reported by Edwin Ramirez.
- fixed a segfault that occured when no input file is given. Reported by
Edwin Ramirez.
- fixed a segfault that occured on solaris when input comes from memory.
Reported by Mike Wesemann.
- readd possibility to build version with and without Apache support
on windows.
- Remove Content-Length: 0 HTTP-Header in CGI Mode
- Fixed segfault when replacing an attribute. Reported by Michael Stevens.
- Fixed random segfaults, that had occured when Perl had reallocated it's
internal Stack.
- When apache is started with -D EMBPERL_APDEBUG, it outputs a
configuration trace.
- When file is not found, Embperl::Object now returns status 404, instead
of 500. Reported by Cameron McBride.
- When optReturnError is set, Embperl::Object now really returns the error code.
Reported by Cameron McBride.
- Fixed a reference count error when using the import parameter. Reported
by Michael Smith.
- Fixed string reference counting problem in RTF&POD syntax.
- Fixed a segfault that had occured when a file with a syntax error is
compiled the second time within the same process. Reported by
Michael Smith.
- removed do { } around expressions of [+ +] blocks inside urls, because
this cost performance and now all [+ +] behaves the same. Reported by
Michael Smith.
- make stop now works also on windows.
- make start, which can be used to view/test the Embperl website localy,
now displays the URL how to request the site.
- libxslt does correct error reporting now.
- libxslt output encoding is now recognized correctly.
- set Content-Length when sending error page, so Internet Explorer won't show
his own error page.
=head1 2.0b7 (BETA) 21. Mar. 2002
- Changed default for EMBPERL_ESCMODE from 3 to 7. This disables
by default the possibilty use the backslash to not escape a piece
of output. This increases the security, because it by default
avoids the interpretation of the backslash in any user input that
is redisplayed.
- Fixed bug in mail syntax and Embperl::Mail reported by Jan Kyncl.
- Removed LogFormat and CustsomLog from test config, so mod_log_config
is not required for make test. Reported by Jochen Topf.
- Removed EmbperlObject.pm from MANIFEST, since it was replaced by
Embperl/Object.pm.
- Make symbolsnames unique so they don't clash with 1.3.4. Reported
by Kee Hinckley.
- Fixed a problem that ocurred when a reference to some of the Embperl
objects was kept after the end of it's lifetime, which caused a
segfault.
- Don't do a path search when the filename starts with './'.
- Fixed a segfault that occured when many nested sub's are used,
but only a low number of strings.
- Fixed a problem that <option> tags are not correctly selected, when
the <option> tag was inside a loop and the name of the <select>
tag was dynamicly generated.
- Added test for config directives inside of VirtualHost
=head1 2.0b6 (BETA) 13. Mar. 2002
- Embperl have move from the namespace HTML::Embperl to Embperl.
This is because Embperl is no longer only a HTML framework,
but is suitable for other formats like XML too. Also this allows
to install Embperl 1.x and 2.x on the same machine without
conflicts, to make a smooth upgrade.
- Rewrote Embperl internal data structures. The Embperl request
structure is now splitted into thread, application, request
and component structure.
- Moved nearly all of the per request/component initialization code
from Perl to C. Together with the optimized data structures, this
speeds up request/component initialization, which is especialy a
performance improvement for pages that do a lot calls to
Execute (up to 50% for small includes).
- All members of these structures now available form Perl
which avoids using mod_perl Apache object and enviroment
variables in most cases, makeing the resulting pages more
independend from the environment they run under. On the other
side this gives quite a few new possibilities to influence
what Embperl is doing, especialy together with Embperl::Object.
- Introduced new application object which holds together a set
of pages and allows to configure the Embperl logfile and session
handling different for each application.
- Added Embperl::Object application object, which is invoked during
request initialization. Any application code can now go there.
This allows a proper separation of Code and Design and building of
MVC (Model, Controller, View), 2-Tier and 3-Tier applications
with Embperl.
- Added EMBPERL_APP_HANDLER_CLASS to set the application object
for Embperl pages, when not using Embperl::Object
- Embperl now uses nativ Apache configuration directives instead
of enviroment variables when running under mod_perl. You need to
load Embperl before you can use any of them, either via
"PerlModule Embperl" or via "use Embperl" inside of a startup script.
"Embperl_UseEnv on" is provided to get the old behaviour of using
environment variables for configuration.
- The default for input unescaping is now set to off. So people which are
working with an text editor should be happy, people who are using any
sort of HTML editor should use EMBPERL_INPUT_ESCMODE to set the way
Embperl interprets the input.
- Added new configuration directives EMBPERL_INPUT_ESCMODE which controls
the unescaping of the input. This superseds the old optRawInput and
allows a more differentiated control.
- Added form data validation. Embperl is now capable to do server-side
and client-side validation of form input. You just have to define
a set of rules and Embperl generates the correct JavaScript code and
does the validation when the form data is posted to the server. By
writing or overriding class, the validatior could be extented.
See Embperl::Form::Validate for details.
- Added [= foo =] block and $r -> gettext method for page localization.
When the page is executed the 'foo' is replaced with a localizied
message for the current language.
- Added methods r -> messages and r -> default_messages to define
current message set for current language during application init.
- Added embpmsgid.pl utility to extrcat message ids from Embperl pages
and put them in a Data::Dumper or dbm file.
- Simplified the definition of the recipe structure. This allows much
more intuitiv definition of a new recipe.
- A recipe struture can now also be passed directly to the Execute
function as parameter.
- The get_recipe function now can be overriden by a custom application
object.
- Enhanced POD parser. Now generates a similar output as pod2xml,
which is better suitable for XSLT processing. Also the POD
parser now can pasers POD out of other Embperl files.
- Fixed problem with parameter passing to xslt processors, which
were always ignored on the first request.
- Renamed configuration directive EMBPERL_FILESMATCH to
EMBPERL_URIMATCH to better describe what it is doing.
- exit works now outside of [$ sub $]
- New configuration directive EMBPERL_SESSION_MODE allows
to configure to pass session inside of the QUERY_STRING
- Embperl doesn't add's a \r\n at the end of textfiles
anymore.
- Moved send_error_page and mail_errors into Embperl::App, so they can
be overridden by a custom application object.
- Added configuration directives EMBPERL_MAIL_ERRORS_LIMIT,
EMBPERL_MAIL_ERRORS_RESET_TIME and EMBPERL_MAIL_ERRORS_RESEND_TIME
to limit the number of errors send in a small time.
- When running under Embperl::Object all sourcefiles including for
example xsl stylesheets are now search throught the searchpath.
- Fixed a bug that causes input fields and textarea field to not
autofilled anymore after a sub was called. Reported by Kee Hinckley.
=head1 2.0b5 (BETA) 27. Nov. 2001
- Add xsltparam parameter which takes a hashref and is used to
pass parameters to the xslt processor. If not given defaults
to %fdat.
- Add require URI::URL to test.pl so make test work with newer LWP.
Patch from Jonathan Stowe.
- Fixed problem in registry/tied test, which failed for some Apache
versions because of addtional http header. Patch from Jonathan Stowe.
- Fixed problem with comments inside [! !] blocks. Reported by
Alan Milligan.
- Fixed compiling problem with very recent versions of libxslt.
Reported by Michael Stevens and Jonathan Stowe.
- Fixed make test so it skips session tests if Apache::SessionX isn't
installed. Reported by from Jonathan Stowe.
- Fixed path problem with Execute ({sub => foo,... }) on win32.
- Fixed a problem with duplicate subroutine names when running
multiple pages in the same package.
- Fixed problem with reloading when file changed, which sometimes
didn't reload correctly in 2.0b4
- Fixed memory leak which occured when using libxslt.
- Fixed MakeMaker problem with Perl 5.7.1.
- Removed some uninitialized value warnings.
- Added "make start" and "make stop" to start and stop test httpd
=head1 2.0b4 (BETA) 20. Nov. 2001
- Enhancements for RTF syntax, allowing no IF fields and passes
thru any unkown fields.
- Fixed problem when loading syntax. Spotted by Michael Stevens.
- Allow Perl code inside of HTML attributes in ASP syntax, together with
EmbperlHTML syntax. Spotted by Ivan G. Shevchenko.
- Added POD syntax, which converts POD to XML, which can transformed to
any other output format using XSLT.
- Enhanced Makefile.PL to support plugins for linking of extra libraries.
- Added support for libxslt
- Added support for Xalan-C XSLT
- Added the concept of recipes which allows to dynamicly tell Embperl
how to process a request. A recipe is basicly a tree structure
with put different providers together. Every provider can act
upon the output of the preceeding providers. See README.v2
and perldoc HTML::Embperl::Recipe for more details.
- Added new configuration directive EMBPERL_RECIPE/Execute parameter
recipe, which tells Embperl how a file should be processed.
- Added recipes for XSLT transformation.
- Rebuild cache management to work together with recipes. Now every
intermediate step could be cached.
- Add new debug flags dbgOutput, dbgRun, dbgCache, dbgCompile, dbgXML,
dbgXSLT, dbgCheckpoint, dbgDOM to have a more fine control what's
going into the log file
- Changes in Embperl's internal tree representation, to fix serveral
small problems and in preparation for proper XML handling.
- print OUT inside loop works now correctly
- Added new escmode 8/15 which generates correct XML escaping.
- $row_foo will no longer treated as $row. Bug reported by Dave Fischer.
- Add patch from Wim Kerkhoff so SSI syntax works together with
EmbperlObject, i.e. included files are searched in the same way as
normal Embperl files.
- Add new method AddTagInside in HTML::Embperl::Syntax::HTML to allow
tags inside of other tags.
=head1 2.0b3 (BETA) 9. July 2001
- correct package handling in EP1COMPAT mode
- compiles now with sun-cc. Patches from Michael Stevens.
- fixed several bugs that caused weired behaviour with nested subs
and tables.
- fixed a bug that caused Embperl to stop when it sees a checkbox
inside a loop, for which no value is in %fdat.
- fixed a bug that caused Embperl alias a value in %fdat and %idat
- Execute work now also on the very first line of a file. Spotted
by Michael Smith.
- [- -] can now contain Perl comments. Spotted by Michael Stevens.
- [- -] can now start with =pod. Spotted by Jonny Cavell.
- fixed a parser error so <[+ $foo +]> generates the correct result.
Spotted by Michael Stevens.
- fixed bug in Node_insertAfter which may cause a single Execute
on the second line of a file to loop endless. Spotted by
Janny Cavell.
- Embperl doesn't search for attributes inside of quotes inside of
html tags anymore. Spotted by Ian Van der Poel.
- type=checkbox|radio is now case insensitiv as it should. Spotted
by Jonny Cavell.
- print OUT and Execute now works together. Spotted by Jonny Cavell.
- Embperl doesn't insert a linefeed after an Execute anymore.
- Embperl now keeps single or double quote the same as in the source
file. Requested by Jonny Cavell.
- [$hidden$] works now correctly inside of loops. Spotted by Jonny Cavell.
- The parser now checks for the correct end of an html tag. Spotted
by Jonny Cavell.
- Added RTF syntax. This allows you for example to create serial letters
with your favorite word processing program, save them as RTF and process
them with Embperl. See HTML::Embperl::Syntax::RTF for docs.
=head1 2.0b2 (BETA) 29. Mar 2001
- Embperl files can now debugged via the interavtive debugger.
The debugger shows the Embperl page source along with the
correct linenumbers.
This works in various ways:
# perl interacive command line debugger
perl -d embpexec.pl file.epl
# ddd graphical debugger (https://www.gnu.org/software/ddd/)
ddd --debugger 'perl -d embpexec.pl file.epl'
or via Apache::DB under mod_perl
- Embperl has now a defined API for creating/adding a new
syntax. See perldoc HTML::Embperl::Syntax for details.
- Which syntax (also multiple at the same time)
a given page uses can be defined via EMBPERL_SYNTAX configuration
directive.
- Added Syntax definitions for SSI, Perl and plain Text
- New [$ syntax $] metacommand can switch the syntax of the file
on the fly. It's also usefull to load addtional taglibs.
- print OUT works again
- HTML comments are not touched anymore
- Embperl doesn't log a warning if a undefined value is in %ENV and
dbgEnv is on.
- 2.0b2 now contains all contains all changes up to 1.3.2 .
=head1 2.0b1 (BETA) 22. Dec 2000
- Syntax of Embperl is now defined in module HTML::Embperl::Syntax
- Processing of Embperl is now divided in smaller steps:
1 reading the source
2 parseing
3 compiling
4 executing
5 outputing
Since steps 1-3 has only to take place for the first time a file
is processed, Embperl is about 50-100% faster the Embperl 1.x.
(Embperl 1.x has also precompiled the Perl code, but Embperl
goes much further and stores also a precompiled structure of
the document)
This modularisation will also allow to replace single steps
with other modules and to cascade multiple processors, that
work on one document.
- The following options can currently only set from the httpd.conf:
optRawInput, optKeepSpaces
- The following options are currently not supported:
optDisableHtmlScan, optDisableTableScan,
optDisableInputScan, optDisableMetaScan
- Nesting must be properly. I.e. you cannot put a <table> tag (for an
dynamic table) inside an if and the </table> inside another if.
(That still works for static tables)
- optUndefToEmptyValue is always set and cannot be disabled.
- [$ foreach $x (@x) $] requires now the bracket around the
array (like Perl)
- [* *] blocks works now as expected.
- option tag can take value optional from html text, so
<option value="foo"> and <option>foo</option> are the same
- Execute ('file.htm#subname') works now without a previous
import
- Added cacheing of output. There are serveral parameters that
controls the caching. They can be either given as configuration
directives in httpd.conf, as parameters to Execute or as
Perl vars/subs inside a [! !] of the page itself.
- [+ +] blocks must now contain a valid Perl expression. Embperl 1.x
allows you to put multiple statements into such a block. For performance
reasons this is not possible anymore. Also the expression must _not_
terminated with a semikolon. To let old code work, just wrap it into a do
e.g. [+ do { my $a = $b + 5 ; $a } +]
=head1 1.3.4 (RELEASE) 5. Dec 2001
- Added method $r -> Espace for html & url escaping
- URL escpage # to %23
- use Content-Length HTTP Header instead of $ENV{CONTENT_LENGTH}
when running under mod_perl and win32. This fixes a bug
with POSTed data reported by Lukas Zapletal.
- Display correct Apache module name in Makefile.PL when
requesting path for Apache module. Patch from James Lee.
- New session handling using Apache::SessionX. (This also
fixes problem with MD5 and Perl 5.6.1)
- Fixed a bug that cause file-uploads to fail for the first
request to a file when running under EmbperlObject. Reported
by Thoren Johne.
- Added possibilities to add the session id as argument to any URL,
instead of using cookies.
- Added new hash %sdat which holds temporary sessins data.
- Added options optAddUserSessionToLinks, optAddStatusSessionToLinks
and optNoSessionCookies to control how the session id is passed.
- Make sure the HTML::Embperl::Mail generates correct line endings
- If Perl's STDOUT and/or STDIN are tied to any package, Embperl now
calls the Perl methods PRINT and READ for doing I/O. This currently
only works when not running under mod_perl.
- Embperl can now run under FastCGI. Use embpfastcgi.pl instead of
embpcgi.pl.
- Delete unnecessary PerlFixupHandler from httpd.conf.src for make test.
Reported by David Merberg.
- Add undef to %idat for select tag with nothing selected if
optAllFormdata is set.
- Cleanup of DBIx::Recordset objects now honors the setting in %CLEANUP.
Problem reported by Kee Hinckley.
- Embperl can now use encrypted sourcefiles. See crypto/README for
details.
- Embperl can now be installed as Apache and non Apache version on the
same system. This is neccessary to work on Windows in- and outside of
Apache.
- Fixed a linkage problem with symbol embperl_module, first reported
by GustavKristoffer Ek.
- error message now always contain a filename.
- Added optShowBacktrace to enable backtrace of filename in error messages
- Removed obsolete debug flags dbgDisableCache, dbgWatchScalar,
dbgEarlyHttpHeader
- Fixed problem with changing to page directory on win32. Reported by
Hans de Groot.
- Fixed problems with mod_perl environement handling with ActiveState Perl
on win32.
=head1 1.3.3 (RELEASE) 6. Juni 2001
- fixes problem with cleanup and Perl 5.6.0+ which broke
session management. Spotted by Lukas Zapletal and Andy Lim.
- Improved Makefile.PL to catche more setup situation on
Win 32.
- Make $r -> Error settable to be able to reset Embperl's
internal error flag.
- workaround for $r -> chdir_file not working correctly inside
of Apache::Registry with ActiveState Perl, which caused
make test to fail.
- fixed SIGSEGVs that could occur on rare situations when
multiple file not found errors are reported.
- fixed problem with wrong setup of Content-Length header
when running in CGI mode, with escmode = 0. Spotted by
Edwin Ramirez.
- fixed problem with nested dynamic tables and Execute.
- added correct errror message for rcNotCompiledForModPerl.
Spotted by Scott Chapman.
=head1 1.3.2 (RELEASE) 16 May. 2001
- Emulate the syntax => Text parameter of Embperl 2.0, which allows
to include pure text files any without interpretation. Requested
by Kee Hinckley.
- Fixed problem with corrupted @ISA, that had occured when a page was
first requested without EmbperlObject and then with EmbperlObject.
- Catch exceptions inside of Embperl.pm and correctly cleanup the
request. This avoids problems in further request in case anything
was really going wrong.
- If the base template in an EmbperlObject request is requested
directly the Execute ('*') does nothing, to avoid
endless recursion.
- Fixed bug in SetSessionCookie which had called undefined method
getinitalid. Spotted by Sun Choi.
- Removed wrong expire setting from SetSessionCookie, spotted
by Michael Stevens.
- Additions to IntroEmbperlObject.pod by Neil Gunton.
- ';' is now accepcted as separator for query strings addtionaly
to the '&' character. Patch from Brent A. Ellingson.
- ';' is now escaped to %3B when outputed inside a URL.
- Embperl is now added to the Serversoftware identification when
preloaded under mod_perl.
- adapted make test to Perl 5.6.1 and 5.7.1 so now it passes sucessfully.
- fixed problem with cleanup in threaded Perl 5.6.1 and higher
- added pod documentation to embperl.pl. Patch from Angus Lees.
- %http_headers_out can take now array refs as elements to set multiple
headers of the same value. Patch from Maxwell Krohn.
- Non module-documenations (like Intro.pod Faq.pod etc) now gets copied under
the correct directory and man pages are generated with the correct name
(e.g. perldoc HTML::Embperl::Intro works now after installation). Based
on an idea from Angus Lees.
- Makefile.PL enhancements for Apache/ActiveState binary distribution
- quote pathnames in Makefile to allow directories like "Program Files".
Spotted by Lukas Zapletal.
- Added epocgi.pl which allow use of EmbperlObject as CGI script.
- Added a dTHR to function CmdVar to make Embperl compile with threaded
Perl 5.005. Patch from Michael George III.
- EMBPERL_SESSION_ARGS can now accept pathes with spaces inside by quoteing
an argument e.g. PerlSetEnv EMBPERL_SESSION_ARGS "'Directory=/Session Files/'".
Spotted by Lukas Zapletal.
- Perl search path (@INC) in make test is set to abosulte paths to be independend
of directory changes that Apache might issue. Spotted by Randy Korbes.
=head1 1.3.1 (RELEASE) 13 Feb. 2001
- Added new Introduction to EmbperlObject written by
Neil Gunton. See perldoc IntroEmbperlObject
- Added new Tips and Tricks pod written by
Neil Gunton. See perldoc TipsAndTricks. Anybody is invited
to send me their own Tips and Tricks!
- Added object and isa parameters to Execute, which allows to get an
object reference for a certain file and set the Perl inherence
hierachive. Ideas from Neil Gunton and Angus Lees.
- Corrected a problem that leads to very strange errors when an
Embperl sub is called from an in memory source (that is passed
via the Execute input parameter). Spotted by Neil Gunton.
- Make EmbperlObject work better with relative paths and drive letters
on Windows. Based on a patch from Freddy Vulto.
- Fixed a problem with the cache key, which could cause that the same
file is compiled within different packages.
- Fixed a problem that Embperl are in a wired state after an file upload
has been interrupted. Spotted by Dirk Lutzebaeck.
- Fixed a problem set @ISA is not correctly setup in case a file is
compiled in the same package as the base file of EmbperlObject.
Spotted by Neil Gunton.
- Fixed problem with including ../foo.html in EmbperlObject. Spotted
by Neil Gunton.
- Added warning if @ISA is not correctly setup/corrupted.
- Fixed a SIGSEGV that occurs when an reference to undef is returned
from a [+ +] inside a URL.
- Added warning to Makefile.PL, if File::Spec 0.82 isn't installed, which is
required by EmbperlObject.
- Fixed "use of undefined value" warning in make test
=head1 1.3.0 (RELEASE) 4 Dec. 2000
- Corrected a wrong test, that let make test fail. Spotted by Eddie Lau.
- Added a Line Feed at the end of epnames.h, which has caused some problems
with on old SunOS compiler. Spotted by Roman Maeder.
- Fixed a problem that Perl generated an error when $req_rec and [$ var $] was
used. Spotted by Michael Stevens.
=head1 1.3b7 (BETA) 15. Nov 2000
- Fixed problem that the call to close triggers error in Session.pm when using
Store::File. Spotted by Alvar Freude.
- Fixed problem that GetSession doesn't return a value for new session.
Spotted by Angus Lees.
- Added new function SetSessionCookie, which can be used to set the session cookie
header in case you use Embperl session management, but don't use a
Embperl page in that request. Suggested by Alex Schmelkin.
- Fixed problem that DeleteSession does not work outside the base template, when
used with EmbperlObject. Spotted by Angus Lees.
- Fixed problem when use multiple nested ../foo.htm inside EmbperlObject.
Spotted by Neil Gunton.
- Included patch from Angus Lees to ease building on debian.
- make test now works again with BEN-SSL httpsd. With help from Neil Gunton.
- Included grammaticaly updated Embperl.pod. Many thanks to Ilia Lobsanov
for doing the proof reading.
- removed dbgDisableCache to avoid problems with this "feature" that isn't working
anymore for a long time.
- Added validaten for session cookie. If Apache::Session 1.53+ is installed
it uses the validate method from Apache::Session::Generate::xxx. If a invalid
session id is found a new one is generated. Spotted by Angus Lees.
- If a not existing session id is received, Embperl generates now a new one.
- Enhancements of Cookie resending logic. To make sure cookies are send when
neccessary, but not more often. (Handles now write to session data, after
a delete in the same request correctly).
- Added more tests for Sessionhandling.
- Fixed a bug that Content-Lenght was 2 to much, when escmode was set to zero.
Spotted by Michael Smith.
- Added patches from Randy Korbes for ActiveState Support. Most tests with
Embperl under mod_perl nows passes. The few remaining ones that doesn't pass
seems to be due to problems of mod_perl's enironment handling.
- Droped support for Apache::Session 0.17. Embperl now support only
Apache::Session 1.00 and higher.
- Added new option: optDisableSelectScan, to allow processing of SELECT tags,
while processing of TABLE tags is disabled. Suggested by Robert.
- Carridge Returns are only removed for Perl 5.004. This makes using of
HERE documents possible on Perl 5.005+, even if the documents has CRLF
as lineendings.
=head1 1.3b6 (BETA) 18. Oct 2000
- Embperl now runs on ActiveState Perl. (At least in offline mode,
mod_perl mode seems to still have some problems). With a lot of help
from Randy Korbes.
- Changed EmbperlObject search order:
* If EMBPERL_OBJECT_STOPDIR is set, this directory is taken as
the last directory in the normal search path, instead of the
directory where the base template (EMBPERL_OBJECT_BASE) is found.
* EMBPERL_OBJECT_ADDPATH is _always_ added to the search path
* Now Embperl also searches the path for files like
../foo.html, or bar/foo.html, which includes a relative path.
- ../* is now a shortcut for the requested file, but in the
parent directory (or upper depending on the search path)
- Added access to Embperl session handling for modules and
calling scripts (see SetupSession and GetSession)
- Embperl is now able to output binary data if EMBPERL_ESCMODE
and/or $escmode is zero. This also include that no CRLF is
added at the end of the file, if escmode is zero.
- Added method for deleting session data and cookie
- Added method for triggering resend of session cookie.
- Added Test for pnotes ('EMBPERL_ERRORS')
- Added hash %CLEANUPFILE. All variables defined into the files given
in this hash, are also cleanup at the end of the request.
Patch from Todd Eigenschink.
- Changed the way the C Requestobject is attached to the Perlobject,
so it should now also work on 64Bit Processor like Alpha.
Spotted by Andre Landwehr.
- Fixed a problem with importing files that contains foreach and
do until loops, which may caused a syntax error or endless
loop. Spotted by Steffen Geschke.
- embpcgi* and embpexec* are now geratated out of *.templ instead
of editied in place to avoid problems with cvs conflicts
and lower/uppercase on Win32. Suggest by Jens-Uwe Mager.
- make test works with Apache that has mod_jserv compiled in
- Embperl now cache same files with relative path, which are located
in different directories correctly.
=head1 1.3b5 (BETA) 20. Aug 2000
- Embperl now supports Apache::Session 1.52. See "Session handling"
in the docs, how the setup has changed.
- Fixed a problem with POSTed data, which had got lost for the first,
request when using EmbperlObject handler. Spotted by
Kaare Rasmussen.
- Fixed a typo in HTML::Embperl::Mail, spotted by Robert.
- changed require to use HTML::Embperl in EmbperlObject to avoid problems
with dynamic loading. Spotted by Robert.
- Embperl takes the cookie for session handling from the Apache
request record to make it available in earlier phases then the
content handler. Suggested by Jack Cushman.
- added entity decoding for value attribute of radio/checkboxes.
Spotted by Chris Thorman.
- %fdat is not resetup when already done and formtype is
multipart/formdata. Spotted by Michael Slade.
- Embperl inserts & instead of a signle & inside query strings
when expaned from array or hash refs.
- Embperl now also accepts hashref inside a url and expand it
to a query_string i.e. <a href="foo.html?[+ { a=>1, b=>2 }+]"> will become
<a href="foo.html?a=1&b=>2">.
- EMBPERL_COOKIE_EXPIRES now also supports relativ times like:
+30s +10m +1h -1d +3M +10y
- $req_rec -> pnotes ('EMBPERL_ERRORS') could be used to retrieve
error message inside a error document
- make Embperl compile and run with threaded Perl 5.6. With help
from Jason Bodnar. NOTE: That doesn't mean that Embperl is
threadsafe!
=head1 1.3b4 (BETA) 17.07.2000
- New $escmode (or EMBPERL_ESCMODE) to disable the possiblilty
to turn off escaping with a leading backslash. Adding 4 to
any escmode will cause Embperl to do no special processing
on the backslash. This is mainly to avoid problems with
cross site scripting issuse, where people are able to enter
aribtary HTML. Spotted by Dirk Lutzebaeck.
- Characters between 128 and 159 are all HTML escaped now to
avoid problems with buggy browser, which were reported to
treat the chars 139 and 141 as < and >. Spotted by Dirk Lutzebaeck.
- If a requested file is not found when using EmbperlObject as handler,
the file given by C<EMBPERL_OBJECT_FALLBACK> is displayed instead.
If C<EMBPERL_OBJECT_FALLBACK> isn't set a staus 404, NOT_FOUND is
returned as usual.
- "perl Makefile.PL debug" will build debugging information for
gdb/ms-vc++ into Embperl library.
- test.pl can take a bunch of new options for debugging Embperl itself.
See make test TESTARGS="--help".
- Embperl 1.x and 2.x share now the same Makefile.PL and test.pl
- Added new debug flag dbgObjectSerach which logs the EmbperlObjects
work when searching the correct file.
- If import parameter is given to Execute, Perl code is compiled, but
only [! !] blocks are executed (to allow sub definitions on import)
- Space is converted to %20 instead of +, because that is more generic.
Suggested by Michael Blakely.
- EmbperlObject now automaticly defines all subs that are declared
inside the base template and inside the requested page, so it isn't
neccessary anymore to call Execute with import => 0 for them.
- Every Embperl Page now get passed a request object (which can be obtained
from $_[0]). The request object is a hash reference which is blessed
into the package HTML::Embperl::Req. Embperl itself don't uses the hash, so
you are free to populate it and pass data between different pages of one request.
- EmbperlObject now setup the inherence so that
request page -ISA->
base template -ISA->
EMBPERL_OBJECT_HANDLER_CLASS (if defined) -ISA->
HTML::Embperl::Req
and the Embperl request object is blessed into the packages of the
requested page, so you can do methods calls to subs that are defined
inside the requested page.
- correct spelling error and renamed ScanEnvironement to ScanEnvironment.
(ScanEnvironement still works).
- EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute)
- MailFormTo and HTML::Embperl::Mail::Execute now have a configuration
directive EMBPERL_MAILHELO, can be used to specify the host/domain for the
HELO/EHLO command. Suggested by Remco Brink.
- Fixed a bug that caused the default drive to be incorrectly set on Win 32.
=head1 1.3b3 (BETA) 25.04.2000
- Fixed SIGSEGV which occurs in cleanup with Perl 5.6. Spotted by
Aaron Johnson.
- Changed make test so it works correctly with new error messages of
Perl 5.6.
- Fixed a bug that Execute will always fail when $@ was set before.
Patch from Francis J. Lacoste.
- Changed test so it accpects charset in Content-Type header from
Apache 1.3.12
- The outputfile parameter now also works when running under
mod_perl. Spotted by Ilia Lobsanov.
- Makefile.PL warns if you build with a DSO mod_perl < 1.22
- make test checks that test files are readable by Apache.
- Applied a patch from Jens-Uwe Magner to make Embperl work
with mod_perl 1.22 on AIX. We now require mod_perl 1.22,
but I should now work as DSO and staticly linked.
- Applied a patch from Francis J. Lacoste that makes sure
that when a package name is given the file is always compiled
into this package. Note: This means that if you specify a
packagename and the packagename differs from request to
request, the page is compiled for every package and therfore
consuming memory on every request.
- Added EMBPERL_SESSION_HANDLER_CLASS which allows you to overwrite
Embperl defaults session handling. Idea form Barrie Slaymaker.
- Added EmbperlLogo.gif to the distribution, which contains
"Powered by Embperl".
- Added Patch from Randy Kobes that makes Embperl compile with
Apache 1.3.12 and Perl 5.6 on Win32.
- Removed some -w warnings form EmbperlObject
- Added tests for EmbperlObject
- Fixed a SIGSEGV that occured when Embperl found [*] inside
a page. Spotted by Barrie Slaymaker.
- Added epchar.c.min which contains translation tables which
let's all chars above 128 untouched. This is usefull for
processing two byte charsets. Patch from Sangmook Yi.
- The searchpath (EMBPERL_PATH) now uses semikolons (';') instead
of colons (':') to avoid problems with Windows drive letters.
Colons still work on Unix.
=head1 1.3b2 (BETA) 11. Feb 2000
- added new mod_perl handler EmbperlObject, which helps to build whole
pages out of small objects, which can be overwritten in "derived"
pages.
EmbperlObject allows you to define the standard layout of your site just
once and includes the neccessary components based on the uri. Your HTML
documents just have to contain the unique stuff and not the common stuff
like headers/footers or navigation bars. Also these common elements can
be overwritten in each subdirectory.
- added EMBPERL_PATH (and path parameter to Execute), which can contain
a colon separated search path. Embperl uses it when a file, which does
not contain a path, is executed.
- added new module HTML::Embperl::Mail which sends a file processed via
Embperl by email.
- Fixed a bug, that the logfile if opened also EMBPERL_DEBUG is set
to zero. Now if debug is zero, no logfile will be opened. Spotted
by Jason Bodnar and Christian Gilmore.
=head1 1.2.1 5. Jan 2000
- fdat parameter of Execute function isn´t honoured when
call from CGI script which has received multipart/formdata.
Spotted by NHan H. Trinh.
- @ffld was not correctly setup, when only fdat parameter is
given in calls to Execute.
- if mtime parameter is undef or 0, now the pcode really isn't
cached. Spotted by Neeme Vool.
- EMBPERL_OPTIONS and EMBPERL_DEBUG (debug, options) accepts
now decimal, binary, octal and hex values.
- fix a SIGSEGV that could occur under rare conditions in
cleanup. With help from Todd Eigenschink and Gary Shea.
- fix a problem that $req_rec is not correctly setup inside
imported subs. Reported by Cliff Rayman.
- specify domain/hostname when sending mail via MailFormTo
- add EMBPERL_MAILFROM config, to make sender used by
MailFormTo configurable
- add EMBPERL_MAILDEBUG config, to allow debugging of email
problems in MailFormTo
- ProxyInput now handles posted form data. Spotted by
Neeme Vool.
- EMBPERL_INPUT_FUNC now allows to also give the name
under which the source should cached, to allow correct
cacheing of data read via EMBPERL_INPUT_FUNC. Spotted by
Neeme Vool.
- Fixed a SIGSEGV in OPTION tag which occurs due to
different integer sizes on 64Bit systems. With help
from David Waldo.
=head1 1.2.0 17 Nov 1999
- test script had failed in cgi mode on win32. Spotted by
Randy Korbes.
=head1 1.2b11 (BETA) 4 Nov 1999
- Added the "Status:" header and error message to embpcgi.pl to
let Apache return the correct status line. Patch from Jason Holt.
- Fixed problem that Apache SIGSEGVs when an error message contains
a %x. Spotted by Ed Park.
- Added missing BEGIN block in docs for Session handling.
- Fixed an endless loop that occured when tainting is on and
the same document is called two times via Execute. With help
from Jason Holt.
- Changed access to addtional upload fileinfo. The old syntax
(${${$fdat{<name_of_field>}}}) isn't available anymore, because
it doesn't work with filenames that are not a vaild perl
variable name. Now there is a second field which start with a
dash that's holds a hash ref to the file info. Spotted by
Huang-Ming Pan.
- The Embperl specific part of Apache session (former
Apache::Session::Embperl) is now part of the Embperl distribution
(as HTML::Embperl::Session). This makes Embperl independ of
new releases of Apache::Session. Embperl now works with
Apache::Session version 1.00 and higher. Apache::Session 0.17 is still
supported, but the documentation is removed, because it should no
longer be used.
- Apache::Session must not be preloaded prior to Embperl. It's
enought to set EMBPERL_SESSION_CLASSES and Embperl will bring
the right modules in memory for you.
- Removed the call to mod_perl_sent_header, which was an workaround
for an problem with (very) old mod_perl version, because it doesn't
resolve on (every) IRIX. Spotted by Jearanai Vongsaard.
- NOT_FOUND, FORBIDDEN now also logged thru Apache, so the LogLevel is
honoured and log message in Apache error log get a time stamp.
Spotted by Christian Gilmore.
- Removed warings that apears when compiling with -Wall.
- Added URL of better emacs mode for Embperl from Erik Arneson.
- Added new paramter 'errors' to Execute function which takes an
array ref, that returns any error messages. Suggested by
James Elson.
- Fixed that serveral options where not settable inside an Embperl page.
Spotted by Ilya Ketris.
=head1 1.2b10 (BETA) 7 Oct. 1999
- Fixed a great security whole in CGI mode. Because Apache passes
anything after the first '?' to the cgi script as commandline
arguments, embpexec.pl could be tricked into offline mode, where
it returned any file that is readable by the httpd! So if you are
using CGI mode, I strongly recommend to update to 1.2b10.
Now you must use embpcgi.pl instead of embpexec.pl in CGI mode.
Spotted by Jason Holt.
- Added EMBPERL_ALLOW. If the file doesn't EMBPERL_ALLOW Embperl
will return forbidden. This is primarly another security
feature, because dependig on the way you use Embperl in CGI mode,
it will not honour all Apache access restrictions. With
EMBPERL_ALLOW, you can now force it to serve only certain
files. Suggested by Jason Holt.
- Fixed a problem that had occured with magic SVs (tied scalar)
as source for the Execute function. Spotted by Todd Eigenschink.
- Embperl works now with Apache::Session 0.17, 1.02 and 1.04
(1.03 is errornous)
- Fixed a SIGSEGV that occurs when the req_rec parameter of the
Execute functions gets a Apache::Request object instead of a
Apache object, which occured due to the different ways the
Apache internal request_rec is stored inside the object.
Spotted by Francis J. Lacoste.
- Fixed a SIGSEGV that occured when outputting to a scalar and
optReturnError is set. Spotted by Francis J. Lacoste.
- Added a ; after the begin block in startup.pl, which seems had
cause a syntax error in some situations. Spotted by Oyvind Gjerstad.
- exit now works the same in offline, mod_perl and cgi mode, it
ends the execution of the page, but not the programm itself.
- exit inside a sub will now really exit the page. (but exit inside
a file called via Execute will only exit this file, not the whole
request) Spotted by Cliff Rayman.
- Added new hash %http_headers_out which could be used to set arbitary
http header under mod_perl _and_ in cgi mode. "Location" header will
automaticly set status to 301.
- setting http headers and <META HTTP-EQUIV=..> now works also
in cgi mode.
- Session Handling now also works in CGI mode (needs
Apache::Session >= 1.04)
- ACTION attribute of Formtag is now URL en/decoded. Spotted by
Hartmut Palm.
=head1 1.2b9 (BETA) 10. Sept 1999
- Fixed a problem with loading Apache::Session 1.01, when
Apache::Session 0.17 is not installed. Spotted by Volker Hess.
=head1 1.2b8 (BETA) 9. Sept 1999
- Fixed behaviour of <INPUT>. <INPUT> now does not overide
VALUE="" with the value from %fdat. This seems to has been
broken, since a couple of versions and the fix may break
pages that depends on that wrong behaviour. Anyway I have
to fix it before the release version is out!
- Added a patch (and a FAQ) from Jens-Uwe Mager, so Embperl compiles
and links on AIX.
- Fixed error in URL unescaping, spotted by Hartmut Palm.
- _WINSOCK2API_ gets defined on Win32, when compiling with
Apache 1.3.9. Spotted by Randy Korbes.
- Win32 test uses also embpexec.test.pl (instead of .bat),
so cgi test runs also with Apache 1.3.9. Spotted by Randy Korbes.
- Fixed problem with EMBPERL_SESSION_ARGS that splits the arguments
wrong when, for example, the DataSource contains a '='. Spotted by
Vince Galloway.
- Fix a memory leak which eats one SV per <OPTION> tag, introduced
in 1.2b6.
- Fix a problem that meta commands also recognized as html tags, i.e.
now <if x> is no longer the same as [$ if x $]. Spotted by Danielle Gallo.
- German documentation (IntroD.pod, FeaturesD.pod and EmbperlD.pod)
are now included in the distribution.
=head1 1.2b7 (BETA) 30 Aug 1999
- Embperl works now with Apache::Session 1.01
(1.01 _not_ 1.00 or below!)
- Cookie for session id is only send the first time and not
resend if it's already known by the browser. Suggested
by Roman Maeder.
- Fixed a SIGSEGV that occurs with $optRawInput = 1 and a
value is in %fdat, but not in the input html tag. Spotted
by Robert.
=head1 1.2b6 (BETA) 19 Aug 1999
- When call another page via Execute EMBPERL_VIRTLOG will
automaticly set to the same value as the in the calling page
- Add parameter 'firstline' to specify the linenumber of the
first line in the input
- Defined missing DECLINED constant for non mod_perl environement
Spotted by James Elson.
- Inside of an A tag URL escaped characters are translated back
to their ascii aquivalent inside of perl code, before the code
is executed. This avoid problems with HTML editors, which
changes space to %20 inside an URL.
- '%' is escaped to %25 inside of URLs
- Inside the A tag only the HREF attribute is URL escaped, instead
of the whole tag.
- The SRC attribute of embed, frame, iframe, img, layer now are
also URL escaped.
- Giving a an array refernce inside an URL, cause Embperl expand
it to URL parameter syntax (i.e. [+ \@A +] becomes A=1&B=2, when
@A = (A, 1, B, 2) ).
- Embperl checks now for unclosed metacommands (if, while etc.) and
unclosed HTML tags (table etc.). Suggest by Todd Eigenschink.
- Fixed a problem when file was not found, which causes in some cases
a SIGSEGV.
- Added new configuration directive EMBPERL_MAIL_ERRORS_TO. If set
all error messages will be send to the given address.
- input_/output_func parameter can take a code reference as
argument. Based on a patch from Jon Tobey.
- Set force PERL_DL_NONLAZY to zero, so make test does not fail
if dynaloader was initialized with PERL_DL_NONLAZY set.
Patch from John Tobey.
- [$ foreach $i(x..y) $] does not require a space before the (
anymore. Suggested by Jonny Cavell.
- select <option value="a & b"> works now correctly. Spotted by
Rick Welykochy.
- Fixed SegFault when parameter input => is numeric. Spotted by
Cliff Rayman.
- Added option optNoUncloseWarn, which disables the warnings
about unclosed if, while, table etc.
=head1 1.2b5 (BETA) 5 July 1999
- Renamed __strdup and __strndup so there are no duplicate
symbols when compiling with glibc. Spotted by Michael Hall.
- Removed some debugging message from the logfile output.
- Correct some wrong table entries for html escaping of some
characters like §
- Added optReturnError which causes Embperl to return an
error code and let the calling programm (i.e. Apache)
handle the error. This is necessary to use the
ErrorDocument directive together with Embperl. Spotted by
Michael Smith.
- Fixed the problem that the output of Execute inside a table
didn't come out when optEarlyHttpHeader was set. Spotted by
Chris Alexander.
- %fdat of a Execute will not be overwritten anymore when the
%fdat of the main request was empty. Spotted by Chris Alexander.
- fixed a small memory leak which was caused by not releasing
memory space for the cookie-name/-domain etc.
- added the missing -T switch to embpexec.test.bat, which caused the
taint test in cgi mode to fail on win32
- Added epchar.c.iso-latin-2 from Jiri Novak, which contains the correct
escaping for the iso-8859-2 (iso-latin-2) character set. You may use it
to replace the standard epchar.c
- Added new metacommand [$ sub <name> $] and [$ endsub $] which allows
you to define blocks of code an call them mulitple times inside a page,
either a creating a subrequest Execute('#<name>') or by calling them
directly as a perl subroutine [- <name> -]. Read the docs for more
information on the details and differences.
- Added new parameter "import" to Execute, which let's you import subs
(defined with [$sub <name>$]) into the current page.
- @ffld is filled with 'values %fdat' if the ffld parameter in the call
to the Execute funtion is missing.
- Filedata will held into memory until the end of the request, so a
second call to Execute for the same file will not reread the data
from disk.
- Added emacs/embperl.el. It's a emacs minor mode for Embperl written
by Erik Arneson
- Output of dbgShowCleanup is now sorted by name
- Update the Faq.pod with new Q&A and removed obsolete Q&A
- Made Makefile.PL more smarter in DSO situations. It detecteds now
which of the needed Apache modules are linked staticly and places
neccessary LoadModule statements in the httpd.conf for make test.
This way make test should work also where all modules linked at
runtime, like on RedHat 6. With help form James H. Thompson.
- Makefile.PL ask´s now if it can´t find any modules. On win32
it will not try to guess (the maybe wrong) path anymore.
- Added possibility to get the the uploadInfo from CGI.pm
(e.g. ${${$fdat{upload}}} -> {'Content-Type'} will return the
content type). Requested by Brian Reichert.
- Catch die of CGI.pm when it hit's a 'Malformed multipart POST'.
Spooted by Chris Alexander.
- Add optKeepSrcInMemory which tells Embperl to keep the source
file in memory and not reload it on every request
- Added the possibility to use recursive calls to Execute.
NOTE: You can create local variables via [* local $foo ; *]
- Reworked the cleanup. Now imported values from other modules
left unchanged. This solves problems with using modules
inside Embperl pages, which exports some global variables.
- Added the %CLEANUP hash. Put variables into with should be
additional cleaned up ($CLEANUP{'var'} = 1) or which shouldn't
cleaned up ($CLEANUP{'var'} = 0)
- Special handling for DBIx::Recordset objects, so it's sure
they are really get destroyed
- fixed a problem with dynamic tables, that occurs when you
had tried to repeat multiple table rows
- Embperl compiles now with perl5.005_57+. Patch from Ask Bjoern Hansen
- Cleanup now logs any errors that occurs when calling object
destructors and makes sure errors inside object destructors do
not break Embperl itself.
- Embperl now returns DECLINED when called for a directory. This
way Apache can handle diretories the correct way. This will make
DiretoryIndex (e.g. index.html) work again with Embperl.
- Fixed a problem that @ffld contains the same field more then
one time if posted from a select multiple with multiple items
selected. This caused problems with [$hidden$]. Spotted by
Martin Leja.
- Double quotes (") will be url-encoded to %22 inside URLs.
- Embperl now never writes to the logfile if EMBPERL_DEBUG is zero
- make test now runs with newest version of mod_ssl (2.3.5)
- Added option optKeepSpaces which will disable the removing of spaces
and empty lines from the output. Suggested from Gary Shea.
- Added option optOpenLogEarly, which will cause Embperl to open the
logfile as soon as it is loaded into memory. You can use this when
you loaded Embperl via PerlModule under Apache, to open the log
as root instead of the non-privileged user Apache runs as.
=head1 1.2b4 (BETA) 15 Feb 1999
- fixed a problem that $req_rec was sometimes invalid on the
second call to the same page causing Embperl to SIGSEGV.
With help of Todd Eigenschink.
- Cleanup the variable space inside Embperl pages. Before this
fix many of the internal my variables were visible to the
Embperl page. Spotted by Todd Eigenschink.
- multiple form values with the same name are handled now
correctly (concated in a tab delimited string) when send
in a multipart/form-data (file-upload). Spotted by Dirk
Lutzebaeck.
- The dbgForm flag works now also for multipart/form-data
- a missing right *] will be reported as an error.
- [[* is correctly output as [* and not interpreted as a
starting of a perl block. Spotted by Dirk Lutzebaeck.
- fixed a bug that causes the html after an endforeach to be
skiped, when the foreach loop gets an empty array as argument.
Spotted by Dirk Lutzebaeck.
- Makefile.PL checks now for required modules and versions and
generates warnings if necessary
- Do not CLEAR %udat and %mdat in cleanup, so Apache::Session
will not warn anymore about unsupported CLEAR operation.
- Added tests for session management (%udat, %mdat)
- Added more tests to see that $req_rec is correctly setup
- Added module Apache::Session::epDBI which is a subclass of
Apache::Session::DBI and corrects a problem with locking and
cares of serializing requests, so %mdat works correctly.
Please read IMPORTANT NOTE under Session Management in
Embperl.pod
- Added the dbgProfile flag which cause the display of the time
since the request start for every source line in the logfile.
- Correct a problem that the escape character ('\') was not removed
when unescaping the input. Now '<' is correctly translated
to '<' and '\<' is translated to '<' .
- When requesting to view the logfile via the browser now all
lines which does not start with a pid ([<pid>]) are displayed.
- fixed a problem, that sometimes not all errors are shown in the
error page, in conjunction with dynamic tables
- When running under perl 5.005 or higher, the cleanup after the
every request, now not only cleans up scalars, array and hashs,
but also closes all open file- and directoryhandles and undef's
all typglob (which causes for example DBIx::Recordset objects to
DESTROY correctly)
NOTE: This also causes imported variables from other packages/modules
not to be cleanedup anymore!!
NOTE: That the cleanup behaveiour under perl 5.004 and 5.005 is
slightly differnt! The new cleanup doesn't work with 5.004 because
of a bug, which should be corrected in 5.004_05 as soon as available.
- EMail adress from the form is insert as Reply-To header instead of
From header in MailFormTo to avoid problems with unresolvable
EMail adresses.
- Fixed the problem that session management (%udat, %mdat) didn't
work when Execute is used in the same page. Spotted by by Simon Lindgren.
- Fixed a path problem in Makefile.PL. Now pathes on Win32 Systems uses
blackslash instead of slash. Spotted by Randy Kobes.
- Win32 batch files will no longer contain path to perl after the #!,
so cgi tests passes on systems with 4DOS shell. Spotted by Randy Kobes.
- Added ; as terminator for cookie to correctly parse multiple cookies.
Patch from Tim Carrol.
- Changed table_set to table_add when setting the cookie for session data
to avoid problems with other modules setting also cookies.
- Corrected the %ENV problem that mod_perl-1.18 introduced, so both
work together again.
- Added dbgSession flag to enable/disable logging of session handling
- Added configuration diretives EMBPERL_COOKIE_NAME, EMBPERL_COOKIE_DOMAIN,
EMBPERL_COOKIE_PATH and EMBPERL_COOKIE_EXPIRES to configure the cookie
which holds the session id. Suggested by Cliff Rayman.
=head1 1.2b3 (BETA) 22 Nov 1998
- fixed an undefined pointer which occurs when using precompiled
[* ... *] blocks. Spotted by Bruce W. Holyman and Paul J. Schinder
- removed unwanted 0xa0 characters from tagscan.htm which causes
the test to fail on sunos. Spotted by Paul J. Schnider.
- Enhanced the detection of Stronghold, Apache SSL and mod_ssl
so they are found if they are not in a standard path. Spotted
by Brad Cox.
- Convert relativ path for apache source to absolute to avoid
problems within test script. Spotted by Brad Cox.
- Make Embperl compile with useperio=defined. Spotted by Todd
Eigenschink.
- Makefile.PL does now check if mod_perl is compiled into apache
and don't create a config for USE_DSO situtation even if
libperl.so exists.
- Added a workarround in the Execute('foo.htm') call, to avoid a
bug in perl5.004 which causes a SIGSEGV. Spotted by Michael J.
Schout and Chris Alexander.
=head1 1.2b2 (BETA) 9 Nov 1998
- There is now a short form of the Execute function. You can
now include a sub page in an Embperl page by simply writing
[- Execute ('filename.html') -] or use
[- Execute ('filename.html', 1, 2, 3) -] to pass additional
parameters
- Added new block [* ... *]. This block compiles code to an
outer subroutine which surounds the whole page. This makes
it possible to define "local" variables with a scope of the
whole page, which would be necessary for recursive calls
to Execute.
Also this let you use perl control structures inside Embperl
pages: e.g.
[* foreach $v (1..5) { *] Cnt = [+ $v +] [* } *]
NOTE: [* ... *] blocks _must_ always end with a ;,{ or }
[* ... *] cannot apear inside html tags that are
interpreted by Embperl (unless you disable the
interpretation of such tags like table, input etc.)
- Added a comment block: Everything between [# and #] is a
comment and is removed from the output.
NOTE: [* ... *] blocks also interpreted inside of a
[# ... #] block, all other blocks [+/-/$ $/-/+] are not.
- Added magic hash %mdat, which can be used to store persitent
data on a per module basis (needs Apache::Session, with
path in session.patch applied)
- Done more tests on session handling, seems to work fine now.
- Added new option dbgNoHiddenEmptyValue which suppresses
empty hidden input fields in the [$hidden$] meta command.
Patch from Steve Willer.
- Whitespaces after [...] blocks are removed in the output, so
there will be less empty lines, makeing the output shorter and
more readable, based on a patch from Todd Eigenschink.
- Embperl compiles now with mod_ssl (from Ralf Engelschall).
Spotted by Dirk Lutzebaeck and Randel Schwartz.
- Added a patch from Todd Eigenschink to build Embperl with
Stronghold 2.4.1
- Added patch from Gerald McLarnon so Embperl compiles on AIX
- Added optAllowZeroFileSize to accept files of length 0,
without that option Embperl will report NOT_FOUND.
Suggested by Doug Bagley
- fixed a wrong call to logerror when OPT_EXECCGI is not on,
spotted by Dirk Lutzebaeck.
- fixed the problem that reloads only takes place at the next day,
because mtime was an int instead of a double (introduced in1.2b1.
Spotted by Michael Smith and Roman Maeder.
- fixed a problem that changing of the filesize was ignored, when
a documents is reloaded (introducted in 1.2b1)
- cleanup for all subpages are disabled if main request has
disabled cleanup and subpages does not specify otherwise
- dbgShowCleanup works again
- Every package is only cleanuped once, also it's included multiple
times in one page
- %fdat and @ffld are setup correctly when optDisableVarCleanup
is set
- DEFS=-DEPDEBUGALL compiles again, spotted by Michael Smith
- fixed that cleanup is never called with Execute nesting, when
req_rec was not set. Now the parameter req_rec isn't necessary
anymore. Spotted by Michael J.Schout
- Changes of $escmode inside a HTML-A tag now handled correctly,
spotted by Michael Smith
- fixed problems with links to the logfile and the line break
in the html log file display
- fixed a problem with blocks that expand to nothing inside of Embperl
interpreted HTML tags.
- Adapted test script to modified error output of Apache 1.3.4.
Spotted by Eric Cholet.
- Empty values (VALUE="") in input tags will not be overridden by
value in %fdat
=head1 1.2b1 (BETA) 8 Oct 1998
- I have reworked the whole source code so Embperl is now
going to be an object. This means Embperl is reentrant, you
can call Execute within an Embperl page, for example to include
the same header on each page.
- Addeded Session handling via Apache::Session. Simply store data
to %udat and let Embperl do the rest for you. Experimental!
NOTE: You need Apache-Session-0.16.1 or higher and must apply
the patch from session.patch to it.
- Added test for calling Execute inside a Embperl page
- Errors of Input/Output function now also log to the httpd error log
- Added an test for input file not found
=head1 1.1.1 15 Sep 1998
- A lot of documentation updates. Now Embperl ships with most of
the documentation which is also available on
https://perl.apache.org/embperl/
This includes:
- Intro.pod an introduction to Embperl
- Faq.pod an new very much extented version of the FAQ
and a lot of spell checking, gramar checking and so on
Thanks very much to Nora Mikes for putting together the FAQ
and doing a lot of proof reading.
- eg/x/upload.htm an example for file upload within Embperl
- splited documentation out of Embperl.pm into Embperl.pod
to make it load a little bit faster (Embperl.pm is now 30K
instead of 90K)
- Optimized the loading of other modules. Other modules are now
only loaded when really necessary. This make Embperl in CGI mode
about 2 times faster then version 1.1.0 was.
- Added a test for file-upload
- Embperl compiles and works now with threaded perl, but Embperl
is currently B<not> threadsafe. So you can use Embperl in a
threaded environement, but you have to make sure that only one
thread useses Embperl at a time.
- Fixed a memory leak which has occured in checkboxes and selects
- Enhanced test.pl
- MailFormTo: Send \n after mail header to work correctly with all
mail servers, added EMBPERL_MAILHOST to specify mail server hostname,
MailFormTo dies when it can't connect to mailserver. Spotted by
Steffen Geschke.
=head1 1.1.0 28 Jul 98
- Added support for perl5.005 (currently only without threads!)
- Nesting of metacommands and HTML tags are now independent of
each other.
- Added examples in eg/x for do .. until, foreach, if,
DBI datbase access, DBIx::Recordset database access and a
input- / confirmation form.
- Added optUndefToEmptyValue which will cause Embperl to treat non-
existent values in %fdat as an empty string in input tags, as suggested
by Steve Willer.
- Catch "die" within EMBPERL_INPUT/OUTPUT_FUNC and write error
message to the logfile
- Write error message of LWP::UserAgent in ProxyInput to logfile
if any
- Added test for POST Requests
- Added support for tests when mod_perl is built with USE_DSO.
Spotted by Christian Oyarzun.
- Selects and checkboxes are setup correctly if state is set via %fdat.
Spotted by Todd Eigenschink and Steve Willer.
- Changes URL escaping so that only space, '+', '&', '=' and chars < 0x20
will be escaped to avoid problems with older netscape browsers.
- Added missing documentation for req_rec parameter of the Execute
function. Spotted by Eric Cholet.
- Send correct http header for error page, spotted by Steve Willer
- Fixed a memory leak in foreach metacommand
- Removed limit of 2048 Bytes for GET request data (there is no
limit anymore). Spotted by Steve Willer
- Read all POSTed data (not just the first 1024 Bytes). Patch from
Steve Willer.
- Removed some compiler warnings spotted by Tarang Kumar Patel
- Make sure all data is flushed to the logfile at the end of
each request
- Fixed a bug that causes Init to set DebugFlags to 1 instead of 0.
Spotted by Eric Cholet.
=head1 1.1b2 27 Jun 98
- Added an additional note for input- and output- escaping
which is described in "Inside Embperl" section.
It's very important to understand this if you have any
problems with HTML tags or filehandles in your Perl code.
- Embperl will recognize Apache::exit. If called inside an
Embperl page or in a module called from an Embperl page,
the processing of the document is immediately aborted.
Everything processed so far is output/sent to the browser.
Based on a patch from Steve Willer.
- When running under mod_perl, 'exit' is an alias for Apache::exit
in every document.
- Enhanced the format of the Errorpage. Thanks for the patch
from Steve Willer
- Added a [$ foreach $] and a [$ do $] ... [$ until $]
metacommand
- Now multiple checkboxes with the same name will be set
correctly, to the values posted to the document. Spotted
by Todd Eigenschink and Nathan Krislock.
- [+ local $escmode = 0 .... +] works now. The first setting
of $escmode in a [+ ... +] block will now applied to the
whole block. You cannot change $escmode inside a [+ ... +]
block. Spotted by Chris Thormann.
- Fixed the return path setting in MailFormFields
- ProxyInput now passes http headers, so authentification
will be passed thru.
- Removed the limit 2048 for the length of HTML tags when [+ ... +]
are included. Now there is no limit anymore. Spotted by Doug Bagley
=head1 1.1b1 14 Jun 98
- Now you can set custom input and/or output functions via
EMBPERL_INPUT_FUNC and EMBPERL_OUTPUT_FUNC. This can be
used to chain modules together or to get the input from
(or put the output to) non-standard locations.
- Added a function ProxyInput which can be used to fetch
the input from another URL instead of the disk. One possible
usage for this is to let mod_include parse the document first
and then let Embperl process it. Suggested by Steffen Geschke.
- Added a function LogOutput, which will write every generated
document to a unique file in addition to sending it to the
browser. Suggested by Dan Peterson.
- EMBPERL_FILESMATCH allows you to select which files in
a Location should be processed by Embperl. The rest are handled
by the Apache default handler. This allows you to have
Embperl and non-Embperl documents (like gifs etc.) in
the same directory.
- Logfile was displayed at the wrong position when requested via the
browser the first time after the httpd was started.
=head1 1.0.0 12 Jun 98
- Make test runs with Apache 1.3.0, spotted by Eric Cholet
- Added a definition for MAX_PATH, which is not there on SunOS 4.1.4.
Spotted by Dan Peterson
- Fixed a bug that causes Makefile.PL to interpret MakeMaker parameters
spotted by Jason Bodnar
- Fixed a bug that caused EMBPERL_PACKAGE not to be recognized.
- Fixed a bug that caused optDisableFormData not to be recognized for
multipart formdata.
=head1 0.28-beta 19 May 1998
- I have added a chapter "Inside Embperl" to the docs, I hope this
will make it clearer how escaping and unescaping works and how you
can get desired results. Highly recommended! (Thanks for spell- and
grammar-checking to Todd Eigenschink)
- make test now runs under win32 (You need to install LWP and libwin32)
IMPORTANT: You need a mod_perl version > 1.11 or you get a deadlock.
- Compiles with apache_1.3b6
- Added support for Stronghold and Apache_SSL to Makefile.PL and test.pl
- Changed dbgEarlyHttpHeader to optEarlyHttpHeader because it's not a
debugging option. dbgEarlyHttpHeader still persists, but will be removed
in one of the following versions
- Embperl does not change the current working directory when optDisableChdir
is set, this saves some milliseconds per request, also the cwd is moved
to the c code, so it runs faster then Cwd::fastwd.
Thanks to Doug Bagley for the profile which has shown how much time
Cwd::fastcwd consumes
- You can set optDisableHtmlScan in EMBPERL_OPTIONS. If set, Embperl only
recongizes [+/-/$/! ... !/$/-/+], but will not do anything with HTML tags,
as suggested by Randy Harmon.
- optDisableInputScan, optDisableTableScan and optDisableMetaScan can be
used to disable only some of the HTML tag processing
- You can set optDisableFormData in EMBPERL_OPTIONS. If set, Embperl
will not setup the %fdat and @ffld, as suggested by Doug Bagley
- If you use Execute, the explicit call to Init/Term isn't needed anymore,
because Embperl performs the Init automatically when it is loaded. The
Init function can still be used to change the path of logfile. Suggested
by Honza Jirousek
- All options and debugging flags can now be read/set at runtime. For
example $optRawInput = 1 sets the optRawInputFlag. Some of the options
are read-only, because they must be known before the request.
- Added more tests
- Embperl discards all errors which occur in an expression after the end
of a dynamic table, and which are only evaluated to detect the table end and
never displayed. This allows usage of object methods in dynamic tables,
where the table end is caused by an undefined object. (see
test/html/object.htm for an example). Spotted by Jason Bodnar.
- Printing to filehandle OUT has the same effect as using [+ .. +]
(including html-escaping)
- Setting optRedirectStdout causes Embperl to tie STDOUT to the Embperl
output stream (same as print OUT ...), suggested by Jason Bodar
- Setting optAllFormData will make empty formfields occur in %fdat and @ffld
with an empty string value, suggested by Dan Peterson
- Embperl now handles SELECT MULTIPLE correct. All OPTIONs which are
posted to the document will now be selected by Embperl, spotted by
Todd Eigenschink
- Fixed a bug that caused a '>' inside a [$/! ... !/$] block to be
interpreted as the end of a HTML tag, spotted by Todd Eigenschink.
- Fixed a bug which caused the SELECT/OPTIONS tag to not insert their
values in %idat and therefore made [$hidden$] work incorrectly, spotted by
Dave Paris [aka Spider]
- Fixed a bug that caused the INPUT CHECKBOX tag to not insert its
value in %idat when the value wasn't in %fdat and therefore made [$hidden$]
work incorrectly.
- Fixed a problem that caused magical variables to be handled as if they
were undefined, which caused dynamic tables to end, sometimes prematurely.
- Closing HTML tags will be correctly removed form Perl source again
(when optRawInput is not set)
- will be translated to space (0x20) instead of 0xf0
- When EMBPERL_DEBUG is set 0, only errors and warnings will be written to
the logfile
- MailFormTo will generate the correct TO header and insert a Return-Path
from the posted e-mail address
- Changed detection of mod_perl to $ENV{MOD_PERL}. This makes sure that
it will work correctly, even if Apache.pm isn't loaded.
- Re-entered the optDisableEmbperlErrorPage, which was lost in one of the last
releases, spotted by Doug Bagley.
- The content_length of the Apache request_rec will only be set when a http
header is sent.
- If, Elsif and While metacommands now use SvTRUE instead of a != 0 to test the
evaluated expression, so they now behave like the Perl ones do. Spotted by Jason
Bondar
=head1 0.27-beta not available
=head1 0.26-beta 16 Mar 98
- Adapt include pass to compile with apache_1.3b5
- Applied patch from Dan Walters to make Embperl compile with
apache_1.3b3 and mod_perl on Win 32
- Changed the order of included c headers and undef some macros
inbetween (copied from mod_perl.c) to compile with Apache on Win 32
- Embperl works with apache_1.3b5 on Win NT ('make test' does not yet)
(You need the Apache source and must compile Perl with the vc++)
- Added the 'param' parameter to the 'Execute' function to pass parameters
from and to the Embperl document.
- Added the 'fdat' and 'ffld' parameter to the 'Execute' function to
setup %fdat and @ffld
- Fixed a problem which displayed tables a second time after the end of
the document, if dbgEarly HttpHeaders was on, thanks to Ask Bjorn Hansen
for spotting this.
- Fixed the return values of CheckFile, which was not correct after a change
from 0.24 to 0.25. Thanks to Todd Eigenschrink for spotting this.
- Fixed an error which was causing Embperl to crash on an HTML input tag without
the 'type' parameter. Thanks to Todd Eigenschrink for the hint.
- Fixed a problem that caused Embperl to not recognize errors correctly
when reading the sourcefile
=head1 0.25-beta 17 Feb 1998
- Included the "translation" of the Embperl POD to a human-readable
form done by Todd Eigenschink
- Started a FAQ file from the questions I answered by e-mail
- Added the function Execute, which can be called from Perl programs
(or Apache::Registry scripts), and can take input from (and/or
output to) memory, as suggested by Doug Bagley and Randy Harmon
(Look at test/html/registry/Execute.htm for an example)
- Changed the source so that it will compile on aix, spotted by
Patrick McAuliffe
- Access sys_errlist via perl macro Strerror to avoid errors with
redeclaration, thanks for spotting this to Honza Jirousek
- Changed the tab size from 4 to 8 in my editor to be compatible with
Unix standard
- Added warning if dbgLogLink is set and EMBPERL_VIRTLOG is not
- Changed the delimiter of metacommand from space to any non-alpha char
to allow writing [$while(a==b)$] as suggested by Michael D. Dowling
- Added config variable EMBPERL_ESCMODE to set inital values of $escmode
as suggested by Todd Eigenschink
- Added [! ... !]. Does just the same as [- ... -] but will only execute
on the first request for that document. This can be used to do one-time
initialization and to define subroutines.
- Changed push_handlers to register_cleanup, so PERL_STACKED_HANDLERS and
PERL_CLEANUP aren't necessary anymore, as suggested by Doug MacEachern
- If it exists, the function CLEANUP of the processed document will be called
before the variable cleanup, but after the connection to the client is closed
- Added a closing </font> in the logfile which is sent to the browser, otherwise
MS IE 4 can't handle it
- Changed Perl constants in Perl part from subroutines to "real" constants
- Did some general rearranging of code
- Fixed a memory leak which caused Embperl to lose one sv per Perl
block when a document is reloaded
- Fixed a bug which caused [+... +] within the Textarea tag to be ignored,
spotted by Todd Eigenschink
- Fixed a bug in sorting hidden fields
- Fixed a wrong argument to MakeMaker, which was causing Embperl to not be able
to build statically, spotted by Anatoli Belomestnov (and added a
description to the Faq on how to build a copy of Embperl which is statically-
linked to mod_perl)
- Fixed a problem which was causing the LOG filehandle to not be imported in
the documents package, this was causing everything printed to LOG to sort
of disappear
=head1 0.24-beta 13 Jan 1998
- Added the option optRawInput which causes Embperl not to pre-process the
source for a Perl expression (the only exception is that CR will be removed).
This option should be set when you are writing your code with an ascii editor.
If you are using a WYSIWYG editor, which inserts unwanted HTML tags in your
Perl expressions and escapes special characters automatically (i.e.
< will occur as < in the source), you should not set this option, and
Embperl will automatically convert the HTML input back to the Perl
expression you have written. (Thanks to Todd R. Eigenschink for a patch)
- $0 is set to the filename of the HTML source
- Change Current Working Directory to directory of HTML source
- Warning messages are now also logged in logfile at the correct
position, next to the source line
- Perl error and warning messages contain the filename and correct
linenumber of the HTML source
- Sourcelines in logfile contain linenumbers
- Output via [+ ... +] of undefined values at the end of a dynamic table
(which must be there to end the table) do not generate a warning anymore
NOTE: If you use them in an expression (such as $a = $arr[$row] or simply
inside " ", you will still get a warning)
- Open HTML source in binary mode on Win32 to avoid overhead of crlf -> lf
translation.
- Use aplog_error for apache_1.3 to avoid senseless os errors written to
httpd error log
- Removed some uninitializied value messages when running with
-w / PerlWarn on, spotted by Todd R. Eigenschink
- Fixed a bug which has caused nested 'while' loops to execute incorrectly
if the condition of the outer one is false
=head1 0.23-beta 31 Dec 1997
- Fixed a bug which caused $req_rec to be not defined anymore (Thanks to
Todd R. Eigenschink for the hint and debugging)
- Fixed a bug in escaping special HTML char to normal ascii (Thanks to
Todd R. Eigenschink for the hint)
- Makefile.PL now sets the path to your Perl binary in embpexec.pl and
embpexec.test.pl, so that it works regardless of where your Perl is located
(Thanks to Randall Schwartz for the hint)
- Added the SSLDisable to the test config when running an httpsd. (Thanks
to David Scott for the hint and Ralf S. Engelschall for the Syntax)
- Fixed a bug in <META> tag interpretation which was causing random errors
when not compiled for mod_perl
=head1 0.22-beta 28 Dec 1997
- Changed include path generated in Makefile.PL so Embperl also
compiles with apache_1.3b3 (Thanks to Doug Bagley for the hint)
=head1 0.21-beta 25 Dec 1997
- Embperl offline mode now works under Win 32 (mod_perl and cgi mode
not tested under Win 32 yet, but maybe it works too)
- Totally reworked safenamespace and operatormask handling. Works now
without memory leak, is fully configurable and also does p-code
caching. If you use it, please look at the documentation, because
the configuration has changed.
- Embperl now sends its own error document if it detects an error.
The page contains all the error messages and if you have the
dbgLogLink enabled, all errors are links to the corresponding
line in the logfile. (this can be disabled with optDisableEmbperlErrorPage)
- Added new metacommand [$VAR ... $], which can be used to declare
variables and apply the strict pragma (same as use strict ; use vars )
- Added debug flag dbgHeadersIn which causes Embperl to log all http
headers which are received from the client
- Don't change any unknown HTML Escapes (i.e. && has been translated
to ? in versions < 0.21)
- dbgShowCleanup logs all variables which are automatically undefined at the
end of a request (for scalars the value is also shown)
- Error messages will also be cached, so that the compiling of the code
only takes place once, because erroneous Perl code will cause memory
leaks in Perl itself if it's compiled on and on and on.
- Optimized the compiling of the embedded Perl code
- Changed use Apache::Constants to conform with the new default exports
introduced in mod_perl-1.07_01
- Output of the 'hidden' metacommand is sorted in the same order as the input
from the formfields (sorting order can also be supplied as third argument)
- <meta http-equiv= ... > will override the corresponding http header
(this keeps netscape from asking the user to reload the document
when the content-type differs between the http header and the
meta http-equiv)
This can also be used to set http headers
- Fixed a problem that Embperl magic variables do not work when
the package exists before the first call to Embperl
- Fixed a problem that caused a SIGSEGV when retrieving the same document
containing a Perl error for the second time from the same child
- Fixed a problem that caused Embperl to terminate in offline/cgi-mode
when the file was not found or when access was forbidden
- Fixed a problem with the 'hidden' metacommand, which came up when
arguments were supplied with surrounding spaces
- Fixed a problem that Embperl did not handle metacommands correctly
when HTML tags (e.g. <br>) were embedded
=head1 0.20-beta 15 Nov 97
- Every file is executed in a separate package (don't confuse this
with safe namespaces) to reduce unwanted effects on each other
- Added the configuration directive EMBPERL_PACKAGE which can be used to override
the automatically-generated package name
- The namespace (package) used by a request is cleaned up afterwards.
That means that every scalar, hash or array is undef'ed after the
request to make sure nothing is lying around to possibly make the next request
misbehave.
This requires mod_perl with PERL_CLEANUP=1 and PERL_STACKED_HANDLER=1!
NOTE: To get persistent variables, place them in another namespace i.e.
write $persistent::x instead of $x
- Added configuration directive EMBPERL_OPTIONS to configure various runtime
options. Now only the scalar cleanup can be disabled.
- use log_error for writing to Apache error log to get timestamp
- Escaping inside an <A> tag is changed from an HTML escape to a URL escape
i.e. the space is translated to + and & is translated to %26 and so on
- Escaping can now be turned on and off via $escmode
- Concats ENV and cgi_env under mod_perl so that PerlSetEnv can be used
instead of SetEnv for configuration. In contrast to SetEnv, PerlSetEnv
allows different values per directory/virtual host
- Added two links to show source-loglines and eval-loglines when dbgLogLink
is enabled to have a quick jump to the logfile
- Reget pid for every request, so the correct one will be written to the
logfile, also when Embperl is loaded at server startup
- Check error log in make test, added test for error output
- Fixed a bug which causes Embperl to cause a SIGSEGV when a Perl syntax
error occurred
- Fixed a bug so that a '>' inside of [+/- ... -/+] is not detected as the end
of an HTML tag (Thanks to Todd R. Eigenschink)
=head1 0.19-beta 29 Oct 97
- Rewrote the code for the LOG handle. Now the handle LOG is tied so that every
print/printf is written to embperl.log at the right position. Use this to
do logging from your embedded code or modules
- Fixed a bug which caused garbage to be displayed in dynamic tables (or made
parts of the table disappear)
=head1 0.18-beta 25 Oct 97
- Added caching of p-code. Now all Perl code is compiled only once. On the
second request, the compiled p-code is used. This makes, for example, the
table.htm from the test about 4 times faster on the second run then it was in
previous versions of Embperl. Also, tables and loops are faster in the first
request, because the code is only compiled in the first iteration.
- <Select>/<option> is now handled like <input>, this means that if a value
for the select exists in %fdat, the corresponding option is automatically
selected.
- Added support for table heading (<th> tag). If all cells in a row are surrounded
by <th>/</th> instead of <td>/</td> the row is interpreted as column headings and
printed only once. Row headings are not supported yet, but in one of the next versions...
- Added support for multipart/formdata to support fileupload. Embperl automatically
detects multipart/formdata and lets CGI.pm handle it. The results are also
present in @ffld and %fdat like for normal formdata. See CGI.pm for more docs.
(Thanks to eigenstr@mixi.net for the idea and material)
- Now all the output is kept in memory and the http-header are sent when the
processing is finish. This gives the ability to set http-headers (only under mod_perl)
within the page. Also now the Content-Length can be sent in the http-header.
(Thanks to eigenstr@mixi.net for the idea and material)
- Added tests for mod_perl mode and running as cgi-script, if compilation
for mod_perl is enabled (Thanks to Doug MacEachern for lots of ideas
and code I have borrowed from his mod_perl)
- Removed "= true" in MailFormTo which caused a warning and didn't declare
syserr_list in ep.h on FreeBSD (Thanks to Michael Fuhr for the hints)
- Added SYSNOPSIS section to docs to avoid pod2man warning and changed
apache/src/regx to apache/src/regex in Makefile.PL (Thanks to Bob Wilkinson)
- Splitted C-sources in some more source files
- Fixed two minor memory leaks. Now the Embperl test suite can run 1000 times and
more without making the httpd grow!
=head1 0.17-beta 30 Aug 97
- Removed some Compiler Warnings (Thanks to Ian Kallen for reporting them)
=head1 0.16-beta 29 Aug 97
- Added more restrictive access check when running under mod_perl
* Option ExecCGI must be set
* must not be a directory
- Added a (few) more docs about how to view the Embperl logfile with
your browser
- Added a declaration for error-dependent stuff to compile on Solaris, check errno before
accessing sys_errlist to avoid SIGSEVs, Fixed another warning from Sun Pro C Compiler
(Thanks to Dan Peterson)
- Switched I/O to PerlIO if supported by installed Perl version.
Should now work with sfio (not tested yet)
- Added possibilty to include Embperl commands in all HTML tags
(did not work for body, table and tr tags in previous versions)
- Will now preserve case of HTML tags
- Do not interpret unknown HTML tags in any way, so as to handle "<" characters
which do not start a HTML tag better
- Do not display the time needed for the request if CLOCKS_PER_SEC not
defined (e.g. SunOS - Thanks to Dan Peterson)
- Added apache_xx/src/regx to include path, to avoid problems when
Apache was built with its own regx library
- Now Embperl shows which tags don't match in error message (table, dir, select etc.)
- Fixed a bug which caused "[" characters to be printed even in a false
if path
=head1 0.15-beta 11 July 1997
- Added interpretation of SELECT Tag to generate dynamic listboxes
from an arrary
- Fixed a problem with dynamic lists
- Fixed some warnings displayed by the Sun Pro C Compiler (Thanks to Dan Peterson)
- Fixed an error message about missing IO::Handle
- Changed all // comments to /* */ to be more compatible with compilers other
than the gnu-c compiler
- Inserted a missing return in oputc which caused a SIGSEV on Solaris (Thanks
to Dan Peterson)
- Checked return code of Logfile open, to prevent a SIGSEV when Embperl cannot
write to the logfile (it now writes an error message in server's errorlog)
(Thanks to Dan Peterson)
- Errors will also be logged to the server's error log (written to stderr)
=head1 0.14-beta 30 Juni 1997
- adding 8192 to EMBPERL_DEBUG and setting EMBPERL_VIRTLOG will add a link
to Embperl output, so you can directly view the right part of the logfile
with your browser
- Added the LOG filehandle to print to the Embperl logfile
- Added the possibility to handle multiple form fields with same name
- chars which are a result of a Perl expression will not be escaped to HTML if
they are prefixed with a backslash
- Added support for scanning the parameters of input tags for Perl code i.e.
[- -] and [+ +] substitution takes place
- Replaced carriage return in Perl expression with space to avoid Perl 5.004 error
about carriage return
- added $req_rec to access the Apache server api when running under mod_perl
- Fixed a bug in Safe namespace handling which was always causing ERR: 17 Namespace unknown
- Fixed a bug which caused dynamic tables to end, if a 'if', 'while' and etc. was included
- Fixed a bug that caused [$cmd$] to be executed only in the first iteration of a 'while'
or a table
- Fixed some bugs in input tag interpretation
- Fixed a bug which occurred when Embperl encountered an input tag with value="" and %ffld=""
- Fixed a bug in embpexec.pl that caused the options to be ignored when running offline
=head1 0.13-beta April 26 1997
- Moved EPENTRY (embperl_init) down to avoid crashing when compiled with
-DEPDEBUGALL
- Added #undefs for stdio function to compile with Perl > 5.003
NOTE: This is a quick hack, and will be changed to use PerlIO in
one of the next releases, so we can tie stdout of Embperl
- Added pids (to distinguish between muliplite requests) and time to
logfile output
- Made many functions static and names of externals more unique to
avoid conflicts of symbolnames with other modules
- If file not found return status 404 instead of 500
- Add Apache::Embperl so the module shows at CPAN also under
module/by-module/Apache/ as suggested by Doug MacEachern
=head1 0.12-beta not publicly released
- The mask has been removed from namespace option so it can be used
with safe.pm > 2
- Embperl works with -T / PerlTaintCheck on
- Add function MailFormTo to send form contents via email
- The dbgSource option displays only one line for better overview
- Fixed a bug which caused the Perl operator '<' to be interpreted
as an HTML tag in tables or while loops after the first iteration
- Added ffld array for mod_perl mode to get the order of form fields
- Removed vsnprintf since its not available on all platforms
- Corrected handling of empty dynamic tables
- Fixed a bug which was causing a Segmentaion Fault when the first
table is empty
- Added a script for make test
- Fixed Error with nested if
- Log compilation errors of embedded Perl code
- Avoid some warnings in Embperl.pm
=head1 0.11-beta March 25 1997
- Name changed from Embperl to HTML::Embperl!!!!!!!!
- FORM & ENV debug output now available in all modes
- Output from [+ +] and INPUT fields are escaped
(e.g. < is send as < )
- Added two-dimensional tables
- Fixed a bug which caused an endless loop when using a \
- Fixed escaping of special HTML chars above ascii code 128
- Added support for list tags (dir, menu, ol, ul, dl)
- Added support for textarea tag
- Fixed some errors
=head1 0.10b-beta Jan 23 1997
- fixed some errors
=head1 0.10beta Jan 18 1997
- first public beta release
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 Revision history for Perl extension Filesys::SamFS.
=over
=item * 0.101 2008-04-14 10:34
Changed the licensing to the Artistic License 2.0.
Added Artistic-2.0, const-c.inc, and const-xs.inc to MANIFEST.
=item * 0.1 2008-03-30 14:19
Changed Makefile.PL so that it can run non-interactively.
=for html
<P></P>
=item * 0.1_01 2008-01-14 13:21
Regenerated code for constants with recent h2xs to make it
more efficient. All new constants in supports include files added.
Added new macros as well.
sam_stat now returns the number of blocks and a constant blocksize
of 512.
New versions of stat and lstat: stat_sclars and lstat_scalars. They
return an array ref pointing to the copy arrays rather than the arrays
themselves, plus the new members of the structure.
Code wrapping sam_vsn_stat, sam_segment_vsn_stat, sam_segment_stat,
sam_segment_lstat, sam_restore_file, sam_restore_copy
Much of the new code can be switched off by defining OLD_SAMFS.
NOTE: The behaviour of sam_vsn_stat has been changed. Unless compiled
with OLD_SAMFS, it returns a reference to one array that contains
the attributes of the requested copy rather than a list of arrays,
where the first array contains the attributes. I.e. the other arrays
have been dropped.
=for html
<P></P>
=item * 0.035 Wed May 29 11:11:34 2002
Moved website to www.lupe-christoph.de (Yay!)
=for html
<P></P>
=item * 0.034 Mon Jun 25 14:26:08 2001
Added missing functions to export lists:
sam_archive sam_cancelstage sam_release sam_ssum sam_stage sam_setfa sam_advise
=for html
<P></P>
=item * 0.033 Mon Apr 23 19:32:06 2001
Removed license statement ("same as Perl") from Copyright
section in README.pod.
Added License section to README.pod.
Added file Artistic to the distribution.
=for html
<P></P>
=item * 0.032 Wed Apr 11 11:19:51 2001
Corrected minor mistake in examples/sls.
Corrected documentation for vsn_stat - it requires two arguments.
=for html
<P></P>
=item * 0.031 Tue Mar 7 09:56:58 2000
Changed name of the SamFS version sub from VERSION (clashes with the
module VERSION) to SAM_VERSION.
Added opencat, closecat, and getcatalog to the documentation,
which was also a little beautified.
=for html
<P></P>
=item * 0.03 Thu Feb 24 20:34:35 2000
Support for SamFS release 3.3.1.
Added
SS_ARCHIVE_C,
SS_DIRECTIO,
SS_PARTIAL,
SS_ISARCHIVE_C,
SS_ISDIRECTIO,
SS_ISPARTIAL
(only defined when Filesys::SamFS is installed with a SamFS version
that has them).
Changed implementation of sam_vsn_stat().
=for html
<P></P>
=item * 0.021 Wed Feb 23 10:46:00 2000
Converted README and Changes to POD format.
Changed Makefile.PL to generate text and HTML versions from them.
=for html
<P></P>
=item * 0.02 Tue Feb 22 14:40:30 2000
Reworked tests, Makefile.PL, added examples/sls
=for html
<P></P>
=item * 0.01 Fri Feb 11 16:20:49 2000
original version; created by h2xs 1.19
=back
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=pod
=head1 1.3.6 (RELEASE) 22. Jan 2003
- Fixed unicode problems in make test with Perl 5.8.0. With
support from Robert.
- Fixed warning about missing CLOSE method with Perl 5.8.0
Reported by Rajesh Kumar Mallah.
=head1 1.3.5 (RELEASE) 23. Dec 2002
- Runs now with Perl 5.8.0. Thanks to Angus Lees who
backported the 5.8.0 patches from 2.0.
- Fixed Path search problem. Reported by Gavin Carr.
=head1 1.3.4 (RELEASE) 5. Dec 2001
- Added method $r -> Espace for html & url escaping
- URL escpage # to %23
- use Content-Length HTTP Header instead of $ENV{CONTENT_LENGTH}
when running under mod_perl and win32. This fixes a bug
with POSTed data reported by Lukas Zapletal.
- Display correct Apache module name in Makefile.PL when
requesting path for Apache module. Patch from James Lee.
- New session handling using Apache::SessionX. (This also
fixes problem with MD5 and Perl 5.6.1)
- Fixed a bug that cause file-uploads to fail for the first
request to a file when running under EmbperlObject. Reported
by Thoren Johne.
- Added possibilities to add the session id as argument to any URL,
instead of using cookies.
- Added new hash %sdat which holds temporary sessins data.
- Added options optAddUserSessionToLinks, optAddStatusSessionToLinks
and optNoSessionCookies to control how the session id is passed.
- Make sure the HTML::Embperl::Mail generates correct line endings
- If Perl's STDOUT and/or STDIN are tied to any package, Embperl now
calls the Perl methods PRINT and READ for doing I/O. This currently
only works when not running under mod_perl.
- Embperl can now run under FastCGI. Use embpfastcgi.pl instead of
embpcgi.pl.
- Delete unnecessary PerlFixupHandler from httpd.conf.src for make test.
Reported by David Merberg.
- Add undef to %idat for select tag with nothing selected if
optAllFormdata is set.
- Cleanup of DBIx::Recordset objects now honors the setting in %CLEANUP.
Problem reported by Kee Hinckley.
- Embperl can now use encrypted sourcefiles. See crypto/README for
details.
- Embperl can now be installed as Apache and non Apache version on the
same system. This is neccessary to work on Windows in- and outside of
Apache.
- Fixed a linkage problem with symbol embperl_module, first reported
by GustavKristoffer Ek.
- error message now always contain a filename.
- Added optShowBacktrace to enable backtrace of filename in error messages
- Removed obsolete debug flags dbgDisableCache, dbgWatchScalar,
dbgEarlyHttpHeader
- Fixed problem with changing to page directory on win32. Reported by
Hans de Groot.
- Fixed problems with mod_perl environement handling with ActiveState Perl
on win32.
=head1 1.3.3 (RELEASE) 6. Juni 2001
- fixes problem with cleanup and Perl 5.6.0+ which broke
session management. Spotted by Lukas Zapletal and Andy Lim.
- Improved Makefile.PL to catche more setup situation on
Win 32.
- Make $r -> Error settable to be able to reset Embperl's
internal error flag.
- workaround for $r -> chdir_file not working correctly inside
of Apache::Registry with ActiveState Perl, which caused
make test to fail.
- fixed SIGSEGVs that could occur on rare situations when
multiple file not found errors are reported.
- fixed problem with wrong setup of Content-Length header
when running in CGI mode, with escmode = 0. Spotted by
Edwin Ramirez.
- fixed problem with nested dynamic tables and Execute.
- added correct errror message for rcNotCompiledForModPerl.
Spotted by Scott Chapman.
=head1 1.3.2 (RELEASE) 16 May. 2001
- Emulate the syntax => Text parameter of Embperl 2.0, which allows
to include pure text files any without interpretation. Requested
by Kee Hinckley.
- Fixed problem with corrupted @ISA, that had occured when a page was
first requested without EmbperlObject and then with EmbperlObject.
- Catch exceptions inside of Embperl.pm and correctly cleanup the
request. This avoids problems in further request in case anything
was really going wrong.
- If the base template in an EmbperlObject request is requested
directly the Execute ('*') does nothing, to avoid
endless recursion.
- Fixed bug in SetSessionCookie which had called undefined method
getinitalid. Spotted by Sun Choi.
- Removed wrong expire setting from SetSessionCookie, spotted
by Michael Stevens.
- Additions to IntroEmbperlObject.pod by Neil Gunton.
- ';' is now accepcted as separator for query strings addtionaly
to the '&' character. Patch from Brent A. Ellingson.
- ';' is now escaped to %3B when outputed inside a URL.
- Embperl is now added to the Serversoftware identification when
preloaded under mod_perl.
- adapted make test to Perl 5.6.1 and 5.7.1 so now it passes sucessfully.
- fixed problem with cleanup in threaded Perl 5.6.1 and higher
- added pod documentation to embperl.pl. Patch from Angus Lees.
- %http_headers_out can take now array refs as elements to set multiple
headers of the same value. Patch from Maxwell Krohn.
- Non module-documenations (like Intro.pod Faq.pod etc) now gets copied under
the correct directory and man pages are generated with the correct name
(e.g. perldoc HTML::Embperl::Intro works now after installation). Based
on an idea from Angus Lees.
- Makefile.PL enhancements for Apache/ActiveState binary distribution
- quote pathnames in Makefile to allow directories like "Program Files".
Spotted by Lukas Zapletal.
- Added epocgi.pl which allow use of EmbperlObject as CGI script.
- Added a dTHR to function CmdVar to make Embperl compile with threaded
Perl 5.005. Patch from Michael George III.
- EMBPERL_SESSION_ARGS can now accept pathes with spaces inside by quoteing
an argument e.g. PerlSetEnv EMBPERL_SESSION_ARGS "'Directory=/Session Files/'".
Spotted by Lukas Zapletal.
- Perl search path (@INC) in make test is set to abosulte paths to be independend
of directory changes that Apache might issue. Spotted by Randy Korbes.
=head1 1.3.1 (RELEASE) 13 Feb. 2001
- Added new Introduction to EmbperlObject written by
Neil Gunton. See perldoc IntroEmbperlObject
- Added new Tips and Tricks pod written by
Neil Gunton. See perldoc TipsAndTricks. Anybody is invited
to send me their own Tips and Tricks!
- Added object and isa parameters to Execute, which allows to get an
object reference for a certain file and set the Perl inherence
hierachive. Ideas from Neil Gunton and Angus Lees.
- Corrected a problem that leads to very strange errors when an
Embperl sub is called from an in memory source (that is passed
via the Execute input parameter). Spotted by Neil Gunton.
- Make EmbperlObject work better with relative paths and drive letters
on Windows. Based on a patch from Freddy Vulto.
- Fixed a problem with the cache key, which could cause that the same
file is compiled within different packages.
- Fixed a problem that Embperl are in a wired state after an file upload
has been interrupted. Spotted by Dirk Lutzebaeck.
- Fixed a problem set @ISA is not correctly setup in case a file is
compiled in the same package as the base file of EmbperlObject.
Spotted by Neil Gunton.
- Fixed problem with including ../foo.html in EmbperlObject. Spotted
by Neil Gunton.
- Added warning if @ISA is not correctly setup/corrupted.
- Fixed a SIGSEGV that occurs when an reference to undef is returned
from a [+ +] inside a URL.
- Added warning to Makefile.PL, if File::Spec 0.82 isn't installed, which is
required by EmbperlObject.
- Fixed "use of undefined value" warning in make test
=head1 1.3.0 (RELEASE) 4 Dec. 2000
- Corrected a wrong test, that let make test fail. Spotted by Eddie Lau.
- Added a Line Feed at the end of epnames.h, which has caused some problems
with on old SunOS compiler. Spotted by Roman Maeder.
- Fixed a problem that Perl generated an error when $req_rec and [$ var $] was
used. Spotted by Michael Stevens.
=head1 1.3b7 (BETA) 15. Nov 2000
- Fixed problem that the call to close triggers error in Session.pm when using
Store::File. Spotted by Alvar Freude.
- Fixed problem that GetSession doesn't return a value for new session.
Spotted by Angus Lees.
- Added new function SetSessionCookie, which can be used to set the session cookie
header in case you use Embperl session management, but don't use a
Embperl page in that request. Suggested by Alex Schmelkin.
- Fixed problem that DeleteSession does not work outside the base template, when
used with EmbperlObject. Spotted by Angus Lees.
- Fixed problem when use multiple nested ../foo.htm inside EmbperlObject.
Spotted by Neil Gunton.
- Included patch from Angus Lees to ease building on debian.
- make test now works again with BEN-SSL httpsd. With help from Neil Gunton.
- Included grammaticaly updated Embperl.pod. Many thanks to Ilia Lobsanov
for doing the proof reading.
- removed dbgDisableCache to avoid problems with this "feature" that isn't working
anymore for a long time.
- Added validaten for session cookie. If Apache::Session 1.53+ is installed
it uses the validate method from Apache::Session::Generate::xxx. If a invalid
session id is found a new one is generated. Spotted by Angus Lees.
- If a not existing session id is received, Embperl generates now a new one.
- Enhancements of Cookie resending logic. To make sure cookies are send when
neccessary, but not more often. (Handles now write to session data, after
a delete in the same request correctly).
- Added more tests for Sessionhandling.
- Fixed a bug that Content-Lenght was 2 to much, when escmode was set to zero.
Spotted by Michael Smith.
- Added patches from Randy Korbes for ActiveState Support. Most tests with
Embperl under mod_perl nows passes. The few remaining ones that doesn't pass
seems to be due to problems of mod_perl's enironment handling.
- Droped support for Apache::Session 0.17. Embperl now support only
Apache::Session 1.00 and higher.
- Added new option: optDisableSelectScan, to allow processing of SELECT tags,
while processing of TABLE tags is disabled. Suggested by Robert.
- Carridge Returns are only removed for Perl 5.004. This makes using of
HERE documents possible on Perl 5.005+, even if the documents has CRLF
as lineendings.
=head1 1.3b6 (BETA) 18. Oct 2000
- Embperl now runs on ActiveState Perl. (At least in offline mode,
mod_perl mode seems to still have some problems). With a lot of help
from Randy Korbes.
- Changed EmbperlObject search order:
* If EMBPERL_OBJECT_STOPDIR is set, this directory is taken as
the last directory in the normal search path, instead of the
directory where the base template (EMBPERL_OBJECT_BASE) is found.
* EMBPERL_OBJECT_ADDPATH is _always_ added to the search path
* Now Embperl also searches the path for files like
../foo.html, or bar/foo.html, which includes a relative path.
- ../* is now a shortcut for the requested file, but in the
parent directory (or upper depending on the search path)
- Added access to Embperl session handling for modules and
calling scripts (see SetupSession and GetSession)
- Embperl is now able to output binary data if EMBPERL_ESCMODE
and/or $escmode is zero. This also include that no CRLF is
added at the end of the file, if escmode is zero.
- Added method for deleting session data and cookie
- Added method for triggering resend of session cookie.
- Added Test for pnotes ('EMBPERL_ERRORS')
- Added hash %CLEANUPFILE. All variables defined into the files given
in this hash, are also cleanup at the end of the request.
Patch from Todd Eigenschink.
- Changed the way the C Requestobject is attached to the Perlobject,
so it should now also work on 64Bit Processor like Alpha.
Spotted by Andre Landwehr.
- Fixed a problem with importing files that contains foreach and
do until loops, which may caused a syntax error or endless
loop. Spotted by Steffen Geschke.
- embpcgi* and embpexec* are now geratated out of *.templ instead
of editied in place to avoid problems with cvs conflicts
and lower/uppercase on Win32. Suggest by Jens-Uwe Mager.
- make test works with Apache that has mod_jserv compiled in
- Embperl now cache same files with relative path, which are located
in different directories correctly.
=head1 1.3b5 (BETA) 20. Aug 2000
- Embperl now supports Apache::Session 1.52. See "Session handling"
in the docs, how the setup has changed.
- Fixed a problem with POSTed data, which had got lost for the first,
request when using EmbperlObject handler. Spotted by
Kaare Rasmussen.
- Fixed a typo in HTML::Embperl::Mail, spotted by Robert.
- changed require to use HTML::Embperl in EmbperlObject to avoid problems
with dynamic loading. Spotted by Robert.
- Embperl takes the cookie for session handling from the Apache
request record to make it available in earlier phases then the
content handler. Suggested by Jack Cushman.
- added entity decoding for value attribute of radio/checkboxes.
Spotted by Chris Thorman.
- %fdat is not resetup when already done and formtype is
multipart/formdata. Spotted by Michael Slade.
- Embperl inserts & instead of a signle & inside query strings
when expaned from array or hash refs.
- Embperl now also accepts hashref inside a url and expand it
to a query_string i.e. <a href="foo.html?[+ { a=>1, b=>2 }+]"> will become
<a href="foo.html?a=1&b=>2">.
- EMBPERL_COOKIE_EXPIRES now also supports relativ times like:
+30s +10m +1h -1d +3M +10y
- $req_rec -> pnotes ('EMBPERL_ERRORS') could be used to retrieve
error message inside a error document
- make Embperl compile and run with threaded Perl 5.6. With help
from Jason Bodnar. NOTE: That doesn't mean that Embperl is
threadsafe!
=head1 1.3b4 (BETA) 17.07.2000
- New $escmode (or EMBPERL_ESCMODE) to disable the possiblilty
to turn off escaping with a leading backslash. Adding 4 to
any escmode will cause Embperl to do no special processing
on the backslash. This is mainly to avoid problems with
cross site scripting issuse, where people are able to enter
aribtary HTML. Spotted by Dirk Lutzebaeck.
- Characters between 128 and 159 are all HTML escaped now to
avoid problems with buggy browser, which were reported to
treat the chars 139 and 141 as < and >. Spotted by Dirk Lutzebaeck.
- If a requested file is not found when using EmbperlObject as handler,
the file given by C<EMBPERL_OBJECT_FALLBACK> is displayed instead.
If C<EMBPERL_OBJECT_FALLBACK> isn't set a staus 404, NOT_FOUND is
returned as usual.
- "perl Makefile.PL debug" will build debugging information for
gdb/ms-vc++ into Embperl library.
- test.pl can take a bunch of new options for debugging Embperl itself.
See make test TESTARGS="--help".
- Embperl 1.x and 2.x share now the same Makefile.PL and test.pl
- Added new debug flag dbgObjectSerach which logs the EmbperlObjects
work when searching the correct file.
- If import parameter is given to Execute, Perl code is compiled, but
only [! !] blocks are executed (to allow sub definitions on import)
- Space is converted to %20 instead of +, because that is more generic.
Suggested by Michael Blakely.
- EmbperlObject now automaticly defines all subs that are declared
inside the base template and inside the requested page, so it isn't
neccessary anymore to call Execute with import => 0 for them.
- Every Embperl Page now get passed a request object (which can be obtained
from $_[0]). The request object is a hash reference which is blessed
into the package HTML::Embperl::Req. Embperl itself don't uses the hash, so
you are free to populate it and pass data between different pages of one request.
- EmbperlObject now setup the inherence so that
request page -ISA->
base template -ISA->
EMBPERL_OBJECT_HANDLER_CLASS (if defined) -ISA->
HTML::Embperl::Req
and the Embperl request object is blessed into the packages of the
requested page, so you can do methods calls to subs that are defined
inside the requested page.
- correct spelling error and renamed ScanEnvironement to ScanEnvironment.
(ScanEnvironement still works).
- EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute)
- MailFormTo and HTML::Embperl::Mail::Execute now have a configuration
directive EMBPERL_MAILHELO, can be used to specify the host/domain for the
HELO/EHLO command. Suggested by Remco Brink.
- Fixed a bug that caused the default drive to be incorrectly set on Win 32.
=head1 1.3b3 (BETA) 25.04.2000
- Fixed SIGSEGV which occurs in cleanup with Perl 5.6. Spotted by
Aaron Johnson.
- Changed make test so it works correctly with new error messages of
Perl 5.6.
- Fixed a bug that Execute will always fail when $@ was set before.
Patch from Francis J. Lacoste.
- Changed test so it accpects charset in Content-Type header from
Apache 1.3.12
- The outputfile parameter now also works when running under
mod_perl. Spotted by Ilia Lobsanov.
- Makefile.PL warns if you build with a DSO mod_perl < 1.22
- make test checks that test files are readable by Apache.
- Applied a patch from Jens-Uwe Magner to make Embperl work
with mod_perl 1.22 on AIX. We now require mod_perl 1.22,
but I should now work as DSO and staticly linked.
- Applied a patch from Francis J. Lacoste that makes sure
that when a package name is given the file is always compiled
into this package. Note: This means that if you specify a
packagename and the packagename differs from request to
request, the page is compiled for every package and therfore
consuming memory on every request.
- Added EMBPERL_SESSION_HANDLER_CLASS which allows you to overwrite
Embperl defaults session handling. Idea form Barrie Slaymaker.
- Added EmbperlLogo.gif to the distribution, which contains
"Powered by Embperl".
- Added Patch from Randy Kobes that makes Embperl compile with
Apache 1.3.12 and Perl 5.6 on Win32.
- Removed some -w warnings form EmbperlObject
- Added tests for EmbperlObject
- Fixed a SIGSEGV that occured when Embperl found [*] inside
a page. Spotted by Barrie Slaymaker.
- Added epchar.c.min which contains translation tables which
let's all chars above 128 untouched. This is usefull for
processing two byte charsets. Patch from Sangmook Yi.
- The searchpath (EMBPERL_PATH) now uses semikolons (';') instead
of colons (':') to avoid problems with Windows drive letters.
Colons still work on Unix.
=head1 1.3b2 (BETA) 11. Feb 2000
- added new mod_perl handler EmbperlObject, which helps to build whole
pages out of small objects, which can be overwritten in "derived"
pages.
EmbperlObject allows you to define the standard layout of your site just
once and includes the neccessary components based on the uri. Your HTML
documents just have to contain the unique stuff and not the common stuff
like headers/footers or navigation bars. Also these common elements can
be overwritten in each subdirectory.
- added EMBPERL_PATH (and path parameter to Execute), which can contain
a colon separated search path. Embperl uses it when a file, which does
not contain a path, is executed.
- added new module HTML::Embperl::Mail which sends a file processed via
Embperl by email.
- Fixed a bug, that the logfile if opened also EMBPERL_DEBUG is set
to zero. Now if debug is zero, no logfile will be opened. Spotted
by Jason Bodnar and Christian Gilmore.
=head1 1.2.1 5. Jan 2000
- fdat parameter of Execute function isn´t honoured when
call from CGI script which has received multipart/formdata.
Spotted by NHan H. Trinh.
- @ffld was not correctly setup, when only fdat parameter is
given in calls to Execute.
- if mtime parameter is undef or 0, now the pcode really isn't
cached. Spotted by Neeme Vool.
- EMBPERL_OPTIONS and EMBPERL_DEBUG (debug, options) accepts
now decimal, binary, octal and hex values.
- fix a SIGSEGV that could occur under rare conditions in
cleanup. With help from Todd Eigenschink and Gary Shea.
- fix a problem that $req_rec is not correctly setup inside
imported subs. Reported by Cliff Rayman.
- specify domain/hostname when sending mail via MailFormTo
- add EMBPERL_MAILFROM config, to make sender used by
MailFormTo configurable
- add EMBPERL_MAILDEBUG config, to allow debugging of email
problems in MailFormTo
- ProxyInput now handles posted form data. Spotted by
Neeme Vool.
- EMBPERL_INPUT_FUNC now allows to also give the name
under which the source should cached, to allow correct
cacheing of data read via EMBPERL_INPUT_FUNC. Spotted by
Neeme Vool.
- Fixed a SIGSEGV in OPTION tag which occurs due to
different integer sizes on 64Bit systems. With help
from David Waldo.
=head1 1.2.0 17 Nov 1999
- test script had failed in cgi mode on win32. Spotted by
Randy Korbes.
=head1 1.2b11 (BETA) 4 Nov 1999
- Added the "Status:" header and error message to embpcgi.pl to
let Apache return the correct status line. Patch from Jason Holt.
- Fixed problem that Apache SIGSEGVs when an error message contains
a %x. Spotted by Ed Park.
- Added missing BEGIN block in docs for Session handling.
- Fixed an endless loop that occured when tainting is on and
the same document is called two times via Execute. With help
from Jason Holt.
- Changed access to addtional upload fileinfo. The old syntax
(${${$fdat{<name_of_field>}}}) isn't available anymore, because
it doesn't work with filenames that are not a vaild perl
variable name. Now there is a second field which start with a
dash that's holds a hash ref to the file info. Spotted by
Huang-Ming Pan.
- The Embperl specific part of Apache session (former
Apache::Session::Embperl) is now part of the Embperl distribution
(as HTML::Embperl::Session). This makes Embperl independ of
new releases of Apache::Session. Embperl now works with
Apache::Session version 1.00 and higher. Apache::Session 0.17 is still
supported, but the documentation is removed, because it should no
longer be used.
- Apache::Session must not be preloaded prior to Embperl. It's
enought to set EMBPERL_SESSION_CLASSES and Embperl will bring
the right modules in memory for you.
- Removed the call to mod_perl_sent_header, which was an workaround
for an problem with (very) old mod_perl version, because it doesn't
resolve on (every) IRIX. Spotted by Jearanai Vongsaard.
- NOT_FOUND, FORBIDDEN now also logged thru Apache, so the LogLevel is
honoured and log message in Apache error log get a time stamp.
Spotted by Christian Gilmore.
- Removed warings that apears when compiling with -Wall.
- Added URL of better emacs mode for Embperl from Erik Arneson.
- Added new paramter 'errors' to Execute function which takes an
array ref, that returns any error messages. Suggested by
James Elson.
- Fixed that serveral options where not settable inside an Embperl page.
Spotted by Ilya Ketris.
=head1 1.2b10 (BETA) 7 Oct. 1999
- Fixed a great security whole in CGI mode. Because Apache passes
anything after the first '?' to the cgi script as commandline
arguments, embpexec.pl could be tricked into offline mode, where
it returned any file that is readable by the httpd! So if you are
using CGI mode, I strongly recommend to update to 1.2b10.
Now you must use embpcgi.pl instead of embpexec.pl in CGI mode.
Spotted by Jason Holt.
- Added EMBPERL_ALLOW. If the file doesn't EMBPERL_ALLOW Embperl
will return forbidden. This is primarly another security
feature, because dependig on the way you use Embperl in CGI mode,
it will not honour all Apache access restrictions. With
EMBPERL_ALLOW, you can now force it to serve only certain
files. Suggested by Jason Holt.
- Fixed a problem that had occured with magic SVs (tied scalar)
as source for the Execute function. Spotted by Todd Eigenschink.
- Embperl works now with Apache::Session 0.17, 1.02 and 1.04
(1.03 is errornous)
- Fixed a SIGSEGV that occurs when the req_rec parameter of the
Execute functions gets a Apache::Request object instead of a
Apache object, which occured due to the different ways the
Apache internal request_rec is stored inside the object.
Spotted by Francis J. Lacoste.
- Fixed a SIGSEGV that occured when outputting to a scalar and
optReturnError is set. Spotted by Francis J. Lacoste.
- Added a ; after the begin block in startup.pl, which seems had
cause a syntax error in some situations. Spotted by Oyvind Gjerstad.
- exit now works the same in offline, mod_perl and cgi mode, it
ends the execution of the page, but not the programm itself.
- exit inside a sub will now really exit the page. (but exit inside
a file called via Execute will only exit this file, not the whole
request) Spotted by Cliff Rayman.
- Added new hash %http_headers_out which could be used to set arbitary
http header under mod_perl _and_ in cgi mode. "Location" header will
automaticly set status to 301.
- setting http headers and <META HTTP-EQUIV=..> now works also
in cgi mode.
- Session Handling now also works in CGI mode (needs
Apache::Session >= 1.04)
- ACTION attribute of Formtag is now URL en/decoded. Spotted by
Hartmut Palm.
=head1 1.2b9 (BETA) 10. Sept 1999
- Fixed a problem with loading Apache::Session 1.01, when
Apache::Session 0.17 is not installed. Spotted by Volker Hess.
=head1 1.2b8 (BETA) 9. Sept 1999
- Fixed behaviour of <INPUT>. <INPUT> now does not overide
VALUE="" with the value from %fdat. This seems to has been
broken, since a couple of versions and the fix may break
pages that depends on that wrong behaviour. Anyway I have
to fix it before the release version is out!
- Added a patch (and a FAQ) from Jens-Uwe Mager, so Embperl compiles
and links on AIX.
- Fixed error in URL unescaping, spotted by Hartmut Palm.
- _WINSOCK2API_ gets defined on Win32, when compiling with
Apache 1.3.9. Spotted by Randy Korbes.
- Win32 test uses also embpexec.test.pl (instead of .bat),
so cgi test runs also with Apache 1.3.9. Spotted by Randy Korbes.
- Fixed problem with EMBPERL_SESSION_ARGS that splits the arguments
wrong when, for example, the DataSource contains a '='. Spotted by
Vince Galloway.
- Fix a memory leak which eats one SV per <OPTION> tag, introduced
in 1.2b6.
- Fix a problem that meta commands also recognized as html tags, i.e.
now <if x> is no longer the same as [$ if x $]. Spotted by Danielle Gallo.
- German documentation (IntroD.pod, FeaturesD.pod and EmbperlD.pod)
are now included in the distribution.
=head1 1.2b7 (BETA) 30 Aug 1999
- Embperl works now with Apache::Session 1.01
(1.01 _not_ 1.00 or below!)
- Cookie for session id is only send the first time and not
resend if it's already known by the browser. Suggested
by Roman Maeder.
- Fixed a SIGSEGV that occurs with $optRawInput = 1 and a
value is in %fdat, but not in the input html tag. Spotted
by Robert.
=head1 1.2b6 (BETA) 19 Aug 1999
- When call another page via Execute EMBPERL_VIRTLOG will
automaticly set to the same value as the in the calling page
- Add parameter 'firstline' to specify the linenumber of the
first line in the input
- Defined missing DECLINED constant for non mod_perl environement
Spotted by James Elson.
- Inside of an A tag URL escaped characters are translated back
to their ascii aquivalent inside of perl code, before the code
is executed. This avoid problems with HTML editors, which
changes space to %20 inside an URL.
- '%' is escaped to %25 inside of URLs
- Inside the A tag only the HREF attribute is URL escaped, instead
of the whole tag.
- The SRC attribute of embed, frame, iframe, img, layer now are
also URL escaped.
- Giving a an array refernce inside an URL, cause Embperl expand
it to URL parameter syntax (i.e. [+ \@A +] becomes A=1&B=2, when
@A = (A, 1, B, 2) ).
- Embperl checks now for unclosed metacommands (if, while etc.) and
unclosed HTML tags (table etc.). Suggest by Todd Eigenschink.
- Fixed a problem when file was not found, which causes in some cases
a SIGSEGV.
- Added new configuration directive EMBPERL_MAIL_ERRORS_TO. If set
all error messages will be send to the given address.
- input_/output_func parameter can take a code reference as
argument. Based on a patch from Jon Tobey.
- Set force PERL_DL_NONLAZY to zero, so make test does not fail
if dynaloader was initialized with PERL_DL_NONLAZY set.
Patch from John Tobey.
- [$ foreach $i(x..y) $] does not require a space before the (
anymore. Suggested by Jonny Cavell.
- select <option value="a & b"> works now correctly. Spotted by
Rick Welykochy.
- Fixed SegFault when parameter input => is numeric. Spotted by
Cliff Rayman.
- Added option optNoUncloseWarn, which disables the warnings
about unclosed if, while, table etc.
=head1 1.2b5 (BETA) 5 July 1999
- Renamed __strdup and __strndup so there are no duplicate
symbols when compiling with glibc. Spotted by Michael Hall.
- Removed some debugging message from the logfile output.
- Correct some wrong table entries for html escaping of some
characters like §
- Added optReturnError which causes Embperl to return an
error code and let the calling programm (i.e. Apache)
handle the error. This is necessary to use the
ErrorDocument directive together with Embperl. Spotted by
Michael Smith.
- Fixed the problem that the output of Execute inside a table
didn't come out when optEarlyHttpHeader was set. Spotted by
Chris Alexander.
- %fdat of a Execute will not be overwritten anymore when the
%fdat of the main request was empty. Spotted by Chris Alexander.
- fixed a small memory leak which was caused by not releasing
memory space for the cookie-name/-domain etc.
- added the missing -T switch to embpexec.test.bat, which caused the
taint test in cgi mode to fail on win32
- Added epchar.c.iso-latin-2 from Jiri Novak, which contains the correct
escaping for the iso-8859-2 (iso-latin-2) character set. You may use it
to replace the standard epchar.c
- Added new metacommand [$ sub <name> $] and [$ endsub $] which allows
you to define blocks of code an call them mulitple times inside a page,
either a creating a subrequest Execute('#<name>') or by calling them
directly as a perl subroutine [- <name> -]. Read the docs for more
information on the details and differences.
- Added new parameter "import" to Execute, which let's you import subs
(defined with [$sub <name>$]) into the current page.
- @ffld is filled with 'values %fdat' if the ffld parameter in the call
to the Execute funtion is missing.
- Filedata will held into memory until the end of the request, so a
second call to Execute for the same file will not reread the data
from disk.
- Added emacs/embperl.el. It's a emacs minor mode for Embperl written
by Erik Arneson
- Output of dbgShowCleanup is now sorted by name
- Update the Faq.pod with new Q&A and removed obsolete Q&A
- Made Makefile.PL more smarter in DSO situations. It detecteds now
which of the needed Apache modules are linked staticly and places
neccessary LoadModule statements in the httpd.conf for make test.
This way make test should work also where all modules linked at
runtime, like on RedHat 6. With help form James H. Thompson.
- Makefile.PL ask´s now if it can´t find any modules. On win32
it will not try to guess (the maybe wrong) path anymore.
- Added possibility to get the the uploadInfo from CGI.pm
(e.g. ${${$fdat{upload}}} -> {'Content-Type'} will return the
content type). Requested by Brian Reichert.
- Catch die of CGI.pm when it hit's a 'Malformed multipart POST'.
Spooted by Chris Alexander.
- Add optKeepSrcInMemory which tells Embperl to keep the source
file in memory and not reload it on every request
- Added the possibility to use recursive calls to Execute.
NOTE: You can create local variables via [* local $foo ; *]
- Reworked the cleanup. Now imported values from other modules
left unchanged. This solves problems with using modules
inside Embperl pages, which exports some global variables.
- Added the %CLEANUP hash. Put variables into with should be
additional cleaned up ($CLEANUP{'var'} = 1) or which shouldn't
cleaned up ($CLEANUP{'var'} = 0)
- Special handling for DBIx::Recordset objects, so it's sure
they are really get destroyed
- fixed a problem with dynamic tables, that occurs when you
had tried to repeat multiple table rows
- Embperl compiles now with perl5.005_57+. Patch from Ask Bjoern Hansen
- Cleanup now logs any errors that occurs when calling object
destructors and makes sure errors inside object destructors do
not break Embperl itself.
- Embperl now returns DECLINED when called for a directory. This
way Apache can handle diretories the correct way. This will make
DiretoryIndex (e.g. index.html) work again with Embperl.
- Fixed a problem that @ffld contains the same field more then
one time if posted from a select multiple with multiple items
selected. This caused problems with [$hidden$]. Spotted by
Martin Leja.
- Double quotes (") will be url-encoded to %22 inside URLs.
- Embperl now never writes to the logfile if EMBPERL_DEBUG is zero
- make test now runs with newest version of mod_ssl (2.3.5)
- Added option optKeepSpaces which will disable the removing of spaces
and empty lines from the output. Suggested from Gary Shea.
- Added option optOpenLogEarly, which will cause Embperl to open the
logfile as soon as it is loaded into memory. You can use this when
you loaded Embperl via PerlModule under Apache, to open the log
as root instead of the non-privileged user Apache runs as.
=head1 1.2b4 (BETA) 15 Feb 1999
- fixed a problem that $req_rec was sometimes invalid on the
second call to the same page causing Embperl to SIGSEGV.
With help of Todd Eigenschink.
- Cleanup the variable space inside Embperl pages. Before this
fix many of the internal my variables were visible to the
Embperl page. Spotted by Todd Eigenschink.
- multiple form values with the same name are handled now
correctly (concated in a tab delimited string) when send
in a multipart/form-data (file-upload). Spotted by Dirk
Lutzebaeck.
- The dbgForm flag works now also for multipart/form-data
- a missing right *] will be reported as an error.
- [[* is correctly output as [* and not interpreted as a
starting of a perl block. Spotted by Dirk Lutzebaeck.
- fixed a bug that causes the html after an endforeach to be
skiped, when the foreach loop gets an empty array as argument.
Spotted by Dirk Lutzebaeck.
- Makefile.PL checks now for required modules and versions and
generates warnings if necessary
- Do not CLEAR %udat and %mdat in cleanup, so Apache::Session
will not warn anymore about unsupported CLEAR operation.
- Added tests for session management (%udat, %mdat)
- Added more tests to see that $req_rec is correctly setup
- Added module Apache::Session::epDBI which is a subclass of
Apache::Session::DBI and corrects a problem with locking and
cares of serializing requests, so %mdat works correctly.
Please read IMPORTANT NOTE under Session Management in
Embperl.pod
- Added the dbgProfile flag which cause the display of the time
since the request start for every source line in the logfile.
- Correct a problem that the escape character ('\') was not removed
when unescaping the input. Now '<' is correctly translated
to '<' and '\<' is translated to '<' .
- When requesting to view the logfile via the browser now all
lines which does not start with a pid ([<pid>]) are displayed.
- fixed a problem, that sometimes not all errors are shown in the
error page, in conjunction with dynamic tables
- When running under perl 5.005 or higher, the cleanup after the
every request, now not only cleans up scalars, array and hashs,
but also closes all open file- and directoryhandles and undef's
all typglob (which causes for example DBIx::Recordset objects to
DESTROY correctly)
NOTE: This also causes imported variables from other packages/modules
not to be cleanedup anymore!!
NOTE: That the cleanup behaveiour under perl 5.004 and 5.005 is
slightly differnt! The new cleanup doesn't work with 5.004 because
of a bug, which should be corrected in 5.004_05 as soon as available.
- EMail adress from the form is insert as Reply-To header instead of
From header in MailFormTo to avoid problems with unresolvable
EMail adresses.
- Fixed the problem that session management (%udat, %mdat) didn't
work when Execute is used in the same page. Spotted by by Simon Lindgren.
- Fixed a path problem in Makefile.PL. Now pathes on Win32 Systems uses
blackslash instead of slash. Spotted by Randy Kobes.
- Win32 batch files will no longer contain path to perl after the #!,
so cgi tests passes on systems with 4DOS shell. Spotted by Randy Kobes.
- Added ; as terminator for cookie to correctly parse multiple cookies.
Patch from Tim Carrol.
- Changed table_set to table_add when setting the cookie for session data
to avoid problems with other modules setting also cookies.
- Corrected the %ENV problem that mod_perl-1.18 introduced, so both
work together again.
- Added dbgSession flag to enable/disable logging of session handling
- Added configuration diretives EMBPERL_COOKIE_NAME, EMBPERL_COOKIE_DOMAIN,
EMBPERL_COOKIE_PATH and EMBPERL_COOKIE_EXPIRES to configure the cookie
which holds the session id. Suggested by Cliff Rayman.
=head1 1.2b3 (BETA) 22 Nov 1998
- fixed an undefined pointer which occurs when using precompiled
[* ... *] blocks. Spotted by Bruce W. Holyman and Paul J. Schinder
- removed unwanted 0xa0 characters from tagscan.htm which causes
the test to fail on sunos. Spotted by Paul J. Schnider.
- Enhanced the detection of Stronghold, Apache SSL and mod_ssl
so they are found if they are not in a standard path. Spotted
by Brad Cox.
- Convert relativ path for apache source to absolute to avoid
problems within test script. Spotted by Brad Cox.
- Make Embperl compile with useperio=defined. Spotted by Todd
Eigenschink.
- Makefile.PL does now check if mod_perl is compiled into apache
and don't create a config for USE_DSO situtation even if
libperl.so exists.
- Added a workarround in the Execute('foo.htm') call, to avoid a
bug in perl5.004 which causes a SIGSEGV. Spotted by Michael J.
Schout and Chris Alexander.
=head1 1.2b2 (BETA) 9 Nov 1998
- There is now a short form of the Execute function. You can
now include a sub page in an Embperl page by simply writing
[- Execute ('filename.html') -] or use
[- Execute ('filename.html', 1, 2, 3) -] to pass additional
parameters
- Added new block [* ... *]. This block compiles code to an
outer subroutine which surounds the whole page. This makes
it possible to define "local" variables with a scope of the
whole page, which would be necessary for recursive calls
to Execute.
Also this let you use perl control structures inside Embperl
pages: e.g.
[* foreach $v (1..5) { *] Cnt = [+ $v +] [* } *]
NOTE: [* ... *] blocks _must_ always end with a ;,{ or }
[* ... *] cannot apear inside html tags that are
interpreted by Embperl (unless you disable the
interpretation of such tags like table, input etc.)
- Added a comment block: Everything between [# and #] is a
comment and is removed from the output.
NOTE: [* ... *] blocks also interpreted inside of a
[# ... #] block, all other blocks [+/-/$ $/-/+] are not.
- Added magic hash %mdat, which can be used to store persitent
data on a per module basis (needs Apache::Session, with
path in session.patch applied)
- Done more tests on session handling, seems to work fine now.
- Added new option dbgNoHiddenEmptyValue which suppresses
empty hidden input fields in the [$hidden$] meta command.
Patch from Steve Willer.
- Whitespaces after [...] blocks are removed in the output, so
there will be less empty lines, makeing the output shorter and
more readable, based on a patch from Todd Eigenschink.
- Embperl compiles now with mod_ssl (from Ralf Engelschall).
Spotted by Dirk Lutzebaeck and Randel Schwartz.
- Added a patch from Todd Eigenschink to build Embperl with
Stronghold 2.4.1
- Added patch from Gerald McLarnon so Embperl compiles on AIX
- Added optAllowZeroFileSize to accept files of length 0,
without that option Embperl will report NOT_FOUND.
Suggested by Doug Bagley
- fixed a wrong call to logerror when OPT_EXECCGI is not on,
spotted by Dirk Lutzebaeck.
- fixed the problem that reloads only takes place at the next day,
because mtime was an int instead of a double (introduced in1.2b1.
Spotted by Michael Smith and Roman Maeder.
- fixed a problem that changing of the filesize was ignored, when
a documents is reloaded (introducted in 1.2b1)
- cleanup for all subpages are disabled if main request has
disabled cleanup and subpages does not specify otherwise
- dbgShowCleanup works again
- Every package is only cleanuped once, also it's included multiple
times in one page
- %fdat and @ffld are setup correctly when optDisableVarCleanup
is set
- DEFS=-DEPDEBUGALL compiles again, spotted by Michael Smith
- fixed that cleanup is never called with Execute nesting, when
req_rec was not set. Now the parameter req_rec isn't necessary
anymore. Spotted by Michael J.Schout
- Changes of $escmode inside a HTML-A tag now handled correctly,
spotted by Michael Smith
- fixed problems with links to the logfile and the line break
in the html log file display
- fixed a problem with blocks that expand to nothing inside of Embperl
interpreted HTML tags.
- Adapted test script to modified error output of Apache 1.3.4.
Spotted by Eric Cholet.
- Empty values (VALUE="") in input tags will not be overridden by
value in %fdat
=head1 1.2b1 (BETA) 8 Oct 1998
- I have reworked the whole source code so Embperl is now
going to be an object. This means Embperl is reentrant, you
can call Execute within an Embperl page, for example to include
the same header on each page.
- Addeded Session handling via Apache::Session. Simply store data
to %udat and let Embperl do the rest for you. Experimental!
NOTE: You need Apache-Session-0.16.1 or higher and must apply
the patch from session.patch to it.
- Added test for calling Execute inside a Embperl page
- Errors of Input/Output function now also log to the httpd error log
- Added an test for input file not found
=head1 1.1.1 15 Sep 1998
- A lot of documentation updates. Now Embperl ships with most of
the documentation which is also available on
http://perl.apache.org/embperl/
This includes:
- Intro.pod an introduction to Embperl
- Faq.pod an new very much extented version of the FAQ
and a lot of spell checking, gramar checking and so on
Thanks very much to Nora Mikes for putting together the FAQ
and doing a lot of proof reading.
- eg/x/upload.htm an example for file upload within Embperl
- splited documentation out of Embperl.pm into Embperl.pod
to make it load a little bit faster (Embperl.pm is now 30K
instead of 90K)
- Optimized the loading of other modules. Other modules are now
only loaded when really necessary. This make Embperl in CGI mode
about 2 times faster then version 1.1.0 was.
- Added a test for file-upload
- Embperl compiles and works now with threaded perl, but Embperl
is currently B<not> threadsafe. So you can use Embperl in a
threaded environement, but you have to make sure that only one
thread useses Embperl at a time.
- Fixed a memory leak which has occured in checkboxes and selects
- Enhanced test.pl
- MailFormTo: Send \n after mail header to work correctly with all
mail servers, added EMBPERL_MAILHOST to specify mail server hostname,
MailFormTo dies when it can't connect to mailserver. Spotted by
Steffen Geschke.
=head1 1.1.0 28 Jul 98
- Added support for perl5.005 (currently only without threads!)
- Nesting of metacommands and HTML tags are now independent of
each other.
- Added examples in eg/x for do .. until, foreach, if,
DBI datbase access, DBIx::Recordset database access and a
input- / confirmation form.
- Added optUndefToEmptyValue which will cause Embperl to treat non-
existent values in %fdat as an empty string in input tags, as suggested
by Steve Willer.
- Catch "die" within EMBPERL_INPUT/OUTPUT_FUNC and write error
message to the logfile
- Write error message of LWP::UserAgent in ProxyInput to logfile
if any
- Added test for POST Requests
- Added support for tests when mod_perl is built with USE_DSO.
Spotted by Christian Oyarzun.
- Selects and checkboxes are setup correctly if state is set via %fdat.
Spotted by Todd Eigenschink and Steve Willer.
- Changes URL escaping so that only space, '+', '&', '=' and chars < 0x20
will be escaped to avoid problems with older netscape browsers.
- Added missing documentation for req_rec parameter of the Execute
function. Spotted by Eric Cholet.
- Send correct http header for error page, spotted by Steve Willer
- Fixed a memory leak in foreach metacommand
- Removed limit of 2048 Bytes for GET request data (there is no
limit anymore). Spotted by Steve Willer
- Read all POSTed data (not just the first 1024 Bytes). Patch from
Steve Willer.
- Removed some compiler warnings spotted by Tarang Kumar Patel
- Make sure all data is flushed to the logfile at the end of
each request
- Fixed a bug that causes Init to set DebugFlags to 1 instead of 0.
Spotted by Eric Cholet.
=head1 1.1b2 27 Jun 98
- Added an additional note for input- and output- escaping
which is described in "Inside Embperl" section.
It's very important to understand this if you have any
problems with HTML tags or filehandles in your Perl code.
- Embperl will recognize Apache::exit. If called inside an
Embperl page or in a module called from an Embperl page,
the processing of the document is immediately aborted.
Everything processed so far is output/sent to the browser.
Based on a patch from Steve Willer.
- When running under mod_perl, 'exit' is an alias for Apache::exit
in every document.
- Enhanced the format of the Errorpage. Thanks for the patch
from Steve Willer
- Added a [$ foreach $] and a [$ do $] ... [$ until $]
metacommand
- Now multiple checkboxes with the same name will be set
correctly, to the values posted to the document. Spotted
by Todd Eigenschink and Nathan Krislock.
- [+ local $escmode = 0 .... +] works now. The first setting
of $escmode in a [+ ... +] block will now applied to the
whole block. You cannot change $escmode inside a [+ ... +]
block. Spotted by Chris Thormann.
- Fixed the return path setting in MailFormFields
- ProxyInput now passes http headers, so authentification
will be passed thru.
- Removed the limit 2048 for the length of HTML tags when [+ ... +]
are included. Now there is no limit anymore. Spotted by Doug Bagley
=head1 1.1b1 14 Jun 98
- Now you can set custom input and/or output functions via
EMBPERL_INPUT_FUNC and EMBPERL_OUTPUT_FUNC. This can be
used to chain modules together or to get the input from
(or put the output to) non-standard locations.
- Added a function ProxyInput which can be used to fetch
the input from another URL instead of the disk. One possible
usage for this is to let mod_include parse the document first
and then let Embperl process it. Suggested by Steffen Geschke.
- Added a function LogOutput, which will write every generated
document to a unique file in addition to sending it to the
browser. Suggested by Dan Peterson.
- EMBPERL_FILESMATCH allows you to select which files in
a Location should be processed by Embperl. The rest are handled
by the Apache default handler. This allows you to have
Embperl and non-Embperl documents (like gifs etc.) in
the same directory.
- Logfile was displayed at the wrong position when requested via the
browser the first time after the httpd was started.
=head1 1.0.0 12 Jun 98
- Make test runs with Apache 1.3.0, spotted by Eric Cholet
- Added a definition for MAX_PATH, which is not there on SunOS 4.1.4.
Spotted by Dan Peterson
- Fixed a bug that causes Makefile.PL to interpret MakeMaker parameters
spotted by Jason Bodnar
- Fixed a bug that caused EMBPERL_PACKAGE not to be recognized.
- Fixed a bug that caused optDisableFormData not to be recognized for
multipart formdata.
=head1 0.28-beta 19 May 1998
- I have added a chapter "Inside Embperl" to the docs, I hope this
will make it clearer how escaping and unescaping works and how you
can get desired results. Highly recommended! (Thanks for spell- and
grammar-checking to Todd Eigenschink)
- make test now runs under win32 (You need to install LWP and libwin32)
IMPORTANT: You need a mod_perl version > 1.11 or you get a deadlock.
- Compiles with apache_1.3b6
- Added support for Stronghold and Apache_SSL to Makefile.PL and test.pl
- Changed dbgEarlyHttpHeader to optEarlyHttpHeader because it's not a
debugging option. dbgEarlyHttpHeader still persists, but will be removed
in one of the following versions
- Embperl does not change the current working directory when optDisableChdir
is set, this saves some milliseconds per request, also the cwd is moved
to the c code, so it runs faster then Cwd::fastwd.
Thanks to Doug Bagley for the profile which has shown how much time
Cwd::fastcwd consumes
- You can set optDisableHtmlScan in EMBPERL_OPTIONS. If set, Embperl only
recongizes [+/-/$/! ... !/$/-/+], but will not do anything with HTML tags,
as suggested by Randy Harmon.
- optDisableInputScan, optDisableTableScan and optDisableMetaScan can be
used to disable only some of the HTML tag processing
- You can set optDisableFormData in EMBPERL_OPTIONS. If set, Embperl
will not setup the %fdat and @ffld, as suggested by Doug Bagley
- If you use Execute, the explicit call to Init/Term isn't needed anymore,
because Embperl performs the Init automatically when it is loaded. The
Init function can still be used to change the path of logfile. Suggested
by Honza Jirousek
- All options and debugging flags can now be read/set at runtime. For
example $optRawInput = 1 sets the optRawInputFlag. Some of the options
are read-only, because they must be known before the request.
- Added more tests
- Embperl discards all errors which occur in an expression after the end
of a dynamic table, and which are only evaluated to detect the table end and
never displayed. This allows usage of object methods in dynamic tables,
where the table end is caused by an undefined object. (see
test/html/object.htm for an example). Spotted by Jason Bodnar.
- Printing to filehandle OUT has the same effect as using [+ .. +]
(including html-escaping)
- Setting optRedirectStdout causes Embperl to tie STDOUT to the Embperl
output stream (same as print OUT ...), suggested by Jason Bodar
- Setting optAllFormData will make empty formfields occur in %fdat and @ffld
with an empty string value, suggested by Dan Peterson
- Embperl now handles SELECT MULTIPLE correct. All OPTIONs which are
posted to the document will now be selected by Embperl, spotted by
Todd Eigenschink
- Fixed a bug that caused a '>' inside a [$/! ... !/$] block to be
interpreted as the end of a HTML tag, spotted by Todd Eigenschink.
- Fixed a bug which caused the SELECT/OPTIONS tag to not insert their
values in %idat and therefore made [$hidden$] work incorrectly, spotted by
Dave Paris [aka Spider]
- Fixed a bug that caused the INPUT CHECKBOX tag to not insert its
value in %idat when the value wasn't in %fdat and therefore made [$hidden$]
work incorrectly.
- Fixed a problem that caused magical variables to be handled as if they
were undefined, which caused dynamic tables to end, sometimes prematurely.
- Closing HTML tags will be correctly removed form Perl source again
(when optRawInput is not set)
- will be translated to space (0x20) instead of 0xf0
- When EMBPERL_DEBUG is set 0, only errors and warnings will be written to
the logfile
- MailFormTo will generate the correct TO header and insert a Return-Path
from the posted e-mail address
- Changed detection of mod_perl to $ENV{MOD_PERL}. This makes sure that
it will work correctly, even if Apache.pm isn't loaded.
- Re-entered the optDisableEmbperlErrorPage, which was lost in one of the last
releases, spotted by Doug Bagley.
- The content_length of the Apache request_rec will only be set when a http
header is sent.
- If, Elsif and While metacommands now use SvTRUE instead of a != 0 to test the
evaluated expression, so they now behave like the Perl ones do. Spotted by Jason
Bondar
=head1 0.27-beta not available
=head1 0.26-beta 16 Mar 98
- Adapt include pass to compile with apache_1.3b5
- Applied patch from Dan Walters to make Embperl compile with
apache_1.3b3 and mod_perl on Win 32
- Changed the order of included c headers and undef some macros
inbetween (copied from mod_perl.c) to compile with Apache on Win 32
- Embperl works with apache_1.3b5 on Win NT ('make test' does not yet)
(You need the Apache source and must compile Perl with the vc++)
- Added the 'param' parameter to the 'Execute' function to pass parameters
from and to the Embperl document.
- Added the 'fdat' and 'ffld' parameter to the 'Execute' function to
setup %fdat and @ffld
- Fixed a problem which displayed tables a second time after the end of
the document, if dbgEarly HttpHeaders was on, thanks to Ask Bjorn Hansen
for spotting this.
- Fixed the return values of CheckFile, which was not correct after a change
from 0.24 to 0.25. Thanks to Todd Eigenschrink for spotting this.
- Fixed an error which was causing Embperl to crash on an HTML input tag without
the 'type' parameter. Thanks to Todd Eigenschrink for the hint.
- Fixed a problem that caused Embperl to not recognize errors correctly
when reading the sourcefile
=head1 0.25-beta 17 Feb 1998
- Included the "translation" of the Embperl POD to a human-readable
form done by Todd Eigenschink
- Started a FAQ file from the questions I answered by e-mail
- Added the function Execute, which can be called from Perl programs
(or Apache::Registry scripts), and can take input from (and/or
output to) memory, as suggested by Doug Bagley and Randy Harmon
(Look at test/html/registry/Execute.htm for an example)
- Changed the source so that it will compile on aix, spotted by
Patrick McAuliffe
- Access sys_errlist via perl macro Strerror to avoid errors with
redeclaration, thanks for spotting this to Honza Jirousek
- Changed the tab size from 4 to 8 in my editor to be compatible with
Unix standard
- Added warning if dbgLogLink is set and EMBPERL_VIRTLOG is not
- Changed the delimiter of metacommand from space to any non-alpha char
to allow writing [$while(a==b)$] as suggested by Michael D. Dowling
- Added config variable EMBPERL_ESCMODE to set inital values of $escmode
as suggested by Todd Eigenschink
- Added [! ... !]. Does just the same as [- ... -] but will only execute
on the first request for that document. This can be used to do one-time
initialization and to define subroutines.
- Changed push_handlers to register_cleanup, so PERL_STACKED_HANDLERS and
PERL_CLEANUP aren't necessary anymore, as suggested by Doug MacEachern
- If it exists, the function CLEANUP of the processed document will be called
before the variable cleanup, but after the connection to the client is closed
- Added a closing </font> in the logfile which is sent to the browser, otherwise
MS IE 4 can't handle it
- Changed Perl constants in Perl part from subroutines to "real" constants
- Did some general rearranging of code
- Fixed a memory leak which caused Embperl to lose one sv per Perl
block when a document is reloaded
- Fixed a bug which caused [+... +] within the Textarea tag to be ignored,
spotted by Todd Eigenschink
- Fixed a bug in sorting hidden fields
- Fixed a wrong argument to MakeMaker, which was causing Embperl to not be able
to build statically, spotted by Anatoli Belomestnov (and added a
description to the Faq on how to build a copy of Embperl which is statically-
linked to mod_perl)
- Fixed a problem which was causing the LOG filehandle to not be imported in
the documents package, this was causing everything printed to LOG to sort
of disappear
=head1 0.24-beta 13 Jan 1998
- Added the option optRawInput which causes Embperl not to pre-process the
source for a Perl expression (the only exception is that CR will be removed).
This option should be set when you are writing your code with an ascii editor.
If you are using a WYSIWYG editor, which inserts unwanted HTML tags in your
Perl expressions and escapes special characters automatically (i.e.
< will occur as < in the source), you should not set this option, and
Embperl will automatically convert the HTML input back to the Perl
expression you have written. (Thanks to Todd R. Eigenschink for a patch)
- $0 is set to the filename of the HTML source
- Change Current Working Directory to directory of HTML source
- Warning messages are now also logged in logfile at the correct
position, next to the source line
- Perl error and warning messages contain the filename and correct
linenumber of the HTML source
- Sourcelines in logfile contain linenumbers
- Output via [+ ... +] of undefined values at the end of a dynamic table
(which must be there to end the table) do not generate a warning anymore
NOTE: If you use them in an expression (such as $a = $arr[$row] or simply
inside " ", you will still get a warning)
- Open HTML source in binary mode on Win32 to avoid overhead of crlf -> lf
translation.
- Use aplog_error for apache_1.3 to avoid senseless os errors written to
httpd error log
- Removed some uninitializied value messages when running with
-w / PerlWarn on, spotted by Todd R. Eigenschink
- Fixed a bug which has caused nested 'while' loops to execute incorrectly
if the condition of the outer one is false
=head1 0.23-beta 31 Dec 1997
- Fixed a bug which caused $req_rec to be not defined anymore (Thanks to
Todd R. Eigenschink for the hint and debugging)
- Fixed a bug in escaping special HTML char to normal ascii (Thanks to
Todd R. Eigenschink for the hint)
- Makefile.PL now sets the path to your Perl binary in embpexec.pl and
embpexec.test.pl, so that it works regardless of where your Perl is located
(Thanks to Randall Schwartz for the hint)
- Added the SSLDisable to the test config when running an httpsd. (Thanks
to David Scott for the hint and Ralf S. Engelschall for the Syntax)
- Fixed a bug in <META> tag interpretation which was causing random errors
when not compiled for mod_perl
=head1 0.22-beta 28 Dec 1997
- Changed include path generated in Makefile.PL so Embperl also
compiles with apache_1.3b3 (Thanks to Doug Bagley for the hint)
=head1 0.21-beta 25 Dec 1997
- Embperl offline mode now works under Win 32 (mod_perl and cgi mode
not tested under Win 32 yet, but maybe it works too)
- Totally reworked safenamespace and operatormask handling. Works now
without memory leak, is fully configurable and also does p-code
caching. If you use it, please look at the documentation, because
the configuration has changed.
- Embperl now sends its own error document if it detects an error.
The page contains all the error messages and if you have the
dbgLogLink enabled, all errors are links to the corresponding
line in the logfile. (this can be disabled with optDisableEmbperlErrorPage)
- Added new metacommand [$VAR ... $], which can be used to declare
variables and apply the strict pragma (same as use strict ; use vars )
- Added debug flag dbgHeadersIn which causes Embperl to log all http
headers which are received from the client
- Don't change any unknown HTML Escapes (i.e. && has been translated
to ? in versions < 0.21)
- dbgShowCleanup logs all variables which are automatically undefined at the
end of a request (for scalars the value is also shown)
- Error messages will also be cached, so that the compiling of the code
only takes place once, because erroneous Perl code will cause memory
leaks in Perl itself if it's compiled on and on and on.
- Optimized the compiling of the embedded Perl code
- Changed use Apache::Constants to conform with the new default exports
introduced in mod_perl-1.07_01
- Output of the 'hidden' metacommand is sorted in the same order as the input
from the formfields (sorting order can also be supplied as third argument)
- <meta http-equiv= ... > will override the corresponding http header
(this keeps netscape from asking the user to reload the document
when the content-type differs between the http header and the
meta http-equiv)
This can also be used to set http headers
- Fixed a problem that Embperl magic variables do not work when
the package exists before the first call to Embperl
- Fixed a problem that caused a SIGSEGV when retrieving the same document
containing a Perl error for the second time from the same child
- Fixed a problem that caused Embperl to terminate in offline/cgi-mode
when the file was not found or when access was forbidden
- Fixed a problem with the 'hidden' metacommand, which came up when
arguments were supplied with surrounding spaces
- Fixed a problem that Embperl did not handle metacommands correctly
when HTML tags (e.g. <br>) were embedded
=head1 0.20-beta 15 Nov 97
- Every file is executed in a separate package (don't confuse this
with safe namespaces) to reduce unwanted effects on each other
- Added the configuration directive EMBPERL_PACKAGE which can be used to override
the automatically-generated package name
- The namespace (package) used by a request is cleaned up afterwards.
That means that every scalar, hash or array is undef'ed after the
request to make sure nothing is lying around to possibly make the next request
misbehave.
This requires mod_perl with PERL_CLEANUP=1 and PERL_STACKED_HANDLER=1!
NOTE: To get persistent variables, place them in another namespace i.e.
write $persistent::x instead of $x
- Added configuration directive EMBPERL_OPTIONS to configure various runtime
options. Now only the scalar cleanup can be disabled.
- use log_error for writing to Apache error log to get timestamp
- Escaping inside an <A> tag is changed from an HTML escape to a URL escape
i.e. the space is translated to + and & is translated to %26 and so on
- Escaping can now be turned on and off via $escmode
- Concats ENV and cgi_env under mod_perl so that PerlSetEnv can be used
instead of SetEnv for configuration. In contrast to SetEnv, PerlSetEnv
allows different values per directory/virtual host
- Added two links to show source-loglines and eval-loglines when dbgLogLink
is enabled to have a quick jump to the logfile
- Reget pid for every request, so the correct one will be written to the
logfile, also when Embperl is loaded at server startup
- Check error log in make test, added test for error output
- Fixed a bug which causes Embperl to cause a SIGSEGV when a Perl syntax
error occurred
- Fixed a bug so that a '>' inside of [+/- ... -/+] is not detected as the end
of an HTML tag (Thanks to Todd R. Eigenschink)
=head1 0.19-beta 29 Oct 97
- Rewrote the code for the LOG handle. Now the handle LOG is tied so that every
print/printf is written to embperl.log at the right position. Use this to
do logging from your embedded code or modules
- Fixed a bug which caused garbage to be displayed in dynamic tables (or made
parts of the table disappear)
=head1 0.18-beta 25 Oct 97
- Added caching of p-code. Now all Perl code is compiled only once. On the
second request, the compiled p-code is used. This makes, for example, the
table.htm from the test about 4 times faster on the second run then it was in
previous versions of Embperl. Also, tables and loops are faster in the first
request, because the code is only compiled in the first iteration.
- <Select>/<option> is now handled like <input>, this means that if a value
for the select exists in %fdat, the corresponding option is automatically
selected.
- Added support for table heading (<th> tag). If all cells in a row are surrounded
by <th>/</th> instead of <td>/</td> the row is interpreted as column headings and
printed only once. Row headings are not supported yet, but in one of the next versions...
- Added support for multipart/formdata to support fileupload. Embperl automatically
detects multipart/formdata and lets CGI.pm handle it. The results are also
present in @ffld and %fdat like for normal formdata. See CGI.pm for more docs.
(Thanks to eigenstr@mixi.net for the idea and material)
- Now all the output is kept in memory and the http-header are sent when the
processing is finish. This gives the ability to set http-headers (only under mod_perl)
within the page. Also now the Content-Length can be sent in the http-header.
(Thanks to eigenstr@mixi.net for the idea and material)
- Added tests for mod_perl mode and running as cgi-script, if compilation
for mod_perl is enabled (Thanks to Doug MacEachern for lots of ideas
and code I have borrowed from his mod_perl)
- Removed "= true" in MailFormTo which caused a warning and didn't declare
syserr_list in ep.h on FreeBSD (Thanks to Michael Fuhr for the hints)
- Added SYSNOPSIS section to docs to avoid pod2man warning and changed
apache/src/regx to apache/src/regex in Makefile.PL (Thanks to Bob Wilkinson)
- Splitted C-sources in some more source files
- Fixed two minor memory leaks. Now the Embperl test suite can run 1000 times and
more without making the httpd grow!
=head1 0.17-beta 30 Aug 97
- Removed some Compiler Warnings (Thanks to Ian Kallen for reporting them)
=head1 0.16-beta 29 Aug 97
- Added more restrictive access check when running under mod_perl
* Option ExecCGI must be set
* must not be a directory
- Added a (few) more docs about how to view the Embperl logfile with
your browser
- Added a declaration for error-dependent stuff to compile on Solaris, check errno before
accessing sys_errlist to avoid SIGSEVs, Fixed another warning from Sun Pro C Compiler
(Thanks to Dan Peterson)
- Switched I/O to PerlIO if supported by installed Perl version.
Should now work with sfio (not tested yet)
- Added possibilty to include Embperl commands in all HTML tags
(did not work for body, table and tr tags in previous versions)
- Will now preserve case of HTML tags
- Do not interpret unknown HTML tags in any way, so as to handle "<" characters
which do not start a HTML tag better
- Do not display the time needed for the request if CLOCKS_PER_SEC not
defined (e.g. SunOS - Thanks to Dan Peterson)
- Added apache_xx/src/regx to include path, to avoid problems when
Apache was built with its own regx library
- Now Embperl shows which tags don't match in error message (table, dir, select etc.)
- Fixed a bug which caused "[" characters to be printed even in a false
if path
=head1 0.15-beta 11 July 1997
- Added interpretation of SELECT Tag to generate dynamic listboxes
from an arrary
- Fixed a problem with dynamic lists
- Fixed some warnings displayed by the Sun Pro C Compiler (Thanks to Dan Peterson)
- Fixed an error message about missing IO::Handle
- Changed all // comments to /* */ to be more compatible with compilers other
than the gnu-c compiler
- Inserted a missing return in oputc which caused a SIGSEV on Solaris (Thanks
to Dan Peterson)
- Checked return code of Logfile open, to prevent a SIGSEV when Embperl cannot
write to the logfile (it now writes an error message in server's errorlog)
(Thanks to Dan Peterson)
- Errors will also be logged to the server's error log (written to stderr)
=head1 0.14-beta 30 Juni 1997
- adding 8192 to EMBPERL_DEBUG and setting EMBPERL_VIRTLOG will add a link
to Embperl output, so you can directly view the right part of the logfile
with your browser
- Added the LOG filehandle to print to the Embperl logfile
- Added the possibility to handle multiple form fields with same name
- chars which are a result of a Perl expression will not be escaped to HTML if
they are prefixed with a backslash
- Added support for scanning the parameters of input tags for Perl code i.e.
[- -] and [+ +] substitution takes place
- Replaced carriage return in Perl expression with space to avoid Perl 5.004 error
about carriage return
- added $req_rec to access the Apache server api when running under mod_perl
- Fixed a bug in Safe namespace handling which was always causing ERR: 17 Namespace unknown
- Fixed a bug which caused dynamic tables to end, if a 'if', 'while' and etc. was included
- Fixed a bug that caused [$cmd$] to be executed only in the first iteration of a 'while'
or a table
- Fixed some bugs in input tag interpretation
- Fixed a bug which occurred when Embperl encountered an input tag with value="" and %ffld=""
- Fixed a bug in embpexec.pl that caused the options to be ignored when running offline
=head1 0.13-beta April 26 1997
- Moved EPENTRY (embperl_init) down to avoid crashing when compiled with
-DEPDEBUGALL
- Added #undefs for stdio function to compile with Perl > 5.003
NOTE: This is a quick hack, and will be changed to use PerlIO in
one of the next releases, so we can tie stdout of Embperl
- Added pids (to distinguish between muliplite requests) and time to
logfile output
- Made many functions static and names of externals more unique to
avoid conflicts of symbolnames with other modules
- If file not found return status 404 instead of 500
- Add Apache::Embperl so the module shows at CPAN also under
module/by-module/Apache/ as suggested by Doug MacEachern
=head1 0.12-beta not publicly released
- The mask has been removed from namespace option so it can be used
with safe.pm > 2
- Embperl works with -T / PerlTaintCheck on
- Add function MailFormTo to send form contents via email
- The dbgSource option displays only one line for better overview
- Fixed a bug which caused the Perl operator '<' to be interpreted
as an HTML tag in tables or while loops after the first iteration
- Added ffld array for mod_perl mode to get the order of form fields
- Removed vsnprintf since its not available on all platforms
- Corrected handling of empty dynamic tables
- Fixed a bug which was causing a Segmentaion Fault when the first
table is empty
- Added a script for make test
- Fixed Error with nested if
- Log compilation errors of embedded Perl code
- Avoid some warnings in Embperl.pm
=head1 0.11-beta March 25 1997
- Name changed from Embperl to HTML::Embperl!!!!!!!!
- FORM & ENV debug output now available in all modes
- Output from [+ +] and INPUT fields are escaped
(e.g. < is send as < )
- Added two-dimensional tables
- Fixed a bug which caused an endless loop when using a \
- Fixed escaping of special HTML chars above ascii code 128
- Added support for list tags (dir, menu, ol, ul, dl)
- Added support for textarea tag
- Fixed some errors
=head1 0.10b-beta Jan 23 1997
- fixed some errors
=head1 0.10beta Jan 18 1997
- first public beta release
view all matches for this distribution
view release on metacpan or search on metacpan
lib/HTTP/DAV/Changes.pod view on Meta::CPAN
=for html
<div id="content">
<h1>
Revision history for HTTP::DAV
</h1>
</div>
<div id="content">
=begin text
Revision history for HTTP::DAV
=end text
=head2 v0.50 (released 2024/10/16):
=over 4
=item * B<bug fixes>
Fixed missing custom headers when calling PUT methods. Closes C<RT#100756>.
Thanks Georg Acher for the patch and for patiently waiting a decade (!) for a
fix.
=back
=head2 v0.49 (released 2018/11/28):
=over 4
=item * B<bug fixes>
Fixed perl shebang line in C<dave> script, for ExtUtils::MakeMaker to correctly
replace it. Closes C<RT#127819>.
Fixed C<propfind> response handling to also consider successful an HTTP 207
status code. Closes C<RT#127591>.
Fixed C<clone()> method to properly respect the class name. Closes C<RT#123528>.
Thanks to Ricardo Signes for the patch.
=item * B<documentation fixes>
Fixed various pod issues raised by Debian contributor C<fsfs@debian.org>.
Closes C<RT#119878>.
=back
=head2 v0.48 (released 2015/03/26):
=over 4
=item * B<bug fixes>
C<RT#103126>, fixed faulty code to add trailing slash to URLs.
=back
=head2 v0.47 (released 2012/03/24):
=over 4
=item * B<bug fixes>
Improve C<propfind()> resilience when server response contains
broken, truncated or no XML at all. RT#75011.
=back
=head2 v0.46 (released 2012/01/11):
=over 4
=item * B<improvements>
HTTP::DAV should now be working with more WebDAV servers.
We are more flexible in what content types we consider to be XML.
Thanks Ron1 and Adam for the feedback and patches.
=back
=head2 v0.45 (released 2011/09/18):
=over 4
=item * B<bug fixes>
- Fixed RT #69439 (http://rt.cpan.org/Public/Bug/Display.html?id=69439),
insecure /tmp files handling in dave client.
=item * B<improvements>
- Added -tmpdir option to dave client.
- Reorganized distribution layout to match usual CPAN practice
- Removed remains of svn-era ($Id and such...)
=back
=head2 v0.44 (released 2011/06/19):
=over 4
=item * B<bug fixes>
- Fixed RT #68936 (http://rt.cpan.org/Public/Bug/Display.html?id=68936),
Fixed errors() method that would bomb out when the "_errors" attribute
wasn't initialized. Thanks to Michael Lackoff for reporting.
=back
=head2 v0.43 (released 2011/04/12):
=over 4
=item * B<bug fixes>
- Fixed RT #38677 (http://rt.cpan.org/Public/Bug/Display.html?id=38677),
Intercept correctly 405 (Method now allowed) errors and report them
to the clients.
=back
=head2 v0.42 (released 2010/11/07):
=over 4
=item * B<bug fixes>
- Fixed RT #60457 (http://rt.cpan.org/Public/Bug/Display.html?id=60457),
Added and documented possibility to pass your own custom HTTP headers.
- Fixed errors in the code examples in the synopsis.
=back
=head2 v0.41 (released 2010/07/24):
=over 4
=item * B<bug fixes>
- Fixed RT #59674 (http://rt.cpan.org/Public/Bug/Display.html?id=59674),
When SSL support is needed but not installed, a more specific
error messages is now displayed, instead of "not DAV enabled or not accessible".
=back
=head2 v0.40 (released 2010/01/27):
=over 4
=item * B<bug fixes>
- Fixed RT #47500 (http://rt.cpan.org/Public/Bug/Display.html?id=47500),
HTTP::DAV::Comms->credentials() method erroneously autovivified
basic authentication internal values, causing wrong or undefined
credentials to be sent out, or credentials to be "forgot" by HTTP::DAV.
=back
=head2 v0.39 (released 2009/12/12):
=over 4
=item * B<bug fixes>
- Fixed RT #52665 (http://rt.cpan.org/Public/Bug/Display.html?id=52665),
Using dave or propfind() on URLs containing escaped chars (%xx) could fail,
due to upper/lower case differences. Thanks to cebjyre for the patch
and the test case.
=back
=head2 v0.38 (released 2009/06/09):
=over 4
=item * B<bug fixes>
- Fixed RT #14506 (http://rt.cpan.org/Public/Bug/Display.html?id=14506),
about the missing get_lastresponse() method. It was a documentation bug.
- Fixed RT #29788 (http://rt.cpan.org/Public/Bug/Display.html?id=29788),
avoid file corruptions on Win32 when calling HTTP::DAV::get() method.
- Fixed RT #31014 (http://rt.cpan.org/Public/Bug/Display.html?id=31014),
probably already in v0.34, since it seems related to propfind() "depth" bug.
=back
=head2 v0.37 (released 2009/03/24):
=over 4
=item * B<bug fixes>
- Fixed RT #44409 (http://rt.cpan.org/Public/Bug/Display.html?id=44409),
Small bug in HTTP::DAV::put(). Passing a reference as local content resulted
in the "SCALAR(0x12345678)" being logged instead of the real scalar.
=back
=head2 v0.36 (released 2009/02/25):
=over 4
=item * B<bug fixes>
- Fixed RT #19616 (http://rt.cpan.org/Public/Bug/Display.html?id=19616),
LWP::UserAgent::redirect_ok() is not changed anymore. We're subclassing
it from HTTP::DAV::UserAgent and overriding redirect_ok() there.
- Fixed RT #42877 (http://rt.cpan.org/Public/Bug/Display.html?id=42877),
HTTP::DAV::UserAgent::credentials() has been modified to behave like
LWP::UserAgent::credentials(), otherwise basic authentication breakages
can occur.
- Fixed a problem with C<-depth> argument to C<HTTP::DAV::propfind()> that
could lead to massive performance degradation, especially when running
C<propfind()> against large folders.
C<-depth> was set to 1 even when passed as zero.
=back
=head2 v0.35 (released 2008/11/03):
=over 4
=item * B<bug fixes>
- Fixed RT #40318 (http://rt.cpan.org/Public/Bug/Display.html?id=40318),
about getting single or multiple files directly to \*STDOUT.
=back
=head2 v0.34 (released 2008/09/11):
=over 4
=item * B<bug fixes>
- Fixed RT #39150 (http://rt.cpan.org/Public/Bug/Display.html?id=39150),
about downloading multiple files in the same directory.
=back
=head2 v0.33 (released 2008/08/24):
=over 4
=item * B<documentation>
- Clearly state that opera software asa is now co-maintainer of http::dav
- Fixed various inconsistencies in the v0.32 documentation
=back
=head2 v0.32 (released 2008/08/24):
=over 4
=item * B<incompatibilities>
- Now HTTP::DAV requires Perl 5.6.0+ and Scalar::Util (core in 5.8.x).
=item * B<bug fixes>
- Now HTTP::DAV objects are correctly released from memory when
they go out of scope. Now it should be possible to use multiple instances
of HTTP::DAV even in long-running processes.
Was caused by circular references between HTTP::DAV and HTTP::DAV::Resource.
=back
=head2 v0.31 (released 2002/04/13):
=over 4
=item * B<Apache 2 mod_dav support>
- Now works with mod_dav under Apache 2.
=item * B<bug fixes>
- Fixed bug to correctly handle the put/get of filenames with spaces in them.
- Fixed bug to allow the PUT of empty files.
- put() now uses binmode so that it works under Windows.
- HTTP redirect code added in the previous release was incorrectly returning a HTTP::Response instead of a HTTP::DAV::Response
- Fixed bug to allow https for copy and move (http:// was hardcoded).
- Fixed strange copy/move bug for Apache2.0's mod_dav.
=back
=head2 v0.29 (released 2001/10/31):
=over 4
=item *
B<https>
https support as provided from the underlying LWP library has been tested against mod_dav and mod_ssl. Seems to work well. See INSTALLATION for more detail.
=item *
B<Digest authentication>
Requires MD5 to be installed. See INSTALLATION notes.
=item *
B<various bug fixes>
=item *
B<more powerful callback support for get()>
Useful for giving progress indicators.
=item *
B<get() to filehandles and scalar references>
the get() routine now allows you to pass by reference a filehandle or scalar in which to save the contents of the GET request.
=item *
B<added namespace abbreviations in proppatch>
Thanks to Jeremy for this patch.
=item *
B<improved redirect handling in Comms.pm>
Thanks to Jeremy for this patch.
=back
=head2 v0.23 (released 2001/09/07):
=over 4
=item *
B<file globbing for get and put>
HTTP::DAV::get() and HTTP::DAV::put() now supports file globs. This functionality also propagates to dave. This allows you to do the following:
dav> put /tmp/index*.html
dav> get index[12].htm? /tmp
?,* and sets ([]) are supported. See the docs for details.
HTTP::DAV now requires the Perl module File::Glob which comes bundled with perl5.6 and later.
=item *
bug fix in -overwrite flag in HTTP::DAV::copy/move.
=back
=head2 v0.22 (released 2001/09/03)
Complete overhaul of API, recursive get and put, addition of dave.
=over 4
=item *
B<dave -- the new command line client>
I wrote dave (the DAV Explorer) because I needed an end-user application that allowed me to "feel" how well the HTTP::DAV API was performing. dave is quite similar to Joe Orton's C-based DAV client called cadaver (yes, imitation is the best form of f...
=item *
B<A new and simpler API>
This new API is accessed directly through the HTTP::DAV module and is based on the core API written in previous releases.
=item *
B<new methods>
The new API now supports, proppatch, recursive get and put.
=item *
B<A substantial core API overhaul>
Moving from v0.05 to v0.22 in one release might indicate the amount of work gone into this release.
=item *
B<A new interoperability test suite>
is now included in PerlDAV. The test suite is built on top of the standard Perl Test::Harness modules. Still in development, the test suite is highlighting interoperability problems with DAV-servers a lot quicker than before. See L<the test suite & i...
=back
=head2 v0.05 (released 2001/07/24)
General bug fixes and addition of proppatch
- added PROPPATCH method to HTTP::DAV::Resource, thanks to Sylvain Plancon.
- fixed uninitialized warnings in test scripts.
- fixed new lock bug in DAV::Lock, thanks to Ben Evans
- fixed dumb mistake where PUT was calling get instead of put,
thanks to Sylvain and Ben again.
- fixed call to Utils::bad, thanks to Sylvain
=head2 v0.04 (released 2000/04/25)
Initial Release
- supports PUT,GET,MLCOL,DELETE,OPTIONS,PROPFIND,LOCK,UNLOCK,steal_lock,lock_discovery
=for text
** This file was automatically generated from **
** doc/Changes.pod. To edit it, see there. **
=for html
</div>
view all matches for this distribution
view release on metacpan or search on metacpan
SLang/Changes.pod view on Meta::CPAN
=head1 NAME
Inline::SLang::Changes - Changes to previous versions of the module
=head1 DESCRIPTION
This document lists the changes to previous versions
of the C<Inline::SLang> module. See the "Changes" section
of the L<Inline::SLang> documentation for the changes in the
latest version.
=head1 CHANGES
=over 2
=item v0.30 Tue Jun 8 21:00:16 EDT 2004
This is intended to be the last release before the release of version 1.00.
I have decided to stick with the differences between the indexing of
multi-dimensional arrays in PDL and S-Lang: a C<2x3> element
piddle will be converted to a C<3x2> element S-Lang array.
The PDL support has been upgraded to better-handle I<virtual> piddles,
such as slices of another piddle. The current approach has the side
effect of calling PDL's L<make_physical()|PDL::Core/PDL::make_physical>
method on the piddle, which results in extra memory use.
Minor bug fixes to Makefile.PL.
Minor documentation fixes - including F<exampes/array_conversion.pl> - and
improvements to L<Inline::SLang::Details> - including the addition of
F<examples/order.pl>.
=item v0.26 Fri Apr 16 00:07:13 EDT 2004
Fixed a bug which caused t/11type_synonyms.t to fail on some machines.
The S-Lang interpreter is now initialised with the min, max, sum and
cumsum functions as part of the S-Lang run-time library (cumsum is
only available if you have v1.4.9 of S-Lang).
=item v0.25 Tue Apr 13 22:56:06 EDT 2004
Another one-line fix and PDL support works on OS-X. PDL support is
now the default option (if available) when building Inline::SLang.
=item v0.24 Tue Apr 13 22:16:12 EDT 2004
A one-line fix means that PDL support now works on Linux as well as
Solaris. It works on OS-X until you try to convert a S-Lang array
to a piddle. PDL support is now on by default for Solaris and Linux
machines.
=item v0.23 Wed Apr 7 21:32:07 EDT 2004
This is a bug-fix for C<make test> in version 0.22, which failed on
systems which did not already have C<Inline::SLang> installed.
=item v0.22 Wed Apr 7 16:29:05 EDT 2004
The build process has been changed to use L<Inline::C> to embed
C code within F<Makefile.PL>, rather than having it in a separate
file which we have to compile ourselves. This should hopefully make
the build process a bit more portable.
=item v0.21 Mon Apr 5 15:15:51 EDT 2004
This release will now build on OS-X machines. The support for
PDL has been turned off by default - even if PDL is installed on
your system - since it does not work on Linux and OS-X machines.
The main changes are behind the scenes, and involve splitting the
code up and making a tad more modular.
=item v0.20 Wed May 21 00:37:07 EDT 2003
This release begins support for the
L<Perl Data Language|PDL::Intro> in C<Inline::SLang>.
Please note that it is a work-in-progress.
=over 2
=item *
requires v2.4.0 of PDL which isn't actually released
(a fairly-recent CVS build should do the trick)
=item *
conversion betweed 1D arrays and piddles works
=item *
should 0D piddles be converted to a scalar or a 1-element 1D array?
(currently the code croaks)
=item *
> 1D arrays is a mess since a 2x3 array in S-Lang maps to a
3x2 piddle.
The first time this happens a warning is printed to
STDERR as a precaution. Not sure what the best approach is.
=item *
It has not been tested on non 32-bit machines.
=back
=item v0.12 Sun May 11 23:33:38 EDT 2003
This is a minor upgrade in functionality to version 0.11; the
changes are made to help support the inclusion of PDL in a future
release. The changes are:
=over 2
=item *
Added support to the C<DataType_Type> class
for numeric types that are - or may be -
synonyms of the "base" types. The added types are:
C<Int16_Type>, C<Int32_Type>, their unsigned versions,
C<Float32_Type>, C<Float64_Type>, and - if they are not a
"base" type - C<Short_Type> and C<Long_Type>.
=item *
The build process now checks that the S-Lang library was built with
support for floating-point and complex numbers. If it was not then
it should stop.
=item *
Added a brief section to this document describing
how S-Lang errors are handled.
=back
=item v0.11 Wed May 7 00:39:17 EDT 2003
This release makes a couple of improvements to version I<0.10> and
includes infrastructure changes to support L<PDL|PDL::Intro>
(although piddles are still not supported). The major
changes are:
=over 2
=item *
S-Lang arrays can now be converted to the Perl C<Array_Type>
object as well as array references. The behaviour is
controlled by the C<Inline::SLang::sl_array2perl()> function,
described in L<Inline::SLang|Inline::SLang>.
=item *
It is now easier to create Perl scalars that contain a
C<DataType_Type> object: use the functions
C<< Inline::SLang::<datatype name>() >> instead of
C<< DataType_Type->new( "<datatype name>" ); >>.
Use C<'!types'> in the C<EXPORT> configuration option to
import all these functions.
=item *
C<DataType_Type> objects can now be compared for equality
(C<==>, C<eq>) and inequality (C<!=>, C<ne>).
=back
=item v0.10 Sat May 3 19:39:00 EDT 2003
There have been a number of significant enhancements
and changes in this release, which is why the release
number has been bumped-up to the lofty heights of
I<0.10>.
The really-short summary is that all variables should now
be supported and the support for S-Lang's associative
arrays, normal arrays, and structures has been made much
-more Perl like.
=over 2
=item *
Support for S-Lang libraries earlier than 1.4.7 has been discontinued.
=item *
Perl class names have been changed from C<Inline::SLang::XXX> to
C<XXX>.
=item *
S-Lang structs (both C<Struct_Type> and named structs) are stored
using a Perl object (also called C<Struct_Type>)
which can be treated as a hash reference.
As an example, if the S-Lang structure has a field C<x> and
it is stored in the Perl variable C<$foo> then you can
access the field as C<$$foo{x}>.
=item *
S-Lang C<Assoc_Type> arrays are now converted to the Perl
C<Assoc_Type>
class (and vice-versa). This object can be treated as a hash
reference.
When calling S-Lang functions, hash references
are converted to S-Lang as an C<Assoc_Type [Any_Type]> array.
=item *
Arrays can now be converted between Perl (array
references or Perl C<Array_Type> objects)
and S-Lang (C<Array_Type> variables) for any
S-Lang data type.
Any dimension of array supported by S-Lang is now
available (in previous only one and two dimensional
arrays could be used).
Support for piddles is I<not yet available> (planned soon).
=item *
Several Inline::SLang::XXX routines can now be exported to Perl's
main package by use of the EXPORT configuration option (rather than
the standard Perl way of using 'use foo qw( ... );'. This can be
looked at as something of a hack.
=item *
Handling of S-Lang errors has been improved: they are now caught
and then converted into Perl errors (i.e. calls to C<croak>).
This means that calling DataType_Type->new() with an unknown type
name no longer results in S-Lang error messages printed to STDERR
(which it did in 0.06).
=item *
fixed mem leak when converting structs from Perl to S-Lang. Note that
the code used *may* trigger a mem leak in the S-Lang library if you
are using a version < 1.4.9.
=back
=item v0.06 Thu Apr 3 22:36:54 EST 2003
Notable changes are:
=over 2
=item *
Essentially all S-Lang I<scalars> can now be converted to
Perl. Those without a direct translation to a native Perl
type are converted to "opaque" Perl objects, with classes
called C<Inline::SLang::XXX> where C<XXX> equals the
name of their S-Lang data type. Essentially all you can
do with these objects is pass them back to S-Lang
routines. However, it does mean you can now call routines that
return module-defined types.
Currently the S-Lang file types (so C<File_Type> and
C<FD_Type>) are converted using this scheme, which means you
can I<not> use them with Perl I/O commands. I need to
read up a lot more on Perl's I/O mechanism before I
can change this (if it's possible).
=item *
"Named" structures - e.g. C<Foo_Type> created by
C<< typedef struct {...} Foo_Type; >> - are now handled
as C<Inline::SLang::XXX> objects, where C<XXX> matches the
structure type (so C<Foo_Type> in this example).
These classes are sub-classes of C<Inline::SLang::Struct_Type>.
=item *
Fixed handling of BIND_NS =E<gt> "All".
=item *
Added an examples/ directory to the distribution, which
contains simple examples (mainly from L<Inline::SLang::Types>).
Note that these files are I<not> installed into the Perl
tree by 'make install'.
=back
=item v0.05 Fri Mar 14 11:57:31 EST 2003
Notable changes are:
=over 2
=item *
Handling of 'foreign' S-Lang types - those for which we
have introduced special classes such as C<DataType_Type>
variables - has been changed to use a scheme in which the
Perl class name is formed from the concatanation of
C<Inline::SLang::> and the S-Lang type (so
C<Inline::SLang::struct> has been renamed to
C<Inline::SLang::Struct_Type>).
The classes are also more uniform in that they have a
number of common functions and, where possible, the
method names are similar to S-Lang functions with the
same functionality.
=item *
Ref_Type variables are now supported (scalars only)
via the C<Inline::SLang::Ref_Type> class. Unfortunately
this requires use of function/types that are not part
of the public interface of the S-Lang library.
=item *
The BIND_NS option only works for v1.4.3 and higher of S-Lang.
The option has been enhanced to allow namespace "renaming"
and the use of "All" to specify all known namespaces (this
only works for v1.4.7 and higher of S-Lang). The only valid
string options are now "Global(=...)" and "All".
=item *
The BIND_SLFUNCS option has been added to allow you to use
slected S-Lang intrinsic functions directly from Perl (i.e. without
having to write a S-Lang wrapper function around it). To
help avoid nameclashes you can chose your own name for
the function in Perl.
=item *
Documentation on S-Lang specific configuration options
has been moved to L<Inline::SLang::Config>.
=back
=item v0.04 Fri Mar 7 00:14:47 EST 2003
Notable changes are:
=over 2
=item *
License changed to GNU GPL and copyright holder to SAO.
=item *
Now binds all functions (other than S-Lang intrinsic
functions) in the Global namespace. Added the C<BIND_NS>
configuration option to allow functions in other
namespaces to be bound as well. Use the Inline
'-MInline=INFO' option to find out what functions
have been bound.
=item *
S-Lang C<Struct_Type> variables are converted to
C<Inline::SLang::struct> objects. There are
memory leaks!
=item *
Fixed memory leaks when converting C<Assoc_Type>
arrays to Perl.
=item *
S-Lang C<Struct_Type> variables are converted to
C<Inline::SLang::struct> objects.
=back
=item v0.03 Tue Jan 28 12:01:49 EST 2003
Initial public release
=back
view all matches for this distribution
view release on metacpan or search on metacpan
lib/JSON/Assert/Changes.pod view on Meta::CPAN
=head1 CHANGELOG FOR JSON::Assert
=head2 VERSION 0.08, 7 JULY 2017
=over
=item *
Fix missing dep for MooX::Types::MooseLike::Base
=back
=head2 VERSION 0.07, 27 JUNE 2017
=over
=item *
RT #122245: Syntax error in Synopsis: nested double quotes
=back
=head2 VERSION 0.06, 27 JUNE 2017
=over
=item *
RT #122223
Fix failing POD.
Replaced Any::Moose with Moo.
=back
=head2 VERSION 0.05, 25 JUNE 2017
=over
=item *
Fixed tests
RT #121978 MYMETA must not be included
=back
=head2 VERSION 0.04, 06 DECEMBER 2016
=over
=item *
Added does_jpath_contains method to Test::JSON::Assert,
fixed does_jpath_contains in JSON::Assert
=back
=head2 VERSION 0.03, 15 MAY 2015
=over
=item *
Replaced smartmatches with matches
=back
=head2 VERSION 0.02, 14 MAY 2015
=over
=item *
Fixed unit tests, updated copyright info
=back
=head2 VERSION 0.01, 22 JANUARY 2014
=over
=item *
Cloned from XML::Assert, with XML specific features removed.
=back
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Locale/Codes/Changes.pod view on Meta::CPAN
=pod
=head1 NAME
Locale::Codes::Changes - details changes to Locale::Codes
=head1 SYNOPSIS
This describes the changes made to modules in the Locale-Codes
distribution. Major changes are marked with asterisks (*). For the
most part, all modules have remained backward compatible at every
release, but occasionally a change is made which is backward
incompatible. These are marked with an exclamation mark (!).
As of 3.00, the codes are autogenerated from the standards. With each
release, codes will be re-generated and tested to see if any code
changed. Any time there are any changes to the codes, it will be
flagged below with a change: NEW CODE(s).
I intend to check for new codes four times a year (March, June,
September, December). I will also try to respond to requests for a
release due to changes made to the standards, so if a code
changes that you use, feel free to contact me. Based on my available
time and the time until the next release is scheduled, I will try to
do a release any time the standards change.
=head1 VERSION 3.80 (2024-09-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.79 (2024-06-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.78 (2024-03-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.77 (2023-12-01 sbeck)
=over 5
=item NEW CODE(s)
=item Changed RELEASE_TESTING variable
Now use a release-specific testing variable rather than RELEASE_TESTING.
See GitHub #17 for details.
=back
=head1 VERSION 3.76 (2023-09-05 sbeck)
=over 5
=item Fixed problem in distro
Accidentally created a distribution (3.75) that is broken.
GitHub #18
=back
=head1 VERSION 3.75 (2023-09-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.74 (2023-06-07 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.73 (2023-03-06 sbeck)
=over 5
=item NEW CODE(s)
=item Fixed a problem with test failing on windows
Reported in GitHub #15
=back
=head1 VERSION 3.72 (2022-09-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.71 (2022-06-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.70 (2022-03-02 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.69 (2021-12-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.68 (2021-09-02 sbeck)
=over 5
=item NEW CODE(s)
NOTE: no code changes on 2021-06-01 so no release made at that time.
=item Added code2names
Also code2countrys, code2languages, etc. This allows you to see all names and
aliases that correspond to a code. My apologies for making 'countrys' to be the
plural of 'country', but because these modules are all generated from a template,
I didn't want to put in an exception for the strange pluralization.
Prompted by David Cantrell.
=back
=head1 VERSION 3.67 (2021-03-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.66 (2020-12-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.65 (2020-09-01 sbeck)
=over 5
=item NEW CODE(s)
=back
=head1 VERSION 3.64 (2020-06-02 sbeck)
=over 5
=item NEW CODE(s)
=item Fixed bug deleting retired codes
The delete_code function failed if you tried to delete a retired code.
This is now fixed. GitHub #12
=back
=head1 VERSION 3.63 (2020-03-01 sbeck)
=over 5
=item NEW CODE(s)
NOTE: no code changes on 2019-12-01 so no release made at that time.
=item Fixed a retired code
=back
=head1 VERSION 3.62 (2019-08-29 sbeck)
=over 4
=item NEW CODE(s)
=item Fixed tests
Tests were not working correctly since the previous version. This is now fixed.
=item Fixed error messages
Many of the error messages were inconsistent or completely wrong (due to cut-and-paste
errors). They have been fixed.
=item Fixed some return codes
The name2code and code2name functions returned 1 in the case of an error in some
situations instead of undef (which was the documented value).
=item Removed unnecessary dependencies
A number of modules were included as test dependencies that are only used by the author
when preparing releases. These have been removed as dependencies. Petr Pisar on GitHub #11
=back
=head1 VERSION 3.61 (2019-06-01 sbeck)
=over 4
=item NEW CODE(s)
=item Converted tests to use Test::Inter
Now uses the same module to do tests as all my other modules.
=back
=head1 VERSION 3.60 (2019-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.59 (2018-12-03 sbeck)
=over 4
=item NEW CODE(s)
=item Removed travis file from the tarball
The tarball had a .travis.yml file in it that wasn't in the MANIFEST file.
Since the MANIFEST file is automatically generated by the perl mkmanifest
tool, since it didn't see the .travis.yml file, I have excluded it from the
tarball. Reported by Mohammad S Anwar on GitHub (#10)
=back
=head1 VERSION 3.58 (2018-09-01 sbeck)
=over 4
=item NEW CODE(s)
=item B<(*) Locale-Codes removed from core>
Locale-Codes will no longer be distributed in new versions of perl.
=item Documentation fix
Fixed an incorrect link reported by Mohammad S Anwar on GitHub (#9)
=back
=head1 VERSION 3.57 (2018-06-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.56 (2018-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.55 (2017-11-17 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<(*) Deprecated in core>
Because correct usage of any of the Locale::Codes modules requires that
they be kept up-to-date, I have long felt that it should not be distributed
as a core module. After discussion on the perl5-porters list, it is agreed,
and the deprecation process has been started. Starting with perl 5.28.0,
Locale-Codes will be flagged as deprecated, and it will be removed in
version 5.30.0 .
Thanks to p5p-porters (especially Dagfinn Ilmari Mannsaker) for discussion
and guidance.
=item Changes from a github pull request applied
A couple minor changes (updated .travis.yml to include newest versions of
perl; and a couple changes to pod_coverage.t) reported by lancew on GitHub.
=item Got rid of Build.PL
Simplified things by only supporting one of Makefile.PL/Build.PL (and the latter
has been removed from perl core some time ago). RT 123572
=item Fixed INSTALLDIRS
The behavior of installing core modules changed in 5.12 a bit, and Makefile.PL
now reflects that. RT 123571
=back
=head1 VERSION 3.54 (2017-09-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.53 (2017-07-25 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item Fixed the default error condition in legacy modules.
With the addition of the OO module, better error handling was added (and it
was on by default). The non-OO (legacy) modules did not report errors, so
code that uses them, would now behave differently if invalid data were
passed in.
I have turned off error handling by default in the legacy modules. The
show_errors method was added to each of the non-OO modules to report errors
if desired.
Reported by dmaestro on GitHub.
=back
=head1 VERSION 3.52 (2017-06-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.51 (2017-04-10 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item Tests no longer require (.) in INC
As of perl 5.25.11, (.) is being removed from INC. I had to adjust the
tests accordingly.
=back
=head1 VERSION 3.50 (2017-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<(*) Rewrote as OO module>
The core module (Locale::Codes) is now an OO module that can be used
directly. All of the other modules (Locale::Codes::TYPE) are still
the older functional interfaces and remain unchanged.
=item B<Added some constants>
Historically, the constant names used to identify the codesets have been
named inconsistently. The original constants for codesets are:
Type Constants
country LOCALE_CODE_*
currency LOCALE_CURR_*
language LOCALE_LANG_*
script LOCALE_SCRIPT_*
langfam LOCALE_LANGFAM_*
langvar LOCALE_LANGVAR_*
langext LOCALE_LANGEXT_*
For consistencies sake, I have added some new codes (which are otherwise
identical to the irregularly named codes):
country LOCALE_COUNTRY_*
currency LOCALE_CURRENCY_*
language LOCALE_LANGUAGE_*
Going forward, all constants will include the full name of the code type.
=item Non-OO modules are now generated
All non-OO modules are now automatically generated. This will make it easier
to keep them 100% consistent as well as making it easier to add new types
of code sets.
All of the documentation for them is also generated except for the description
of the code sets. That has been moved into the Locale::Codes::Types document.
=item Fixed a bug where constants were not exported
Some of the constants for some of the newer code sets were not exported properly.
This was fixed when I started generating the non-OO modules, but was reported
(after I had already fixed it in development) as RT 119741 .
=back
=head1 VERSION 3.42 (2016-11-30 sbeck)
=over 4
=item B<Added Czech republic aliases back in>
Common Czech republic aliases disappeared from the standards, so I added
them back in. Rob Emery
=back
=head1 VERSION 3.41 (2016-11-18 sbeck)
=over 4
=item NEW CODE(s)
Jiri Bohac noted that they were needed so this was release a couple
weeks earlier than planned.
=back
=head1 VERSION 3.40 (2016-09-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.39 (2016-05-31 sbeck)
=over 4
=item B<Added UN codes back in>
The UN codes have been added back in as their own list of codes.
Jarkko Hietaniemi
=item B<Added GENC codes>
The GENC codes have been added. These are the new US Government codes
that replace the FIPS-10 codes. They are based on, but not identical to
the ISO 3166 codes.
=back
=head1 VERSION 3.38 (2016-03-02 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Tests reworked>
Improved test suite (and made some changes to Codes.pm) based on Devel::Cover.
Test suite now has 100% coverage.
=back
=head1 VERSION 3.37 (2015-12-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.36 (2015-09-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<(!) Removed alias_code function>
The alias_code function was preserved for backward compatibility, but
has been deprecated since 3.20. It has been removed.
=back
=head1 VERSION 3.35 (2015-06-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Documentation improvements>
Many changes to the formatting in the documentation to improve it. Suggested
by Pete Houston.
=back
=head1 VERSION 3.34 (2015-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.33 (2014-12-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Filled out LOCALE_LANG_TERM codeset>
The terminologic language codes only included codes from languages where
the ISO specified both a bibliographic code and a terminologic code. If
both are not specified, the better solution was to use the code for both
code sets. Prompted by a suggestion by Jarkko Hietaniemi.
=item B<Moved repository to GitHub>
Suggested by Gabor Szabo.
=back
=head1 VERSION 3.32 (2014-09-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.31 (2014-06-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Bug fixes>
Fixed a bug in the scripts used to extract data from spreadsheets
that prevented the SHP currency code from being found. RT 94229
=back
=head1 VERSION 3.30 (2014-03-04 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<alias_code remove date set>
The alias_code function exists for backward compatibility. It has been
deprecated since version 3.20 when it was replaced by rename_country_code.
The alias_code function will be removed in the December 2014 release.
=item B<Bug fixes>
Fixed a problem that was preventing rename_* functions to not work.
RT 92680.
=back
=head1 VERSION 3.29 (2014-01-27 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<ISO 3166 country codes improved>
ISO 3166 is now browsable online (previously, only the alpha-2 codes were)
and it contains more accurate information than the previous sources, so
I've switched to using the full standard. In response to RT 92303 which
reported some codes being 'retired' that should not have been.
=item B<Bug fixes>
Fixed the pod test files so that pod tests won't get run at install
time. In response to RT 91167.
=back
=head1 VERSION 3.28 (2013-12-02 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.27 (2013-09-03 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<* FIPS-10 country codes removed>
As of June, the FIPS codes are not being published in their
entirety. Only changes to the codes are published. This adds
a huge layer of complexity to maintaining the set, which is not
worth doing considering that the set is deprecated. As such, the
code set is no longer supported.
=back
=head1 VERSION 3.26 (2013-06-03 sbeck)
=over 4
=item B<Documentation fixes>
Some of the examples were not correct. RT 84589
Some typos corrected. RT 85692
=back
=head1 VERSION 3.25 (2013-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.24 (2012-12-03 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Syria alias>
Syria added as an alias. RT 82747
=item B<FIPS-10 country codes deprecated>
The FIPS-10 document is being withdrawn. It was deprecated in 2008,
and is being updated now only until all the agencies that use it have
switched to something else. The current version no longer lists the
long names for countries. These long names (such as 'Republic of
Albania' for Albania) only appeared in the old FIPS-10 document which
is no longer available, so they are no longer available in this module.
I will continue to support the FIPS-10 codeset as long as it is available,
but at that point, it will be withdrawn immediately. If an official
end-of-life date is announced, I will include a notice here. Otherwise, support
for the codeset will be discontinued when the document is withdrawn.
You are encouraged to no longer use the FIPS-10 codeset.
=item B<Domain country codes now come from ISO 3166>
The IANA domain codes have changed slightly. The IANA no longer
publishes a list of countries associated with their codes. Instead,
they use the ISO 3166 codes and country names. However, they support
a few non-standard codes, so I will continue to maintain this codeset.
The domain codes are now lowercase to correspond to the ISO 3166 codes.
=back
=head1 VERSION 3.23 (2012-09-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.22 (2012-06-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Updated perl version required>
Changed 'require 5.002' (which dated back to the version 2.xx Locale-Codes)
to 'require 5.006'. Some features used in Locale-Codes are not supported that
far back. Nicholas Clark
=item B<Sorted deprecated codes>
The codes in the generated deprecated codes modules were not sorted making version
diffs bigger than they should be. Nicholas Clark
=back
=head1 VERSION 3.21 (2012-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.20 (2011-12-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Added limited support for deprecated codes>
The code2XXX, XXX2code, all_XXX_codes, and all_XXX_names functions
now support retired codes. RT 71124
=item B<Fixed capitalization>
The 'South Sudan' country was all caps. RT 71024
=item B<Pod tests off by default>
The pod tests will not run at install time. RT 71122
=item B<Codesets may be specified by name>
All codesets may be specified by a constant or by their name now. Previously,
they were specified only by a constant.
=item B<alias_code deprecated>
The alias_code function exists for backward compatibility. It has been replaced
by rename_country_code . The alias_code function will be removed sometime
after September, 2013 .
=item B<Code cleanup>
All work is now done in the central module (Locale::Codes). Previously, some
was still done in the wrapper modules (Locale::Codes::*) but that is gone now.
=item B<Added LangFam module>
Added Language Family codes (langfam) as defined in ISO 639-5.
=back
=head1 VERSION 3.18 (2011-08-31 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<No longer use CIA data>
The CIA world added non-standard values, so I no longer use it as
a source of data. Based on a report by Michiel Beijen.
=back
=head1 VERSION 3.17 (2011-06-28 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Added new types of codes>
Added Language Extension codes (langext) and Language Variation codes
(langvar) as defined in the IANA language registry.
=item B<Added new codeset(s)>
Added language codes from ISO 639-5
Added language/script codes from the IANA language subtag registry
=item B<Bug fixes>
Fixed an uninitialized value warning. RT 67438
Fixed the return value for the all_XXX_codes and all_XXX_names functions. RT 69100
=item B<Reorganized code>
Reorganized modules to move Locale::MODULE to Locale::Codes::MODULE to
allow for cleaner future additions. The original four modules (Locale::Language,
Locale::Currency, Locale::Country, Locale::Script) will continue to work, but
all new sets of codes will be added in the Locale::Codes namespace.
=back
=head1 VERSION 3.16 (2011-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.15 (2010-12-02 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Minor fixes>
Added version number to Makefile.PL/Build.PL requirement
for POD testing modules. RT 62247
Changed 'use vars' to 'our'
=back
=head1 VERSION 3.14 (2010-09-28 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Bug fixes>
Stripped out some HTML that got included with some codes.
=back
=head1 VERSION 3.13 (2010-06-04 sbeck)
=over 4
=item NEW CODE(s)
=back
=head1 VERSION 3.12 (2010-04-06 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Reorganized code>
Renamed test.pl to testfunc.pl to avoid causing an error
when built as part of perl.
=back
=head1 VERSION 3.11 (2010-03-01 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Added new codeset(s)>
Added the IANA domain names to Country
=item B<Bug fixes>
Fixed a problem that produced warnings with perl 5.11.5.
Jerry D. Hedden
=back
=head1 VERSION 3.10 (2010-02-18 sbeck)
=over 4
=item NEW CODE(s)
=back
=over 4
=item B<Reorganized code>
Moved support files into the Locale::Codes namespace.
The work done in each of the Locale::XXX modules was virtually
identical to each other. It has all been moved to a central module and
the Locale::XXX modules are now just wrappers.
=item B<(!) Changed XXX_code2code behavior slightly>
In previous versions, passing in the same code set for both code set
arguments would automatically return undef. For example:
country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
=> undef
This doesn't seem like reasonable behavior, so it has been changed
to allow the same code set:
country_code2code('bo',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
=> 'bo'
Note that if an invalid code is passed in, undef will still be
returned:
country_code2code('bol',LOCALE_CODE_ALPHA_2,LOCALE_CODE_ALPHA_2);
=> undef
=item B<Added many semi-private routines>
Previous versions had only two semi-private routines: rename_country
and alias_code which had the ability to modify the internal data in
a couple of very limited ways. It was requested (in an anonymous posting
by someone named Steve and also by Steve Hay - unknown if they are the same
person or two different Steves) that better support for modifying internal
data, so a full set of routines were added.
The full set of routines includes:
rename_country
rename_language
rename_currency
rename_script
add_country
add_language
add_currency
add_script
delete_country
delete_language
delete_currency
delete_script
add_country_alias
add_language_alias
add_currency_alias
add_script_alias
delete_country_alias
delete_language_alias
delete_currency_alias
delete_script_alias
rename_country_code
rename_language_code
rename_currency_code
rename_script_code
add_country_code_alias
add_language_code_alias
add_currency_code_alias
add_script_code_alias
delete_country_code_alias
delete_language_code_alias
delete_currency_code_alias
delete_script_code_alias
=item B<New aliases>
Added "UK" alias. Steve Hay
=back
=head1 VERSION 3.01 (2010-02-15 sbeck)
=over 4
=item B<Fixed Makefile.PL and Build.PL>
They now install as core modules as they are supposed to. Reported in
RT 54526
=back
=head1 VERSION 3.00 (2010-02-10 sbeck)
=over 4
=item NEW CODE(s)
=item B<(*) New maintainer>
From 1997 to 2004, Locale::Codes was maintained by Neil
Bowers. Unfortunately, no updates were made from June 2004 to January
2010. During that time, a number of changes were made to the
standards, so the data included was out-of-date.
I contacted Neil to get his permission to assume maintenance of
the module, and he kindly agreed.
=item B<(*) (!) All codes are generated from standards>
All of the values returned by the various functions are now values
directly from the standards. This means that the values returned in
the 2.xx series are not necessarily the same as the values returned
here.
As an example, the ISO 3166 standard which lists country codes refers
to the country associated with the code "bo" as "Bolivia,
Plurinational State of", so that is what is returned. In the 2.xx
series, "Bolivia" was returned. Also, the country names vary from one
standard to another. So the code "bol" which is maintained by the
United Nations returns the name of the country as "Bolivia
(Plurinational State of)". Some common aliases have been added, so you
can still request a code associated with a county name "Bolivia".
Since the data comes from the standards, some "incorrect" values are
no longer supported. For example, 2.07 treated "Zaire" as an alias for
"Congo", but the country changed it's name, and "Zaire" is not in the
standard, so it has been dropped in 3.00.
=item B<Added new codeset(s)>
FIPS 10 country codes (requested in RT 1755)
Alpha-3 and Term language codes (requested in RT 11730)
Numeric currency codes (requested in RT 18797)
=item B<(*) (!) Locale::Script changed>
In 2.xx, Locale::Script assigned scripts to country codes, which is NOT
how it is done currently in the standards. It appears that an older version
of ISO 15924 did this, but I haven't found an old version to confirm
that, and in any case, that is not the case in the current standards.
As a result, the Locale::Script module is completely incompatible with
the 2.xx version with respect to the types of codes it supports. None of
the old codes will work.
=item B<Added missing functions>
I've added in some functions which were "missing" previously (since there was
only one set of codes supported, the code2code functions didn't apply):
language_code2code
currency_code2code
so the interfaces for each type of codes are consistent.
=item B<(!) Dropped support for _alias_code>
In Locale::Country, _alias_code was an allowed, but deprecated function
which was documented to be supported in the 2.xx series. I've removed it.
=item B<(!) All functions return the standard value>
code2country (and other equivalent functions) now returns the name of
the country specified in the standard (if the different standards
refer to the country by different variations in the name, the results
will differ based on the CODESET)
=item B<(!) rename_country function altered>
The rename_country function from 2.07 would guess the CODESET (unlike
all other functions which used a default of LOCALE_CODE_ALPHA_2). The
guess can cause problems since (with the addition of FIPS) codes may
appear in different codesets for different countries. The behavior has
been changed to be the same as other functions (default to
LOCALE_CODE_ALPHA_2).
=back
=head1 VERSION 2.07 (2004-06-10 neilb)
=over 4
Made $_ local in the initialization code for each module
change back-propagated from Perl distribution
Removed two non ISO-8859-1 characters from language names
change back-propagated from Perl distribution
Added the following aliases, with a test case for each
- Burma added to Myanmar
- French Southern and Antarctic Lands to
French Southern Territories
patch from TJ Mather
"Canadian Dollar" was misspelled as "Candian Dollar"
- noted by Nick Cabatoff, patch from Michael Hennecke
Changes to Locale::Country reflecting changes in ISO 3166
- added Aland Islands (ax, ala, 248)
- YUGOSLAVIA is now SERBIA AND MONTENEGRO
YU => CS
YUG => SCG
891 => 891 (unchanged)
(YUGOSLAVIA retained as an alias)
- EAST TIMOR changed to TIMOR-LESTE
(old name retained as an alias)
- three letter code for Romania changed from ROM to ROU
ZAIRE is now CONGO, THE DEMOCRATIC REPUBLIC OF THE
ZR => CD
ZAR => COD
180 => 180 (unchanged)
(ZAIRE retained as alias)
=back
=head1 VERSION 2.06 (2002-07-15 neilb)
=over 4
The four modules which have data after __DATA__ weren't closing the
DATA filehandle after reading from it, which they should. Bug and
patch from Steve Hay.
=back
=head1 VERSION 2.05 (2002-07-08 neilb)
=over 4
Added three letter codes for the countries that were missing
them. Patch from TJ Mather.
Documentation bug: one of the examples used => where the
lvalue was a constant, which isn't allowed, unless you
put the () with the constant to force the right interpretation.
Pointed out by TJ Mather and MYT.
Updated the URL for the appendix in the CIA world factbook.
Patch from TJ Mather.
=back
=head1 VERSION 2.04 (2002-05-23 neilb)
=over 4
Updated according to changes in ISO 3166-1 described
in ISO 3166-1 newsletters V-4 and V-5, dated 2002-05-20:
- Kazakstan is now "Kazakhstan"
- Macau is now "Macao"
The old names are retained as aliases.
The alpha-2 and alpha-3 codes for East Timor have changed:
tp -> tl
tmp -> tls
the numeric code stays 626. If you want to support the old
codes, you can use the semi-private function alias_code().
=back
=head1 VERSION 2.03 (2002-03-24 neilb)
=over 4
Fixed a typo in the alias for the Vatican, reported (with patch)
by Philip Newton.
Added "Moldova" as an alias for "Moldova, Republic of"
Updated Makefile.PL to include AUTHOR and ABSTRACT
=back
=head1 VERSION 2.02 (2002-03-09 neilb)
=over 4
Added semi-private routine rename_country() to Locale::Country,
based on a patch from Iain Chalmers.
Added test rename.t for the above function.
Renamed _alias_code to be alias_code. Have retained the old
name for backwards compatibility. Will remove it when the
major version number next changes.
=back
=head1 VERSION 2.01 (2002-02-18 neilb)
=over 4
Split the documentation for all modules into separate pod files.
Made sure all =over were =over 4; some were other values.
The code2code() methods had one more shift than was needed.
=back
=head1 VERSION 2.00 (2002-02-17 neilb)
=over 4
Created Locale::Script which provides an interface to the ISO codes
for identification of scripts (writing scripts, rather than perl style
scripts). The codes are defined by ISO 15924, which is currently in
final draft. Thanks to Jarkko for pointing out this new standard.
All three code sets are supported, and a test-suite added.
Added support for country name variants to Locale::Country,
so that
country2code('USA')
country2code('United States')
country2code('United States of America')
will all return 'us'. This had been in the LIMITATIONS section since
the first version. Patch from TJ Mather with additional variants from
me. Added test-cases for these.
Added VERSION to Locale::Constants. Thanks to Jarkko for
pointing that it was missing.
Should really have bumped major version with previous release,
since there was a change to the API.
=back
=head1 VERSION 1.06 (2001-03-04 neilb)
=over 4
Added Locale::Constants, which defines three symbols for identifying
which codeset is being used:
LOCALE_CODE_ALPHA_2
LOCALE_CODE_ALPHA_3
LOCALE_CODE_NUMERIC
Updated Locale::Country to support all three code sets defined by ISO
3166. This was requested by Keith Wall. I haven't added multiple
codeset support to the other modules yet - I'll wait until someone
asks for them.
=back
=head1 VERSION 1.05 (2001-02-13 neilb)
=over 4
Added Locale::Currency, contribution from Michael Hennecke.
Added test suite for it (t/currency.t) and added test cases
to t/all.t for the all_* functions.
=back
=head1 VERSION 1.04 (2000-12-21 neilb)
=over 4
Fixed very minor typos from 1.03!
=back
=head1 VERSION 1.03 (2000-12-?? neilb)
=over 4
Updated Locale::Country:
- fixed spelling of a few countries
- added link to a relevant page from CIA world factbook
Updated Locale::Language:
- fixed typo in the documentation (ISO 939 should be 639)
=back
=head1 VERSION 1.02 (2000-05-04 neilb)
=over 4
Updated Locale::Country and Locale::Language to reflect changes in the
relevant ISO standards. These mainly reflect languages which are new
to the relevant standard, and changes in the spelling of some country
names.
Added official URLs for the standards to the SEE ALSO sections of the
doc for each module.
Thanks to Jarkko Hietaniemi for pointing me at the pages with latest
versions of ISO 3166 and 639.
=back
=head1 VERSION 1.00 (1998-03-09 neilb)
=over 4
Added Locale::Country::_alias_code() so that 'uk' can be added as the
code for "United Kingdom", if you want it. This was prompted by Ed
Jordan.
Added a new test suite for handling this case, and extended the
existing test-suite to include testing of the case where 'uk' hasn't
been defined as a valid code.
=back
=head1 VERSION 0.003 (1997-05-09 neilb)
=over 4
First public release to CPAN
=back
=head1 SEE ALSO
Locale::Codes
=head1 AUTHOR
See Locale::Codes for full author history.
Currently maintained by Sullivan Beck (sbeck@cpan.org).
=head1 COPYRIGHT
Copyright (c) 2001-2010 Neil Bowers
Copyright (c) 2010-2024 Sullivan Beck
This module is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
doc/Changes.pod view on Meta::CPAN
=encoding UTF8
=head1 Mail Toaster Changes
=head2 5.51 - Mar 28. 2014
removed Apache support
removed config settings for qmailadmin install dirs (use default)
=head2 5.50 - Sep 17, 2014
added encoding declaration in docs/Changes.pod
=head2 5.49 - Sep 11, 2014
updated t/Utility.t to check for perl process (was 'init')
=head2 5.48 - Sep 10, 2014
fix POD error in Mail/Toaster/Setup/Test
bump version number
remove ispell/aspell from port install (renamed in ports)
=head2 5.47 - May 20, 2014
fix for qpop3d not having service symlink installed
added CHKUSER_MBXQUOTA to tcp.smtp
apply utmp patch to FreeBSD 9 & 10 (was only 9)
=head2 5.46 - Apr 24, 2014
test fix in t/Apache.t
=head2 5.44 - Apr 20, 2014
speed up dspam training
added supervise support for qpsmtpd
added support for unusual (intl) file name characters
correct detection of pop3 daemon
updated install_deps.pl
added simscan debug option in tw.conf
added qmail-deliverable setting and build support
=head2 5.43 - Jul NN, 2013
minor improvements to test suite
=head2 5.42 - Jul 07, 2013
replace bunches of /var/log/mail with get_log_dir
consolidate tcp.smtp functions to setup->tcp_smtp
lazy load some modules, so 'make test' runs w/o dependencies
added supervise/run file creation for qmail-deliverabled and vpopmaild
moved email_send* tests from Toaster to Setup/Tests.pm
replaced hard coded vpopmail dir with $vpopmail->get_vpop_dir
replaced many hard coded '/var/qmail' paths with $qmail->get_qmail_dir
install tcp.smtp during tests, if missing
conf: removed vpopmail_enable_netblocks option (barely used, if at all)
abstracted some code into new control_sql method
added get_control_dir, get_supervise_dir (reduce duplicated code)
deleted Qmail::check_control (moved logic into qqtool.pl)
changed API of service_dir_get (1 positional arg)
updated port options for sqlite3 & openssl
fixes for audit & error logging
=head2 5.41 - Jul 04, 2013
config changes: vpopmaild disabled, roaming users disabled,
default log method changed from multilog to syslog
automatic startup for vpopmaild
removed maillogs postprocessor support (fragile)
vpopmail port install now honors most config settings
=head2 5.40 - Apr 26, 2013
updated install_deps.pl
pod cleanups
updated contrib/swaks
training improvements for dspam
=head2 5.38 - Apr 23, 2013
removed Proc::ProcessTable (causes test failures)
handfuls of Test::More tweaks
disabled defunct RBLs in config
=head2 5.37 - Apr 18, 2013
added bin/email_restore.pl (thx Alex R.)
pkgng support additions (Rob Lensen)
some support for running with qpsmtpd
=head2 5.35 - Oct 23, 2012
api change for get_dir_files, clean_tmp_dir, file_delete
moved subs from Toaster to Utility: audit, error, dump_audit, dump_errors, has_module, find_config, find_readable, get_std_args, parse_config & parse_line
replaced non-ASCII ⢠with *
added IO::Socket::SSL to bin/install_deps
check just the 'standard' places for httpd.conf instead of using `find $dir`
apache test failed if no httpd.conf found on test machines, this is quite likely. The lack of finding the file now skips the test.
more argument unpacking with get_std_args
toaster-watcher attempts to create missing service dirs
added 'quiet' to %std_args (was manually passing it around)
removed qmail_service_* settings
=head2 5.33 - Oct 13, 2012
updated path to maildir-deliverquota
updated path to freshclam.log
added more support for qpsmtpd future
added vpopmail_daemon setting to tw.conf
added supervise support for qpsmtpd, vpopmaild, and qmail-deliverable daemons.
get_maildir_messages now uses File::Find instead of `find â¦`
deprecated rfc-ignorant DNSBLs
replaced split '..' with split /../ syntax
=head2 5.32 - Aug 19, 2012
fix for spamassassin mysql import on MySQL 5.5+
added qmail utmpx patch for compat. with FreeBSD 9
increase RAM for daemons (for 64-bit systems)
qmail: fixed chkuser build support for vpopmail extensions
dspam: added to mailfilter
dspam: only train on error
improved build support on Darwin (Mac OS X)
added support for dovecot 2
=head2 5.30 - Sep 26, 2011
Apache Config Changes
shortened config file comments
removed IfModule ssl_module from apache config file
added vqadmin declaration
removed deprecated apacheconf build target
default config password protects ezmlm.cgi, isoqlog, vqadmin, phpmyadmin
http auth files use Digest authentication, for both lighttpd and apache
add .cgi handler to apache vhost
add qmailadmin http alias, so graphics will load if docroot is not default
automatically add pear include path to php.ini, used by squirrel mail
added munin declarations in apache config
updated horde web address, added apache config settings for horde
added periodic (cron) task for dccd cleanup (if installed)
build updates for lighttpd
removed php4 build support
updates for roundcube webmail support
added portmaster build target
added gnupg install to spam assassin build (used by sa-update)
moved rrdtool install from munin into its own sub
added maildrop build option for vpopmail build
added squirrelmail sasql plugin configuration
isoqlog build did not install config file, fixed
update ezmlm-idx build for v7
remove mysql db type, future mysql versions use a different syntax
added qmailadmin catchall preference, defaults to disabled
added horde support to lighttpd config
give smtpd and pop3 processes more RAM (better accomodate 64bit)
reduce default multilog file size from 1M to 100k
change user=matt to 'valid-user' in http config
=head2 5.29 - Jun 12, 2011
updated migrate script for compatibility with 5.26 changes
updated lighttpd.conf config file location (FreeBSD port change)
reverted simscan user back to clamav (works more reliably)
if a perl module is already installed, prompt to reinstall
=head2 5.28 - Jan 03, 2011
detect location of maillogs when configuring /etc/mailer.conf
allow building qmail with no patches
explicitly include a few more perl modules required by SpamAssassin
automatically password protect isoqlog in apache vhost file
'maillogs yesterday' exits 0, so periodic is content
t/Utility: test if file exists before testing ability to delete
=head2 5.27 - Jul 08, 2010
style updates to Ezmlm.pm and fix test failures in t/Ezmlm.t
maillogs fails more gracefully when the log files are unreadable
POD doc cleanups
fixed inverted regexp match that caused control/me to be set to the system
hostname instead of toaster-watcher.conf configured value
added URI to prereq list in Makefile.PL
skip rbl tests if client can't resolv bl.spamcop.net properly
FreeBSD->is_port_installed does a better job of port detection when there
are multiple ports with similar names (qmail, qmailanalog, etc)
corrected whitespace related test error in get_list_of_rbls test
added install_munin to toaster-watcher.conf
fixed 'maillogs yesterday' report
other minor cleanups for PBP and cleaner 'make test' results
=head2 5.26 - Jun 31, 2010
added php build and post-install config (php.ini) support for freebsd
replaced inline squirrelmail config with local overrides
added build and post-install config support for lighttpd
added sqlite build option for roundcube when install_mysql = 0
added t/01.syntax (syntax checks for bin/*, lib/*, cgi_files/ezmlm.cgi)
renamed port_install to install_port (see DEVELOP)
added munin install support and configuration
updated t_setup -s mailtoaster target (from $util-> to $toaster->)
cleaned up more debug and log messages
changed API for cwd_source_dir, chown, extract_archive, get_url, is_readable,
is_writable, check_pidfile, install_package
changed some builtin chown calls to using $util->chown
renamed util->file_get to util->get_url
renamed util->file_archive to archive_file
renamed util->pidfile_check to check_pidfile
renamed M:T:U:archive_expand to extract_archive
for objects in classes beneath Mail::Toaster:
new objects inherit debug and fatal settings from the Mail::Toaster object
when loading a M:T:Utility, use $toaster->get_util instead of loading
when a method is run, it can inherit its parents values for debug and
fatal by adding %std_opts to its own parameter validation
removed hundreds of places where debug settings were explicity passed.
renamed M:T:F:package_install to install_package
renamed M:T:F:ports_update to update_ports
fixed vqadmin install directories (due to change in FreeBSD port)
util->get_my_ips is done in perl now, instead of using CLI cut & grep
added config questions for squirrelmail, roundcube, spamassassin, and
phpMyAdmin database passwords (requested by Carmi)
updated Ezmlm.pm and ezmlm.cgi
t_setup.pl -s webmail will try to find the cgi_files folder before error
=head2 5.25 - Jun 10, 2010
added M:T:get_util & get_config methods (rathan than having other classes accessing the object data.
removed $conf from calls to M:T:U:install_from_source
M:T:Apache::start method is more reliable
split M:T:Setup::config into config_ methods
renamed M:T:FreeBSD::rc_dot_conf_check to conf_check, and added file option
can be used to add entries to other config files, like make.conf now
first argument to M:T:Utility::find_bin and syscmd are positional
default vpopmail version is now 'port'
new M:T objects include a $util object (it's usually loaded anyway)
pass in $toaster objects when instantiating M:T subclasses
added log and error methods to $toaster class, used by all subclasses
removed M:T:Perl, replaced by methods in $util
added freebsd port options for dovecot and roundcube
abstracted Qmail::netqmail into several methods
added qmail_openssl_ciphers option (thanks Craig Green).
fixed URL to patches directory on www.tnpi.net
install_portupgrade now defaults to off, install_portmaster added
subscribeIMAP.sh test was fatal, now installs if missing
M:T:DNS and t/DNS.t upgraded with better error handling and status reporting
removed M:T:Passwd, replaced with simpler methods in M:T:Qmail
removed qmail_(users) from toaster-watcher.conf (still honored if set)
in t/Qmail.t, service_dir_get tests are non-fatal now
changed IP used in RBL tests (my mail server got whitelisted?!)
changed API for file_read, file_write, file_archive, is_port_installed,
install_port (first arg is filename)
dovecot.conf altered using search/replace function instead of patch
after installing spamassassin, run 'sa-update' to initialize
create a single SSL cert and use it for qmail, dovecot, courier, apache
courier imap startup scripts that broke due to FreeBSD changes are detected
and fixed. rc.conf values are automatically updated by toaster_setup.pl
default cgi-bin location changed to www/cgi-bin.toaster (statically defined
will avoid problems when ports opt to install cgi-bin, or cgi-bin.default,
or cgi-bin-default, or whatever comes next)
qmail_openssl_ciphers renamed openssl_ciphers. Used with Apache as well.
reworked and updated the tests for better reporting and less code
added config for roundcube: creates mysql db, user, and updates configs
added negative smtp-auth test, make sure only valid auth works
reworked bin/toaster-watcher.pl, greatly simplified structure.
many changes in Mail::Toaster.pm, focused on brevity and legibility (-500 l)
improved debug/status event reporting. Now mostly silent (unless -v) until
something errs, then it reports the audit and error logs
consolidated Qmail restart functions into one 'restart' method (-200 l)
moved log rotation, compression, and cleanup from maillogs to toaster-watcher
refinements to logging and setup of supervised services (-300 l)
moved sqwebmail cleancache invocation to toaster-watcher
deprecated toaster_os_release from tw.conf
updated sourceforge URL
added support for lighttpd
=head2 5.15 - Sep 21, 2009
added missing valias to vpopmai port install
replaced a couple vpopmail_qmail_extensions calls with vpopmail_qmail_ext
remove some debugging info from toaster_setup -s toaster
=head2 5.14 - Apr 12, 2009
remove blank entries from ordered rbl blacklists where ordering was
not strictly sequential.
ucspi mysql support is based on vpopmail_mysql instead of install_mysql
update vpopmail version to 5.4.27
use vpopmail from /usr/ports/disfiles if available (instead of d/l)
updated Utility.pm to latest from P:U, main feature is better error handling
install Mail::SPF instead of Mail::SPF::Query
added install_mysqld config setting, can install mysql client w/o server
renamed config vpopmail_qmail_extensions to vpopmail_qmail_ext (match --config)
deleted jail_create, delete, get_hostname, start functions (deprecated)
removed base from install_port calls, deprecated
removed qmailscanner support
removed rrdutil support
removed legacy CGI applications
deprecated cvsup based functions. Use portsnap and freebsd-update instead.
api for ask and yes_or_no changed, slightly
updated bin/install_deps
updated bin/install_deps.pl
removed InstallMysqlTool, and with_linuxthreads from MySQL.pm
perl seems to default to installing scripts in bin now instead of sbin, add
checks to detect where scripts are installed.
updates to make courier, sqwebmail, and simscan install from ports correctly
vpopmail.mysql gets updated when -s vpopmysql target is run
added munin support to M::T Webmail
default simscan user is now simscan (was clamav). clamav user is a member of
qmail group now, which is the group owner of the simscan dir.
updated list of RBLs
=head2 5.13 - Oct 19, 2008
packaging updates:
removed 'use lib "inc"'
changed #!/usr/bin/perl to #!perl (for portability)
commented out warnings pragma in tests
=head2 5.12 - Oct 17, 2008
tweaks to t/Utility.t so tests pass on systems w/o sudo installed
ripped out Provision.pm, bin/sysadmin, bin/useradmin, bin/webadmin
ripped out Build.PL & inc/*
bumped toaster_os_release to 7.1 in t-w.conf
updated META.yml
Makefile.PL, removed Mail::Toaster dependency
removed portsdb from portsnap sub and 'all' target
install_deps.pl installs a few more dependencies
removed openssl stable bits from -s pre target
perl modules have #!perl instead of a full path to perl (portability)
moved $VERSION to top of modules, help remind me to update it
removed contrib/netqmail-* patches (installer fetches them from
mail-toaster.org/patches), so can anyone else
License in bin/migrate.pl was perl artistic, made BSD for consistency
removed contrib/mailfilter (it's autogenerated) and contrib/pkgtools.conf
=head2 5.11 - Aug 20, 2008
use current (instead of stable) openssl port
added test for permissions on toaster.conf
added =head1 VERSION to modules
rewrote bin/install_deps.pl in perl (was sh)
Toaster.pm loads in $conf when ->new is called.
Setup.pm loads in $conf from $toaser->{conf}
renamed pop3_ip_address_listen_on to pop3_listen_on_address
in toaster-watcher.conf
created _set_config accessors in Qmail.pm and Setup.pm
renamed $utility to $util globally
bumped (c) year to 2008
install_sqwebmail defaults to 0 now
net_snmpd defaults to v5 now
updated dovecot.conf patch to v1.1.3
deleted Setup->mattbundle
=head2 5.10 - Apr 17, 2008
disable apache2_fixups until it can be fixed
renamed item_installdsacert to item_install_dsa_cert
update copyrights to 2008
added the function "get_yesterdays_smtp_log" which provides the same functionality
as get_yesterdays_send_log. -- patch from Georg von Itzenplitz
Mysql.pm - honor $debug setting in DBD & DBD install subs
=head2 5.09 - Nov , 2007
playing Kwalitee (http://cpants.perl.org/highscores/)
added 'use warnings' pragma to several modules
updated Copyright dates to 2007
Build.PL - added several modules to build_requires
t/DNS.t - added suffixes to tests to more easily identify exactly which test failed.
updated inc/Module/Install to 0.68
CGI.pm - renamed only sub to _only
Mysql.pm - package install logic was forcing package install
Setup.pm - updated dovecot patch so it applies cleanly to 1.0.7
- don't pass mysql args to FreeBSD port install, no loger
necessary and doing so causes port build to fail
Utility.pm - added missing pod doc for file_mode
=head2 5.08 - Nov 21, 2007
tw.conf: added rbl psbl.surriel.com
tw.conf: added rwl list.dnswl.org
DNS.pm - adjust the RBL positive tests to accommodate pattern used by dnswl.org
Qmail.pm - smtp_set_rbls invoked get_list_of_rwls incorrectly (Bugz #3)
t/qqtool.t & toaster_setup.t - run the script using the same version of
perl as the test is being run as. - (for CPAN testers)
t/Logs.t - see if syslog's mail.log exists before testing against it
t/Utility.t - only run network tests on darwin and FreeBSD (for now).
=head2 5.07 - Oct 19, 2007
qmail_toaster_patch_version = 3.1
missing \ in qmail-pop3d/run file caused pop3 not to run
updated logmonster download URL
rrdtool port moved from net to databases
snmpd rc.d file can be named snmpd or snmpd.sh
ucspi-tcp source install, updated patch format
only pass vpopmail mysql defines if selected (port now checks this)
=head2 5.06 - Sep 19, 2007
Added bin/swaks
Added bin/audit.pl
Added bin/install_deps.sh
Changed several default values in tw.conf:
toaster_os_release to RELENG_6_2
simscan_received = 0
qmail_toaster_patch_version = 3.2
install_vpopmail = 5.4.17
install_php = 5
install_dovecot = 1.0.2 (Linux only)
Install OpenSSL stable port by default
Updated dovecot.conf patch
Added ./configure to dovecot source install
rewrote install_squirrelmail sub
only test submit service if its selected.
format the service/run files for easier legibility
Check permissions on toaster-watcher.conf file
Don't ask about mysql package if package install selected
Always run portsnap fetch update when ports_update is called
Source installs for dovecot, ripmime, ucspi-tcp, and
rrdtool were passing an invalid patches value.
Altered netstat invocation on Linux so it works reliably
Only test snmp if it is enabled
Put the contents of "openssl ciphers" into
/var/qmail/control/tlsserverciphers. Should resolve some
openssl issues.
=head2 5.05 - Feb 7, 2007
Extensive updates for Darwin and Linux platforms
Support for Yahoo DomainKeys
Fixed -s allspam target (thanks Georg)
Support for dovecot IMAP/POP3 server
toaster-watcher.conf
- added install_gnupg option
- added install_dovecot option (alternative to courier-imap)
- added qmail_domainkeys option
- added smtpd_verbose, pop3_verbose, submit_verbose options (adds -v flag
to tcpserver in */run files)
- replaced sbl_xbl.spamhaus.org with zen.spamhaus.org
Apache.pm
- added DirectoryIndex index.php declaration to PHP webmail apps in
apache/Includes/mail-toaster.conf
- added v-webmail Alias and Directory declarations
- enable v-webmail Alias by default in apache include
Darwin.pm
- turned debugging off in syscmd call in port install sub
FreeBSD.pm
- port location of portupgrade updated (sysutils->ports-mgmt)
- report how old ports tree is
Mysql.pm
- instead of looking for the dports dir on Darwin, look for the "port"
binary to detect if DarwinPorts is configured
- offer to install the mysql package instead of port (to save time)
Passwd.pm
- new user sub, $vals->{'username'} needed to be $vals->{'user'}
Qmail.pm
- on FreeBSD, be smarter about disabling sendmail and enabling qmail
Setup.pm -
- Georg von Itzenplitz - allspam target created an empty .qmail with
invalid ownership, sent patch.
- fix for installing phpMyAdmin with php5
- the squirrelmail sub does a better job of setting up squirrelmail with
mysql prefs (no guarantees yet).
- added sub for installing roundcube, domainkeys, and dovecot
- RRDutil was not fetching dist properly
- autorespond failed to build on darwin due to quoting error
- if $config_dir ($prefix/etc) is missing, create it
- added vpopmail_valias to Darwin config tweaks
- added an entire section of Linux config tweaks
- search for gmake is no longer fatal (on Linux, gmake is installed as make)
- isoqlog source build now works again (patches needed to be an arrayref)
- added port_ options for Apache2-SOAP perl module
- added download addresses for NicTool installs
- added WITH_DATABASE to squirrelmail installs (so pear-DB will be installed)
- suppress build time prompt if vpopmail_learn_passwords is disabled
- updated vpopmail creategroup syntax, it now creates user/groups on
Linux/Darwin again.
- only check for service/pop3 symlink if pop3_daemon = qpop3d
=head2 5.04 - Nov 25, 2006
Setup.pm - mailfilter generation code generated an invalid filter
file if filtering_spamassassin_method was not = site.
- installing phpmyadmin attempted to install php4-gd
despite install_php = 5.
*.pm - updated calls to darwin->install_port to reflect an internal API change.
=head2 5.03 - Nov 8, 2006
Logs.pm - comment out a print statement that caused a snmp counting error in maillogs
Setup.pm - install Params-Validate port on FreeBSD & Darwin
t/maillogs - return a more specific error message if Date::Parse not installed
=head2 5.03rc1 - Oct 15, 2006
=over
=item Packaging Updates
Moved Params::Validate into inc directory (prevent CPAN from presuming I provide it), moved Changes back into doc/Changes.pod, added include lib "inc" into all test files (forgot that with 5.02 release).
Better pod descriptions for FreeBSD.pm, Mysql.pm, Apache.pm, Ezmlm.pm, Darwin.pm, DNS.pm, Provision.pm, Setup.pm, Passwd.pm, Perl.pm, and Toaster.pm. Updated META.yml to include license.
=item FreeBSD Port preparations
Default htdocs directory is now /usr/local/www/toaster.
=item CPAN test tweaks
Don't do passwd test on cygwin. Don't do network tests on Cygwin
=back
toaster-watcher.conf
added install_roundcube option
Darwin.pm
updated $utility calls with MT 5 syntax updates
udpated test file to use Test::More
t/Utility.t
only attempt to chown_system if we are root, don't run get_my_ips on
netbsd (until I figure out why it doesn't work
Changes
added file to distribution
bin/toaster_setup.pl
added RT URL to bug section for reporting
bin/sysadmin
updated for MT 5 syntax
Passwd.pm
mt 5 syntax updates, add in warnings for failures
Qmail.pm
formatting cleanups, and added a few missing debug=>0 settings.
Provision.pm
mt 5 updates and rewrite. If values are missing and we are interactive,
prompt for the missing values.
pass debug and $conf variables in the $provision object (accomplish
the same result with less code)
Utility.pm
ask sub now returns $default value (instead of 0) if not interactive
yes_or_no supports q shortcut for question argument
=head2 5.02 - 2006.10.11
=over
=item toaster-watcher.conf
added options install_ezmlm_mysql, vpopmail_mysql_repl_master_port, vpopmail_mysql_repl_slave_port
=item t/Toaster.pm
get_dir_files tests the file size to see if any domains are added yet (more reliable test)
=item FreeBSD.pm
fixed a recursion bug in ports_update (portsnap)
install a default portsnap.conf if missing
FreeBSD version detection wasn't working
=item Apache.pm
added security options to mail-toaster.conf to harden Apache
added PHP AddType declarations
added directory block for phpmyadmin
only add phpmyadmin block if selected in toaster-watcher.conf
=item Setup.pm
ezmlm mysql support now depends on install_ezmlm_mysql setting instead of install_mysql.
added support for vpopmail mysql database port number (thanks Erik!)
vpopmail_mysql_database setting is now honored.
busted huge vpopmail sub into a dozen smaller ones for easier maintenance.
heredoc's used in creation of tcp.smtp used ' and needed "
logic for NO_SENDMAIL test was inverted causing it to be added to /etc/make.conf more than once.
=back
=head2 5.02b - 2006.09.28
=over
=item index.cgi
defined debug (caused it to not work)
=item Apache.pm
test for toaster_apache_vhost
add alias for v-webmail, and roundcube to apache's vhost config file(mail-toaster.conf)
=item Ezmlm.pm
define any missing cgi params to suppress errors messages
filled in pod description
=item FreeBSD.pm - detection of portsdb wasn't working
supress notification of new toaster-watcher.conf install if its missing
=item Logs.pm - prettied up the yesterday report a little bit.
added checks to prevent warnings when logs are empty
log archiving was failing (invalid test)
=item Perl.pm
added pod doc for has_module
=item Setup.pm
phpmyadmin_install was not passing $conf
=item Utility.pm
Fixed a bug in mailtoaster sub that prevented it from finding the tw.conf file
added _progress_??? subs for providing status messages on the CLI
added pod documentation for several subs that had none
=back
=head2 5.01 - 2006.09.22
=over
=item added help->vpopmail option to web interface
=item added setup -s allspam option (enabled mail filtering for all users)
=item default ports update mechanism is now portsnap
=item removed dependency on Net::DNS (using dig)
commented out v-webmail, roundcube, vqadmin, and ezmlm menu options. Those items are not installed by Mail::Toaster (yet).
added code in -s all target to refresh the $conf hashref after -s config target is run
moved $conf into the Setup.pm object. Significantly reduced the amount of passing $conf around from sub to sub.
added options and explicit port install options for gnupg and Archive::Tar to surpress dialog boxes.
timer was not working in yes_or_no due to typo in param validation block
disabled ezmlm and vqadmin in webmail. Activate them by removing the comments in mt-top.html
default cvsup_supfile_sources settings is now cvsup-sources (was cvsup-stable)
tweaks so "make test" runs with fewer warnings
toaster_setup -s sources now auto-builds cvsup-sources if missing. The location for it is /usr/local/etc now.
=back
=head2 5.00 - 2006.09.18
=over
=item CODE QUALITY
* Parameter validation for nearly all subroutines using Params::Validate. Backwards compatability is now destroyed, but that should not affect anyone as all published software that uses these functions is included with the distribution. Params::Valid...
* Tests. Hundreds of new tests. In version 4, I added a plethora of tests, basically just making sure each sub and function would execute. Now most subs and functions have tests that verify inputs and results.
* Switched to Test::More for tests. Provides more and better options for writing tests, comparing results, and figuring out where the tests failed.
* Maillogs - a number of optimizations to make processing logs faster (shorter regexps, optimized ternaries to match common stuff first, removed POSIX requirement (lighten memory requirements), updated several of the counter functions to complain ab...
* instead of eval's strewn all over to test for certain modules, added $perl->has_module
* all objects are created with Class->new intead of new Class.
* all errors raise exceptions by default. This requires callers to take specific action to change.
* run tests early in subroutines, reduces giant if nests and makes it easier to read the code.
=item MISC
* Added Build.PL for use with Module::Build fans.
* Greatly simplified Makefile.PL by moving "make cgi" and "make conf" logic into Setup.pm. Those functions are now accessed by toaster_setup targets.
* OpenSSL config files are now updated automatically. Auto-generated certs now have the accurate information in them. Courier-IMAP certs are also updated automatically.
=item DOCUMENTATION
* Added three new test modules that test for: pod documentation for subs, pod formatting, and automatic checking of code to test for best practices.
* moved POD documentation from being strewn about the files to the end of each file.
* wrote and re-wrote significant portions of the documentation, as well as cleaned up formatting. Documentation is now easier to find as well.
changed all tnpi.biz urls to tnpi.net
shortened most tnpi.net urls to mail-toaster.org
updated copyright notices to 2006
moved usage() subs into pod docs and use pod2usage
=item CODE FORMATTING & READABILITY
* Used perltidy to format most of the source code.
* Used perlcritic to identify and correct (almost) all instances where my code was not using best practices, as identified in Perl Best Practices.
* All subroutines now take named arguments, making it easier to read the code and understand what is being sent and returned.
* added "use English" pragma and replaced all the arcane $^ and $[ perl variables with their english name equivalents.
=item WEB INTERFACE/CGI
* Completely new webmail/logon interface. Written entirely in HTML, CSS, and JavaScript.
* The format of toaster-watcher.conf is altered slightly. It is more consistent in the internal layout so that my programs can alter it reliably.
* removed httpd.conf patches in favor of installing a mail-toaster.conf file with all the requisite apache directives.
* Organized all the cgi related docs into cgi_files directory. They are now installed via the -s webmail target to toaster_setup.
=back
See Also 4.x Changes L<http://mail-toaster.org/changes/4.x-changes.html>
view all matches for this distribution
view release on metacpan or search on metacpan
pod/Changes.pod view on Meta::CPAN
# Copyright 2022 Jeffrey Kegler
# This file is part of Marpa::R2. Marpa::R2 is free software: you can
# redistribute it and/or modify it under the terms of the GNU Lesser
# General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# Marpa::R2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser
# General Public License along with Marpa::R2. If not, see
# http://www.gnu.org/licenses/.
=head1 NAME
Marpa::R2::Changes - Differences between Marpa::R2 and Marpa::XS
=head1 About this document
This document describes the incompatible
differences between Marpa::XS
and Marpa::R2.
(Differences that do not give rise to incompatibility
are outside of its scope.)
It is intended for readers already familiar with Marpa::XS,
who are writing new applications for Marpa::R2,
and for readers migrating Marpa::XS applications
and tools to Marpa::R2.
=head1 Changes
=head2 Additional reserved symbol names
Marpa::XS reserved, for its internal use, all symbol names
ending with the right square bracket ("C<]>").
In addition,
Marpa::RS reserved symbols ending
with the right parenthesis ("C<)>"),
the right angle bracket ("C<< > >>"),
and the right curly bracket ("C<}>").
Any other valid Perl string remains an acceptable
symbol name.
=head2 The return value of the read() method has changed
The return value of
the Marpa::R2 recognizer's C<read()> method differs from its Marpa::XS
equivalent.
In Marpa::XS it returned the number of distinct
terminals (by symbol ID) allowed in the next
C<read()>.
In Marpa::R2 it returns the number of recognizer
events that occurred during the read.
Examples of recognizer events are exhaustion,
the Earley sets exceeding a designated "warning"
level,
and other circumstances settable by the user.
For more detail,
see L<the documentation of recognizer's
C<read> method|Marpa::R2::Deprecated::NAIF::Recognizer/"read()">.
=head2 Rule LHS's are no longer a source of action names
In Marpa::XS, if there was no explicit action name for a rule, Marpa
would try to find a closure that had the same name as the rule's
LHS. The use of rule LHS's as
action names had a potential for
unpleasant surprises.
A surprise could occur if the rule's LHS coincided with
a function name without the prorgrammer realizing or intending it.
This kind of 'action at a distance' bug can be very hard to detect
and trace.
It was originally thought that implicitly using the LHS as the name
of an action would be convenient enough to outweigh the dangers.
But in fact,
this feature wound up being little used. And accidental
resolution via a rule LHS was a danger for all users, whether they
used the feature or not. For these reasons, as well as
potential optimization and efficiency considerations, Marpa::R2 no longer
does implicit action resolution using a rule LHS.
=head2 Different rules with the same rank now appear in arbitrary order
In ranking parse trees,
if two rule instances are for different
rules
but have the same rule rank,
they will now appear in arbitrary order.
This is probably the behavior that programmers
have always expected.
In Marpa::XS, when the C<null_ranking> named
argument of rules was in use for one of the rules,
specific guarantees were made for the order
in some of the cases.
The intent was to be orthogonal with the guarantees
made for the ranking of null variants within the
same rule.
These additional guarantees
proved useless in practice,
cumbersome to implement,
and, when documented, opaque and unintuitive.
In Marpa::R2 they have been dropped.
=head2 Null actions now come from the rules
In Marpa::XS null actions were specified by symbol.
This created a dual semantics -- one for non-nulled rules,
and another for nulled rules. The conventions and
behaviors of the two semantics were quite dissimilar.
The rules for their coordination were complicated,
and it was possible for a programmer
expecting one semantics, to be surprised by a result from
the other.
In Marpa::R2 the semantics of nulled rules is the same
as that of non-nulled rules,
and the semantics of nulled symbols comes from the semantics
of the nulled rules.
This requires rule evaluation closures to be aware
they might be called for nulled rules.
But it greatly simplifies the semantics conceptually.
For more detail, see L<Marpa::R2::Deprecated::NAIF::Semantics::Null>.
=head2 Actions can now be constants
If an action name resolves to a constant, that constant is the action.
The effect is the same as if the action name resolved to a function
that returned that constant, except that it is more efficient.
Perl cannot reliably distinguish between non-existent symbols and symbols
whose value is C<undef>,
so constants whose value is C<undef> are not allowed.
The C<::undef> reserved action name can be used instead.
=head2 Actions names beginning with "C<::>" are reserved
Action names which start with "C<::>" are reserved.
"C<::undef>" is a safe way of specify a constant whose
value is C<undef>.
Use of a reserved name which has not yet been defined causes
an exception to be thrown.
=head2 The "default_null_value" named argument for grammars has been removed
Symbols no longer have null values, so the "default_null_value"
named argument of grammars has been removed.
=head2 The "null_value" symbol property has been removed
Symbols no longer have null values.
Use of the C<null value> symbol property
now causes an exception.
=head2 The token value argument of read() has changed
The Marpa::R2 recognizer's C<read()> method differs from its Marpa::XS
equivalent.
In Marpa::R2, If C<read()>'s token value argument is
omitted, then the value of the token will be a Perl C<undef>.
If C<read()>'s
token value is given explicitly, then that explicit value will be
the value of the token. In particular, an explicit C<undef> token
value argument will behave differently from an omitted token value
argument. For details, see L<the documentation of recognizer's
C<read> method|Marpa::R2::Deprecated::NAIF::Recognizer/"read()">.
=head2 The token value argument of C<alternative()> has changed
The Marpa::R2 recognizer's C<alternative()> method differs from its
Marpa::XS equivalent. Its token value argument must now be a
reference to the token value, not the token value itself, as in
Marpa::XS.
If alternative's token value argument is omitted or a
Perl C<undef>,
then the value of the token will be a Perl C<undef>.
If alternative's
token value argument is reference to C<undef>, then the value
of the token is a Perl C<undef>. For details, see L<the documentation
of the
C<alternative> method|Marpa::R2::Deprecated::NAIF::Input_Models/"alternative()">.
=head2 Marpa::R2::Recognizer::value() does not accept named arguments
In the Marpa::XS recognizer, the C<new()>, C<set()> and value() methods
all accepted named arguments. As of Marpa::R2, the C<value()> method
will no longer do so.
Allowing named arguments for the C<value()> was a holdover from a
previous interface, which also seemed like it might be a convenience.
But, since it was even more important that the C<value()> method be
convenient as the termination test controlling a loop over the parse
results, a lot of special logic was added to deal with arguments
which only made sense before the first pass of the loop, etc., etc.
Eliminating named arguments from the C<value()> method eliminates a
variety of special cases and, as a result, the documentation of the
C<value()> method is now simpler, shorter and clearer. Anything that
could be done by providing named arguments to the C<value()> method
can be done more using the recognizer's C<set()> method, and the code
will be clearer for it.
=head2 Marpa's grammar rewriting is now invisible
Internally, Marpa rewrites its grammars.
In Marpa::XS, most details of these rewrites were
invisible, but not all.
In Marpa::R2, all internal rules and symbols
are now completely
invisible to the user,
even in the tools for debugging grammars.
=head2 By default, the non-LHS symbols are the terminals
Traditionally, a symbol has been a terminal if
it is not on the LHS of any rule, and vice versa.
This is now the default in Marpa::R2,
replacing the more complicated, and less intuitive,
scheme that was in Marpa::XS.
Marpa::R2 still allows the user to
use any non-nulling symbol as a terminal,
including those symbols that appear on the LHS
of a rule,
but this is now an option,
and never the default.
For more, see
L<Marpa::R2::Deprecated::NAIF::Grammar/"Terminal symbols">.
=head2 The lhs_terminals grammar named argument has been eliminated
The lhs_terminals named argument of grammar objects implemented
what is now the default behavior.
Since it no longer performs a function,
its use is now a fatal error.
=head2 Nulling symbols cannot be terminals
In Marpa::XS, it was possible for a symbol to be both
nulling and a terminal.
In practice
that meant
that the symbol was nulling,
but that, on input,
that property could be overriden,
and a specific instance of the nulling symbol
could be made non-nulling.
This behavior was worse than useless and non-intuitive --
it was dangerous and logically inconsistent.
Marpa::R2 will not allow
a nulling symbol to be used as a terminal.
To the extent that the Marpa::XS behavior made sense,
it can be duplicated by creating a symbol which
is the LHS of two rules, one empty,
and the other rule with a RHS consisting of exactly one
terminal symbol.
=head2 A sequence must have a unique LHS
The LHS of a sequence rule
may not be on the LHS of any other
rule, whether another sequence rule, or a BNF rule.
This
is not as severe a restriction as it might sound --
while sequences cannot share the same LHS with other
rules directly, they can do so indirectly.
For details, see
L<Marpa::R2::Deprecated::NAIF::Grammar/"Duplicate rules">.
In Marpa::XS, the definition of when a sequence
was a duplicate was more liberal,
but it was also complicated and non-intuitive.
The new definition is simpler and more
intuitive, and its greater restrictiveness
is easy to work around.
=head2 The terminal status of a symbol is locked once set
Once a symbol is marked as a terminal or a non-terminal,
its terminal status cannot be changed.
We doubt this will affect any actual applications.
It would only affect an application
that changes symbols from their default status
to non-terminal,
and then only if they attempted to mark the same symbol
as a terminal at another point.
Few Marpa::R2 applications change symbols from
their default terminal status,
and none to my knowledge mark symbols as non-terminals.
=head2 Evaluation of infinite loops has been changed
Infinite loops (cycles) are still, by default, fatal errors.
For those considering programming with them,
and evaluating parses from grammars with cycles,
the semantics of cycles is now more closely specified.
For details of the new semantics,
see L<Marpa::R2::Deprecated::NAIF::Semantics::Infinite>.
=head2 The range of values allowed for ranks has been clarified
Symbols and rules have numeric ranks.
Previously, no mention was made of range of values allowed.
This is implemented-defined,
except that the magnitudes
of the ends of the range
will always be
at least
the 28th power of 2, less 1.
That is,
numbers in the range between
-134,217,727 and 134,217,727 will always be
allowed as ranks.
=head1 Copyright and License
=for Marpa::R2::Display
ignore: 1
Copyright 2022 Jeffrey Kegler
This file is part of Marpa::R2. Marpa::R2 is free software: you can
redistribute it and/or modify it under the terms of the GNU Lesser
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
Marpa::R2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser
General Public License along with Marpa::R2. If not, see
http://www.gnu.org/licenses/.
=for Marpa::R2::Display::End
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 WHAT'S NEW IN Net::SSLeay::OO
All releases to date by SAMV.
=head1 RELEASE 0.02, 10 Oct 2009
This release fixes a couple of glaring bugs, and proves that the
module now works even better than before by porting another of the
examples scripts from Net::SSLeay!
In detail:
=over
=item *
F<COPYING.txt> is now included, to dot another legal I
=item *
A few functions which wouldn't have worked in L<Net::SSLeay::OO::SSL>
are now not imported from L<Net::SSLeay>
=item *
One of which would just work if it was exported into the Context
class, see L<Net::SSLeay::OO::Context/set_cert_and_key>.
=item *
The L<Net::SSLeay::OO::Context/accept> and
L<Net::SSLeay::OO::Context/connect> methods now return the
L<Net::SSLeay::OO::SSL> object, as advertised in the docs.
=item *
Work around an OpenSSL bug with client certificates and using
C<set_verify> without passing a callback.
=item *
New old example: F<examples/sslecho.pl>
=back
=head1 RELEASE 0.01, 6 Oct 2009
Check out the 'v0.01' tag from git if you are interested in the
features of the first release.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Net/Statsd/Server/Changes.pod view on Meta::CPAN
=head1 NAME
Net::Statsd::Server::Changes - Change history for Net::Statsd::Server
=head2 Changes in Net::Statsd::Server 0.17 13th June 2014
Fixed percentThreshold configuration directive. It was being ignored,
falling back to the default 90%. Added a new integration test case.
=head2 Changes in Net::Statsd::Server 0.16 6th May 2014
Implemented new timer attributes: count_ps, median, sum_squares.
Release of 0.15 never happened.
=head2 Changes in Net::Statsd::Server 0.14 25th April 2014
Fixed problem with gauges that were erroneously deleted either
when deleteIdleStats was false, or deleteIdleStats was true
but deleteGauges was false.
=head2 Changes in Net::Statsd::Server 0.13 26th January 2014
Added support for Perl 5.8, so now Net::Statsd::Server should
in theory work on 5.8 too, thanks to RJBS for the related patch.
RJBS also reported N::S::S to work on Solaris.
Fixed RT#85165, now the code is indicated as Perl_5 licence.
Problem there was my failed understanding of the interaction
between hardcoded Makefile.PL and dzil.
=head2 Changes in Net::Statsd::Server 0.12 16th December 2013
Fixed (hopefully) problems reported by CPAN testers:
* Failing to setsockopt(SO_RCVBUF) is no more a fatal exception.
We will just continue and emit a warning instead.
* Some CPAN testers appear to have a running graphite on their
systems, so use a not so common port instead of 2003.
=head2 Changes in Net::Statsd::Server 0.11 13th December 2013
Added implementation for the following configuration directives:
deleteIdleStats, deleteGauges, deleteSets, prefixStats.
Both deleteTimers and deleteCounters were supposed to work
before 0.11 too.
Improved documentation. Should be clear now how to know what
options are actually supported and what options are not.
Improved integration tests. Now it's even easier to run
Net::Statsd::Server integration tests against the nodejs
version of statsd to verify full compatibility.
=head2 Changes in Net::Statsd::Server 0.10 10th February 2013
Fixed SO_RCVBUF on Mac OS X, where it's apparently not possible
to set SO_RCVBUF to more than 8Mb. If you're on OSX, I'd
like to get more reports about this.
Fixed integration test suite so that it always runs with the
correct interpreter ($^X) instead of /usr/bin/perl.
This should fix lots of CPAN testers failure reports.
Improved internal trim() function.
=head2 Changes in Net::Statsd::Server 0.09 29th January 2013
Fixed a few more nodejs-statsd compatibility bugs:
- non-legacy namespace code added a repeated 'stats.' level
that shouldn't be there
- underscode character ('_') is now correctly allowed as
part of a statsd metric.
Added an integration test suite, to verify end-to-end that
statsd server is behaving exactly as the nodejs version.
Being as near to 100% compatibility as possible has been
one of the main goals from the start.
=head2 Changes in Net::Statsd::Server 0.08 27th January 2013
Fixed CPAN testers failures reported for inexact floating point
comparison when testing standard deviation of timer results
in the test suite.
=head2 Changes in Net::Statsd::Server 0.07 23rd January 2013
Started converting the nodejs statsd test suite to TAP
test cases. Completed the conversion of the metrics processing
test cases. This uncovered two subtle bugs in the metrics class.
Fixed bug in calculation of percentile values threshold, due
to a difference in how Javascript's Math.round() and
Perl's int() work.
Fixed undefined value warning in the metrics processing during
the calculation of cumulative values for timers, due to
an off-by-one error.
=head2 Changes in Net::Statsd::Server 0.06 17th January 2013
Added new File backend.
It allows to flush all aggregated stats to a given log file.
Added keyFlush implementation.
Allows to have the top n% (keyFlush.percent) dumped to a
log file (keyFlush.log) or stdout every y seconds
(keyFlush.interval).
=head2 Changes in Net::Statsd::Server 0.05 16th January 2013
Improved UDP socket default settings to perform better.
In my tests, Net::Statsd::Server manages to successfully capture
almost twice the amount of UDP traffic (otherwise lost) than
the original node.js based statsd, with SO_RCVBUF = 8Mb.
I still have to experiment a bit more with this setting though.
=head2 Changes in Net::Statsd::Server 0.04 15th January 2013
Fixed statistics flush. When a flush is triggered, stats have
to be cleared. The flush code wasn't doing this previously.
Fixed management commands (:8126) to output correct JSON data
structures.
This is the first fully functional statsd server release.
=head2 Net::Statsd::Server 0.01 - 0.03 January 2013
First release on an unsuspecting world.
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 Change Log
=head2 2.6.2 C<2023-12-23>
=over
=item * avoid given/when/smartmatch because these features are deprecated in perl 5.38 (#199) [real-dam]
=back
=head2 2.6.1 C<2023-07-26>
=over
=item * Fix: Formatting with perltidy was broken in 2.6.0
=back
=head2 2.6.0 C<2023-07-23>
=over
=item * Add debug setting for running as different user. See sudoUser setting. (#174) [wielandp]
=item * Allow to use a string for debuggee arguments. (#149, #173) [wielandp]
=item * Add stdin redirection (#166) [wielandp]
=item * Add link to issues to META files (#168) [szabgab/issues]
=item * Add support for podman
=item * Add support for run Perl::LanguageServer outside, but debugger inside a container
=item * Add setting useTaintForSyntaxCheck. If true, use taint mode for syntax check (#172) [wielandp]
=item * Add setting useTaintForDebug. If true, use taint mode inside debugger (#181) [wielandp]
=item * Add debug adapter request C<source>, which allows to display source of eval or file that are not available to vscode (#180) [wielandp]
=item * Fix: Spelling (#170, #171) [pkg-perl-tools]
=item * Fix: Convert charset encoding of debugger output according to current locale (#167) [wielandp]
=item * Fix: Fix diagnostic notifications override on clients (based on #185) [bmeneg]
=back
=head2 2.5.0 C<2023-02-05>
=over
=item * Set minimal Perl version to 5.16 (#91)
=item * Per default environment from vscode will be passed to debuggee, syntax check and perltidy.
=item * Add configuration C<disablePassEnv> to not pass environment variables.
=item * Support for C<logLevel> and C<logFile> settings via LanguageServer protocol and
not only via command line options (#97) [schellj]
=item * Fix: "No DB::DB routine defined" (#91) [peterdragon]
=item * Fix: Typos and spelling in README (#159) [dseynhae]
=item * Fix: Update call to gensym(), to fix 'strict subs' error (#164) [KohaAloha]
=item * Convert identention from tabs to spaces and remove trailing whitespaces
=back
=head2 2.4.0 C<2022-11-18>
=over
=item * Choose a different port for debugAdapterPort if it is already in use. This
avoids trouble with starting C<Perl::LanguageServer> if another instance
of C<Perl::LanguageServer> is running on the same machine (thanks to hakonhagland)
=item * Add configuration C<debugAdapterPortRange>, for choosing range of port for dynamic
port assignment
=item * Add support for using LanguageServer and debugger inside a Container.
Currently docker containers und containers running inside kubernetes are supported.
=item * When starting debugger session and C<stopOnEntry> is false, do not switch to sourefile
where debugger would stop, when C<stopOnEntry> is true.
=item * Added some FAQs in README
=item * Fix: Debugger stopps at random locations
=item * Fix: debugAdapterPort is now numeric
=item * Fix: debugging loop with each statement (#107)
=item * Fix: display of arrays in variables pane on mac (#120)
=item * Fix: encoding for C<perltidy> (#127)
=item * Fix: return error if C<perltidy> fails, so text is not removed by failing
formatting request (#87)
=item * Fix: FindBin does not work when checking syntax (#16)
=back
=head2 2.3.0 C<2021-09-26>
=over
=item * Arguments section in Variable lists now C<@ARGV> and C<@_> during debugging (#105)
=item * C<@_> is now correctly evaluated inside of debugger console
=item * C<$#foo> is now correctly evaluated inside of debugger console
=item * Default debug configuration is now automatically provided without
the need to create a C<launch.json> first (#103)
=item * Add Option C<cacheDir> to specify location of cache dir (#113)
=item * Fix: Debugger outputted invalid thread reference causes "no such coroutine" message,
so watchs and code from the debug console is not expanded properly
=item * Fix: LanguageServer hangs when multiple request send at once from VSCode to LanguageServer
=item * Fix: cwd parameter for debugger in launch.json had no effect (#99)
=item * Fix: Correctly handle paths with drive letters on windows
=item * Fix: sshArgs parameter was not declared as array (#109)
=item * Disable syntax check on windows, because it blocks the whole process when running on windows,
until handling of child's processes is fixed
=item * Fixed spelling (#86,#96,#101) [chrstphrchvz,davorg,aluaces]
=back
=head2 2.2.0 C<2021-02-21>
=over
=item * Parser now supports Moose method modifieres before, after and around,
so they can be used in symbol view and within reference search
=item * Support Format Document and Format Selection via perltidy
=item * Add logFile config option
=item * Add perlArgs config option to pass options to Perl interpreter. Add some documentation for config options.
=item * Add disableCache config option to make LanguageServer usable with readonly directories.
=item * updated dependencies package.json & package-lock.json
=item * Fix deep recursion in SymbolView/Parser which was caused by function prototypes.
Solves also #65
=item * Fix duplicate req id's that caused cleanup of still
running threads which in turn caused the LanguageServer to hang
=item * Prevent dereferencing an undefined value (#63) [Heiko Jansen]
=item * Fix datatype of cwd config options (#47)
=item * Use perlInc setting also for LanguageServer itself (based only pull request #54 from ALANVF)
=item * Catch Exceptions during display of variables inside debugger
=item * Fix detecting duplicate LanguageServer processes
=item * Fix spelling in documentation (#56) [Christopher Chavez]
=item * Remove notice about Compiler::Lexer 0.22 bugs (#55) [Christopher Chavez]
=item * README: Typo and grammar fixes. Add Carton lib path instructions. (#40) [szTheory]
=item * README: Markdown code block formatting (#42) [szTheory]
=item * Makefile.PL: add META_MERGE with GitHub info (#32) [Christopher Chavez]
=item * search.cpan.org retired, replace with metacpan.org (#31) [Christopher Chavez]
=back
=head2 2.1.0 C<2020-06-27>
=over
=item * Improve Symbol Parser (fix parsing of anonymous subs)
=item * showLocalSymbols
=item * function names in breadcrump
=item * Signature Help for function/method arguments
=item * Add Presentation on Perl Workshop 2020 to repos
=item * Remove Compiler::Lexer from distribution since
version is available on CPAN
=item * Make stdout unbuffered while debugging
=item * Make debugger use perlInc setting
=item * Fix fileFilter setting
=item * Sort Arrays numerically in variables view of debugger
=item * Use rootUri if workspaceFolders not given
=item * Fix env config setting
=item * Recongnice changes in config of perlCmd
=back
=head2 2.0.2 C<2020-01-22>
=over
=item * Plugin: Fix command line parameters for plink
=item * Perl::LanguageServer: Fix handling of multiple parallel request, improve symlink handling, add support for UNC paths in path mapping, improve logging for logLevel = 1
=back
=head2 2.0.1 C<2020-01-14>
Added support for reloading Perl module while debugging, make log level configurable, make sure tooltips don't call functions
=head2 2.0.0 C<2020-01-01>
Added Perl debugger
=head2 0.9.0 C<2019-05-03>
Fix issues in the Perl part, make sure to update Perl::LanguageServer from cpan
=head2 0.0.3 C<2018-09-08>
Fix issue with not reading enough from stdin, which caused LanguageServer to hang sometimes
=head2 0.0.2 C<2018-07-21>
Fix quitting issue when starting Perl::LanguageServer, more fixes are in the Perl part
=head2 0.0.1 C<2018-07-13>
Initial Version
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 NAME
Revision history for Pod-Outline
=head1 0.01
First version.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/SRS/EPP/Changes.pod view on Meta::CPAN
=head1 CHANGELOG FOR SRS::EPP::Proxy
=head2 VERSION 0.21, 12 JULY 2010
=over
=item *
Add Mappings for:
=over
=item *
Poll (Ack)
=item *
Create Domain
=item *
Transfer Contact
=item *
Transfer Domain (request and query)
=back
=back
=head2 VERSION 0.20, 25 JUNE 2010
=over
=item *
Overhaul mappings.t test file
=item *
Adjust the API regarding initial processing of EPP requests
=item *
Adjust the API regarding how we return EPP responses
=item *
Add Mappings for:
=over
=item *
Check Contact
=item *
Check Domain
=item *
Create Contact
=item *
Delete Contact
=item *
Delete Domain
=item *
Info Contact
=item *
Info Domain
=item *
Renew Domain
=back
=back
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 WHATS NEW IN SCRIPTALICIOUS
=head2 VERSION 1.17
=over
=item Fix deadlock with C<out =E<gt> sub { ... }>
Between Perl versions 5.17.5 and 5.17.6, a change was introduced which
exposed a common pipe deadlock bug in this module, if you used closures
which handle filehandles. [closes: RT#85999]
=back
=head2 VERSION 1.16
=over
=item Clear PERL5OPT before invoking $^X in tests
To hopefully resolve some false failures
=item Fix code for case when Time::HiRes is not available
I never got a report about this, but it clearly didn't work! Guess
no-one's using a Perl before 5.7.3 or without that module any more.
=item put the magic AUTOLOAD back
Scriptalicious will do most of its core stuff without compiling most
of itself, and there is an AUTOLOAD hook which puts them into place.
I decided to re-enable it.
=item remove (soft) dependency on Pod::Constants
Scriptalicious scripts are less delicious without a working --help,
and many systems did not bother with this soft dependency, so it is
of benefit to just implement what that code did instead.
=item new $CONFIG variable
Used for telling where config was read from (or specifying where it is
to be read from)
=item deal with negative values in sci_unit and time_unit
These functions didn't deal with negative input; fix that.
=back
=head2 VERSION 1.15
=over
=item Add missing copyright notices and license.
Gah, sorry about this. Note that it is a retrospective license, so
you don't need to 'upgrade' to this version to copy the software.
=back
=head2 VERSION 1.14
=over
=item 5.6.x compat: fix missed instance of unquoted filehandle in test suite
=back
=head2 VERSION 1.13
=over
=item 5.6.x compat: don't use readline FH; use <FH> instead
=item Don't die if getconf is called without YAML installed; warn instead
=item Make YAML config test conditional on YAML being installed
=item Fix incorrectly written e-mail address in Makefile.PL
=item Remove TODO file; these features have been added!
=back
=head2 VERSION 1.12
=over
=item Add getopt_lenient()
=item Add time_unit() function
=item Use time_unit instead of sci_unit in show_elapsed/show_delta
=item Fix test that was still testing for µ
=back
=head2 VERSION 1.11
=over
=item Drop C<Module::Build> dependency
Go back to C<ExtUtils::MakeMaker>.
=item Fix various problems with prompt_*
=item Add C<hush_exec> and C<unhush_exec> functions
=item Make C<getopt()> optional for getting verbosity right
=item Functions don't clobber $_ (Gerard Goosen)
=back
=head2 VERSION 1.10
Add prompt_file from an earlier branch.
Fix F<Build.PL> so a compatibility Makefile.PL is generated.
=head2 VERSION 1.09
Another "brown paper bag release". Fixed a bug in tsay that would
cause it not to work if there was a true value in $1 already. Bring
on Perl 6 and lexical $/.
=head2 VERSION 1.08
Added new functions 'anydump' and the awesome 'tsay'
=head2 VERSION 1.07
Brown paper bag release - the prompting had some debug statements
left behind.
=head2 VERSION 1.06
Documentation modifications only; it was quite rightly pointed out
that the documentation didn't really say what the script is useful
for.
=head2 VERSION 1.05
=over
=item B<Prompting>
Prompt the user for arbitrary things via prompt_for(-int => "foo"),
with readline support.
=item B<Filehandle Plugging and Playing>
All functions that run things (ie C<run()>, C<run_err()>, C<capture()>
and C<capture_err()> can now have arbitrary filehandle connections to
closures (via a sub-process), named files or filehandles.
=back
=head2 VERSION 1.04
Bug fix for scripts that fork (see F<t/04-fork.t>)
=head2 VERSION 1.03
=over
=item B<YAML config file support>
Do your C<getopt()> and C<YAML::Load()> in one pass! See C<getconf()>
in the man page.
You can even include the default YAML configuration file in your POD
via Pod::Constants! Soon to be documented and tested by the test
suite :). But the daring can go put some YAML in a section called
"C<DEFAULT CONFIGURATION FILE>"
=item B<Quick and dirty timer functions>
New timer utility functions C<start_timer()>, C<show_delta()>,
C<show_elapsed()>
=item bugfix
C<barf()> now does not make your script exit if inside C<eval {}>; it
checks C<$^S> and re-throws the error instead.
=back
=head2 Historic releases
Version 1.02 - Thu, 15 Apr 2004 12:24:16 +1200
* Made barf actually barf :-}
* Fixed bug with capture and -v - error "Warning: unable to close
filehandle CHILD properly."
* output from capture_err matches documentation
Version 1.01 - Tue, 13 Apr 2004 10:26:27 +1200
* Fixed version number input - now accepts $main::VERSION as per
widespread convention
* Added SEE ALSO section based on feedback from module-
authors@perl.org
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=encoding utf8
=head1 NAME
REVISION HISTORY - Set::Object
=head1 1.42, 2022-01-21
=over
=item *
Fix C<%h={}> warning, by Pauwel Coppieters
=item *
add F<examples/slow-sort.pl>. see RT #90070
=back
=head1 1.41, 2021-01-17
=over
=item *
Use meta-spec 2, Moose -> dev.requires not runtime.recommends
(GH #6, RT #134034) by mohawk
=back
=head1 1.40, 2020-01-19
=over
=item *
Fixed perl5.28 regressions (not cperl), for @$set args to other set functions.
(RT #131345). Fixed by adding missing SvGETMAGIC expansions to all args.
=item *
Bumped minimal required perl version to 5.8 for arrayref @$set behavior.
=item *
Fixed the smokers and some author tests.
=back
=head1 1.39, 2018-01-08
=over
=item *
Skip installing Changes.pod (PR #5, kentfredric)
=back
=head1 1.38, 2017-11-11
=over
=item *
Add test_cover and release targets
=back
=head1 1.37, 2017-11-11
=over
=item *
Test fixes for -Ddefault_inc_excludes_dot, RT #120540
=item *
Skip failing threads test <= 5.10.0
=item *
Add CI hooks
=back
=head1 1.36, 2017-11-10
=over
=item *
Davem fixed get-magic for the new arguments, fixing
NetHack-Item L<[perl #132152]|https://rt.perl.org/Public/Bug/Display.html?id=132152>.
See L<[cpan #123582]|https://rt.cpan.org/Ticket/Display.html?id=123582>
=item *
Stabilize F<t/misc/kwalitee.t> test
=back
=head1 1.35, 2015-06-10
=over
=item *
Change to Artistic License 2.0
=item *
Add more misc tests. Add use strict to Set::Object::Weak
=back
=head1 1.34, 2013-12-25
=over
=item *
Make synopsis examples work (tadzik)
=back
=head1 1.33, 2013-12-13
=over
=item *
Fix RT #90070: Improve pod for sorted @$set in list context vs
unsorted ->elements (ftobin)
=item *
Fix RT #87658: Typo in pod (dsteinbrunner)
=back
=head1 1.32, 2013-05-15 rurban (released 2013-12-13)
=over
=item *
Reverts Changes.pod patch RT#85244 as it conflicts with the Set::Object pod on metacpan.
Also RT #85246
=back
=head1 1.31, 2013-05-13 rurban
=over
=item *
Changes.pod patch by Gregor Hermann, debian perl group - RT#85244
=back
=head1 1.30, 2013-04-04 rurban (new maintainer)
=over
=item *
Fixes for 5.16 and newer - RT#83426
Sort by member names, not the refs.
Fix wrong weak test with globals. Changed to lexicals and use strict/warnings.
=item *
Fix F<t/misc/segfault.t>, check SvMAGICAL before doing C<mg_find>
=item *
Fixed wrong C format types in warnings and C<SET_OBJECT_MAGIC_backref>.
Added PREREQ_PMs, make L<Test::LeakTrace> and L<Moose> an optional dependency
for F<t/misc/more_leaks.t>
=item *
Improve thread-safety (forbid concurrent writes), but still dealing with
Attempt to free non-existent shared string and
Unbalanced string table refcount: (1) for "8" during global destruction.
- RT #22760
=item *
Add missing typemap entry const char * for 5.6
=back
=head1 1.29, 13 Feb 2013
=over
=item *
Fixed a typo in a function which really shouldn't exist - RT#79653
=item *
Marked a couple of functions as deprecated for removal (including the
above function).
=item *
Fixed the magic cleanup code to use the appropriate macro/function to
clean up the magic list instead of trying to do it itself.
Unsurprisingly, fixes a memory leak. (RT#69967, also RT#67289)
=back
=head1 1.28, 22 Jul 2010
=over
=item *
Fixed a portability concern for some platforms' C compilers (that do
not support //-style comments) - RT#52690
=item *
Valid SIGNATURE file - RT#50492
=back
=head1 1.27, 15 Jan 2009
=over
=item *
Fix a typo that affected building against Perls with debugging enabled.
=item *
A minor #define refactor (Yuval).
=item *
Squash some long-standing warnings I had been ignoring for ages and
Havard Eidnes prompted me to fix by logging an RT ticket for it.
=item *
Squash some global clean-up warnings.
=back
=head1 1.26, 13 Oct 2008
=over
=item *
Methods which destroyed C<$@> due to internal use of C<eval> now
properly call C<local($@)> (Yuval)
=item *
Fix a leak and a corner case with weak set magic, and squash some
warnings (Yuval)
=item *
Define behaviour when dealing with return values from operations on
weak sets. No longer hard-coded "Set::Object" - may affect
Set::Object sub-classes (Sam).
=item *
(post-release changelog entry) related to the previous change,
Set::Object::Weak::set did not use to shift the invocant off the
stack, which caused result sets to have the inserted sets as members.
It now does, fixing this bug.
=back
=head1 1.25, 22 Jul 2008
=over
=item *
Portability: support Perls before 5.7.3, and make this dependency
explicit in the F<Makefile.PL>
=back
=head1 1.24, 20 Jul 2008
=over
=item *
Remove threads test which had inadvertantly slipped into the MANIFEST
from source control, and add comprehensive documentation on the state
of thread support in this module.
=item *
Correct other silly MANIFEST mistakes.
=back
=head1 1.23, 18 Jul 2008
=over
=item *
Make behaviour when dealing with items which were C<undef> defined.
Previously it might segfault (or Bus Error on Mac OS X) on some
operations and Perl versions, or result in an empty string being
inserted.
=item *
Fix a minor compile problem on IRIX, reported by David Cantrell.
=back
=head1 1.22, 8 Oct 2007
=over
=item *
Sub-classing interface added; it is now much easier to make
L<Set::Object> subclasses that return objects other than more
L<Set::Object>s when subclassing. From BrÃan Mach Aon Innéirghthe.
=back
=head1 1.21, 17 Feb 2007
=over
=item *
Fix false negative when Test::Pod::Coverage isn't installed. Reported
by Anna Bernathova of SuSE.
=back
=head1 1.20, 16 Feb 2007
=over
=item *
The C<-E<gt>compare> function was returning "disjoint" for empty sets.
RT#24965. (Nigel Metheringham)
=item *
Document lots of methods that were previously not documented.
=item *
Fix C<Set::Object::Weak::set()>. It was not passing its arguments to
C<Set::Object::Weak-E<gt>new()>, which was very broken.
=back
=head1 1.19, 23 Jan 2007
=over
=item *
remove bogus inclusions of Data::Dumper and Devel::Peek
=item *
New class C<Set::Object::Weak>, which all weak sets should get
re-blessed into when you call C<-E<gt>weaken>. Also added alternative
methods of constructing weak sets.
=item *
Fix a memory leak with scalar members (the internal hash used to store
the items was never being freed). RT#24508.
=back
=head1 1.18, 14 Sep 2006
=over
=item *
We could only build on gcc due to the use of variadic macros.
use C<#ifdef> to hide this GCC-specific extension (used only for
debugging) from non-GCC compilers.
=item *
Add note to man page on compatibility of C<Storable> serializations of
C<Set::Object>s between revisions.
=back
=head1 1.17, 1 Aug 2006
=over
=item *
fix compile problem affecting some platforms
=back
=head1 1.16, 18 Jul 2006
=over
=item *
weak reference support
=back
=head1 1.15, 21 Jun 2006
=over
=item *
Dumping sets with scalars in them via L<Storable> now works.
=back
=head1 1.14
=over
=item *
Fix build problem on Win32 (thanks Steffen Goeldner)
=back
=head1 1.13
=over
=item *
Fix F<Makefile.PL> so this F<Changes.pod> is not delivered as
C<Set::Changes> :-}
=item *
Restore compatibility with 5.6.0
=item *
Remove some compile-time warnings, please let me know if this version
does not build on any platform!
=back
=head1 1.12, 30 Aug 2005
=over
=item *
added patch from Sergey Skvortsov for backwards compatibility with
Perl versions before 5.8 (include >100k F<ppport.h>!)
=item *
removed 'C<set()>' constructor from default export list, as its name
conflicts with too many other modules.
=back
=head1 1.11, 27 Apr 2005
=over
=item *
removed debugging C<&_> func (was causing strange errors on 5.9.1)
=cut
=back
=head1 1.10, 2 Apr 2005
=over
=item *
added 'C<set()>' constructor and use-as-array-ref interface
=back
=head1 1.09, 26 Mar 2005
=over
=item *
added 'bool' overload operator to C<Set::Object>. For backwards
compatibility, always returns true.
=back
=head2 1.08_02, 14 Jan 2005
=over
=item *
Cutting out the "Universe" representation; this module gives plain
sets only.
=item *
documentation fixes
=back
=head2 1.08_01, 12 Jan 2005
=over
=item *
First attempt at adding support for scalars. This version tries to
work as closely to C<Set::Scalar> as possible.
This approach will not be continued unless there are a lot of requests
for it to be implemented. I think it's overly complicated, and not
what people expect when they want a Set.
=back
=head1 1.08, 14 Oct 2004
=over
=item *
another segfault bites the dust; this time, avoids a segfault when
taking a difference between sets of exactly 31 and 0 size. Same root
fault as the previous bug, this time I have a test case for it, too.
=back
=head1 1.07, 16 Aug 2004
=over
=item *
yet another segfault fix, this time due to incorrect use of PUSHs vs
XPUSHs. There is no test case for this bug unfortunately.
=back
=head1 1.06, 1 May 2004
=over
=item *
Fixed segfault when attempting to remove items from an empty set (fix
from Richard Sterling Cox)
=back
=head1 1.05, 5 Jan 2004
=over
=item *
some segfault fixes with Storable and Perl 5.6.1 (Perl 5.8.1 should be
OK)
=back
=head1 1.04, 3 Aug 2003
=over
=item *
added various functions similar to some found in Scalar::Util, but
with an extra one that performs a function that lays some groundwork
for L<Container::Object> (C<ish_int>).
Some of these functions were in the XS code anyway, and they are
extremely small, so I didn't see a problem with duplicating them -
saves an extra dependency. Plus, Graham Barr won't let me put
C<ish_int> or C<is_key> in his module.
Knowing that they are available will also assist in fixing some longer
standing bugs in Tangram (eg, using C<$obj + 0> to get a unique ID
when C<refaddr($obj)> would be better)
=item *
lots more input marshalling; if you ever end up doing funny things to
a C<Set::Object>, then at least now you'll get a clearer error
message.
=item *
more tests; L<Devel::Cover> test coverage now at 91% (stmt), 67% (branch)
=item *
erroneously putting scalars into C<Set::Object>s now no longer dumps
core.
=item *
serialisation of C<Set::Object> objects is now possible via the
L<Storable> module (L<Data::Dumper> still does the wrong thing, but
there is nothing I can do about that).
=back
=head1 1.03, 24 Jan 2003
=over
=item *
fixed overload related bug
=back
=head1 HISTORIC RELEASES
From original F<Changes> file.
Revision history for Perl extension Set::Object.
0.01 Sat Jun 6 13:36:56 1998
- original version; created by h2xs 1.18
0.02 Sun Jul 12 1998
- fixed refcount bug that leaked object when hash was
reorganized
- ensured compatibility with Perl 5.004_71
1.00 mid-99
- fixed some bug (related to subsets?)
- first mature release
1.01 8 Nov 1999
- no longer use Perl arrays internally, now compatible with
Perl 5.005_62
1.02 8 May 08 2000
- fixed bug that miscomputed new bucket while reindexing
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
doc/Changes.pod view on Meta::CPAN
$Id: Changes.pod,v 0.2 2001/12/19 05:27:20 brendan Exp $
=for html
<div id="content">
<H1>
Revision history for Syndication::NITF
</H1>
</div>
<div id="content">
=begin text
Revision history for Syndication::NITF
=end text
=head2 v0.01 - Released to CPAN 12 Dec 2001
- Debugged in much more depth...
- added examples/NITFParser.pl, sample program that parses and outputs
info describing an NITF file. Doesn't do much more right now.
=head2 v0.01 - Released to CPAN 1 Nov 2001
- Very basic, just accessor methods and a few support functions so far.
Will add more functionality and documentation soon.
=for text
** This file was automatically generated from **
** doc/Changes.pod. To edit it, see there. **
=for html
</div>
view all matches for this distribution
view release on metacpan or search on metacpan
doc/Changes.pod view on Meta::CPAN
$Id: Changes.pod,v 0.6 2002/01/16 04:36:55 brendan Exp brendan $
=for html
<div id="content">
<H1>
Revision history for Syndication::NewsML
</H1>
</div>
<div id="content">
=begin text
Revision history for Syndication::NewsML
=end text
=head2 v0.10 - Released to CPAN 14 Feb 2002
- internals: separated classes out into more than one file
- getXXXList now returns a real array when called in an array context
NOTE this may break some code, notably function calls like
myRoutine($newscomp->getNewsItemList) will now be passed an array rather
than an array reference. Sorry bout that, but remember this is
pre-release software you're working with...
- greatly enhanced examples/NewsMLParser.pl
=head2 v0.09 - 13 feb 2002 (unreleased)
- fixed bug that didn't allow multiple Party elements
- fixed bug: dies when asking for an attribute that doesn't exist
- added AFP example file
- added IPTC topic files (we don't use them yet, though)
=head2 v0.08 - Released to CPAN 16 Jan 2002
- A three-byte change (initialising a variable) which makes the test suite
pass... sorry about that guys!
=head2 v0.07 - Released to CPAN 11 Jan 2002
- Added some generic methods to Syndication::NewsML::Node (and therefore all
object classes):
+ getXML -- return the current tag and all its children as an XML tree
+ getContent -- same as above, but ignores the current container element
(which means the resulting string may not be well-formed XML)
+ getText updated to get text of all children (bug fix)
+ getAllText -- return text in all child elements with no sanity checking,
so you can even call this on the NewsML root element to retrieve all text
in a document
=head2 v0.06 - 1 Nov 2001 (unreleased)
- Enhanced examples/NewsMLParser.pl: now recurses through all NewsComponents.
It's almost useful!
- Made auto routines handle undefined elements/attributes better: now returns
undef rather than croaks. Calling a method of an undef class still dies,
though: that's Perl, there's nothing I can do about it -- so test your return
codes.
=head2 v0.05 - Released to CPAN 11 Oct 2001
- Fixed faulty call to all parent _init functions in Syndication::NewsML::Node
which meant the calls to parent _init classes could be removed... thanks to
Duncan Cameron <dcameron@bcs.org.uk> for the tip, which allowed me to get rid
of 285 lines of crappy code!
- Introduced better error reporting for calling getXXX when you should be
calling getXXXList (for elements that could be "zero or more" or "one or more")
- Found and fixed a few minor mismatches between the module and the DTD
- added resolveTopicRef to Origin and Party nodes, which uses the findReference
method to get the Topic node referred by a #reference in Origin's Href and
Party's Topic attributes. See tests and examples for usage.
- added some "helper functions" to grab metadata directly from a NewsComponent
node, rather than having to delve into the metadata structure to pull out simple
items like copyright date and news provider. This is the first step down the path
of creating a simpler API for NewsML access.
- Filled out more of t/4_reuters.t test and examples/NewsMLParser.pl
=head2 v0.04 - Released to CPAN, 26 Sep 2001
- Added resolveTopicSet, resolveTopicSetDescription to FormalNameNode
These routines allow the user to, given a Status node or something else with a
FormalName/Vocabulary pair, automatically look up a related TopicSet and get its
information. Note that this only works for locally referenced TopicSets (ie in
the same document referred by a Duid). The annotated DTD specifies an algorithm
to use when the TopicSet can't be found locally -- I haven't implemented it yet.
- Added References package including findReference method. Not tested for external
references yet.
- Added getElementByEuid and getElementByDuid methods. These methods can be used
on any tag that inherits IdNode -- ie nearly all of them.
Unfortunately the above methods only return a DOM element, not a NewsMLish
object. Perhaps I can use the tag name to construct them?
- Added DOMUtils class with two methods to begin with:
findElementByAttribute(node, attr, value):
starting at "node", walk the tree and return the node that
has attribute "attr" with value "value".
getRootNode(node)
follow the path up from "node" and return a reference to the <NewsML> node
at the top of the tree.
- Added getDatePerl method to date elements: converts ISO8601 date/time format
into internal Perl date/time format. Always returns date/time in UTC (it's easy
to then use Perl localtime() to get a representation in another timezone).
(Note: it may be useful to include a getOriginalTimeZone() or something as we're
destroying a bit of information here: namely the timezone under which the story
was filed / sent)
Elements that can use this are: DateAndTime, FirstCreated, ThisRevisionCreated, DateId
- Updated examples/NewsMLParser to use getNewsItemList -- forgot to fix in 0.03
- Changed all references of News::NewsML to Syndication::NewsML
- Added getTagName method to all Nodes
- Added getPath method to all Nodes
=head2 v0.03, released 16 Sep 2001
- Released to newsml@yahoogroups.com mailing list only.
=for text
** This file was automatically generated from **
** doc/Changes.pod. To edit it, see there. **
=for html
</div>
view all matches for this distribution
view release on metacpan or search on metacpan
Changes.pod view on Meta::CPAN
=head1 WHAT'S NEW IN TANGRAM
=head1 RELEASE 2.12, 9 Oct 2015.
Just to fix a couple of typos in the release.
=head1 RELEASE 2.11, 8 Oct 2015.
First production Tangram 2 release in over 9 years ;-)
=over
=item *
Fix compatibility with newer Perls. Thanks Doug Scoular!
=item *
Fix compatibility with newer MySQL which expects C<ENGINE=InnoDB>
instead of C<TYPE=InnoDB>. Breaks compatibility with any database
which really wants C<TYPE=X> instead, but AFAIK no such beast exists.
Tested with MariaDB 10.0.0
=back
=head1 RELEASE 2.10_01, 29 Jan 2007
After so many contributed features, I thought it must be time for a
dev. release. Go at it! No big new features in this version, should
be just stability fixes.
=over
=item *
L<Tangram::Relational> methods will now automatically try to load a
L<Tangram::Driver> based on the DBI connection string.
=item *
L<Tangram::Core> is now deprecated; use C<Tangram qw(:core)> instead.
=item *
Query objects (C<Tangram::Expr::QueryObject>'s, as returned by
L<Tangram::Storage/remote> support C<IS NULL> and C<IS NOT NULL>, via
the unary C<!> operator or C<!!> idiom, respectively.
=item *
The C<make_id> function that you supply to C<Tangram::Schema-E<gt>new>
is now passed an extra argument, the instance that is having its ID
made.
=back
=head1 RELEASE 2.10, 29 Mar 2006
This release is the first step in the major refactoring of Tangram,
which is API-backwards compatible. The differences between 2.09 and
2.10 are limited to namespace re-organisation. The test suite still
succeeds unmodified, but has been tweaked to suppress warnings that
deprecated modules are being used.
=over
=item *
Sync release with 2.09. svk this time made this extremely painful,
but we must forgive it because after all trying to support distributed
source management tool atop of a synchronised versioning filesystem is
pushing shit uphill.
=back
=head2 DEV. RELEASE 2.09_02, 21 Nov 2005
=over
=item *
Sync release with 2.08_06. svk made this far, far, too easy.
=back
=head2 DEV. RELEASE 2.09_01, 20 Oct 2005
=over
=item *
Renamed lots of modules to a grand new layout scheme.
Various classes, such as C<Tangram::Scalar>, C<Tangram::Set>, etc, are
now called L<Tangram::Type::Scalar>, L<Tangram::Type::Coll::Set>, etc.
However, so long as you C<use Tangram::Core>, C<use Tangram> or C<use
Tangram::Compat> before any of these old names are used, then C<@INC>
magic should be able to catch the inclusion and load the correct
module instead.
=item *
Added new C<use Tangram> import arguments C<:core> and
C<:compat_quiet>. to be documented.
=back
=head1 RELEASE 2.09, 29 Mar 2006
=over
=item *
Disable some tests on MySQL, that try to do things far too difficult
for its little brain.
=item *
Suppress a warning in the test suite.
=back
=head2 DEV. RELEASE 2.08_06, 21 Nov 2005
=over
=item *
Test suite changes: add a test for weakref, fix bad prefetch test that
was causing false negatives.
=item *
Make Scalar::Util the hard dependency that it is.
=item *
Fix the default C<get_id> function debug output, related to the test
for weakref. Also fix a bug in C<get_id> that caused bizarre erratic
behaviour in the scariest of circumstances.
=item *
Disabled nested join tests on SQLite.
=back
=head2 DEV. RELEASE 2.08_05, 20 Oct 2005
=over
=item *
Previous aggregation function change broke
C<$storage-E<gt>count($filter)>. Fixed.
=item *
Fixed outer joins again. They've even documented now! C<:D> See
L<Tangram::Storage/select>.
=item *
Fix F<Makefile.PL> so as not to deliver F<Changes.pod>.
=back
=head1 RELEASE 2.09
=head2 DEV. RELEASE 2.08_04, 13 Oct 2005
=over
=item *
A very nasty but also obscure bug affecting horizontal mapping and
polymorphic retrieval (or aggregation) was reported by Alex.
The fix for it has made remote expressions always include filtering
(via WHERE) on the type column as well as the ID column in most
queries. This should not affect the result of queries; it is just
passing on an assertion in the code base through to the database
back-end. The times it will affect results are when your currently
active schema does not match the one used to create the database and
you were previously relying on side-effects.
Examples of the query differences will follow here before the 2.09
release.
=back
This version has broken outer joins; to be fixed in the next release.
Also, this Changes.pod seems to being delivered to some random place
in your C<@INC>; sorry about that, the next release will exclude it
via the appropriate L<ExtUtils::MakeMaker> voodoo.
=======
This release is the first step in the major refactoring of Tangram,
which is API-backwards compatible. The differences between 2.09 and
2.10 are limited to namespace re-organisation. The test suite still
succeeds unmodified, but has been tweaked to suppress warnings that
deprecated modules are being used.
=over
=item *
Sync release with 2.09. svk this time made this extremely painful,
but we must forgive it because after all trying to support distributed
source management tool atop of a synchronised versioning filesystem is
pushing shit uphill.
=back
=head2 DEV. RELEASE 2.09_02, 21 Nov 2005
=over
=item *
Sync release with 2.08_06. svk made this far, far, too easy.
=back
=head2 DEV. RELEASE 2.09_01, 20 Oct 2005
=over
=item *
Renamed lots of modules to a grand new layout scheme.
Various classes, such as C<Tangram::Scalar>, C<Tangram::Set>, etc, are
now called L<Tangram::Type::Scalar>, L<Tangram::Type::Coll::Set>, etc.
However, so long as you C<use Tangram::Core>, C<use Tangram> or C<use
Tangram::Compat> before any of these old names are used, then C<@INC>
magic should be able to catch the inclusion and load the correct
module instead.
=item *
Added new C<use Tangram> import arguments C<:core> and
C<:compat_quiet>. to be documented.
=back
=head1 RELEASE 2.09, 29 Mar 2006
=over
=item *
Disable some tests on MySQL, that try to do things far too difficult
for its little brain.
=item *
Suppress a warning in the test suite.
=back
=head2 DEV. RELEASE 2.08_06, 21 Nov 2005
=over
=item *
Test suite changes: add a test for weakref, fix bad prefetch test that
was causing false negatives.
=item *
Make Scalar::Util the hard dependency that it is.
=item *
Fix the default C<get_id> function debug output, related to the test
for weakref. Also fix a bug in C<get_id> that caused bizarre erratic
behaviour in the scariest of circumstances.
=item *
Disabled nested join tests on SQLite.
=back
=head2 DEV. RELEASE 2.08_05, 20 Oct 2005
=over
=item *
Previous aggregation function change broke
C<$storage-E<gt>count($filter)>. Fixed.
=item *
Fixed outer joins again. They've even documented now! C<:D> See
L<Tangram::Storage/select>.
=item *
Fix F<Makefile.PL> so as not to deliver F<Changes.pod>.
=back
=head2 DEV. RELEASE 2.08_04, 13 Oct 2005
=over
=item *
A very nasty but also obscure bug affecting horizontal mapping and
polymorphic retrieval (or aggregation) was reported by Alex.
The fix for it has made remote expressions always include filtering
(via WHERE) on the type column as well as the ID column in most
queries. This should not affect the result of queries; it is just
passing on an assertion in the code base through to the database
back-end. The times it will affect results are when your currently
active schema does not match the one used to create the database and
you were previously relying on side-effects.
Examples of the query differences will follow here before the 2.09
release.
=back
This version has broken outer joins; to be fixed in the next release.
Also, this Changes.pod seems to being delivered to some random place
in your C<@INC>; sorry about that, the next release will exclude it
via the appropriate L<ExtUtils::MakeMaker> voodoo.
=head2 DEV. RELEASE 2.08_03, 31 Aug 2005
=over
=item *
Make F<Makefile.PL> output display modules that failed, rather than
letting C<ExtUtils::MakeMaker> do it for it.
=item *
Make L<Data::Lazy> 0.6 a "hard" requirement in the F<Makefile.PL>.
This is still slightly problematic as only version 0.5 will be
installed via the CPAN shell.
=item *
Support direct use of SQL in order clauses via C<order =E<gt> [ 'SQL'
]> (see L<Tangram::Storage/select>)
=item *
Support the SQLite 2 found in Ubuntu Hoary's C<libdbd-sqlite-perl>
package, which uses a connection string of C<sqlite2>.
=back
=head2 DEV. RELEASE 2.08_02, 16 Aug 2005
=over
=item *
Fix L<Data::Lazy> dependency version number
=item *
Allow one-column L<Tangram::Ref>
=item *
add C<$storage-E<gt>make_oid()> (See L<Tangram::Storage/make_oid>)
=item *
Various documentation fixes from Andres Kievsky
=item *
Make test suite fail gracefully (skip all) if disabled
=back
=head2 DEV. RELEASE 2.08_01, 29 Jun 2005
=over
=item *
Remove redundant confusing copyright messages; the whole work is
copyrighted, such notices should either be complete or absent IMHO.
=item *
Fix link to Tangram site and mailing list
=item *
Merge in a whole lotta Oracle fixes
=back
=head1 RELEASE 2.08, March 2005
This release was C<2.07_07> with a couple of minor bug fixes.
=over
=item *
L<Tangram::Dump> now checks (via C<$storage-E<gt>id_maybe_insert()>)
whether objects that it is saving should be inserted to the DB first,
which allows the practice illustrated by the F<t/musicstore/> test
suite to work.
=back
=head2 DEV. RELEASE 2.07_07, 24 Dec 2004
=over
=item *
added support for multiple test suites, each with their own schema, to
end the ballooning schema madness that was affecting the springfield
test suite.
=item *
reworked the way the DBMS date formatting worked again, adding
L<Tangram::CookedDateTime>
=item *
added support for L<Time::Piece> and L<DateTime>.
=item *
much work on database portability. The L<Tangram::Pg> back-end now
works very well, and I have also ported to SQLite (see
L<Tangram::SQLite>).
=item *
much more documentation, including L<Tangram::Intro>
=item *
reworked the test suite to have multiple sections
=item *
new test section for Object Persistathon (F<t/musicstore/> schema)
=back
=head2 DEV. RELEASE 2.07_06, 10 Oct 2004
=over
=item *
Support for SQL sequences. See L<Tangram::Schema>.
=back
=head2 DEV. RELEASE 2.07_05, 2.07_06
=over
=item *
lots of changes. full list to follow once I get the time to look at
the revision history :-}
=back
=head2 DEV. RELEASE 2.07_04, 20 May 2004
=over
=item *
Various POD modifications, including the main Tangram page, the
addition of the stub L<Tangram::Complicity> and the removal of bogus
C<Tangram::Dialect>
=item *
Enhanced TRACE messages
=item *
Added support for Oracle via L<Tangram::Oracle>
=item *
Added support for cursors that select no objects (just retrieve extra
columns, eg for aggregate selects)
=item *
`Fixed' F<t/datetime.t> so that it doesn't do PostgreSQL/MySQL
specific tests unless it is running on those databases
=item *
L<Tangram::Storage> and L<Tangram::Relational::Engine> now hold a
handle to the L<Tangram::Relational> object that created them,
allowing for various DBMS dependant hooks (used to rewrite column
types, format dates, etc)
=item *
Extra sanity checking in the core
=item *
The id_col feature in L<Tangram::Schema> now actually works :-).
Previously, there were many places where C<.id> was hard-coded.
=item *
Added C<-E<gt>in()> method, a L<Tangram::Expr> object that allows
direct use of the SQL C<IN ()> construct, rather than just via
C<includes_or()>, or with collections using joins.
=item *
L<Tangram::DMDateTime> now expects database to understand the ISO-8601
date format, but the MySQL driver has been enhanced to convert
ISO-8601 to MySQL format.
=item *
New method C<Tangram::Storage::unload_all> (see
L<Tangram::Storage/unload_all>)
=back
=head2 DEV. RELEASE 2.07_03, 17 May 2004
=over
=item *
Added L<Tangram::IDBIF> to combine multiple object fields into one
perl_dump style field (including a "catch-all" facility) Test suite
for this isn't complete yet.
=back
Most other changes from Kurt Stephens L<ks.perl@kurtstephens.com>, with
many thanks:
=over
=item *
Do not C<$self-E<gt>{db}-E<gt>disconnect> in
C<Tangram::Storage::disconnect()> and C<::DESTROY()>, if
C<$self-E<gt>{db} eq $opts-E<gt>{dbh}> in
C<Tangram::Storage-E<gt>connect($schema, $cs, $user, $pw, { 'dbh'
=E<gt> ... } )>; See C<$self-E<gt>{db_owned}>.
=item *
Handle objects that lazily initialize L<Tangram::AbstractSet>
L<Set::Object> fields. See UMMF.
=item *
Added L<Tangram::IntrRef> ("Intrusive Ref") for 1-to-1 bi-directional
Association navigation using only one column in one table. Derived
from L<Tangram::IntrSet>. I need help with this one. :)
=item *
Added C<@sums = $storage-E<gt>sum([ $expr1, $expr2 ], ...)> support.
=item *
Added support for reused tables for mapping both sides of many-to-many
UML Associations to the same table with L<Tangram::Set> and
L<Tangram::Array>. See UMMF's F<example/ex1>.
=item *
Added support for timestamping all tables through
C<$schema-E<gt>{sql}{timestamp_all_tables}>. See
L<Tangram::Schema/Global Properties>.
=item *
Prevent additional records being inserted to the Tangram control table
on C<-E<gt>redeploy>.
=item *
Added support for C<GROUP BY> in L<Tangram::Cursor>.
=item *
Added C<COUNT($remote)> and C<SUM($filter_expr)> support.
=back
Editorial release changes:
=over
=item *
Started using C<_NN> version style, so CPAN marks it as a development
release
=item *
added brief test suite for aggregate functions
=back
=head2 DEV. RELEASE 2.07.2, 6 Jan 2004
=over
=item *
L<Tangram::IntrHash> prefetch test added
=item *
Documentation enhancements
=item *
L<Tangram::Dump> class to `fix' persistent references in data
structures prior to insertion, so that :
=item *
L<Tangram::PerlDump> now can contain persistent objects safely
=item *
and hey, why not write a L<Tangram::Storable>
=item *
and a L<Tangram::YAML> (not working, waiting for a CPAN bug to be fixed)
=back
=head2 DEV. RELEASE 2.07.1, 29 Dec 2003
=over
=item *
L<Tangram::IntrHash> implemented at last :-). C<Tangram::IxHash> and
C<Tangram::IntrIxHash> are next :->
=item *
verbose error message in L<Tangram::Coll> when demand paging is
happening on stale tied collections (eg, erroneously created via
dclone())
=item *
fix for Postgres sub-select detection (Pedro Alves)
=item *
C<make_1st_id_in_tx> now only called for 1st insert (Chengzhi Liang)
=back
=head1 RELEASE 2.07 8 Nov 2003
=over
=item *
Fixed bug with C<Tangram::Intr*> and erasing objects that referred to
a class which didn't use their class name as their table name [closes:
2650]
=item *
Added the ability to use C<limit =E<gt> [ N, Y ]> in
C<Tangram::Storage-E<gt>select> statements (see
L<Tangram::Storage/select>)
=item *
Added C<Tangram::Coll::includes_or>; see L<Tangram::Expr>
=item *
Enhancement of error message from L<Tangram::Relational::Engine>
[related to 2631]
=item *
Support for using table types via C<$schema-E<gt>{sql}{table_type}>
=item *
Support for sub-selects with MySQL, for the one test that uses them.
Also C<$storage-E<gt>{no_subselects}> is auto-detected.
=item *
Completed C<$storage-E<gt>prefetch()> function for all working types,
new test F<t/prefetch.t>
=item *
If you have NULL values in array or hash slots in your database, then
it won't cause a hard error, except possibly with prefetch() [related
to 2631]
=item *
Various small fixes to bizarre internal error messages [related to
2631]
=item *
Minor documentation fixes
=item *
Exceptions on various DB failures are now thrown when
C<DBI::execute()> is called internally, rather than being largely
ignored.
=item *
Cosmetic Test Suite change
=item *
ID column name wasn't being used for the index in
L<Tangram::Relational::Engine> (Kurt Stephens)
=item *
Lost patches from
2002/06/25 (Kurt Stephens):
Added missing L<Tangram::Expr> and L<Tangram::Filter> operators:
'+', '-', '*', '/',
'&', '|', '!',
'==', '!=', '<', '>', '<=', '>=',
'eq', 'ne', 'lt', 'gt', 'le', 'ge',
'cos', 'sin', 'acos',
=item *
Lost patches from
2002/06/25 (Kurt Stephens):
Added argument swapping for non-commutative operators, like
"<"
=item *
Fixed export problem with 5.6.1 (reported by Kate Pugh)
=item *
C<deep_update> with L<Tangram::Ref> bug fix (reported by Aaron Mackey)
=item *
F<Makefile.PL> should now hopefully be more informative about which
modules are needed for what.
=item *
Removed C<Selfloader> from L<Tangram::Ref> (Kate Pugh)
=back
=head1 RELEASE 2.06 Jul 17 2003
=over
=item *
Added C<$storage-E<gt>oid_isa($oid, "ClassName")> method for
marshalling OIDs
=item *
Fixed minor bugs causing test suite to issue large warnings on
5.8.1-RC2
=back
=head1 RELEASE 2.05 Jul 2003
=over
=item *
L<Tangram::Scalar> and L<Tangram::Ref> column names are now passed
through C<$schema-E<gt>{normalize}-E<gt>()>
=back
=head2 DEV. RELEASE 2.05pre2 Jun 2003
=over
=item *
Minor L<Tangram::Expr> defined vs logically-false fix (Aaron Mackey)
=item *
explicitly select all C<ORDER BY> columns (Aaron Mackey)
=item *
normalise default "C<slot>" and "C<coll>" column names in
C<Tangram::Intr*> types
=back
=head2 DEV. RELEASE 2.05pre1 May 2003
First "not the momma" release.
Patches from lots of people were applied, don't know who 'coz the
honourable grand master JLL applied a lot of them, I'll try to
summarize and attribute them here:
=over
=item *
back-porting pieces for 5.00503 (that was me)
=item *
a more elegant solution for the
L<Tangram::AbstractArray>/L<Tangram::AbstractHash> corner case than
the one I submitted :-)
=item *
code that (possibly) completes L<Tangram::Hash> support (I haven't
written a test case to confirm this yet)
=item *
A fix to L<Tangram::AbstractSet> that again caters to some very
strange corner cases (this was me too)
=item *
Working implementation of the L<Tangram::DMDateTime> type mapping, a
good thing that running a persistent application server offsets the
huge time it takes to load in L<Date::Manip> :-)
=item *
A bug fix to L<Tangram::FlatArray> mapping type that affects deleting
members (don't know whose)
=item *
C<Tangram::IntrSet::get_intrusions> (? can anyone claim or explain
this one?)
=item *
Minor L<Tangram::PerlDump> fix (a simple one)
=item *
Deep, deep magic in L<Tangram::Relational::Engine>; new function
get_heterogeneity (anyone?)
=item *
C<Use of uninitialised variable in Tangram::Relational::Engine>...
=item *
Other large changes to L<Tangram::Schema> (? - get_bases, get_specs,
is_root, etc)
=item *
A problem with merging schemas when you used a `back-ref' to a class
that is later on in the schema (me)
=item *
Scattered showers of changes in L<Tangram::Storage>
(get_insert_statements etc, lots of `off by one' (reference nesting
level that is) changes)
=back
All I can say is that there have been some very smart people looking
at this code and submitting patches.
=head1 HISTORIC Changes
Originally as F<Changes> in the distribution
Revision history for Perl extension Tangram.
0.01 Sun Mar 21 10:46:45 1999
- original version; created by h2xs 1.18
0.03 Stardate: unknown
- first public alpha release
0.08 Stardate: unknown
- second public alpha release
0.09 Stardate: unknown
- split Tangram.pm into several modules
- replaced @ISA with 'use base'
- replaced default typetags with automounting
- prefetch now takes either class or remote
- implemented prefetch for IntrArray and IntrSet
*::prefetch still need real-life testing,
especially when class(coll) <> class(item)
1.00 Nov 07 1999 - first mature release version
- deploy() now also works directly on DBI handles
- deploy() allows specification of SQL types via the schema hash
- intrusive collections allow element-to-container navigation
- improve speed of read_object
- fixed various bugs
- rewrote part of, and expanded documentation
1.01 Nov 12 1999 - interim version
- added (raw) mapping between Perl strings and date/time SQL types
1.02 Nov 14 1999 - interim version
- added support for aggregated refs, arrays and sets
1.03 Dec 28 1999 - interim version
- added support for customizing object & class id types, etc
- as a consequence Tangram should now work with PostgreSql
- fixed bug: erase() failed in presence of stateless leaf classes
- temporarily removed RawDate and RawTime tests because M$ SQL
cannot handle them; those modules are still present though
1.04 Jan 03 2000 - interim version
- fixed two bugs related to explicit tables
1.05 Jan 03 2000 - interim version
- fixed: Storage::prefetch now works with inherited members
- fixed: _insert() ignored collections in stateless classes
1.06 Feb 29 2000 - higly experimental interim version
- added typechecks on collection members
- started cleaning up autovivification of colls upon save
- documented like()
- documented extended select options retrieve, order & filter
- changed _limit into the Limit in test suite
- added temporary hack in Makefile.PL to support Access
- added mapping for flat arrays
- factorized code common to Array & FlatArray
1.07 Feb 29 2000 - interim version
- adapted test suite for Sybase and other NULL-picky databases
- added experimental support for vendor extensions (Dialect)
- added skeleton Dialect::Sybase with support for datepart
- did extensive rework on Expr instantiation
- began documenting Type
- added Storage::reload()
1.08 Mar 26 2000 - interim version
- batch allocation of object ids
- support for Lobs contributed by marian.kelc@ruhr-uni-bochum.de
- Storage::reset()
1.09 ? - interim version
- String calls DBI for correct quoting, as Marian Kelc suggested
- fixed Array problem when removing elements from middle of collection
- (?)
1.10 Apr 19 2000 - interim version
- changed reset() into unload() and added support for partial unloading
- tx_do() can now propagate arguments to closure/anon-sub;
insert(), update() and erase() pass anon-subs to tx_do to prevent
leaks (thanks Radu Greab)
1.11 May 29 2000 - public version
- ordering result set by descending order is now supported
- die() on attempt to load from an invalid id
- removed silly table id allocation limit (t1000) in Coll.pm
1.13 Jul 11 2000 - interim version
- new FlatHash and DMDateTime mappings contributed by Gabor Herr
<herr@iti.informatik.tu-darmstadt.de>
- some more doc in Type.pod
- date & time doc moved to DateTime.pod
- deploy() puts \n between instructions in trace
1.15 Jul 21 2000 - interim version
- new PerlDump mapping contributed by Gabor Herr
<herr@iti.informatik.tu-darmstadt.de>
1.16 Jul 25 2000 - interim version
- fixed deploy() bug: didn't take col names into account for Array, Set and Hash
- fixed query_expr bug in Scalar and Ref: used field name instead of col name
1.17 Jul 28 2000 - interim version
- Gabor's patches on deep updates
1.18 Jul 28 2000 - stable version
- weakrefs!
- tuples
- mysql tx acquired lock regardless of tx nesting
1.19 Jul 28 2000 - stable version
- improved id allocation for mysql
- bitwise operators for mysql
- manual class id allocation
- install now works in the absence of DBI and Set::Object
- Makefile.PL prerequisites work now
- Guided Tour is now generated & can be run
- added support for LIMIT in selects
- deploy() didn't take explicit oid/cid type into account; fixed
- deploy() wrongly defaulted to NULLable types; fixed
- class id can now be specified
- oid and cid now default to INTEGER
- fixed error in Expr.pod but I don't remember what it was
- minor improvement to Schema.pod
- added Springfield.pm for users to play with
- added support for SELECT SUM
2.00 Feb ?? 2001 - first S.O.L. release
- added copyright notices
- added a copy of the GPL
- implemented inlined exports
- INSERT and UPDATE now make use of prepared statements when available
- re-executable Cursors
- changed database layout, Class Table is gone and 'control' table in there
- object ids are no longer allocated on a class basis
- introduced Tangram::Relational
- dialect are now done via derivation
- stored object id no longer contains type id
- introduced Relational::Engine
- flexible mapping
=cut
view all matches for this distribution
view release on metacpan or search on metacpan
ShellKit/Changes.pod view on Meta::CPAN
=head1 NAME
Term::ShellKit::Changes - Revision History for Term::ShellKit
=head1 CHANGES
2002-01-21 Simon: Finished cleaning up from rewrite.
2001-12-02 Simon: Rewrite with function-oriented modularity.
2001-06-30 Simon: Experimental rewrite for OO-style modularity.
2001-06-27 Simon: Remove trailing semicolon from "require x;" package names.
2001-02-07 Simon: Display undef results from eval as "(undef)".
2001-01-31 Simon: Added examples section to documentation.
2001-01-31 Simon: Copied in subs from String::Escape to reduce dependencies.
2001-01-24 Simon: Removed strict vars from expr evals. Added documentation.
2000-12-04 Simon: Separation of abstract Shell superclass.
2000-11-29 Simon: Created
=head1 SEE ALSO
See L<Term::ShellKit::ReadMe> for distribution and version information.
See L<Term::ShellKit>.
=cut
view all matches for this distribution