Short: E compiler, r6b (24.11.2022) Author: Chris Handley Uploader: temp cshandley co uk Type: dev/e Version: r6b (24.11.2022) Architecture: m68k-amigaos >= 3.0.0; ppc-amigaos >= 4.1.7; i386-aros; ppc-morphos; other Portabl E is my recreation of AmigaE from scratch, along with most of the improvements I have wanted. And while AmigaE only worked on AmigaOS3, Portabl E also works on AmigaOS4, AROS, MorphOS, as well as even Linux & Windows! Portabl E works by translating your E code into C++, and then using GCC to compile it into an executable that you can run. But you don't usually need to worry about those details, because the PEGCC program will do it for you. Portabl E does need an installation of GCC, which is free & easily installed. Previous version of Portabl E were aimed at existing AmigaE users, but the r6 release of Portabl E aims to be attractive for new users too. Current status -------------- Portabl E is capable of generating code for the C++ language (as well as for AmigaE itself!), which is then compiled to a proper executable. It supports Linux, Windows, AmigaOS3, AmigaOS4, AROS & MorphOS. Portabl E has native executables for Linux (64bit x86), Windows, AmigaOS3, AmigaOS4, AROS (x86) & MorphOS, because Portabl E is written in E itself! It comes with portable modules to cover stuff like file & directory access, shell parameter parsing, graphics, sound & GUIs. These portable modules are NOT always supported by all OSes, especially not by Linux & Windows yet. You can find a complete list & description of all of them in the "Standard Functionality" document, but essentially Linux & Windows only supports Shell-like stuff. Many Amiga modules are also provided for AmigaOS3/OS4/AROS/MorphOS. For Amiga-like OSes, 256MB of installed memory is the recommended minimum. A stack of at least 100KB is also required. The biggest recent changes -------------------------- The changes in the r6b release: * Amiga: Fixed the installer still failing at "Copying executables..." in some cases. Many thanks to Benedetto Lorello for reporting the bug & assisting with testing (as it didn't happen for me). * AmigaOS4: Worked-around a bug in the latest OS4 SDK (54.16), which has problems compiling C++ code, unless you use GCC v6.4.0 . Many thanks to Benedetto Lorello for reporting the problem. The changes in this r6a release: * AmigaOS4: Fixed the 'std/cGui' module failing to compile (MUIA_Dtpic_Name not declared), due to the SDK not using MUI4+ by default. * Linux: Fixed 32-bit hex values > $7FFFFFFF not being interpreted as negative by the type checker. * AROS: Fixed Install_AROS not offering to install the extra C header files (although they're not really needed). The biggest changes since the last r6 beta release include: * This is the finished r6 release, with the "beta" tag removed, although it hasn't really been beta since the last couple of release. * I've renamed the language from "PortablE" to "Portabl E" with a space, in the hope of making it more easily searchable on the internet (as well as clarifying how to pronounce it). But the "PortablE" command name itself is unchanged. * Added basic Linux support (64bit x86 only), to the same level as Windows, i.e. Shell-only, with no graphics or internet access. This was a major effort, partly due to all the differences (64-bit pointers, case-sensitive filing system, mount-points anywhere, etc), and partly due to all the C headers that needed to be converted. * Linux: PEGCC now supports cross-compilation (for Amiga & Windows) using the TargetOS parameter, as long as an appropriate GCC cross-compiler is installed. * Windows/Linux: In 'std/cPath', added a per-user Assignments.txt file, but removed the per-program-start-folder Assignments.txt file. * Programs will now compile using the latest SDK of AmigaOS4, AROS and MorphOS. * All OS procedures that can support unlimited parameters now do so, including the Amiga's SystemTags(). * AmigaOS3: No-longer needs a modified "intuition/classusr.h" file. * Added the 'std/pUnsigned' module, to provide basic support for unsigned number types, and the example program "Examples/std/Shell/crc32.e". Useful for porting certain C algorithms. * Added the procedures InStrNoCase(), BigMax(), BigMin(), BigFastMod(), IsBigEndian() & IsLittleEndian(). * In 'std/pTime', improved CurrentTime() to take a timezone parameter. * Fixed FastNew() (and so NEW) which would trash memory, instead of raising the "MEM" exception, if it failed to allocate memory. Thanks to Dimitris Panokostas for reporting symptoms of this long-standing bug, especially as I don't see out-of-memory errors on the OSes I normally use. * Amiga: The installer would fail at "Copying executables..." if the user-specified path for executables did not contain any (sub) folders, such as "C:" (which sadly was the default). Many thanks to "Zendarion" for the bug report. * Windows: In 'std/pTime', CurrentTime() now returns the correct time when DST is in effect. See the main manual for what has changed since r5. Please see the History chapter of the main manual for more details. Further information ------------------- Portabl E comes with documentation, but you can always find the latest version & on-line documentation from it's homepage: http://cshandley.co.uk/portable