[Lazarus] fpspreadsheet bug - and fix

Michael Van Canneyt michael at freepascal.org
Wed Oct 22 23:17:02 CEST 2014


Hi,

No idea who is the current maintainer of fpspreadsheet, but to those involved:

I updated - after a long time - my version of fpspreadsheet.

There is a bug (apart from breaking backwards compatibility) which makes it difficult to use:

fpexprparser depends on unit fpsfunc.
fpsfunc depends on fpsexprparser.

This circular dependency creates a problem:

When I compile the fpspreadsheet package, it compiles.

When I compile my project that uses fpspreadsheet, the compiler complains it cannot compile fpexprparser,
that it must recompile it because fpsfunc changed.

I then removed the dependency of fpsexprparser on unit fpsfunc by simply removing the 
unit from the uses clause.

After that everything compiles without errors: the package and the project,
making me wonder why this circular dependency was introduced to begin with ?

Anyway:

May I please suggest that the fpexprparser unit is changed in this manner permanently ?
I prefer to work with third-party sources as-is.


As a side note, I found that fpsexprparser is a fork from the exprparser unit in the FCL.
After some studying, it seems to me that with little effort, the FCL version could have 
been changed to suit the needs of the fpspreadsheet project, making a fork superfluous: 
a simple descendent would have been sufficient...

Is there a reason this was not done ? 
After all, improvements to existing components are always welcome...

Michael.




More information about the Lazarus mailing list