[fpc-pascal] Debug-Adapter-Protocol support for fpDebug

Martin Frb lazarus at mfriebe.de
Sun Apr 26 21:22:53 CEST 2020


On 26/04/2020 20:58, Mattias Gaertner via fpc-pascal wrote:
> On Sat, 25 Apr 2020 15:49:30 +0200
> Martin Frb <lazarus at mfriebe.de> wrote:
>
>> On 23/04/2020 22:10, Joost van der Sluis wrote:
>>> But maybe it should become a separate package now. Lazarus can use
>>> is as a dependency. We'll see.
>> That would then reverse the burden....
>>
>> As it is part of bigide, it must be shipped with the installer.
>> And also having it in the Lazarus repro means that there is no issue
>> with version incompatibilities.
> Good point.
>
> Maybe fppkg or fpcupdelux can support a more granular lazarus.

Having a package in the Lazarus svn, or outside makes quite a difference.

The debugger packages in the IDE relay sometimes on the exact revision 
of fpdebug (and I assume codetool is not so different in that).
Sometimes the interface between them will have to change. [1]

People using trunk IDE then need to always know the correct revision of 
fpdebug.
But even if they can use older/newer versions => see below what happens 
if they are not bound to one fixed correct version.


For installation packages (release installers), someone would need to 
rewrite the build scripts. But that is not all.
Currently the next version is getting tested in trunk. All testers test 
with the correct package version mix.
Once we can no longer be sure that trunk users used the correct version 
of externals, we need a lot more testing of the release builds.
(This is not just some external package, the stability of the IDE itself 
depends on it)


Further more, it is not only the IDE that relies on fpdebug.
fpdebug relies on the Lazarus packages DebuggerIntf and LclBase.

Given the above, taking fpdebug out of the Lazarus svn would (as it is 
currently) would probably make it more fragile.

===================
[1]
I can foresee a few things about PascalBuilder.
Currently the entire formatting of values happens in fpdebug (not even 
LazDebuggerFp, but fpdebug).
However, some part of the formatting belong in the frontend.
Example: A watch of an integer, can be shown decimal or hex. That is 
something the frontend should do. It currently happens in fpdebug.
There is probably more.

Of course this poses a problem for external projects, which face the 
reverse problem.
But either one side needs to use specific revisions. Or a fork is needed.



More information about the fpc-pascal mailing list