
   You say : "Hey! What's new in this version ?"

   I say ...

-----------------------------------------------------------------------------

   24/08/96 * PPC 1.00 Public Beta 3

      Changed/News:

         Now use PPC.INI to retreive default config (for example library
          path, or user variable generation on/off by default)

         Big changes in the command line because of the INI file!
          Now makes a difference between switches & options. Switches are
          used with a leading "+" or "-" to turn on or off the corresponding
          feature. Options are always following a "-".
          Type PPC alone for more.

         Changed a bit the error message (differencing declarations and
          expressions)

         Added a more accurate error message when trying to redeclare
          a user function/procedure with an internal user/function name

         Added handling of subrange expressions in Case :

           Select Case A
               Case 5..10 ; Instead of Case 5, 6, 7, 8, 9, 10
           End Select

         Changed handling of Elseif structure to make it more compatible
          with PPLC :

                This structure (PPLC specific until this version) is now
                correctly parsed.

                If (expr) Then
                  ...
                Elseif (expr) (then?)        <- THEN is optionnal
                  ...
                Endif

                Simple Endifs are simply treated with an Else following
                a new simple If statement :

                If (expr) Then
                Else If (expr) do stuff      <-  this statement is NOT
                Endif                            a 'else' then 'if (exp) ...'
                                                 but a true 'else if' (exp) ...

         Changed internal handling of labels & gotos, now can be anything
          including reserved words.

         Added Frontier-specific hearder if using Frontier-specific
          statements/functions.

         Added the following Frontier-specific statements :

             - Abort 
             - GetMsg
             - Leave
             - DPrint
             - DPrintLn
             - DCls
             - DAnsiPos
             - DRestScrn
             - DSaveScrn
             - DGetX()
             - DGetY()
             - DScrText()

             They are, or course, NOT handled by PCBoard, and using them
             will create a Frontier-specific PPE.

         Added handling of "=>" , "=<" and "=!" which are alias for
          "<=", ">=" and "!=".

         Added display of filename in error message (this is needed since
          you can #include files).

         Library format changed a bit, recompile your libraries!

         New version of PPLIB, the Lib Viewer, it now handles 1.02 Libs,
          as well as 1.01.

         Added command line switch +o to select the alternate console output
          style (PPLC-like). This allows PPC to work with PowerPPL (althought
          you should get the last PowerPPL which also has a minor change to
          better handle PPC)

      Fixed:

         Fixed an ENORMOUS bug : strings were optimized case insensitively!
          "Hello" were equal to "hello" ! fixed.

         Fixed parsing of :

            If (expr) Then Select Case
            (thnx Hicks!)

         Fixed parsing of :

          If (expr) Then statement
                         statement
          Else statement
               statement
          Endif

          While (expr) Do statement
          EndWhile

         Fixed parsing of the '*' char in certain circumptances (appeared
          only since beta2)

         After returning from an included file to the parent source file,
          compiler was missing a line, fixed.

         Error after 5 to 10 (depending on memory available) included files,
          fixed.

-----------------------------------------------------------------------------

   08/08/96 * PPC 1.00 Public Beta 2

      Added:

         ':' may now be used to separate logical lines on a physical
          line
         '$INCLUDE:FILE.PPS & #include file.pps may now be used to include
          an external source file.
         '*' as the first character of a line specifies a comment

         Note: thanks to CyZ/Peanuts for mentionning the above missing
          syntax support

         Added support of brackets '[' & ']' to retreive a specific
          character from a string value! see doc.

      Fixed:

         Error with encoding some small PPE. Fixed. (no compression if no
          gain) 
          -> This happened to 1/5 lines long source codes... :) 
         Added DDATE data type that was missing
          -> woops!, one ',' missing! :)
         Added user variables dependant functions check (getaltuser, ...)
          -> I Discovered how easy it was to crash PCB with a PPE compiled with
          PPLC...
         Fixed compiling of statement VarAddr
         Fixed compiling of statement Bitset & Bitclear
         Autodetection of crypting method disabled the -feN switch, fixed.
         Fixed bug in autodetection of crypting method. 3.20 had the
          crypting method of 3.30 if autodetection on
         Fixed check of dimentions number. It was possible to assign an
          array without specifying subscripts.

-----------------------------------------------------------------------------

   30/07/96 * PPC 1.00 Public Beta 1 

      Note:

         This is the FIRST PUBLIC BETA ! Enjoy !

      Fixed:

         ppc was limited to the use of only one #use library, fixed.

