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! -----------------------------------------------------------------------------