06.Sep.2025
|
Amiga E Compiler: E-VO 3.9.0
E-VO Amiga E Compiler is a derivative of the original Amiga E Compiler by Wouter van Oortmerssen, adding new features, bug fixes and optimisations. New features in version 3.9.0:
- FindModule: fix division by 0 error
- FindModule: updated to handle module format version 15
- EDBG: fix issues loading files generated with E-VO 3.8.x
- O2M: Added support for symbol hunks
- ShowModule: Updated to handle module format version 15
- Warnings are now displayed when encountered rather than at the
- end of the compile
- Add "assign of ARRAY/STRING/LIST variable" warning
- Allow objects to be constructed using NEW objectname as well as
- NEW objectvar
- When using OPT POOL, all memory allocation/free via NEW, String(),
- List(), New(), FastNew(), NewR(), END, Dispose(), FastDispose(),
- FastDisposeList() will be done from the pool
- Added CharInStr(str,char) function to search for a char in a string
- Added CharInStri(str,char) function, as CharInStr but case insensitive
- Added MemCompare(mem1,mem2,len) function to compare two memory areas,
- returns -1 (mem1 contents less),1 (mem2 contents less) or 0
- (both equal)
- Optimised WriteF, PrintF, PutF, TextF to skip the formatting part if no
- additional parameters are passed after the format string
- Add NILCHECK variants of many E functions that raise a "NIL" exception
- Small changes to ASTRCLONE and STRREM to remove unnecessary instructions
- Exception raising code reworked to remove some code duplication
- Global variables with default values now allowed in modules
- Global array of object variables now allowed in modules
- Added STACKCHECK command line option to add code to each PROC to check
- for enough stack space
- Fix astrclone to always clear first byte of result if the length is 0
- Updated module format version to 15
- Added STACKCHECK procedure modifier to enable stack checking for a
- particular procedure
- Added GETA4 procedure modifier to restore A4 at the start of the
- procedure
- Replaced all CLR to MOVEQ #x, or EOR as appropriate
- add PROC x() MODSETUP and PROC x() MODCLEANUP - from creative but with
- name changed from SETUP/CLEANUP due to naming clashes
- Fix memory corruption issue during parsing
- fix error generating HUNK_DREL32SHORT hunk causing corrupt exe
- fix legacy mode memory corruption creating corrupt module
- increase fixed buffer sizes
- fix assembler error with MULS.L and DIVSL.L commands generating
- incorrect opcodes
- PTR indexes are now 32 bit so can be >65535 and <0
- indexed ptr to object code generation optimised for 68020
- (to use MULS.L) and to generate add/shift/subtract combinations
- instead of MULS where appropriate
- Fix for obj.prop+=2 which was broken due to register value not
- being preserved.
- Add NIL test in Free()
- disable 020 JSR to BSR.L optimisation when multiple sections in
- use (which was causing invalid code generation)
- Add compile time array bounds checking (for constant array indexes)
- Add ARRAYCHECK command line parameter to add code to each array access
- to check array bounds
- Fix symbol hunks being generated incorrectly when multiple sections
- in use
- added EVO_3_9_0 define
- added newer version of cybergraphics module
(cg)
[News message: 06. Sep. 2025, 23:46] [Comments: 0]
[Send via e-mail] [Print version] [ASCII version]
|