Development : : PortablE r6 beta released
Posted By: ChrisH. on 2015/12/14 19:10:53
PortablE_small_logo.PNG
PortablE is a recreation of the AmigaE programming language, along with all the improvements I wanted. PortablE works on MorphOS, AROS, OS4, and even Windows to an extent! (It should also work on OS3, but compiling needs a powerful machine like WinUAE.)

This is the first proper new release in 2 years, and has been throughly tested on the latest version of MorphOS, as well as the other supported OSes.

Previous versions of PortablE were aimed at existing AmigaE users, but PortablE now aims to be attractive for new users too. Although it's still "beta", it should work well, and further incompatible changes seem unlikely.

See the main manual for everything that has changed since r5. There have been the following big changes since the last beta:
* The Simple Mode of the installer now puts the PEmodules folder somewhere sensible.
* PEGCC now has the parameters Run, RunUsing & RunParam, so you can compile & run programs in one go.
* PortablE now stores ".pem" cache files in "PEmodules:PE/cache/", instead of your source folders.
* Removed source<>destination restriction of StrAdd().
* and much more!

You can download it from here:
Aminet

PortablE comes with documentation, but you can find on-line documentation, examples & the latest version of PortablE from it's homepage:
cshandley.co.uk/portable
 
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Yasu
    Joined: 2012/3/22
    Posts: 1724
    From: Stockholm, Sweden
    Good to see that this project is still alive :-)
    AMIGA FORUM - Hela Sveriges Amigatidning!
    AMIGA FORUM - Sweden's Amiga Magazine!

    My MorphOS blog
  • »2015/12/15 6:27
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    connor
    Joined: 2007/7/29
    Posts: 570
    From:
    I have a question to this. It is a compiler for the language E and a cross compiler to C++? So do you get the program in C++ source after compilation? I read that PortablE is meant to move source codes to C++ and “relieve” them from E. Is that right? I do not know if I understood the whole concept of PortableE.
  • »2015/12/16 16:47
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Joined: 2009/11/26
    Posts: 167
    From:
    Quote:

    I have a question to this. It is a compiler for the language E and a cross compiler to C++? So do you get the program in C++ source after compilation? I read that PortablE is meant to move source codes to C++ and “relieve” them from E. Is that right? I do not know if I understood the whole concept of PortableE.

    PortablE mainly uses C++ as an easy way to create an executable (using GCC), without me having to worry about how to directly generate PPC code, x86 code, 68k code, etc. For this you would use the "PEGCC" command (which calls PortablE then GCC).

    However, it CAN ALSO be used to permanently convert E code to C++ code... but there has been little interest in using it this way, and I have also come to realise there are some limitations in using it like this. So I no-longer emphasise this. But it IS possible, because it takes care to preserve both indenting & comments in the converted code, and *generally* tries to keep things human readable (tag lists are one sad exception to this). For this you would use the "PortablE" command.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »2015/12/16 17:00
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    connor
    Joined: 2007/7/29
    Posts: 570
    From:
    So it is "another programming language" for us (yes, I know how old it is) and also a "converter" from E to C++? C++ is not the number 1 language in Amiga system, but C is. So I wonder why not C is used.
    How well is E made for making "full" programs? Is it a lot slower than a C program? And which "large" programs are made with E? And can every function of the OS be used or is E limited to some things?
    The demo sources of the programs on the website are shorter than C programs, I think. But not so well structured and readable.
    So the main purpose is to have a modern version of E still under development?
  • »2015/12/17 18:50
    Profile
  • Andreas_Wolf
    Joined: 2003/5/22
    Posts: 12150
    From: Germany
    > which "large" programs are made with E?

    AmiNetRadio, AmiTradeCenter, dynAMIte and other AmigaZeux stuff. And also EvenMore.

    [ Edited by Andreas_Wolf On 2015/12/18 18:06 ]
  • »2015/12/17 19:51
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Joined: 2009/11/26
    Posts: 167
    From:
    A lot of questions! :-)

    Quote:

    I wonder why not C is used.

    Mainly because E supports OOP & exceptions, but C does not (and C++ does). IIRC PortablE generates pure C code apart from those two features missing from C... and I do still hope to eventually 'emulate' those in C so that I can scrap C++ in favour of pure C. (Would result in smaller executables, and be even more 'portable'.)

    Quote:

    How well is E made for making "full" programs?

    Fine I would say. You can choose to directly access OS functions, as well as to use it's portable & easy-to-use "std" modules that I've added.

    By "E" I shall assume you mean "PortablE" (rather than the old "AmigaE" or similar), but note that "PortablE" adds a *lot* of modules (includes) that the original "AmigaE" doesn't have, in the name of ease-of-use & better portability. Those modules are mostly under the "std" path, and can be found in the Standard Functionality document (also available online). You can also access OS functions directly.

    Quote:

    And which "large" programs are made with E?

    I have personally used PortablE to write the following programs:
    * RunInUAE (patches OS4 to achieve some nice functionality, but beware patching OS functions on other Amiga-like OSes might be much more difficult due to subtle differences in how they handle parameters).
    * AmiSystemRestore (also OS4 only due to patching the OS, gives similar functionality to Window's System Restore).
    * eGame (shareware program available for MOS & AROS, as well as OS4).
    * RunInDOSBox (free little utility, available for MOS & AROS too IIRC, and works well with eGame).
    * Stacker (a simple but pretty nice example included with PortablE, monitor tasks, works on MOS, AROS & OS4).
    * Picture Album (not quite finished but works nicely on AROS & OS4, but a tricky bug prevents working properly on MOS at the moment).
    * FolderSync2 (a powerful Shell-only "syncing" utility, runs on all supported targets including Windows).
    * PortablE ;-)
    * and more!

    MrDarek has used it to write a lot of games (mostly only compiled & tested for OS4, but a few for AROS too, and source code was released for many of them):
    http://os4depot.net/index.php?function=modules/sql/filesbyuploader&submitter=mrdarek

    Apart from that, in the past AmigaE was used to write quite a few big applications for the Amiga. Andreas_Wolf mentioned some. I *believe* ImageStudio & DrawStudio were written in E. I *think* that at least some of Onyxsoft's programs have been written in some version of E. And probably quite a few more by other people! (AmigaE was *very* popular up until the original author stopped developing it around 1994 or so.)

    Quote:

    Is it a lot slower than a C program?

    The compiled executables should be similar speed, in general. Compilation itself will obviously take a bit longer, since it translates from E to C++ before compiling the C++ code.

    Quote:

    And can every function of the OS be used or is E limited to some things?

    By "OS" I shall assume you mean MorphOS... Not everything is available, but most of the OS3 functions. I've not added MorphOS-specific functions, except for Cybergraphx. (AROS is more complete, OS4 mostly has full access, and Windows has almost no access.)

    I'm sure I could add missing stuff, if there was interest. Mainly I have focused on what I needed to get my portable graphics & sound modules to work.

    Probably the biggest omission is networking, mainly because I hadn't done any networking programs up till 1 year ago. Currently I've only ported the common networking stuff for OS4, but now that's been tested as working well (and I've build a useful module & a big-ish working program on top of that), I hope to find the time to add similar networking support for MOS/AROS/OS3 (probably they can all share the same module code). Beware that it's not a simple task, as networking has a LOT of modules, so I cannot promise when this might be done.

    Quote:

    The demo sources of the programs on the website are shorter than C programs, I think. But not so well structured and readable.

    I'm not sure how they could be better structured & readable. I tried to make them as good as possible, and personally I find E more readable than C :-)

    Quote:

    So the main purpose is to have a modern version of E still under development?

    I suppose so: My original purpose was to have a version of AmigaE that wasn't full of bug & horrible limitations (OOP was especially limiting), and also to add all the 'missing' features that I wanted. Due to my earlier experiences, I wanted to ensure I wasn't tied to any particular OS, so the aim was to make it as portable & 'future proof' as possible. More recently I've written lots of portable "std" modules that provide quite a bit of power, while being (IMHO) easy to use & potentially portable to Windows/etc.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »2015/12/18 13:19
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    connor
    Joined: 2007/7/29
    Posts: 570
    From:
    Thank you for your detailed answer. By "E" I meant the language itself. I have heard that also PFS was done in E. Is that right? So PortableE is a successor to this original language with some new modules (not all like networking) and also a trans-compiler. This is what I understood so far. What does it mean that CyberGraphX support is missing? As long as MUI can be used, it can use all functions to display, right? Okay, maybe not support for image operations like in an image processing program. But everything else, should it work well?

    Picture Album seems to be a good program as well. Hopefully the bug can be fixed to make it running on MOS properly.

    For the speed, I think the compilation speed does not really matter because this is not the main usage of a program. It should be at good speed during operation. This is the most important.

    About the demo programs I am maybe mistaken. I wanted to say that the E code looks easier to read than C programs and it is shorter as well. so it seems that in E you canget to good results easier and faster than in C.
  • »2015/12/23 16:44
    Profile
  • Andreas_Wolf
    Joined: 2003/5/22
    Posts: 12150
    From: Germany
    > I have heard that also PFS was done in E. Is that right?

    "Assembly, C"
    http://sourceforge.net/projects/pfs-amiga/

    [ Edited by Andreas_Wolf On 2015/12/23 22:55 ]
  • »2015/12/23 20:54
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Joined: 2009/11/26
    Posts: 167
    From:
    Quote:

    What does it mean that CyberGraphX support is missing?

    You misunderstood me. I *added* CyberGraphX support to the MorphOS part of PortablE.


    Quote:

    As long as MUI can be used, it can use all functions to display, right? Okay, maybe not support for image operations like in an image processing program. But everything else, should it work well?

    Again, pretty much all the OS3 functionality for MUI is there (i.e. MUI 3.x), but probably not anything specifically added by MorphOS. (That could be improved if there was interest.)


    Quote:

    It should be at good speed during operation. This is the most important.

    PortablE does a fairly direct conversion of code to C/C++, so it should run at a similar speed to native C/C++ programs.


    Quote:

    About the demo programs I am maybe mistaken. I wanted to say that the E code looks easier to read than C programs and it is shorter as well.

    Ah, OK, I misunderstood you then :-)


    Quote:

    so it seems that in E you canget to good results easier and faster than in C.

    That's how I personally feel :-)
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »2015/12/24 9:28
    Profile Visit Website