Hi,

I've got the following response from swi-prolog upstream about the issue:

Вс 26 апр 2020 @ 09:30 Jan Wielemaker <j.wielema...@vu.nl>:

> Need to think a bit about the ABI issue. Basically, saved states are
> incompatible between versions, although you can have some luck on
> closely related versions. There are two sources of trouble: change to
> the VM instruction set and changed interfaces for internal foreign
> predicates that require matching changes to the Prolog layer.
>
> Applications can ship themselves as .qlf file instead of saved states to
> avoid the second, although that may be complicated. The first is
> unavoidable unless I would go for strictly backward compatible changes
> to the VM.  I don't think that is going to happen soon.  The VM detects
> the incompatibility by adding a hash of the VM instructions and their
> declarations to the state.
>
> The normal way to deal with this (I guess) would be to distribute as
> source and do the saved state generation as part of the installation
> process.
>
> Finally, you can enable versioned lib directories such that SWI-Prolog
> is installed in /usr/lib/swipl-<version> and you can have multiple
> versions installed (and have the links from /usr/bin for swipl, etc
> select the current version). States though can depend on a particular
> version.  This is much like Java, no?

Cheers!
Lev

Reply via email to