Locale-Maketext-Gettext change log

2003-05-02	version 1.03
	 1. L::M::G:  A algorism bug about key_encoding with
	    auto-lexicon was fixed.
	 2. L::M::G::F:  I decide to give up mod_perl safety for
	    encoding, key_encoding, encode_failure and
	    die_for_lookup_failures.  POSIX::setlocale didn't
	    solve this problem, either.  Use L::M::G if you need
	    that.  Suggestions and solutions are welcome.
	 3. L::M::G:  FLH (Failure language handler) is added to
	    help switching the die_for_lookup_failures setting.
	    Maketext can be slightly faster.

2003-05-01
	Labor's Day!
	A Major rewrite to Locale::Maketext::Gettext::Functions.
	 1. Packages are declared by a random class ID, instead
	    of by its text domain previously, in order for a text
	    domain to be redeclared with different sets of
	    languages infinitely.  This solves the problem where
	    languages cannot to be removed at run-time.  You can
	    add/remove languages/MO files at run time now.  You
	    can also bindtextdomain() to another directory after
	    setting textdomain().  This is not possible to the
	    object interface of Locale::Maketext::Gettext (and
	    (Locale::Maketext).
	 2. fork_and_test is removed from the test suite.  It
	    does not seem to be required by the current random
	    class ID system anymore.
	 3. The used of ($t1..$t6) is replaced by ($_[0]..$_[5])
	    in to 05-switching.t.
	 4. Garbage collection is added.  Language handles
	    associated with abandoned localization classes are
	    dropped in time, in order to reduce memory used.

2003-04-30
	 1. L::M::G::F:  I forgot to document dmaketext, too. ^^;
	    But, no, I will not put a third release today!
	 2. L::M::G::F:  Fixes to documentation typos.
	 3. maketext() and __() are exchanged.  maketext() is a
            wrapper to __() now.  The speed of __() should be
	    slightly faster.

2003-04-30	version 1.02
	Documentation fixes.
	 1. L::M::G::F:  Documentation fixes.  get_handle was
	    not included in the documentation. ^^;  I forgot to
	    put it in.
	 2. README was updated.  L::M::G::F is included in the
	    README.  Also, the installation procedure is updated,
	    too.  I forgot to update it last time.

2003-04-30	version 1.01
	Improvements to Locale::Maketext::Gettext::Functions.
	 1. L::M::G::F:  Documentation fixes.  Lots of errors sit
	    there in the previous documentation.  It's impossible
	    to work if you follow the previous documentation. ^^;
	    Ha ha...
	 2. L::M::G:  Map the language i-default to the locale C.
	 3. L::M::G::F:  Map the locale C to the language i-default.
	 4. fork_and_test is added to the test suite to test without
	    polluting the package space.  It is slow, though. ^^;
	 5. L::M::G::F:  Several test suites are added.
	 6. L::M::G::F:  Error tolerance is largely improved.
	 7. L::M::G:  New method subclass_init is added.  Object
	    initialization is moved from the new method to the
	    subclass_init method, so that another subclass may
	    inherit it further.
	 8. L::M::G::F:  The "experimental" warning is removed.
	    Large amount of errors can be handled gracefully now.

2003-04-28
	 1. TestPkg/L10N.pm is renamed as T_L10N.pm.  It is neater.
	    a TestPkg/ subdirectory is not necessary.
	 2. Change log is fixed.  I forgot to put the version number
	    0.07.
	 3. Also, the version number should become 1.00, for
	    the joining of Locale::Maketext::Gettext::Functions. ^_*'

2003-04-28	version 0.07 (1.00)
	Introducing Locale::Maketext::Gettext::Functions, a
	functional interface to Locale::Maketext::Gettext.
	 1. The first Locale::Maketext::Gettext::Functions is out.
	    It works! ^_*'  But it is still experimental.  It cannot
	    deal with real world problems still. ^^;
	 2. Documentation was fixed so that it is neater.

2003-04-27
	 1. The name of the _AUTO lexicon package is shorten to
	    Locale::Maketext::Gettext::_AUTO.
	 2. Documentation rearrange.

2003-04-27	version 0.06
	Improvements.
	 1. textdomain works for default system locale directories
	    now.  For domains that are not binded with
	    bindtextdomain, it searches the system locale directories
	    to find the MO file.  No test suite is available for this
	    functionality.  I cannot predict what MO files are
	    available in your system locale directories. ^^;  Please
	    report bugs if it does not work.
	 2. Slave package Locale::Maketext::Gettext::_AUTO::L10N is
	    added, in order to process the _AUTO Lexicon seperately.
	    This saves resources when user change the
	    die_for_lookup_failures setting.  Changing
	    die_for_lookup_failures setting won't trigger copying and
	    replacing your whole %Lexicon anymore.  As an effect, the
	    cached compiled result of the _AUTO lexicon is preserved
	    and the compilation overhead from Locale::Maketext is
	    greatly reduced.
	 3. read_mo is added to retire the readmo.  Use of readmo is
	    deprecated.  This idea is inspired by the implementation
	    of readmo as "parse_mo" in Locale::Maketext::Lexicon by
	    Autrijus.  There is far too much meta infomation to be
	    returned other than its encoding.  It's not possible to
	    change the API for each new requirement.  To enable
	    sharing of the algorithm used in read_mo with whoever
	    need it, it's necessary to limit its function to read
	    and return the raw data, leaving all the other jobs to
	    its caller.
	 4. For the same reason, caching control is removed from
	    read_mo, too.  read_mo read the MO file and return the
	    %Lexicon only.  It really reads.  Nothing more. ^_*'

2003-04-27	version 0.05
	Bug and documentation fixes.
	 1. New method key_encoding was added.  The _AUTO lexicon is
	    itself not multibyte-safe.  You can specify the encoding
	    of your keys if you are using non-ASCII keys.  This is
	    not a solution, but a workaround.
	 2. New method encode_failure was added.  The default action
	    when encode fails changed from FB_CROAK to FB_DEFAULT.
	    I have changed my mind.  GNU gettext never fails.
	 3. The paragraph about Locale::Maketext::Lexicon at the
	    NOTES section in the documentation is updated.  The
	    paragraph about msgunfmt is removed.
	 4. The README file was updated.
	 5. The strange line "exists ${"$class\::Lexicon"}{$key};" is
	    removed.  That problem seems to be solved.  It is not
	    required anymore.

2003-04-25	version 0.04
	Documentation fixes.  Upgrade is not required if you are
	using version 0.03.

2003-04-25	version 0.03
	Bug fixes.
	 1. Fixed clashing of the die_for_lookup_failures setting
	    from multiple instances.
	 2. Change log is rewritten, to my own format.
	 3. A new racing test suite is added.  The old racing test
	    suite was renamed as t-switching.
	 4. Redundant initialization of $LH->{"LOCALEDIRS"} in
	    bindtextdomain is removed.
	 5. An old line at die_for_lookup_failures which initialize
	    a wrong $LH->{"LOCALE"} is removed.
	 6. Removed 2 incorrect notice in the documentation.  There
	    will not be infinite loops for bindtextdomain and
	    textdomain, whatever value it takes.  Apparently I had
	    made a mistake. ^^;
	 7. Several typos in the comments are fixed.
	 8. Sanity checks to the MO file is moved into readmo().
	    Cache now has a higher precedence than the sanity checks,
	    which conforms with the global design.
	 9. More documentation was added to the SYNOPSIS.
	10. Sanity checks for whether a method is invoked as a static
	    method are added.  Maketext use static variables.  We
	    should not clash them.
	11. As a result of the above, the maketext method is no more
	    static.  It is an instance method, meaning that
	    MyPkg::L10N::en->maketext does not work anymore.
	12. Instance lexicon is initialized in the new method.  I
	    almost forgot it.  Thanks to the test suite. :p

2003-04-25	version 0.02
	Class/object design fixes.
	 1. I did tell the difference from class variables to
	    instance variables.  Forgive me, I had no experience
	    with object-oriented programming at all, not even OO for
	    perl. :p  Just a few Java books.  Anyway, the problem
	    with clashing class variables is fixed.  Most class
	    variables are moved into instance variables.
	 2. Solved the default output encoding problem by using the
	    encoding of the MO file as the default encoding.
	 3. reload_text method is added to purge the MO file cache,
	    so that applications do not need to be restarted when
	    their MO file updates.
         4. MO files of different byte orders are supported now.
	    Big-endian MO files support is added.
	 5. die_for_lookup_failures method was added.  The default
	    behavior changed to "never fails", as GNU gettext does.
	 6. A test suite is added.

2003-04-24	version 0.01
