[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Next version of ASIS in Debian



Vadim Godunko wrote:
> On 05/24/2011 02:00 PM, Ludovic Brenta wrote:
>> ASIS is tightly correlated with GCC, so we must find as close a match
as
>> possible between the ASIS and GCC sources.  This problem is mitigated,
>> but not eliminated, by libgnatvsn which we build from the GCC sources
>> for use in ASIS.
>>
> What is purpose of this library?

To address a configuration management problem.

The ASIS source distribution from AdaCore contains a copy of part of GNAT
which is slightly out of sync with both the GNAT GPL (same edition) and FSF
GCC sources.  In particular, since the FSF does not distribute ASIS, the
distance between the ASIS sources and the closest FSF GCC sources can be
significant.

The GPS (GNAT Programming Studio) sources contain another copy which is
slightly out of sync with all of the above.

The reason ASIS needs these parts of GNAT is so it can read the parse tree
files emitted by GNAT.  I don't exactly understand why GPS needs that as
well.

The solution I found, circa 2005, was to build a shared library from the
GCC sources and use it for ASIS, GPS and all the GNAT tools (gnatmake,
etc.).  Because this library contains the gnatvsn.ad[bs] and related units,
I called this library "libgnatvsn".  This has been a major success, i.e. no
bugs reported since then and a much simplified and more reliable build
process for ASIS and GPS.  libgnatvsn eliminates any impedance mismatch
between ASIS and GNAT.

I then repeated the same approach with a second library, libgnatprj, which
contains the Project Manager part of GNAT and is shared between all the
GNAT tools and GPS but not ASIS because ASIS does not yet understand
project files.

In the future, I would like gprbuild to also use these libraries instead
of its own, out-of-sync copies :/

I mentioned these libraries at FOSDEM 2011; you can watch the video on
YouTube; just search for my name :)

-- 
Ludovic Brenta.


Reply to: