Please migrate to Guile 3.0

Bug #1782306 reported by أحمد المحمودي (Ahmed El-Mahmoudy)
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gEDA
Triaged
Low
Unassigned

Bug Description

Please migrate to Guile 3.0
Thanks

Revision history for this message
Roland Lutz (rlutz) wrote :

Since commit 83e8336, gEDA/gaf builds with Guile 2.0 or Guile 2.2.

I haven't tested it with Guile 2.2 yet, but the only code snippet known not to be portable isn't part of gEDA/gaf any more and several people have used gEDA/gaf 1.10.0 with Guile 2.2 without problems, so I assume there's nothing more to do. I'm still leaving this bug open until this has been verified.

Changed in geda:
status: New → Triaged
Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

I tried to build afainst Guile 2.2, but xorn failed to build as the configure script is looking for Guile 2.0 only:
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.10])

I patched it to build against Guile 2.2 (patch attached), yet 'make check' failed on the following tests:

FAIL: cpython/snippets/guile
============================

Traceback (most recent call last):
  File "./cpython/snippets/guile.py", line 17, in <module>
    import xorn.guile
ImportError: /builds/electronics-team/geda-gaf/debian/output/geda-gaf-1.10.0/xorn/src/cpython/guile/.libs/guilemodule.so: undefined symbol: scm_frame_procedure
FAIL cpython/snippets/guile.py (exit status: 1)

FAIL: cpython/guile
===================

Traceback (most recent call last):
  File "./cpython/guile.py", line 18, in <module>
    import xorn.guile
ImportError: /builds/electronics-team/geda-gaf/debian/output/geda-gaf-1.10.0/xorn/src/cpython/guile/.libs/guilemodule.so: undefined symbol: scm_frame_procedure
FAIL cpython/guile.py (exit status: 1)

Full build log can be found on:
https://salsa.debian.org/electronics-team/geda-gaf/-/jobs/408237/raw

Revision history for this message
Bryan Kadzban (bkadzban1) wrote :

So according to the guile-2.2 docs, here:

https://www.gnu.org/software/guile/docs/docs-2.2/guile-ref/Frames.html#Frames

the scm_frame_procedure function is now named scm_frame_procedure_name instead.

I don't have easy access to the sources to generate or test a patch at the moment, but that might be helpful to someone who does.

Revision history for this message
Roland Lutz (rlutz) wrote :

The function ‘scm_frame_procedure_name’ conceptually replaces ‘scm_frame_procedure’, but there's an important difference: the former returns the name of the procedure while the latter returns the procedure itself.

In order to create a Guile representation of a Python function, the Python <-> Guile interface code creates a Guile gsubr and keeps an association between the Guile gsubr and the Python function. When the gsubr is called later, the interface code looks up the matching Python function and calls it. See py2scm.c (search for ‘gsubr_alist’):

https://github.com/rlutz/geda-gaf/blob/1.10.0-20191008/xorn/src/cpython/guile/py2scm.c#L62

This only works if ‘call_callable’ can determine which gsubr object it has been called as.

It may be possible to work around the problem by using unique function names, but that feels like an ugly hack; so staying with Guile 2.0 appears to be the best option right now.

Revision history for this message
أحمد المحمودي (Ahmed El-Mahmoudy) (aelmahmoudy) wrote :

Please migrate to Guile 3.0

description: updated
summary: - Please migrate to Guile 2.2
+ Please migrate to Guile 3.0
Revision history for this message
Roland Lutz (rlutz) wrote :

As of commit 12f0fa40615e322cd0334f70accb04d3ef6e8b5c, gEDA/gaf now uses Guile 2.2.

Changed in geda:
importance: Undecided → Low
Revision history for this message
John (john-jcoppens) wrote :

I had guile-2.0 installed, but installing slackbuild command for guile-3.0 seems to have removed all remnants of pre-3.0 versions.

So I second the motion to pass over to guile-3.0

Revision history for this message
Roland Lutz (rlutz) wrote :

This seems to me like a bug in the Guile installation routine.

Have you reported this as a bug with the slackbuild package?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.