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

Compatibility with SWI #7

Open
wouterbeek opened this issue Dec 4, 2016 · 6 comments
Open

Compatibility with SWI #7

wouterbeek opened this issue Dec 4, 2016 · 6 comments

Comments

@wouterbeek
Copy link

If this cannot be done ATM because of missing libraries or open issues, then we can at least assemble a list of requirements SWI should meet in order to add compatibility in the future.

@triska
Copy link
Owner

triska commented Dec 9, 2016

The most serious technical shortcoming of SWI is described in SWI-Prolog/roadmap#14.

Other technical issues are:

  • incompatible term and goal expansion
  • incompatible must_be predicate for type checking.

@UWN
Copy link

UWN commented Dec 19, 2016

at least assemble a list of requirements SWI should meet in order to add compatibility in the future

Further items:

  • standard conformance. By giving up conformance in SWI7, comparisons with conforming Prolog systems like SICStus or GNU become much more difficult which as consequence means less coverage and that less bugs are identified.

  • stability. Take i3a#365: A*max(A,-2)#>1,A in-1..2,A=1.

  • 7.1.32-11-gd0a4fc0 false (correct)

  • 7.3.14-42-ga83e0df success

The original library(clpfd) in SWI was tested 100+ CPU-years under the assumption that the underlying implementation does not change. That assumption turned out to be very wrong. Extensive tests cannot be manually inspected (even fast computers need years to wade through them), the errors specified in the standard are thus extremely helpful to judge the situation automatically and sort out false positives.

@wouterbeek
Copy link
Author

@UWN Why would porting clpz to SWI require ISO conformance? I understand that ISO conformance has certain benefits in itself, but I do not see the clpz-specific part there.

@UWN
Copy link

UWN commented Dec 20, 2016

Why would porting clpz to SWI require ISO conformance?

@wouterbeek A reliable porting procedure requires testing. And that's where ISO conformance comes into play (see above post) - in particular precise errors but also the abstract syntax. SWI's actual unification mechanism implementation below is far too idiosyncratic to be a sufficient condition for a successful port.

@triska
Copy link
Owner

triska commented Jan 23, 2017

Additional reasons are mentioned in #4.

Since you have also contributed to the web page, I hope you can eliminate some of these problems, ensuring that CLP(FD) is presented in the way it is intended. This was previously the case, but is no longer the case with the new web page.

@sirikid
Copy link

sirikid commented Nov 10, 2022

any progress on this issue since 2017?

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

4 participants