$Id: Changes,v 1.22 2003/08/07 08:09:33 joern Exp $ 2.9.23 Thu Aug 07 2003, joern Bugfixes: - Recursive usage of Includes resulted in endless loop. Now the compiler detects a recursion and throws an error message (probably future releases may support recursive Includes). - This was parsed without error: > - : some special handling to PARAMS of non-SELECT statements applied. Empty variables will be converted to undef (NULL) before they're passed to DBI. This harmonizes the handling of empty strings with different database systems (e.g. Oracle converts empty strings to NULL always, while MySQL handles them as-is). 2.9.22 Features: - new command ... which switches the default database inside the correspoding block. Nesting is possible, also this switiching exception safe. - new project configuration parameter: add_prod_dir. Enables searching for includes, libs and configs in external CIPP3 projects. Needs new.spirit 2.1.17. 2.9.21 Bugfixes: - added a timeout the Perl syntax checker to prevent hanging processes. 2.9.20 Bugfixes: - missed utf8 output stream initialization for subsequent requests in mod_perl/SpeedyCGI context. 2.9.19 Features: - New project attribute 'utf8', which makes a project Unicode aware. Default mime-type/charset is utf-8, all CGI parameters are expected to be utf8 encoded. All values in the database are expected to be utf8 encoded. utf8 upgrading / _utf8_on is done on all I/O variables (for CGI and SQL). Requires Perl 5.8.0 2.9.18 Bugfixes: - finally fixed whitespace generation problems. Now CIPP3 behaves exactly like CIPP2 - sometimes the Perl checker process hangs - this is prevented by a 5 seconds timeout. 2.9.17 Bugfixes: - Whitespace between CIPP tags was removed entirely, what could mess up HTML formatting. Now whitespace appears as is. 2.9.16 !!! Note: you must recompile your project after upgrading to this version !!! Features: - updated CIPP::Manual - the script doc/create_pdf.sh creates a nice looking PDF version of CIPP::Manual. It requires pod2html and ps2pdf. Bugfixes: - SpeedyCGI context: internal request object wasn't destroyed at the end of a request if a DBI database handle was stored in a global variable, because the request object was referenced by the database handle through a closure. This out of sync request destruction could lead to memory leaks or other problems. - internal CIPP::Request object was passed unnecessarily to Include subroutines. - newlines were always generated, even for such constructs: nonewlinehere. 2.9.15 Bugfixes: - didn't work - internal exception if an include file wasn't readable 2.99.14 Features: - revised internal API naming convention - documented CIPP::Request interface for public access (not stable yet, interface may change) - local Perl syntax check for subroutines defined with . This reports illegal usage of global lexical variables inside the subroutine. The new option tells the syntax checker, that access to $foo is explicitely allowed (e.g. if you need access to lexically defined class variables) Note: the IMPORT option was also added to CIPP2 2.47, as a no-op, so you can use this in CIPP3 programs, which must compile under CIPP2 as well. - new command: Bugfixes: - processing cipp-html objects left files in /tmp - internal exception handling fixed: error messages of exceptions caught with were printed out. 2.99.13 Features: - new option - new option : With data will only be fetched as long as the condition $foo < $bar is true. - throws an exception, if AutoCommit is already on (resp. off) - and throw an exception, if AutoCommit is enabled. - new parser internal attribute url_par_delimiter, which defines the delimiter for URL parameters (& or ;). The ; delimiter prevents problems with entity interpolation in URL's (e.g. ¬) - error message reporting enhanced. Stack backtrace with CIPP and Perl line numbers where possible. - if a CGI program is started only a ASCII formatted error message is shown, instead of the sophisticated HTML version. - tag determines image geometry at runtime and set WIDTH/HEIGHT attributes accordingly, if not explicetly set by the author. Needs Image::Size on the development system, which is autodetected. If not available this feature is silently disabled. Bugfixes: - gives 0 instead of 0E0, if no rows were processed. - newlines at the end of parameter lists (e.g. ") weren't removed, which results in Perl syntax errors sometimes. 2.99.12 Bugfixes: - prod directory path of a module wasn't created automatically 2.99.11 Bugfixes: - command produced linefeed after tag. 2.99.10 Bugfixes: - tag was broken 2.99.9 Wed Apr 17 2002, joern Features: - strip whitespace from SQL commands before passing them to DBI. MSSQL *hangs* if a SQL statement begins with a TAB or NL character... *sigh* - CIPP::Runtime Version 0.40 copied from CIPP2 Distribution. This way mixing CIPP2 and CIPP3 projects on production systems should be possible (untested yet) 2.99.8 Tue Apr 08 2002, joern Features: - support for brief error reports in new.spirit cmd line mode 2.99.7 Fri Apr 05 2002, joern Bugfxies: - , didn't work 2.99.6 Fri Mar 22 2002, joern Bugfixes: - fixed bug in cached error mechanism 2.99.5 Wed Jan 31 2002, joern Bugfixes: - did not work on jar files - subroutine not found in main package - no trim of trailing semicolon - CIPP module initilization failed on inherited classes - did not work 2.99.4 Wed Jan 30 2002, joern Bugfixes: - many CIPP object types couldn't be resolved in new.spirit mode - variable list parsing was too sensitive, e.g. hash derefences and stuff were rejected by the parser - static text objects had no URL Major / Incompatible Changes to CIPP 2.x ======================================== - , may only be used one time per program, and only in CGIs resp. Includes - no defaulting to scalar variables when no $@% is given - : DEFAULT did not work with NOQUOTE - : throws an exception if something gets wrong - variable name / option case is preserved for these statements now: - - - - immediate tag closing for emtpy block tags: - always "use strict" - -