New beta of PortablE (r6, the beginner-friendly release)

19 posts / 0 new
Last post
ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
New beta of PortablE (r6, the beginner-friendly release)

I have uploaded a new PortablE beta of my modernised AmigaE programming language. There have been a HUGE amount of changes since the last beta in April, but biggest changes are:

* Fully tested on AROS & MorphOS (in addition to AmigaOS4), so all the examples now run smoothly & stably. Please download some of the already compiled examples & try them out :-)

* Programs now compile on Icaros v.1.3.x, although an AROS bug in Icaros v1.3.0 to v1.3.2 means that the graphical examples won't look good. Icaros v1.3.3 should fix that.

* The GUI module (std/cGui) now supports basic scrollable lists & pictures in buttons (see here for an example), plus many bug fixes.

* The graphics module (std/cGfx) now supports resizable windows, can draw circles, and has been heavily fixed & speeded-up for AROS & MorphOS.

* Added basic networking support for AmigaOS4, which is compatible with AmigaE.

* Added the "Debug" switch to PEGCC, which makes debugging on OS4 much easier. PEGCC also behaves better.

* The sound & music modules (std/cSnd & std/cMusic) now gracefully handle the lack of AHI sound, instead of crashing!

* OPT MULTITHREADED should now be properly thread-safe, especially FastNew/NEW/etc.

* A large number of fixes & tweaks to various things, plus added a couple more Amiga modules, and some missing OS4 functions.

You can download the latest beta of PortablE here.

Some screenshots to show what PortablE is capable of in a relatively small amount of code:

IMAGE(http://cshandley.co.uk/temp/PEr6/ShootEmUp_pic1_small.png) IMAGE(http://cshandley.co.uk/temp/PEr6/SimpleCalculator_pic.png) IMAGE(http://cshandley.co.uk/temp/PEr6/SOTBeastScroll_pic1.png) IMAGE(http://cshandley.co.uk/temp/PEr6/PictureAlbum_1_small.png) IMAGE(http://cshandley.co.uk/temp/PEr6/AmiSystemRestore_1.png) IMAGE(http://cshandley.co.uk/temp/PEr6/StarsDemo_pic_small.png) IMAGE(http://www.lineapolis.dizzy.pl/amigaos4s.jpg)

As a reminder, in February I released a "full preview" of the next version of the PortablE programming language. It is now aimed at beginners & those new to the E language. Previous releases of PortablE were aimed at existing AmigaE users, and those familiar with AmigaOS programming. But after more than a year of development, PortablE became much easier for beginners to pick-up & play with:

* It now comes with some nice modules for graphics, sound, music & GUIs. These require no knowledge of AmigaOS programming, and were inspired by the simplicity of BASIC languages like AMOS.

* It comes with full documentation for all of these modules, along with smaller & bigger examples. There is also an official PortablE forum.

* The documentation has been revamped to be more beginner friendly, and the PortablE installer has been made easier to use. If you still get stuck, then let me know, and I will see what I can do :-)

* In addition to that, I have made available a large collection of my own useful modules (in the CSH folder), which you can use if you want. These are not properly documented yet, but I will look at documenting them where there is interest.

* As usual it supports Amiga OS4, OS3, AROS, MorphOS & Windows. However (1) the new modules do not yet work on Windows, and (2) the new graphics module does not yet work on Amiga OS3.

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
I have now released three


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

cha05e90
cha05e90's picture
Offline
Last seen: 5 years 5 months ago
Joined: 2011-02-07 20:22
Hi Chris, looks very

Hi Chris,

looks very promising and I look forward for your February release. While still playing with C and accessing the API I always have and had one eye on E. One thing that always buggered me is the fact that except Annotate there's no IDE/Editor with syntax highlighting etc. Is there any chance that you and Simon could do a Codebench plugin? (...not really cross-compile-environmental...)

X1000|II/G4|440ep|2000/060|2000/040|1000

Rigo
Rigo's picture
Offline
Last seen: 1 year 10 months ago
Joined: 2011-01-24 21:55
I'm not really convinced

I'm not really convinced there are enough users of PortablE to warrant the work involved TBH.

Simon

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
@cha05e90 I look forward for

@cha05e90

I look forward for your February release

Sorry, where does "February" come from???

@Rigo
It might make more sense for you to make a simple way for *other people* to add syntax highlighting to Codebench. Not full-blown integration, which would require (you?) writing code, but some simple syntax definition that 'anyone' could do. Since some other editors (such as Annotate) do this, it is surely possible, and might benefit Codebench (and you) in the long run.


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

cha05e90
cha05e90's picture
Offline
Last seen: 5 years 5 months ago
Joined: 2011-02-07 20:22
Ooops, sorry, I misread that

Ooops, sorry, I misread that "February" from the past (this year) as a future release date... ;-)

X1000|II/G4|440ep|2000/060|2000/040|1000

