Newer
Older
tconfpy / WHATSNEW.txt
@tundra tundra on 17 Jan 2005 3 KB *** empty log message ***
CHANGES

- The program changes described below have made the 'ParseConfig'
  API incompatible with previous versions of 'tconfpy'.  The version
  number has been branched to 2.x to reflect this fact.  Existing
  programs that use 'tconfpy' will have to be modified to use
  this new release.  

- Symbol Tables and Templates are now first-class objects in their own
  right (classes 'SymbolTable' and 'Template' respectively).  This
  means API will not be compatible with programs built using previous
  versions of 'tconfpy'.  You must now pass/receive objects of the
  appropriate type rather than just dictionaries as was previously the
  case.

- The 'RetObj' object has been removed.  Objects of type 'SymbolTable'
  are now returned.

- There is significant internal code restructuring to encasulate
  parse-related data structures into the 'SymbolTable' object.  This
  eliminated most of the global variables.

- Template variables previously required a right hand side when
  instantiated.  It is now possible to have a construct like
  "TemplateVariable=" in the configuration file.  In that case, the
  variable is brought into existence with the default value found in
  its template.  This means the default value must be one of the
  entries in the 'LegalVals' field of that variable's descriptor.  If
  it is not, the user will be *required* to enter a right hand side in
  the configuration file. (Because the default will be illegal in this
  case and thus not accepted by 'tconfpy'.)
  

NEW FEATURES

- Added the 'CallingProgram' API keyword parameter.  This allows the
  calling program to change the program name embedded in every message
  produced during the parse.

- It is now possible to parse a configuration that is stored in-memory
  as a list of text lines.  The 'ParseConfig' API "autodetects" whether
  it is parsing a file or an in-memory list by  examining the type of
  the first (mandatory) parameter passed to it.  If it is a string,
  the program assumes it to be a file name.  If it is a list, the
  program assumes the list contains configuration statements.  If it
  is of any other type, the program declares an error.

- Added the ability to test the *state* of boolean variables in the
  existential conditionials (.ifall/any/none).  Previous versions of
  'tconfpy' could only do this with an explict test like:

   .if BooleanVar == True

  It is now additionally possible to do logical testing like this:

   .ifall [BooleanVar1] [BooleanVar2] ...

  Previously, this would have amounted to '.ifall True False ...'
  which likely would fail since the variables 'True' and 'False'
  would not be defined.

  As of this release, the semantics in the specific instance of
  boolean dereferences during (any of) the existential conditional
  tests have changed.  In this case the logical *state* of the
  variables being tested is returned.  This is believed to be clearer
  than doing explicit equality tests on booleans (though that ability
  is still supported).

  Note that the following construct continues to work as before:

    .ifall BooleanVar1 BooleanVar2 ...

  This tests to see if the variables actually *exist*.


WHATSNEW For 'tconfpy' 1.185    (Sun May  2 03:07:05 CDT 2004)
----------------------------------------------------------------------

BUG FIXES

- The content of literal blocks found within False conditional
  blocks was being reported as a syntax error.  This was 
  benign, but annoying.  Now all text within literal blocks is
  not syntax checked, whether or not the enclosing block is True.


WHATSNEW For 'tconfpy' 1.184    (Tue Apr 27 18:54:11 CDT 2004)
----------------------------------------------------------------------

Added support for Variable Templates.
Added the 'ReturnPredefs' API option.


WHATSNEW For 'tconfpy' 1.181    (Sat Apr 24 15:49:13 CDT 2004)
----------------------------------------------------------------------

First public release of the program.