Attempting to develop an IDE for the Amiga with Lazarus

danilos · 6323

danilos

  • Newbie
  • *
    • Posts: 27
    • Karma: +1/-0
Hi,

I am not sure if anyone is interested but, as a learning exercise, I am attempting to develop an IDE for the Amiga with Lazarus. I have to admit it has been a very very long time since I have used the Amiga and Pascal (and never used Lazarus before) so perhaps I have my hopes a bit too high. Anyway, I was interested to know if this would be something people would be interested in. What I have got so far is something rudimentary but, at least on Windows, it works.

The IDE could also be converted to develop for other languages not just pascal, pascal is the language i find easier to program with on the Amiga. For the time being the IDE can edit a file, and compile it. I have included some screen shots of the IDE, it's still all very rudimentary and only 0.1% of the features are implemented. The exe is for some reasons quite big, it's about 43MB for Windows and 6.5MB when zipped, but I can share it if anyone is interested. Don't expect too much for the moment is just a learning experiment.

I just would like some feedback if it's worthwhile working on it.



magorium

  • Moderator
  • Legendary Member
  • *****
    • Posts: 566
    • Karma: +55/-0
  • Convicted non contributor
Reply #1 on: March 06, 2021, 03:15:04 PM
Hello danilos and welcome,


I am not sure if anyone is interested but, as a learning exercise, I am attempting to develop an IDE for the Amiga with Lazarus.
Fresh input is always encouraged, especially when it concerns two of my favourite hobby's  ;D

Quote
I have to admit it has been a very very long time since I have used the Amiga and Pascal (and never used Lazarus before) so perhaps I have my hopes a bit too high.
It might perhaps a bit daunting when you never used Lazarus before, and for two reasons:
1 - Although a perfect tool to design applications with, Lazarus has a bit of a steep learning curve for newcomers. It can help if you have experience with developing applications with Delphi.
2 - Not all components that accompany Lazarus are available for Amiga/Lazarus

and there is actually a 3th reason, namely that classic Amiga systems are very restricted with regards to the hardware. Having said that, if you use emulation then this should not be much of a problem (or using nextgen amiga hardware).

Quote
The IDE could also be converted to develop for other languages not just pascal, pascal is the language i find easier to program with on the Amiga. For the time being the IDE can edit a file, and compile it. I have included some screen shots of the IDE, it's still all very rudimentary and only 0.1% of the features are implemented.
Perhaps you can have a look at ALB42's Edisyn editor (see https://blog.alb42.de/programs/edisyn/ ) to see how we tried to get some sort of an ide going (sources are available on github).

Quote
The exe is for some reasons quite big, it's about 43MB for Windows and 6.5MB when zipped, but I can share it if anyone is interested. Don't expect too much for the moment is just a learning experiment.
Yes, Lazarus really generates humungous sized executables by default.... poor Amiga...  :) You are able to win at least more than half the battle when debug information is turned off. An executable can also be stripped from unnecessary stuff that is not required to run an executable.

Quote
I just would like some feedback if it's worthwhile working on it.
I really would like to give you some detailed feedback but i am a bit swamped at the moment.

I do not know if you are familiar with IRC but at freenode #aros you are usually able to find me or (at least) ALB in case you need some help. It can sometimes be that we are busy so in such a case just stick by until you get a response.

Personally i do not have specific experience with ALB42's cross development setup, as i use my own but in the basics it is similar.

(edit: typos removed)
« Last Edit: March 06, 2021, 04:08:29 PM by magorium »



amigamia

  • Member
  • ***
    • Posts: 123
    • Karma: +49/-0
    • AROS World
Reply #2 on: March 06, 2021, 03:29:34 PM
Hi,

I am not sure if anyone is interested but, as a learning exercise, I am attempting to develop an IDE for the Amiga with Lazarus. I have to admit it has been a very very long time since I have used the Amiga and Pascal (and never used Lazarus before) so perhaps I have my hopes a bit too high. Anyway, I was interested to know if this would be something people would be interested in. What I have got so far is something rudimentary but, at least on Windows, it works.

The IDE could also be converted to develop for other languages not just pascal, pascal is the language i find easier to program with on the Amiga. For the time being the IDE can edit a file, and compile it. I have included some screen shots of the IDE, it's still all very rudimentary and only 0.1% of the features are implemented. The exe is for some reasons quite big, it's about 43MB for Windows and 6.5MB when zipped, but I can share it if anyone is interested. Don't expect too much for the moment is just a learning experiment.

I just would like some feedback if it's worthwhile working on it.

This is a fantastic idea (no pun intended). I have been looking for an IDE for AROS since Murks IDE was abandoned http://archives.aros-exec.org/index.php?function=search&tool=simple. Please keep going because there is no such thing as not worth doing for AROS. Do you have the code open sourced somewhere on Github or Gitlab? Perhaps that way other people may be able to contribute.


danilos

  • Newbie
  • *
    • Posts: 27
    • Karma: +1/-0
