Sign in Join

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

Mailing lists / fpc-devel / 2004-08

A way to speed up make cycle: A smaller rtl

7 messages · 4 people ·

Reply by email Subscribe to this list Your subscription

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

Vincent Snijders

Hi,

Lately a number of units were added to the rtl, e.g. strutils, matrix and convutils. AFAIK these units are not needed by the compiler, but they still are compiled and recompiled in the make cycle of the compiler.

Why don't you spilt up the rtl in a part needed by the compiler and the other units? That way those utility units don't need to be recompiled so much. You can also move them to the FCL or packages.

Another option may be to have a special make target for the rtl, that only makes the units for the RTL (e.g make compilerrtl). That way the RTL can remain as feature-rich as it is, but it doesn't slow down the compilation of a new compiler.

Regards,
Vincent.
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

Reply by email

Michael Van Canneyt
to Vincent Snijders
Vincent Snijders wrote 15 lines
Hi, Lately a number of units were added to the rtl, e.g. strutils, matrix and convutils. AFAIK these units are not needed by the compiler, but they still are compiled and recompiled in the make cycle of the compiler. Why don't you spilt up the rtl in a part needed by the compiler and the other units? That way those utility units don't need to be recompiled so much. You can also move them to the FCL or packages. Another option may be to have a special make target for the rtl, that only makes the units for the RTL (e.g make compilerrtl). That way the RTL can remain as feature-rich as it is, but it doesn't slow down the compilation of a new compiler.

Actually, I once already proposed this last option to the core group. I believe the argument was at that time that most computers nowadays are fast enough to do the whole cycle so fast that the difference is neglectible.

But feel free to submit a patch, I'm sure that, once committed, no-one will object ;-)

The only thing is that after a make cycle, a full make will still be needed before making the installation zip...

Michael.

Reply by email

Vincent Snijders
Show quoted text 29 lines
-----Oorspronkelijk bericht----- Van: Michael Van Canneyt On Thu, 5 Aug 2004, Vincent Snijders wrote: > Hi, > > Lately a number of units were added to the rtl, e.g. strutils, matrix > and convutils. AFAIK these units are not needed by the compiler, but > they still are compiled and recompiled in the make cycle of the > compiler. > > Why don't you spilt up the rtl in a part needed by the compiler and > the other units? That way those utility units don't need to be > recompiled so much. You can also move them to the FCL or packages. > > Another option may be to have a special make target for the rtl, that > only makes the units for the RTL (e.g make compilerrtl). That way the > RTL can remain as feature-rich as it is, but it doesn't slow down the > compilation of a new compiler. Actually, I once already proposed this last option to the core group. I believe the argument was at that time that most computers nowadays are fast enough to do the whole cycle so fast that the difference is neglectible.

From one point of view it is a good thing if core developers have fast computers (faster recompile means faster bug-fixing), but this is a downside. Anyway I think a 10% increase in speed would be ok.

But feel free to submit a patch, I'm sure that, once committed, no-one will object ;-)

I don't feel I am up to it.

The only thing is that after a make cycle, a full make will still be needed before making the installation zip...

That last thing is not a drawback in my situation, as I compiler the compiler without debug information, but do want debug information for all (other) units, including the RTL. I have to rebuild the RTL anyway.

Vincent.
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

Reply by email

Jonas Maebe
to Michael Van Canneyt: Actually, I once already proposed this last option to the core group. I believe the…
Michael Van Canneyt wrote 5 lines
Actually, I once already proposed this last option to the core group. I believe the argument was at that time that most computers nowadays are fast enough to do the whole cycle so fast that the difference is neglectible.

Not only that, but also that when you cycle, you usually do that because you changed something and you want to make sure that your change did not break anything.

Jonas

Reply by email

Marco van de Voort
to Jonas Maebe
Show quoted text 11 lines
On 5 aug 2004, at 15:36, Michael Van Canneyt wrote: > Actually, I once already proposed this last option to the core group. > I believe the argument was at that time that most computers nowadays > are > fast enough to do the whole cycle so fast that the difference is > neglectible. Not only that, but also that when you cycle, you usually do that because you changed something and you want to make sure that your change did not break anything.

In such cases do make all?

Reply by email

Vincent Snijders
Show quoted text 15 lines
-----Oorspronkelijk bericht----- Van: Marco van de Voort > On 5 aug 2004, at 15:36, Michael Van Canneyt wrote: > > > Actually, I once already proposed this last option to the core > > group. I believe the argument was at that time that most computers > > nowadays are fast enough to do the whole cycle so fast that the > > difference is neglectible. > > Not only that, but also that when you cycle, you usually do that > because you changed something and you want to make sure that your > change did not break anything. In such cases do make all?

Or run the test suite.

Vincent.
###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

Reply by email

Jonas Maebe
to Marco van de Voort: In such cases do make all?
Marco van de Voort wrote 5 lines
> Not only that, but also that when you cycle, you usually do that > because you changed something and you want to make sure that your > change did not break anything. In such cases do make all?

In such a case the test suite should actually be run. But make cycle is the first test and it's nice if it already catches a lot of things (though I'm not entirely happy myself with the continued bloating of the base rtl).

Jonas

Reply by email