-----------------------------------------------------------------------------
   Everything bellow this line are private betas
-----------------------------------------------------------------------------

   30/07/96 * PPC 1.00 final eta 2 

      Changes:

         Added various specific messages for various errors instead of
          "Syntax error"
         Added a check for memory allocation and emergency exit if not
          enough memory left
         Added End For and EndFor as alias for Next

      Fixed:

         Fixed error message when using loop control keyword outside a loop
         Fixed ambiguity in the grammar between internal functions and
          keyword "function".
         Fixed use of "SEC" constant, replaced by "SECUR" !

-----------------------------------------------------------------------------

   28/07/96 * PPC 1.00 final eta

      Note:

         This is the 1st version of the final beta
          (going soon to public beta)

      Changes:

         Better handling of .SYM debug files (now fully show original source)
         Added DEB.EXE, an interface to debug a PPE with PPLdebug from command
          line (see DEB.DOC)

-----------------------------------------------------------------------------

   25/07/96 * PPC 1.00 6

     Fixed:

         Fixed a bug that appears in 5 and cause crash if using litteral
          strings >128 chars

-----------------------------------------------------------------------------

   22/07/96 * PPC 1.00 5

     Fixed:

         Fixed problem that made possible to assign a value to a constant
         Fixed problem with empty strings when crypting PPE
         Fixed use of Break & Continue inside an Elseif structure
         Fixed parsing of For/Next when no space between parameter 1 & '='
         Fixed handling of comments whith char "'"
         Fixed problem with (really) big sources and functions/procedures
          (because of that, LIB format has changed, see bellow)

     Changes:

         Added verification of VAR keyword usage (limited to 16 first args)
         Added verification of argument when using statements that change
          argument value (must not be a constant). This include internal
          statements as well as user defined procedures using VAR keyword.
         LIB format has changed, please recompile your libraries using
          ppc -lib or #lib directive
         Added a Library Viewer (PPLIB.EXE). See PPLIB.DOC
         Added variable names & usage of VAR when error in proc/func arguments
         Added function return type when error in proc/func arguments
         Added specific messages when error parsing parenthesis
         Added Peekb as alias for Peek
         Added PutAltUser as alias for PutUser
         Added Erase as alias for Delete
         Added Pokeb as alias for Poke
         Added Go To as alias for Goto
         Added Go Sub as alias for Gosub
         Added End Proc as alias for Endproc
         Added End Func as alias for Endfunc
         Added Then as alias for Do and Do as alias for Then

-----------------------------------------------------------------------------

   21/07/96 * PPC 1.00 4

     Changes:

         Now honnor PPE encoding convetion. Encoding type is autodetected
          depending on statements used and structure of the program.
         Added -f option to force flat PPE 2.00 (no encoding)
         Added -feN option to force encoding ppe using a specific method.
          N=0 for v2.00, N=1 for v3.20, N=2 for 3.30.

-----------------------------------------------------------------------------


   19/07/96 * PPC 1.00 3

     Fixed:

         Fixed problem compiling libraries when no main code was specified
         Fixed support for hexadecimal values (must now begin with a number)
         Fixed parsing of statement 'Redim'
         Now check number of arguments in user functions & procedures
          and reports error with correct usage (include var types!)
         Added missing constants (Accounting, Qwk, ScanMsgHdr)
         Fixed handling of single word compiler directives with trailing
          spaces/tabs
         Fixed undefined label error when compiling empty source
         Fixed memory problems with some big source files

     Changes:

         More accurate message when using wrong number of arguments
          in internal functions & procedures (not anymore 'syntax error')
         Implicit option now autodetects type of variables depending on
          their suffix, as in the BASIC language
         Added support for binary & octal values (suffix 'b' & 'o')
         Added possible suffix 'd' for decimal values
         Added specific error message for unterminated strings (missing '"')

     Known bugs:

         Constants may be treated as variables, this allows you to redefine
          a numeric/string value as another one ... :) kinda fun to do 5 = 1,
          then Print 5 :) Will be fixed soon.

-----------------------------------------------------------------------------

   17/07/96 * PPC 1.00 2

        IMPORTANT !!

         #lib is replaced by #use or #uses !
         #lib is now equivalent to compiler option -lib (generate library)
         #ppe force creating ppe even if -lib was specified or #lib was set
          before

         Added a PPE launcher (RUN.EXE). See RUN.DOC

-----------------------------------------------------------------------------

   15/07/96 * PPC 1.00 1

         first beta, enjoy!

-----------------------------------------------------------------------------
