ECX is an E Compiler written from scratch in E, it supports
68020+FPU and PowerPC CPUs, AmigaOS3, MorphOS and AmigaOS4
operating systems.
High source as well as binary compatibility, together with many
improvements over previous implementations of the language.
More here: http://blubbedev.net/ecx/
INSTALLATION
============
You will want to install the AmigaE package, if not done
already: dev/e/amigae33a.lha. ECX makes use of the v40 modules
through the emodules: assign. Rest of installation is described
in ecx.guide.
ECX v55 (2.0.0) - November 2008
--------------------------------------------------------
- Increased fantasticness levels with about 289%.
- Includes updated mui modules for MUI4 (MorphOS).
- Added various MorphOS 2 specific modules.
- Did some changes to how ECX searches for modules.
This to ease portability.
- ECX now uses environment variables to describe dirs
of different targets.
- Experimental support for AmigaOS4,PPC.
- Unreferenced check was disabled by QUIET/S, fixed.
- NILCHECK/S option now will automatically generate code that puts
NIL in uninitialised local variables (globals are always NIL:ed).
- Some fixes to 68k code generation.
- Immediate strings are now merged if possible.
- Made PPC Abs(),Max(),Min(),Sign(),Bounds() and int->float
conversion inlined.
- Added multiple inheritance of objects (but only the first one
may contain methods).
- Added commandline argument SHOWARGS/S.
- Bugs in 68k and ppc code generators concerning the specific
immediate value $80000000, fixed.
- Added XOR, <<, >>, ~ operators. Kashmong! SHL is now deprecated.
- tools/thread.m (for 68k and ppc) would not work correctly in
library mode, fixed. Thx UltrGelb.
- Implemented support for 64bit integers (WIDE) (PowerPC only
for now). Kaching!!
- Made comments act as token separators. Thx Chris S Handley.
- MODNAME would not work correctly with LINKOBJECT mode.
- Added formattingcodes ~, H, D.
- Added LINENUM and READWRITE constants.
- Added preprocessor symbols _DATE_, __TIME__, __DATE__, __TARGET__,
__AMIGAOS__, __AMIGAOS4__, __MORPHOS__, __M68K__, __PPC__
- Improved STRLEN keyword, now handles combined (+) strings
(unlike EC/CreativE).
- Added preprocessor directives #fmtstr, #warning, #error, #elif(n)def.
- Added keywords IFN, ELSEIFN, WHILEN, UNTILN, EXITN, a feature
I yoinked from PowerD language.
- Bug in defined variable function made var() without args not
work, fixed.
- Preprocessor did not expand arguments also _before_ inclusion
into body, fixed. thx UltraGelb.
- Bugs in method inheritation, fixed.
- 68k division operator generated broken code, fixed.
- Defined variable function could not have init value, fixed.
- Removed #include directive. it was wrongly documented anyway
and nobody complained about it so i guess no harm. Once I had
idea for its usage, but it no longer serves any purpose.
- New tool, "CeeModule", lets you view modules in a C header kinda way.
- New tool, "MakeLibMod", replaces ModuleFromFD and ModuleFromProto.
- ENUM did not handle negative values correctly, fixed.
- PPC Byte() did not sign extend, fixed.
- More OOP bugs fixed.
- 68k integer to float conversion rounded to nearest, now rounds
towards zero. OPT ROUNDNEAR can be used in 68k and ppc mode to
change rounding behaviour. ECX also now recognices CreativEs
OPT FPEXP and then switches on ROUNDNEAR for compatibility.
- Whole range of 68k Fxxx() functions had broken return values.
About AmigaOS4 support.
Everything except library mode and automatic ppc<->68k glue code
insertion, is implemented. The latter should be avoided anyway.
Modules for new OS4 OS structures and such are mostly missing, but
can be added by anyone really. For now the v40 (OS 3.1) modules should
be enough to do alot of stuff. The support is to be considered
*experimental*. I do not have OS4 myself to test on, instead I made
use of OS4Emu for some initial basic testing and then I have got some
feedback from people using it on OS4. Any further work on OS4 support
will depend on feedback and interest from OS4 users. Bon Apetite.
+-------------------------------------------------------------------+
| Distribution |
+-------------------------------------------------------------------+
The archive ecx.lha may be distributed freely, as long as the
contents and name of the archive remains intact and unmodified.
Leif Salomonsson -- November 2008
| |