@vojo, post #1
New in E-VO (3.4.0) - Name change to E-VO - New version numbering 3.4.0 - Add CONT command, similar to EXIT but continues the loop at the top instead of dropping out. - Make default cpu 68000 - Make stack buffer configurable (and default it to 50k) - Fix file handle leak - Fixed breaking defect MIDSTR command - Allow CONT and EXIT commands to be called inside an IF or SELECT - Add ANDALSO and ORELSE short circuit versions of AND and OR - Optimised IF/WHILE/REPEAT expressions and removed TST immediately following MOVEQ - Fixed KickVersion not returning true when version number is exactly equal to the requested version - Allow String(0) which was valid in E v3.3a - Show line numbers for unused variables/labels/procs - Allow new formatting characters \u (unsigned long) \q (double quote) \! (ascii bell) \v (vertical tab) \xHH (hex char) (taken from CreativE) - Allow macros to be defined by passing in DEFINE command line parameter (taken from CreativE / ECX) - Allow string consts (taken from CreativE) - Added #date preprocessor (taken from CreativE but enhanced with hours minutes and seconds options) - Added DoMethod, DoMethodA, CoerceMethod, CoerceMethodA, DoSuperMethod, DoSuperMethodA, Set, Sets, Get, Gets, CtrlD, CtrlE, CtrlF, Chk, Eof, Fopen, Fclose, Alloc, Free, PutF, ReadB, WriteB, Size, Lsl, Lsr functions (all taken from CreativE) - We now have optimised versions of WriteF, PrintF, PutF when targetting OS 37. - Added SHOWFNAME command line parameter. - Reverted order of efunctab back to how it was in E to restore compatibility with pre-compiled E modules that are using Mul Div or WriteF. - Added the following functions: LowerChar(c), UpperChar(c) - takes a char and returns a char StrAddChar(s,c) - Adds a single character to an estring ListAddItem(l,i) - Adds a single item to an elist - Immediate assignments for values -256 to 254 for even numbers converted to MOVEQ followed by ADD.L D0,D0 - Optimised NEW [] list creation to remove duplicate moves into D0 eg. NEW [0,0,0,0] - Added OPT PURE to check for non pure code (eg variables in static lists/objects and GetA4 call) - Optimisation: Removed TST.L D0 after EXT.L D0 in IF/WHILE/REPEAT etc conditions. - Optimisation for default values for reg vars into single MOVE instruction. - Optimisation for reg var assignments where moveq is used into a single MOVE instruction where possible. - Added warning when compiling a library that OPT PURE is recommended - Optimisation for reg var assignments where moveq+add is used. - Optimisations with FOR loops to remove redundant move instructions. - Added FATAL 'string' command which generates no code but will fail the compilation (useful for use with #ifdef) - Added WARN 'string' command which generates no code but will show - a warning during compilation - Added GEC_3_4_0 auto generated #define macro which will allow you to check for a minimum version of the compiler. New defines will be additionally created for each new version of the software. - Added #ELSE #ELIFDEF #ELIFNDEF preprocessor commands - Added #UNDEF preprocessor command - Added 020 optimised versions of Long, Int and Char functions - Added StrIns(estring,estring,pos) - insert string function - Added StrRem(estring,pos,len) - remove substring function - Store full path of source files when generating debug hunk (allows EDBG to find the files if they are not all located in the same folder). - v47 (OS3.2) emodules, including all the new reaction interfaces - ARRAY OF CHAR no longer word aligned in OBJECTS - NOT operator works correctly with immediate values (eg "NOT 0" did not work correctly. - MUL/DIV optimisations also working for 020 generated code. - NOALIGN now requires 020 as accessing unaligned INT or LONG will result in exception if you don't have 020. - Fixed optimiser bug in library calls where IF function was used in a parameter that prevented the correct value from being passed. - Fix: x AND 0 was returning incorrect value
@pch, post #5
@vojo, post #6
@vojo, post #1