Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with SWI Prolog's new stable PPA version 9.0.0 (Linux Ubuntu) #55

Closed
hakank opened this issue Nov 25, 2022 · 4 comments
Closed

Comments

@hakank
Copy link

hakank commented Nov 25, 2022

Yesterday, SWI Prolog's stable PPA version was updated to version 9.0.0 (from v8.4.3) and now Popper does work:

$ python3 popper.py examples/alleven
[Thread 1 (main) at Fri Nov 25 10:52:17 2022] /build/swi-prolog-hvyroz/swi-prolog-9.0.0-1-g0757fd884/src/pl-fli.c:2637: PL_put_chars: Assertion failed: 0
C-stack trace labeled "assert_fail":
  [0] PL_scan_options() at ??:? [0x7f692f994a98]
  [1] PL_unify_mpq() at ??:? [0x7f692f951fdf]
  [2] PL_put_chars() at ??:? [0x7f692f97582d]
  [3] ffi_call_unix64() at ??:? [0x7f6941588dec]
  [4] ffi_call() at ??:? [0x7f6941587f55]
  [5] _call_function_pointer() at /home/hakank/python/Python-3.7.6/Modules/_ctypes/callproc.c:850 [0x7f693dce0079]
  [6] PyCFuncPtr_call() at /home/hakank/python/Python-3.7.6/Modules/_ctypes/_ctypes.c:4017 [0x7f693dcdd0c3]
  [7] python3(_PyObject_FastCallKeywords+0x92) [0x561a29bf4ea2]
  [8] python3(_PyEval_EvalFrameDefault+0x4935) [0x561a29c65e75]
  [9] python3(+0x1c4658) [0x561a29cbf658]
  [10] python3(+0x16526a) [0x561a29c6026a]
  [11] python3(_PyMethodDef_RawFastCallKeywords+0xe9) [0x561a29bf4529]
  [12] python3(_PyCFunction_FastCallKeywords+0x20) [0x561a29bf4420]
  [13] python3(_PyEval_EvalFrameDefault+0x4643) [0x561a29c65b83]
  [14] python3(_PyEval_EvalCodeWithName+0x2de) [0x561a29c60afe]
  [15] python3(_PyFunction_FastCallKeywords+0x1bc) [0x561a29bf607c]
  [16] python3(_PyEval_EvalFrameDefault+0x49eb) [0x561a29c65f2b]
  [17] python3(_PyObject_Call_Prepend+0x2db) [0x561a29bf68fb]
  [18] python3(+0x13aea9) [0x561a29c35ea9]
  [19] python3(+0x137b94) [0x561a29c32b94]
  [20] python3(_PyObject_FastCallKeywords+0x92) [0x561a29bf4ea2]
  [21] python3(_PyEval_EvalFrameDefault+0x4935) [0x561a29c65e75]
  [22] python3(_PyEval_EvalCodeWithName+0x6a3) [0x561a29c60ec3]
  [23] python3(_PyFunction_FastCallDict+0x300) [0x561a29b5a600]
  [24] python3(_PyEval_EvalFrameDefault+0x1bc7) [0x561a29c63107]
  [25] python3(_PyEval_EvalCodeWithName+0x6a3) [0x561a29c60ec3]
  [26] python3(_PyFunction_FastCallKeywords+0x248) [0x561a29bf6108]
  [27] python3(_PyEval_EvalFrameDefault+0x13ad) [0x561a29c628ed]
  [28] python3(_PyFunction_FastCallKeywords+0xf2) [0x561a29bf5fb2]
  [29] python3(_PyEval_EvalFrameDefault+0x64d) [0x561a29c61b8d]
  [30] python3(_PyEval_EvalCodeWithName+0x2de) [0x561a29c60afe]
  [31] python3(PyEval_EvalCode+0x23) [0x561a29c60813]
  [32] python3(+0x208f22) [0x561a29d03f22]
  [33] python3(PyRun_FileExFlags+0x9d) [0x561a29d042ed]
  [34] python3(PyRun_SimpleFileExFlags+0x1b6) [0x561a29d040f6]
  [35] python3(+0x1dfe44) [0x561a29cdae44]
  [36] python3(_Py_UnixMain+0x3c) [0x561a29cdaadc]
addr2line: DWARF error: section .debug_info is larger than its filesize! (0x93ef57 vs 0x530ea0)
  [37] __libc_start_main() at ??:? [0x7f6942d77083]
  [38] python3(_start+0x2a) [0x561a29cda9ba]
[1]    44398 abort (core dumped)  python3 popper.py examples/alleven

So it seems that there is a problem with the pyswip package (again), and I'm trying to find a way to downgrade to the previous SWI Prolog stable PPA version.

(I also tried to downgrade the pyswip version, but all the versions I tried - 0.2,9, 0..2.10, 0.2.11 - yield some error.)

@hakank
Copy link
Author

hakank commented Nov 25, 2022

I asked about downgrading at the SWI Prolog forum: https://swi-prolog.discourse.group/t/best-easiest-way-to-downgrade-to-version-8-4-3-on-linux-ubuntu-20-04/5966 .

For me it worked by downloading the appropriate .deb files from https://launchpad.net/~swi-prolog/+archive/ubuntu/stable/+build/24099974 (the focal distribution for Ubuntu 20.05) and then installing them in correct order:

sudo dpkg -i swi-prolog-nox_8.4.3-1-g10c53c6e3-focalppa2_amd64.deb
sudo dpkg -i swi-prolog-x_8.4.3-1-g10c53c6e3-focalppa2_amd64.deb
sudo dpkg -i swi-prolog_8.4.3-1-g10c53c6e3-focalppa2_amd64.deb

Even if this fix works, it's an issue that I hope will be fixed so we can use the current stable SWI Prolog version.

@hakank
Copy link
Author

hakank commented Nov 27, 2022

There is a simple fix that seems to solve the problem (which I reported in https://swi-prolog.discourse.group/t/best-easiest-way-to-downgrade-to-version-8-4-3-on-linux-ubuntu-20-04/5966/9), namely to change the pyswip source according to this diff:

diff --git a/pyswip/core.py b/pyswip/core.py
index 33f7035..0bb992f 100644
--- a/pyswip/core.py
+++ b/pyswip/core.py
@@ -584,7 +584,7 @@ PL_VERSION_VM               =6      # VM signature
 PL_VERSION_BUILT_IN    =7      # Built-in predicate signature
 
 try:
-    PL_version = _lib.PL_version
+    PL_version = _lib.PL_version_info
     PL_version.argtypes = [c_int]
     PL_version.restype = c_uint

So now Popper works with SWI Prolog version 9.0.0 (stable PPA version).

(This was inspired by the PR 133 at pyswip: yuce/pyswip#133 )

@youssefmahmoud89
Copy link

Posting my simple solution here:

I faced the same issue on my Mac M1. When i upgraded Prolog I faced the same issue. Popper was not working any more.

I had installed pyswip through Homebrew. All I had to do was:

locate pyswip core.py file:
for me it was in /opt/homebrew/lib/python3.10/site-packages/pyswip

change PL_version = _lib.PL_version (in line 587)
to PL_version = _lib.PL_version_info

This got Popper working again

Solution inspired by (https://swi-prolog.discourse.group/t/best-easiest-way-to-downgrade-to-version-8-4-3-on-linux-ubuntu-20-04/5966/18)

@andrewcropper
Copy link
Collaborator

@hakank @youssefmahmoud89

Thanks for posting this issue. The master branch of pyswip now works correctly with the latest version of Prolog.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants