Changelog

LibTPT Revisions
================

Version 1.30
------------
- Added new options to the LibTPT CLI (command line interface).
- Enhanced Object class interface.
- Cleaned up documentation.

Version 1.22-beta
-----------------
- Replaced Object::aval() and Object::hval() with overloaded [] brackets,
  making code using this feature easier to read.
- Cleaned up documentation in the code comments.

Version 1.21-beta
-----------------
- Enhanced the interface to the Object class to make it easier to create
  complex objects in C++ code.
- Fixed problem in configure.pl making it not work in the FreeBSD ports tree.
- Removed obsolete objtest from test directory.
- The compat.h file is now included by default in tpt.h.
- Updated Visual Studio project files for MS Visual C++ 6.0.
- Removed Visual Studio.Net project files since they are not being maintained.

Version 1.20.1a
---------------
- Bundled with a new version of cxxtools which work around a problem in Perl
  5.8.  This only affects configure.pl.

Version 1.20.1
--------------
- Fixed unsafe typecast that was causing compilation to fail on some versions
  of 64-bit Solaris.
- Enhanced configure.pl to be able to search the path for the compiler and
  alert the user if it cannot be found.  Also worked on configure messages.
- Removed unused parameters from object.cxx to reduce warnings during compile.
- Updated to the latest version of clo++ and regenerated the command line
  options for tpt.

Version 1.20
------------
- Stable 1.20 release version.
- Removed text format variables from parse_impl.h.  Text formatting will
  instead be handled by a new stream class in the an upcoming major release.
- Added new test for @repeat.
- Updated documentation.

Version 1.17-beta
-----------------
- Added @repeat() TPT function to repeat text specified number of times.
- Added @includetext() to include a text file without parsing it.
- Fixed an ambiguous error message in @include.

Version 1.10.7
--------------
- Fixed bug in Buffer::reset() not resetting the done flag.

Version 1.14-beta
-----------------
- Fixed bug in Buffer::reset() not resetting the done flag.

Version 1.10.6
--------------
- Changed obsolete CLK_TCK constant to CLOCKS_PER_SEC in bench.cxx.

Version 1.13-beta
-----------------
- Changed the way symbols are copied into the parser to allow for an
  interactive parser class that allows the user's symbols table to be updated.
- Added IParse (Interactive Parse) class that allows modifications to the
  symbols table to be passed back to the calling program.
- Added test2 to test IParser.
- Changed obsolete CLK_TCK constant to CLOCKS_PER_SEC in bench.cxx.

Version 1.10.5
--------------
- Updated copyright.
- Fixed line number bug in lexical analyzer.
- Cleaned up unused variables.
- Fixed missing std qualifiers in func_str.cxx.

Version 1.10.4
--------------
- Updated to newer version of cxxtools to get rid of "shared" warning on OS X.
- Fixed missing std:: qualificiation on some standard function calls.  This was
  specifically breaking compilation on Forte with the STLPort.

Version 1.10.3
--------------
- Fixed typo that broke @ignoreindent.

Version 1.12-beta
-----------------
- Removed ChrSet<> template and replaced with ctype calls.  Gained about 2-3%
  performance improvement.
- Fixed typo that broke @ignoreindent.

Version 1.10.2
--------------
- Fixed Win32 projects to use proper libraries.
- Fixed misuse of long vs. int on 64-bit platforms.

Version 1.10.1
--------------
- Incorporated fixes for memory leaks from 1.11-beta.
- Copied in bench.cxx from 1.11-beta.

Version 1.11-beta
-----------------
- Added bench.cxx to test directory.  This program will time a benchmark
  template several hundred times and will be used to determine the
  effectiveness of optimizations.
- Removed private implementation from the Buffer class, yielding improved
  performance.
- Fixed possible memory leak in unhandled exception in Buffer constructor
  that creates a file stream.  (If this exception occurs, you're probably
  already in trouble since your system is out of memory!)
- Fixed memory leak in Buffer enlarge() and destructor.
- Fixed a regretable memory leak in shared_ptr<> template class for automatic
  garbage collection.  This should be the last of the memory leaks.

Version 1.10
------------
- Fixed Major bugs in lexical analyzer (hopefully last ones) causing big breaks
  in macros.
- Added test of just about everything that has been broken in macros.
- Simplified, optimized, and rewrote large chunks of the lexical analyzer,
  removing lex_impl.cxx and lex_impl.h, since the lexical analyzer really did
  not need a private implementation.  This should yield a significant
  performance improvement as well as slightly reduce the memory footprint.

Version 1.05
------------
- Fixed Major bug in lexical analyzer fixing mishandling of braces {}.  This
  bug would sometimes cause close braces to be completely ignored, completely
  breaking the flow of logical expressions or loops.
- Added new function to speed up conditional blocks (if/else and loops).
- Misc optimizations.
- Fixed a few out-of-date comments.

Version 1.04
------------
- Added @lpad and @rpad string padding functions for tabular display templates.
- Added @tpt_ignoreindent and @tpt_noignoreindent.  @ignoreindent and
  @noignoreindent are depricated.
- Added @tpt_ignoreblankline and @tpt_noignoreblankline.  @ignoreblankline and
  @noignoreblankline are depricated.
- Added new test for @lpad and @rpad.
- Updated tests to remove depricated functions.
- Updated documentation.

Version 1.03
-------------
- Added @push and @pop functions.
- Added new test for @push and @pop.
- Updated documentation.
- More compatibility updates for MSVC++ 6.0 compiler.
- Added shared compatability header, compat.h.

Version 1.02
------------
- Fixed segmentation fault when directly setting array[index].
- Fixed access to multi-dimensional arrays.
- Added more stress tests to the test suite.
- @push and @pop are now reserved (should be working in next release).

Version 1.01a
-------------
- Now supports MSVC 6 without STLPort installed.
- configure.pl now supports --cxx command line option to specify compiler
  without setting environment variable.
- configure.pl now supports --bundle command line option for use when running
  configure.pl as part of a bundled package.
- Updated version of cxxtools for configuration system.

Version 1.01
------------
- Fixed error in configure.pl help.
- Fixed IO bug in TPT::Buffer.  Changed readsome() to read() for broader
  support.

Version 1.00
------------
- Rearranged directory structure.
- Added configure script based on cxxtools.

Version 0.95-beta
-----------------
- Added project files for Visual Studio.Net.
- Squelched warning messages caused by unsupported "throw" definition in
  VC++.Net.
- Resolved some line counting problems.

Version 0.94-beta
-----------------
- The Symbols_impl = operator now returns *this.
- Fixed bug in @set under @include files that caused included variables to
  go out of scope.
- @foreach no longer iterates when passed a single empty/undefined scalar.
- Added Parser::addincludepath to allow adding of include search paths.
- Used clo++ to greatly expand command line of tpt command line tool.
- Made some progress on incorrect line number reporting.

Version 0.93-beta
-----------------
- Fixed bug in @keys that caused exception when passed a non-hash as the second
  parameter.
- Added more error checking to variable handling to prevent blank variable
  names from being created.
- Fixed memory access violations related to reading undefined hash or array
  symbols.
- Fixed memory access violation caused by declaring and using a macro with a
  local variable that matches a global variable that is defined after the a
  call to said macro.
- Updated @size to be more consistant.

Version 0.92-beta
-----------------
- Fixed erroneous warning messages in @isarray, @ishash, and @isscalar
  functions.
- Fixed error reporting when a brace enclosed block is not properly closed.

Version 0.91-beta
-----------------
- Addressed several compiler warnings.
- Added new Parser constructors that do not require pre-instantiation of a
  Buffer class.
- Comments following open or close brace ( { or } ) no longer cause carriage
  return to be included.

Version 0.90-beta
-----------------
- Fixed serious bug when using @set() to set multiple members of a hash.
- Restructured some internal functions to act as user level functions instead
  of as keywords.  This should not affect existing scripts.