Reply #3 on: March 06, 2021, 04:31:22 PM
Hi magorium,

thank you indeed for the reply. I would really love to get in touch with someone on the AROS side, and possibly contribute in some way. I am struggling a bit because it has really been a long time since I have done any work on the Amiga and with Pascal, but I am not too worried about Lazarus, it is well documented and it seems I can manage somehow.

I have seen  EdiSyn and played with it in AROS, I am using TSynEdit controls in my code and the functionality I am developing is roughly equivalent to what is available in EdiSyn and I would think I will need to extend it a bit too. The IDE is more of a challenge because I would like to add a few modern features, but at least, I should be able to provide the ability to manage the whole project directly from the IDE, including creating, loading, saving, compiling, and testing (running rather than debugging).

The good thing is that it's a project I do as a hobby so there is nothing to worry about even if nothing works. I'll probably share the code as soon as I feel I have something decent, at this time I am still just finding out how things work so the code is a little messy.

I have never used IRC, I have just joined and I am very grateful for your support, thank you!



danilos

  • Newbie
  • *
    • Posts: 27
    • Karma: +1/-0
Reply #4 on: March 06, 2021, 04:40:26 PM

This is a fantastic idea (no pun intended). I have been looking for an IDE for AROS since Murks IDE was abandoned http://archives.aros-exec.org/index.php?function=search&tool=simple. Please keep going because there is no such thing as not worth doing for AROS. Do you have the code open sourced somewhere on Github or Gitlab? Perhaps that way other people may be able to contribute.

Hi, I'll probably share the code as soon as I feel I have something decent, at this time I am still just finding out how things work so the code is a little messy but if there is interest I'll go ahead with the work. Thank you for the feedback :)



serk118uk

  • Member
  • ***
    • Posts: 186
    • Karma: +67/-0
Reply #5 on: March 08, 2021, 10:24:31 PM
I downloaded ALBA's pascal setup ISO to port mad-torrent but i could'd convert some of the units, maybe someone with greater could port mad-torrent to AROS..

https://github.com/bashkirtsevich-llc/mad-torrent

Lets Build Not Destroy...


magorium

  • Moderator
  • Legendary Member
  • *****
    • Posts: 566
    • Karma: +55/-0
  • Convicted non contributor
Reply #6 on: March 09, 2021, 05:13:16 PM
I downloaded ALBA's pascal setup ISO to port mad-torrent but i could'd convert some of the units, maybe someone with greater could port mad-torrent to AROS..

https://github.com/bashkirtsevich-llc/mad-torrent
Thank you for the link Serkan.

The project depends (heavily) on "Indy internet component suite" for Lazarus, which is not ported to AROS/Amiga, as well as depends on up to date openSSL libraries.

I do not see that happening any time soon  :-\


aGGreSSor

  • Member
  • ***
    • Posts: 183
    • Karma: +25/-0
    • russian transit
Reply #7 on: March 10, 2021, 07:00:23 AM
depends on up to date openSSL libraries. I do not see that happening any time soon  :-\
I was having fun with it. I have libcmt builded from AmiSSL 4.7
No need to build it, next in AmiSSL source then OpenSSL library.


magorium

  • Moderator
  • Legendary Member
  • *****
    • Posts: 566
    • Karma: +55/-0
  • Convicted non contributor
Reply #8 on: March 10, 2021, 04:59:12 PM
I was having fun with it. I have libcmt builded from AmiSSL 4.7
Please forgive my ignorance, but libcmt ... is that a wrapper for network functionality in order to uniformly support multiple network stack implementations ?

Quote
No need to build it, next in AmiSSL source then OpenSSL library.
Last time i checked amissl does not compile for AROS, are you saying that you are (currently) working on that ? Just want to make sure before making the wrong assumption(s).


aGGreSSor

  • Member
  • ***
    • Posts: 183
    • Karma: +25/-0
    • russian transit
Reply #9 on: March 10, 2021, 06:08:31 PM
Please forgive my ignorance, but libcmt ... is that a wrapper for network functionality in order to uniformly support multiple network stack implementations ?

Quote
LibCMT (Composable Memory Transactions Library) implements a transactional
model of concurrency, where deadlock is not possible and transactions are
composable (small transactions can be glued together to form larger
transactions without extra effort).

We are simple people. It's necessary to compile - we compile (if there is time).  :)
The AmiSSL package has a complex compilation in several stages and and one of its dependencies is libcmt.
In order to compile dependencies, you have to go through the code and make it compatible with the old gcc and libraries that are in AROS.
I did this for the first of the dependencies and built libcmt.a library.
If someone wants to continue compiling amissl, he can just add this libcmt directory (I have attached object files in archive) and compile further.
I accidentally screwed up my makefile and I have to start over to restore it.
If a person knows cmake well and has a couple of days off, he can do it.
I can give a corrected sources where I left off.


Last time i checked amissl does not compile for AROS, are you saying that you are (currently) working on that ? Just want to make sure before making the wrong assumption(s).
I'm not working on this. AmiSSL is a wrapper for OpenSSL. It's not an independent thing.
It relies on working code that needs adaptation for AROS: libcmt, openssl, crypto, etc

For example:
- AmiSSL (wrapper) - 29 files
- libcmt (dependency) - 98 files
- openssl (dependency) - 35+ files
- crypto (dependency) - a lot of monotonous files

Since it is compiled for AmigaOS, it means that it can be compiled for AROS in principle with minor changes.
It's a compilation with the completion of a large number of small files.
Long and monotonous work which is complicated by the fact that the makefiles are recreated and overwrite themselves.
No one did it for that very reason. I think wishful can put it together in a 2 days - week, his just have to start over a few times.  :-\
« Last Edit: March 10, 2021, 06:14:34 PM by aGGreSSor »



magorium

  • Moderator
  • Legendary Member
  • *****
    • Posts: 566
    • Karma: +55/-0
  • Convicted non contributor
Reply #10 on: March 10, 2021, 07:12:24 PM
Thank you aGGreSSor,

We are simple people. It's necessary to compile - we compile (if there is time).  :)
Sure, and i did read that description you quoted as i found it from my search to understand what this lib is about.

Problem (for me) is that i seem to be an even more simple soul than that :D

When i took a quick glance over the code (sofar), all i could see is a bunch of libc functions (which aros already has) and a bunch of network related functionality that invokes underlying networkstack functions (e.g. miami, termite etc).

So when i read the description of the library my lack of education makes me humble in that i have no clue as of what that mumbo jumbo in the quote tries to tell me  :P

What i interpreted is: hey, let's transfer something from a to b in a non linear manner and glue (in case there are multiple transfers required for a single transaction) those transfers together again in such a way that the system does not lock up and expose this behaviour when multiple different transactions take place at the  same time.

So.. in basics something similar as the UDP protocol ?

Quote
The AmiSSL package has a complex compilation in several stages and and one of its dependencies is libcmt.
Thank for the extensive description on how to port software.

I should have informed you that i'm familiar with the process of porting... I'm just not so c-minded other then 'porting' it to Pascal ;) (see for example: https://github.com/magorium/fpc-triforce/tree/master/PubTitles/RKRM , https://github.com/magorium/hvlpas or https://github.com/magorium/fpc-aros-trashcan/tree/master/pixelmachine )

so, ... unfortunately i am very familiar with how monotonous this is  :D


serk118uk

  • Member
  • ***
    • Posts: 186
    • Karma: +67/-0
Reply #11 on: March 11, 2021, 06:53:54 PM
I downloaded ALBA's pascal setup ISO to port mad-torrent but i could'd convert some of the units, maybe someone with greater could port mad-torrent to AROS..

https://github.com/bashkirtsevich-llc/mad-torrent
Thank you for the link Serkan.

The project depends (heavily) on "Indy internet component suite" for Lazarus, which is not ported to AROS/Amiga, as well as depends on up to date openSSL libraries.

I do not see that happening any time soon  :-\

Thank you..

Lets Build Not Destroy...


danilos

  • Newbie
  • *
    • Posts: 27
    • Karma: +1/-0
Reply #12 on: March 20, 2021, 04:24:37 PM
hi, this is the second late evening week of experimentation and I see there is a lot to be done even if using SynEdit. Together with some setbacks,  I made some progress, less than I was hoping but still some :)
I am going to post an executable as soon as I can compile for the Amiga the new version at:https://sourceforge.net/projects/aidea/
Compiling for the Amiga is still giving me some problems. I am aware that what is there is not particularly interesting at the moment, hopefully, I can produce something useful soon.



danilos

  • Newbie
  • *
    • Posts: 27
    • Karma: +1/-0
Reply #13 on: March 21, 2021, 12:37:39 AM
ok, I managed to compile for AROS, and then when I switched debugging off, could not compile anymore. I am not sure what I am doing wrong, anyway,  it looks like there are many things different in the AROS version, some flags like visible do not work (perhaps they have not been implemented) hints don't work, splitters don't work, alignment works differently and z-order might cut off some parts of the controls and panels. Of course, character sets are also very different and there are some issues with SynEdit, it works but you cannot see the cursor. The problem with the cursor in SynEdit might be due to the fact that I am using the latest builds for Lazarus and FPC, so maybe this version was not tested for the Amiga.

The app looks and works ok in Windows, less well in Linux, and even less well on the AMIGA with differences between the different OSs. In AROS it's very very fast.. at least on a VM, but with a lot of small issues that I don't know if they can be fixed. Because of the issue with debugging switched off, the EXE is huge, over 43MB in size now. An image of how it looks on AROS is attached. The EXE compressed in a lha archive is available from https://sourceforge.net/projects/aidea/files/



AMIGASYSTEM

  • Legendary Member
  • *****
    • Posts: 3279
    • Karma: +68/-1
  • AROS One
    • AROS One
Reply #14 on: March 21, 2021, 09:01:43 AM
Thanks danilos, a nice professional GUI !