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

Re: QtAda & Debian



Ludovic Brenta
<ludovic@ludovic-brenta.org> writes:

> This is, at the moment, the quickest and easiest solution.  You can use
> it temporarily until gnat-4.8 reaches sid.

OK. I'll try that (as well).

> That is no easy task; it essentially boils down to gnat-4.7 or even
> gnat-4.8.  I've produced both packages and uploaded them to Debian in
> January 2013; unfortunately they still have to be reviewed and accepted
> bu a human volunteer in the Debian release team.  The release team is
> now busy stabilizing testing so it becomes the next stable release.  So,
> route b) means patience for you, but your patience will eventually be
> rewarded by a fully supported and integrated gnat-4.8 in Debian.  By the
> way, Debian is usually released "when it is ready", so don't ask anyone
> for an estimated release date :)

I'm aware of it. However, after spending more than 10yrs with Gentoo &
Arch, now I'm *very* happy using Debian (Sid) where everything 'just
works' with a minimum fuss, so I hope I'll stay with both Debian & Ada
for quite some time in the future.

> or c) modify the sources of QtAda 3.1 to work around the bug in GNAT.

I do not know much about Ada's toolchain, so not sure how much I could
do.

> Quite often, it is easy to work around compiler bugs with only very
> small changes to the sources.  

For now I can tell that gprbuild is not aware of gcc-4.7 so gprconfig
does not detect 4.7.x gcc compiler and would have to be updated.

> Then again, without any specifics about the bug that QtAda triggered,
> I cannot say much more.

Here is the snippet:

Making all in qt_ada
make[2]: Ulazim u direktorij `/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada'
Making all in tasking
make[3]: Ulazim u direktorij
`/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking'
../../../source/tools/amoc/amoc -I. -I. -I../../../source/core
-I../../../source/core -I../../../source/gui -I../../../source/gui
-I../../../source/sql -I../../../source/sql ./main_windows.ads
../../../source/tools/amoc/amoc -I. -I. -I../../../source/core
-I../../../source/core -I../../../source/gui -I../../../source/gui
-I../../../source/sql -I../../../source/sql ./emitters.ads
gnatmake -j2 -p -aP../../../gnat -aP../../../gnat -Pexamples_qt_ada_tasking.gpr
object directory
"/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking/.objs" created
for project examples_qt_ada_tasking gcc-4.6 -c -g -O2 -gnat05 -gnatW8
-I- -gnatA
/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking/main.adb gcc-4.6
-c -g -O2 -gnat05 -gnatW8 -I- -gnatA
/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking/main_windows.adb
main_windows.ads:49:11: warning: unrecognized pragma "Q_Slot"
main_windows.ads:52:11: warning: unrecognized pragma "Q_Slot"
main_windows.ads:55:11: warning: unrecognized pragma "Q_Slot"
gcc-4.6 -c -g -O2 -gnat05 -gnatW8 -I- -gnatA
/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking/main_windows-moc.adb
gcc-4.6 -c -g -O2 -gnat05 -gnatW8 -I- -gnatA
/home/gour/tmp/qtada-gpl-3.1.0/examples/qt_ada/tasking/jobs.adb
+===========================GNAT BUG DETECTED==============================+
| 4.6.3 (x86_64-pc-linux-gnu) Assert_Failure sem_ch3.adb:13325             |
| Error detected at qt_ada-object_unchecked_deallocation.ads:34:9 [jobs.adb:37:7]|
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact gcc-4.6 or gnatmake command that you entered.          |
| Also include sources listed below in gnatchop format                     |
| (concatenated together with no headers between files).                   |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

> or d) revert to an older version of QtAda that compiles with gnat-4.6.

That would be just temporary solution...

> If you're "starting with Ada" and also starting with Qt, then it is
> likely that you won't miss the more advanced features of QtAda 3.1.

That's true.

> or e) try the other QtAda binding by Leonid Dulman, Qt5Ada
>
> this might compile with gnat-4.6 out of the box.  See
> http://users1.jabry.com/adastudio/index.html (and the video demo on
> YouTube linked from there)

I'll explore that as well 'cause it's normal to expect to use Qt5.

> of f) try the other, other QtAda binding (to Qt 4.2) by Yves Bailly
>
> Seems dead upstream but might still work. http://qt4ada.sourceforge.net/ 

Now I just wonder why there is so much fragmentation for Qt bindings...

> If you would like to help Debian's infrastructure, I would suggest that
> the best way is for you to learn how to package software and offer to
> package one of the QtAdas for Debian.

Yeah, I agree. It looks it's time to stop being lazy and just enjoying
Debian and contribute something back to the community. (Gentoo & Arch
were forcing me to submit some build very soon. :-) ).

> I realize I may have misunderstood what you wrote.  If you want to use
> the existing Debian infrastructure as much as possible, then maybe you
> should consider using GtkAda instead of QtAda.  GtkAda is already
> packaged for Debian, so it may be worthwhile for you to sacrifice Qt
> for the comfort of "aptitude install libgtkada2.24.1-dev" and forget
> about all your compiler woes :)

Well, personally I like GTK and run gtk-based desktop (Xfce), but for
writing multi-platform desktop application, Qt (cosidering there are no
wxAda bindings), seems to be clear winner 'cause GTK dev team is really
limited for non-Linux platforms.

> But I'm sure you already knew that and still prefer QtAda.  I just
> wanted to make not to overlook any possible solution to your problem :)

Thank you and I hope you understand the context of my QtAda choice. ;)


Sincerely,
Gour

-- 
Just try to learn the truth by approaching a spiritual master. 
Inquire from him submissively and render service unto him. 
The self-realized souls can impart knowledge unto you because 
they have seen the truth.


Reply to: