Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2024-03

FP IDE sources

14 messages · 6 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Guillermo Martínez Jiménez

Hi Pascaloids,

I was looking for the FP IDE sources to check how it renders the ASCII table and manage the mouse input, but I'm not able to find them. They're not in GitLab, not in the source packages, not in the download pages. Lazarus Wiki has two pages "Textmode IDE" and "Textmode IDE development" but none of them have any link or reference of how to find the sources.

Where are they? Why aren't with the official source packages?

Regards,
Guillermo "Ñuño" Martínez

Reply by email

Karoly Balogh
to Guillermo Martínez Jiménez

Hi,

Guillermo Martínez Jiménez wrote 10 lines
Hi Pascaloids, I was looking for the FP IDE sources to check how it renders the ASCII table and manage the mouse input, but I'm not able to find them. They're not in GitLab, not in the source packages, not in the download pages. Lazarus Wiki has two pages "Textmode IDE" and "Textmode IDE development" but none of them have any link or reference of how to find the sources. Where are they? Why aren't with the official source packages?

But they are. The IDE code is here:
https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/ide

It also depends on Free Vision, which is here:
https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/fv

The ASCII table code is part of Free Vision, and it's here: https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fv/src/asciitab.pas

Charlie

Reply by email

Marco van de Voort
to Karoly Balogh

Op 13-3-2024 om 21:34 schreef Karoly Balogh via fpc-pascal:

Show quoted text 12 lines
H Where are they? Why aren't with the official source packages? But they are. The IDE code is here: https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/ide It also depends on Free Vision, which is here: https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/fv The ASCII table code is part of Free Vision, and it's here: https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fv/src/asciitab.pas

And the mouse-keyboard-video drivers are in package rtl-console, e.g. for windows

https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/rtl-console/src/win

Reply by email

Guillermo Martínez Jiménez
to Marco van de Voort

Thanks, Karoly and Marco.

I thought "packages" were libraries not applications, as there is an "utils" directory with programs.

Thankyou again,
Guillermo Martínez.

El Wed, 13 Mar 2024 22:45:19 +0100
Marco van de Voort via fpc-pascal

Show quoted text 22 lines
Op 13-3-2024 om 21:34 schreef Karoly Balogh via fpc-pascal: > H > > Where are they? Why aren't with the official source packages? > But they are. The IDE code is here: > https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/ide > > It also depends on Free Vision, which is here: > https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/fv > > The ASCII table code is part of Free Vision, and it's here: > https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fv/src/asciitab.pas > And the mouse-keyboard-video drivers are in package rtl-console, e.g. for windows https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/rtl-console/src/win _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Marco van de Voort
to Guillermo Martínez Jiménez

Op 14-3-2024 om 09:34 schreef Guillermo Martínez Jiménez via fpc-pascal:

Thanks, Karoly and Marco. I thought "packages" were libraries not applications, as there is an "utils" directory with programs.

Roughly the RTL is a base set of units needed for the compiler itself. When the compiler bootstraps it is compiled several times.

Most units not needed for the compiler have thus moved out into packages that is not compiled multiple time, and directories in packages/ can be compiled in parallel to some degree.

Reply by email

Tomas Hajny
to Guillermo Martínez Jiménez: Thanks, Karoly and Marco. I thought "packages" were libraries not applications, as there…
Guillermo Martínez Jiménez wrote
Thanks, Karoly and Marco. I thought "packages" were libraries not applications, as there is an "utils" directory with programs.

Well, yes, it's somewhat confusing admittedly. The IDE sources used to be located at the higher level (i.e. next to the packages, rtl, etc.) in the past. They were moved to packages as part of the transition to using fpmake for compilation of most of FPC sources in order to allow having it compiled in parallel to other big packages (since IDE is probably the biggest one taking the longest time to compile). Having it in packages allows compiling it in parallel to other packages; since utils are compiled independently (and much quicker), moving IDE in utils would result in longer compilation time overall (if parallel compilation is allowed).

Tomas

Show quoted text 30 lines
El Wed, 13 Mar 2024 22:45:19 +0100 Marco van de Voort via fpc-pascal escribió: > Op 13-3-2024 om 21:34 schreef Karoly Balogh via fpc-pascal: > > H > > > > Where are they? Why aren't with the official source packages? > > But they are. The IDE code is here: > > https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/ide > > > > It also depends on Free Vision, which is here: > > https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/fv > > > > The ASCII table code is part of Free Vision, and it's here: > > https://gitlab.com/freepascal.org/fpc/source/-/blob/main/packages/fv/src/asciitab.pas > > > And the mouse-keyboard-video drivers are in package rtl-console, e.g. > for windows > > > https://gitlab.com/freepascal.org/fpc/source/-/tree/main/packages/rtl-console/src/win > > _______________________________________________ > fpc-pascal maillist - > https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply by email

Karoly Balogh
to Guillermo Martínez Jiménez: Thanks, Karoly and Marco. I thought "packages" were libraries not applications, as there…

Hi,

Guillermo Martínez Jiménez wrote
I thought "packages" were libraries not applications, as there is an "utils" directory with programs.

I agree, I'm also not very fond of the IDE being in packages, but most of the team considers it a legacy piece of code (which it is, no argument there), and at least this way it doesn't need constant special treatment, unlike when it was in the root folder of the repo under "ide". It's less "in the way".

However, Free Vision, and with that the ASCII table and mouse handling was always (or for a very long time) in packages. :)

Charlie

Reply by email

Michael Van Canneyt
to Karoly Balogh
Karoly Balogh wrote 12 lines
Hi, On Thu, 14 Mar 2024, Guillermo Martínez Jiménez via fpc-pascal wrote: > I thought "packages" were libraries not applications, as there is an > "utils" directory with programs. I agree, I'm also not very fond of the IDE being in packages, but most of the team considers it a legacy piece of code (which it is, no argument there), and at least this way it doesn't need constant special treatment, unlike when it was in the root folder of the repo under "ide". It's less "in the way".

Still, it is more logical to place it under utils, with the rest of the programs.

The argument about the time to compile seems simply false to me:

If you consider the FPC toplevel 'make all' as the only command to issue, then you may win some time, although I doubt it will be that much.

But 99% of the time, you don't need to recompile the utilities.

I certainly do not:
I usually do a make cycle followed by a compilation of the rtl/packages with debug info.

So if we moved the IDE to utils where it logically belongs, I would actually be winning time, contrary to the argument for having it in packages.

To me it therefore seems a better idea to move the IDE to utils, and to have a toplevel make command that does the same as 'make all' simply without the utilities. Or have a 'NOUTILS=1' define.

Michael.

Reply by email

Marco van de Voort
to Michael Van Canneyt

Op 14-3-2024 om 11:04 schreef Michael Van Canneyt via fpc-pascal:

Show quoted text 7 lines
To me it therefore seems a better idea to move the IDE to utils, and to have a toplevel make command that does the same as 'make all' simply without the utilities. Or have a 'NOUTILS=1' define.

Or let fpmake simply build the union of packages and utils in parallel. So separate directories, but one build stage

Reply by email

Tomas Hajny
to Marco van de Voort
Marco van de Voort wrote 11 lines
Op 14-3-2024 om 11:04 schreef Michael Van Canneyt via fpc-pascal: > > > To me it therefore seems a better idea to move the IDE to utils, and > to have a > toplevel make command that does the same as 'make all' simply without > the > utilities. Or have a 'NOUTILS=1' define. > Or let fpmake simply build the union of packages and utils in parallel. So separate directories, but one build stage

Well, whatever. I remember having raised the same question in the past (indeed - on the 5th of February 2020 at 1:30am ;-) on the core list) and this is what I got... I even explicity raised the point also mentioned by Michael now (quoting my follow-up mail on the same day):

"OK, that would be addressed in case of inclusion under utils as well. Even more so, actually - users who want to recompile packages for whatever reason (e.g. to have debug information included as discussed here recently ;-) ) aren't probably interested in waiting for rebuilding of the IDE at all."

However, Michael refused to move it to utils at that point in time in order not to delay the release. ;-)

Tomas

Reply by email

Marco van de Voort
to Tomas Hajny

Op 14-3-2024 om 11:52 schreef Tomas Hajny via fpc-pascal:

Show quoted text 11 lines
"OK, that would be addressed in case of inclusion under utils as well. Even more so, actually - users who want to recompile packages for whatever reason (e.g. to have debug information included as discussed here recently ;-) ) aren't probably interested in waiting for rebuilding of the IDE at all." However, Michael refused to move it to utils at that point in time in order not to delay the release. ;-)

Note that I don't feel very strong about moving it to utils, frankly I don't care. There is also the matter than the IDE is not the only one generating installed programs, some other packages (like package CHM) that also generate binaries, would have to be split then (!?!?)

My point was more that _if_ it is to be moved, parallel compilation should be retained, and I gave a possible direction

Major buildsystem work is preferably done just before a new major release branch is split off trunk, but by then 3.2.0 was probably already branched off.   Rearrangements during a release cycle makes merging back to fixes hard for a long period.

Reply by email

Michael Van Canneyt
to Tomas Hajny: Well, whatever. I remember having raised the same question in the past (indeed - on the…
Tomas Hajny wrote 24 lines
On 2024-03-14 11:06, Marco van de Voort via fpc-pascal wrote: > Op 14-3-2024 om 11:04 schreef Michael Van Canneyt via fpc-pascal: >> >> >> To me it therefore seems a better idea to move the IDE to utils, and to >> have a >> toplevel make command that does the same as 'make all' simply without the >> utilities. Or have a 'NOUTILS=1' define. >> > Or let fpmake simply build the union of packages and utils in > parallel. So separate directories, but one build stage Well, whatever. I remember having raised the same question in the past (indeed - on the 5th of February 2020 at 1:30am ;-) on the core list) and this is what I got... I even explicity raised the point also mentioned by Michael now (quoting my follow-up mail on the same day): "OK, that would be addressed in case of inclusion under utils as well. Even more so, actually - users who want to recompile packages for whatever reason (e.g. to have debug information included as discussed here recently ;-) ) aren't probably interested in waiting for rebuilding of the IDE at all." However, Michael refused to move it to utils at that point in time in order not to delay the release. ;-)

Given the delay we're experiencing on 3.2.4, my refusal was not without reason :-)

However, if there is agreement to do so, maybe we can move it in trunk.

Michael.

Reply by email

Florian Klämpfl
to Michael Van Canneyt: Still, it is more logical to place it under utils, with the rest of the programs. The…
Michael Van Canneyt wrote 26 lines
On Thu, 14 Mar 2024, Karoly Balogh via fpc-pascal wrote: > Hi, > > On Thu, 14 Mar 2024, Guillermo Martínez Jiménez via fpc-pascal wrote: > >> I thought "packages" were libraries not applications, as there is an >> "utils" directory with programs. > > I agree, I'm also not very fond of the IDE being in packages, but most of > the team considers it a legacy piece of code (which it is, no argument > there), and at least this way it doesn't need constant special treatment, > unlike when it was in the root folder of the repo under "ide". It's less > "in the way". Still, it is more logical to place it under utils, with the rest of the programs. The argument about the time to compile seems simply false to me: If you consider the FPC toplevel 'make all' as the only command to issue, then you may win some time, although I doubt it will be that much. But 99% of the time, you don't need to recompile the utilities.

I do always a make all as it takes only a few more seconds than a make cycle and then I am sure everything builds.

Show quoted text 8 lines
I certainly do not: I usually do a make cycle followed by a compilation of the rtl/packages with debug info. So if we moved the IDE to utils where it logically belongs, I would actually be winning time, contrary to the argument for having it in packages.

As I moved it, my thinking was that it is not really a utility but a package (in particular in the sense of the installer). And having executables is also the case for other packages.

Show quoted text 6 lines
To me it therefore seems a better idea to move the IDE to utils, and to have a toplevel make command that does the same as 'make all' simply without the utilities. Or have a 'NOUTILS=1' define.

It increases build time if one want to test that everything builds with no real gain and being not a utility?

Reply by email

Michael Van Canneyt
to Florian Klämpfl
Florian Klämpfl wrote 12 lines
> Still, it is more logical to place it under utils, with the rest of the > programs. > > The argument about the time to compile seems simply false to me: > > If you consider the FPC toplevel 'make all' as the only command to > issue, then you may win some time, although I doubt it will be that much. > > But 99% of the time, you don't need to recompile the utilities. I do always a make all as it takes only a few more seconds than a make cycle and then I am sure everything builds.

You must have a very fast PC, here the difference is very measurable.

1:06 for a 'make cycle'
2:05 for a toplevel 'make all'.

So almost a minute difference. This is with -j 4 and the according fpmakeopt.

Show quoted text 11 lines
> I certainly do not: > I usually do a make cycle followed by a compilation of the rtl/packages > with debug info. > > So if we moved the IDE to utils where it logically belongs, I would > actually be winning time, contrary to the argument for having it in > packages. As I moved it, my thinking was that it is not really a utility but a package (in particular in the sense of the installer). And having executables is also the case for other packages.

Here I differ in opinion: Normally packages do not constitute a program. If that was the criterium, all utils could be put in the packages directory.

It may be that some packages have a demo program, but the package itself is normally just a set of units. I know of no package other that is a program. chm has some tools but IMO they are also misplaced and should be in utils.

So the IDE - for me - is definitely a utility. Given the times indicated above, it would make a considerable difference to move it.

Michael.

Reply by email