Rigo
Rigo's picture
Offline
Last seen: 1 year 10 months ago
Joined: 2011-01-24 21:55
Unforunately, it's not that

Unforunately, it's not that simple. While the syntax files are easy enough to create, the functionality of the plugin needs to be changed to suit as well. Syntax highlighting is only a small fraction of the language support.

And judging by the response to this, it looks like I'm right about the amount of users and subsequent work involved.

Simon

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
I have now released two more


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Unforunately, it's not that

Unforunately, it's not that simple. While the syntax files are easy enough to create, the functionality of the plugin needs to be changed to suit as well. Syntax highlighting is only a small fraction of the language support.

My suggestion was NOT for full-blown "language support", but merely for syntax highlighting. And if you were able to use some pre-existing standard, then it would likely be possible to add (basic) support for many languages by just copying their existing definitions.

If you still don't think that allowing your IDE to have (basic) support for a wide variety of languages would be a good idea, then no problem.

FWIW, I have seen quite a few questions about a suitable editor with syntax-highlighting for PortablE, but they were not necessarily from OS4 users (I didn't make any mental notes).


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
I have now released two more


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Today (5th March 2012) I have

Today (5th March 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. While development has moved slower, I have still made a lot of bug fixes, plus added some new features:

* The Amiga installer has been greatly improved. It uses choice requesters, it has a Simple Installation mode, you can finally change the PEmodules assignment, and more. Thanks to Hypex for suggestions!

* Added some new functions to the cGfx & cGfxSprites modules.

* cGui windows now receive a close request when Exchange tries to remove the app.

* cSnd has been heavily rewritten, and should be rock-solid (not that I noticed a problem before).

* cPath now properly supports soft & hard links.

* Added support for AmigaOS4's application.library .

* Greatly improved memory handling; no-longer becomes very slow in certain situations, won't crash when allocation requests fail (ouch), and also handles low-memory situations better.

* On AmigaOS4 executable sizes have been reduced by up to 60-120KB, thanks to an OS4 SDK discovery made by Kas1e.

* cGfx's drawCircle() now works correctly.

* Fixed various small bugs.

I have also replaced the "Shadow Of The Beast like" demo with one that is much closer to the original game.
IMAGE(http://cshandley.co.uk/temp/PEr6/SOTBeastScroll_pic1.png)


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

JosDuchIt
JosDuchIt's picture
Offline
Last seen: 7 years 4 months ago
Joined: 2012-01-08 20:57
@Chris BareEd has syntax

@Chris

BareEd has syntax highlighting (C arexx AG ) and the source of those can be downloaded. The C-C++ crashes here on my SAM when loading a new file. This is not the case for arexx and AG documents.
So it could be a small problem and Joerg has always been very helpfull.
I did in the past create a Gui (Coverbed) (written in Gui4cli) for BareEd, using its arexx possibilities. (Launching arexx scripts from within BareEd is more limited than in other texteditors)

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Today (20th March 2012) I

Today (20th March 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. Fixes a couple of serious problems:

* Fixed a video memory leak caused by bitmaps not being auto-deallocated when the program quits (nor when the window is destroyed), for the 'std/cGfx' module.

* Worked-around the installer failing on Icaros v1.4.0, because it comes with an incorrect config file.

There are also a couple of smaller improvements:

* If you let the installer move the PEmodules folder on Icaros, then you would get a harmless error message every time Icaros booted. Now fixed.

* You can now use CreateGfxWindow() & DestroyGfxWindow() with the 'std/cGfxSpritesSimple' module


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Today (9th April 2012) I have

Today (9th April 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. This brings the 'std/cGfx' module close to being finished:

* The 'std/cGfx' module now uses Compositing/Alpha-blending (where supported) for h/w accelerated drawing of masked bitmaps. This means the new SOTB demo is now fast & smooth on AmigaOS4 & MorphOS.

* The 'std/cGfx' module now supports screens <= 256 colours.

* For 'std/cGfx', added tentative AmigaOS3 support, and compiled almost all the examples for AmigaOS3. (I would be interested to know if they work on Natami.)

* For 'std/cGfx', added missing stuff like reading pixel colours, rotating bitmaps, and generating masks using pictures with more than 256 colours.

* For 'std/cGfx', scaling bitmaps is now much faster on AmigaOS4 (probably uses AltiVec acceleration).

* For 'std/cGfx', scaling masked bitmaps is MUCH faster on AROS. So the SOTB demo now starts quickly.

* For 'std/cGfx', fixed various bugs.

* For 'std/cPath', added the create() method as an (often nicer) alternative to open().

* Added Picasso96 & Cybergraphics modules.

* Added the missing CompositeTagList() for OS4.

* PEGCC's DEBUG switch now creates executables with debug info on OSes other than AmigaOS4 (likely to be useful on AROS).

* Updated the examples StarsXY_ToySpaceshipSprite1.e & StarsZYX_ToySpaceshipSprite1.e to use the now-required addToGfx() method, and corrected the documention about creating a sub-class of cGfxDrawable.


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

Belxjander
Belxjander's picture
Offline
Last seen: 8 years 3 months ago
Joined: 2011-02-25 11:53
Great to see this language

Great to see this language continuing, I know I will definitely be making use of E on the AmigaOS again and not just the classic compiler.

I'll familiarize myself more with it after I have a machine in front of me.

the only question I have at this point is whether you have kept the original CommandLine style and if there is the option of compiling to link objects?

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Fixed a stupid error, which

Fixed a stupid error, which crept into the new PortablE release, which especially effected compiling on AmigaOS4. Please re-download!


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
@Belxjander the only question

@Belxjander

the only question I have at this point is whether you have kept the original CommandLine style and if there is the option of compiling to link objects?

I am a great fan of "Keep It Simple", so yes, the "command-line style" has been kept. And I would say I improved upon it a great deal (e.g. automatic compilation of modified modules, so you don't need to manually do it, nor use Make) (e.g. Many error message have "Hints" about typical causes of errors and/or how to circumvent the error).

Compiling to link objects is not supported at the moment, but it could well happen in a future release (depends on what features get implemented after r6).


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
Today (8th October 2012) I

Today (8th October 2012) I have released a new PortablE beta of my modernised AmigaE programming language. The changes include:

* AmigaOS4: Added some missing Commodities & Exec library functions.
* AmigaOS4: Memory allocations now follow the latest guidance. This should ensure that swap is fully utilised, which may be especially handy for the PortablE compiler itself.
* AROS: Got rid of harmless "superfluous cast" warnings that happened when automatically compiling a few modules.
* For the 'std/cPath' module, finally added 64-bit file support for AmigaOS4, and improved handling of files over 2GB for AROS, MorphOS & AmigaOS3.
* For the 'std/cGfx' module, it now uses real double-buffering for Full Screen (except on AROS). This can make animation smoother, and on AmigaOS3 it looks much much better.
* For the 'std/cGfx' module, added the ability to change window position & hide the mouse pointer.
* For the 'std/cGfx' module, fixed a couple of corrupted graphics bugs.
* For the 'std/cGfxSprites' module, made setData() & getData() easier to use, and added setDataPtr() & getDataPtr() for the old behaviour.
* For the 'std/cGui' module, windows can now be vertically resizable, and greatly improved the GUI layout code.
* For the 'std/cGui' module, added cGuiText, and changed how cGuiTextBox behaves. (The new cGuiText behaves similar to how cGuiTextBox used to, so switch to that if you only need to display one line of text.)
* For the 'std/cGui' module, the window's size & position can now be read & changed, just like cGfx.
* For the 'std/cGui' module, added some useful methods, and replaced cGuiWindow's setGhosted() with setBusy() & getBusy(). Also iconified windows now use the program's icon.
* For the 'std/cGui' module, fixed a performance issue, and also a crash which could occur when a window closed.
* For the 'std/cPath' module, split it into several smaller modules, which should allow simple programs to have smaller executables & slightly faster compilation times.
* For the 'std/cPath' module, replaced makePath() with getPath() & setPath().
* For the 'dos/dos' module, made BPTR a real pointer type, so that such variables are now auto-initialised to NIL like you would expect.
* For the 'devices/ahi' module, recreated this module for all targets, using the latest AHI header files. This helped fix various minor issues.
* For the 'dos' & 'icon' modules, BOOL return values (0,-1) were actually C boolean values (0,1). Fixed.
* Removed *Tags() procedures from the modules 'Picasso96API', 'dos', 'exec', 'graphics', 'icon' & 'identify'.
* Duplicate RAISE statements would cause a compilation crash instead of an error message. Also RAISE were incorrectly being inherited between modules in certain situations.
* Fixed many AmigaE code generation bugs & a few module problems, such that all the "std" examples can now be compiled using AmigaE rather than GCC.
* Fixed a few other bugs.

For the full list of changes & additional details, please see the documentation's History chapter.

Also note that I have updated & recompiled all the examples.


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

ChrisH
ChrisH's picture
Offline
Last seen: 3 years 7 months ago
Joined: 2010-12-07 20:22
I have uploaded a new

I have uploaded a new PortablE beta archive with a very small fix (almost cosmetic):

* When the installer deletes obsolete modules, it will no-longer fail to delete a couple of folders (which was harmless but might have worried some people).
* A small 'bonus' is that the installer will now delete a few obsolete modules that I had previously overlooked.

Users who have already installed the latest release of PortablE do NOT need to download it again!


Author of the PortablE programming language.

I love using Amiga OS4.1 on my X1000 & Sam440 :-D

Log in or register to post comments