- Fixed @strcmp() not being recognized.
- Added @keys() for copying hash keys into an array.

Version 0.80-beta
-----------------
- Added parse::addfunction() method, giving support for user callback
  functions.
- Fixed possible memory leak in shared_ptr<> if new throws exception.
- Added dependency information to library make file.

Version 0.72-beta
-----------------
- Added "make install" to src/.
- Added tpt.h which includes all LibTPT headers.
- Fixed erroneous warning reported by @empty.
- Added @ignoreblankline, @noignoreblankline, @ignoreindent, and
  @noignoreindent.
- Added LibTPT book to distribution.

Version 0.70-beta
-----------------
- Fixed problem with Symbols::push C++ API functions only keeping the
  last object that was pushed.
- Fixed a bug in shared_ptr<> that made it not exceptions safe.
- Fixed a bug in shared_ptr<> that let it leak memory after an exception.
- Added source for TPT command line tool to tools/ directory.
- Added extra check to make sure macro parameter names are valid.

Version 0.61-beta
-----------------
- Project Name Change to LibTPT.
- Namespace has changed to TPT.
- Fixed line number bug caused by @foreach and @while blocks.

Version 0.60-beta
-----------------
- Fixed @last and @next in @foreach and @while.
- Fixed @foreach ignoring scalar parameters.
- Fixed problem of @< appearing when it is the first token on a line.
- Line numbers should now report correctly in macros.
- Added @sum and @avg math functions.

Version 0.54-beta
-----------------
- Optimized structures used by the Lexical Analyzer to use less memory
  and switched to using std::binary_search to check character sets.
- Added tpt2c++.pl to convert a TPT file to a C++ include. (Thanks
  Peter!)
- Moved smartptr.h out of public includes.

Version 0.53-devel
------------------
- Fixed big bug in Parser::Syntax that would consistantly cause an
  exception.
- Restructured Parser class to use a Reference to a Symbols table
  instead of a Pointer to a Symbols table.  This will require a change
  to any existing code using a Symbols table.
- Added new methods to Symbols class to allow setting of a hash symbol,
  integer symbol, and pushing of values onto an array symbol.
- Several minor bug fixes.
- Several speed and memory optimizations.
- Worked on Doxygen comments for C++ Documentation.

Version 0.52-beta
-----------------
- Fixed #! #@ comment bug introduced in version 0.51-beta.

Version 0.51-beta
-----------------
- Added support for #! as first line of a template file for shell
  command line support.
- Added a quick blurb to INSTALL file.

Version 0.50-beta
-----------------
- Now support arrays, hashes, and scalars.
- Embedded arrays and hashes should work.
- Added bunches of new functions.
- Added @< and @> whitespace eliminators.

Version blur
------------
- Completely reworked symbols table, touching virtually all code
- Modified code to support Objects instead of symbols, allowing passing
  of hashes and arrays to functions.

Version 0.07
------------
- Added @while ( expr ) { ... }
- Added @foreach ( listid ) { ${.} ... }
- Added @unset(id)
- Fixed parsing of ignored blocks

Version 0.06
------------
- Added support for @# comments

Version 0.05
------------
- Added support for array variables ${var[x+1]}
- Added @eval (expr) [basically a @concat in disguise]
- Added default ${PML} and ${VERSION} variables

Version 0.04
------------
- Added @substr
- Added @else { ... }
- Added @elsif ( expr)] { ... }

Version 0.03
------------

- Complete rewrite of symbols table
- Added @setif, @lc, @uc, @length, @size

Version 0.02
------------
- @if ( expr ) { ... }
- @macro (macroid, param1, param2, ...)
- Symbol scope within macros

Version 0.01
------------
- ${variable}
- defined some default variables
- @include(filename.tph)
- @set(id, value)
- \escape character
- Recursive descent parser for complex expressions
- @rand(mod) function for 32-bit random numbers

Updated Mar 01, 2007 by Isaac Foraker

Tags:

This page hasn't been tagged yet.

Comments:

Have something to say? Login to post a comment.