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
|