Result:
found 35 distributions and 43 files matching your query ! ( run in 1.068 )


Badger

 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


CGI-FormBuilder

 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


Class-MakeMethods

 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


Class-MixinFactory

 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


Class-Prototyped-Mixin

 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


DBIx-DBO2

 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


DBIx-SQLEngine

 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


Danga-Socket-AnyEvent

 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



DocSet

 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


Embperl

 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. &lt;)
   - 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 &amp; 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&amp;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 &amp; 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 '&lt;' is correctly translated
     to '<'  and '\&lt;' is translated to '&lt;' . 
   - 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)
   - &nbsp; 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 &lt; 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 &lt; )
    - 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


Filesys-SamFS

 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


HTML-Embperl

 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 &amp; 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&amp;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 &amp; 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 '&lt;' is correctly translated
     to '<'  and '\&lt;' is translated to '&lt;' . 
   - 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)
   - &nbsp; 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 &lt; 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 &lt; )
    - 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


HTTP-DAV

 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


Inline-SLang

 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


JSON-Assert

 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


Locale-Codes

 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


Mail-Toaster

 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


Marpa-R2

 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


Net-SSLeay-OO

 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


Net-Statsd-Server

 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


Perl-LanguageServer

 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



SRS-EPP-Proxy

 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


Scriptalicious

 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


Set-Object

 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


Syndication-NITF

 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


Syndication-NewsML

 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


Tangram

 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


Term-ShellKit

 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


( run in 1.068 second using v1.00-cache-2.02-grep-82fe00e-cpan-e6583f2c61c )