Skip to content

Conversation

@gares
Copy link
Contributor

@gares gares commented Jul 12, 2023

ELPI - Embeddable λProlog Interpreter

CHANGES:

Requires Menhir 20211230 and OCaml 4.08 or above.
Camlp5 8.0 or above is optional.

Compiler:

  • Improve performance of separate compilation, in particular
    extending a program with more clauses. This change may
    break existing code which accumulates units containing
    the spilling of a predicate before the unit declaring
    the predicate signature.

Parser:

  • Fix error message on unexpected keyword (was wrongly assuming the
    keyword was ) misleading the user)

Builtins:

  • Change type of declare_constraint to any -> any -> variadic any prop
    making it explicitly take at least two arguments

Trace browser:

  • Fix elaboration of CHR rule with no condition

CHANGES:

Requires Menhir 20211230 and OCaml 4.08 or above.
Camlp5 8.0 or above is optional.

Compiler:
  - Improve performance of separate compilation, in particular
    extending a program with more clauses. This change may
    break existing code which accumulates units containing
    the spilling of a predicate *before* the unit declaring
    the predicate signature.

Parser:
  - Fix error message on unexpected keyword (was wrongly assuming the
    keyword was `)` misleading the user)

Builtins:
  - Change type of `declare_constraint` to `any -> any -> variadic any prop`
    making it explicitly take at least two arguments

Trace browser:
  - Fix elaboration of CHR rule with no condition
@haochenx
Copy link
Member

haochenx commented Jul 14, 2023

There are some CI failures running tests and they seem to be caused by the lack of lua on the respective systems edit: they are not (see #24098 (comment)):

  • s390x-ocaml-5.0 (s390x-ocaml-4.14 also failed likely due to CI problem, but likely will fail the same way)
  • ppc64-ocaml-5.0

There are at least the following options to resolve this:

/usr/bin/env: 'lua5.1': No such file or directory
# sh: 1: gnuplot: not found
# OK       w                      0.00   2.02   2.33   18.0M  elpi
# ------------------------------------------------------------------
# Tests: 135
# Passed: 134
# Failed: 1
# Skipped: 0
# ------------------------------------------------------------------
# Log of the first failure: _log/elpi+trace-browser-cut.log
# ------------------------------------------------------------------
# executable: /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/elpi
# args: -no-tc -test -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/../lib/elpi/ -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/tests/sources/ trace_cut.elpi -trace-on json file:///opam-tmp/trace_cut.json__13__.new -trace-at 0 99 -trace-only user
# 
# Parsing time: 0.000
# 
# Compilation time: 0.008
# ------------------------------------------------------------------
# End log of the first failure: _log/elpi+trace-browser-cut.log
# ------------------------------------------------------------------
# make: *** [Makefile:84: tests] Error 1

'opam reinstall --with-test --verbose elpi.1.17.0' failed.
- /usr/bin/env: 'lua5.1': No such file or directory
- sh: 1: gnuplot: not found
- OK       w                      0.00   2.02   2.33   18.0M  elpi
- ------------------------------------------------------------------
- Tests: 135
- Passed: 134
- Failed: 1
- Skipped: 0
- ------------------------------------------------------------------
- Log of the first failure: _log/elpi+trace-browser-cut.log
- ------------------------------------------------------------------
- executable: /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/elpi
- args: -no-tc -test -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/../lib/elpi/ -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/tests/sources/ trace_cut.elpi -trace-on json file:///opam-tmp/trace_cut.json__13__.new -trace-at 0 99 -trace-only user
- 
- Parsing time: 0.000
- 
- Compilation time: 0.008
- ------------------------------------------------------------------
- End log of the first failure: _log/elpi+trace-browser-cut.log
- ------------------------------------------------------------------
- make: *** [Makefile:84: tests] Error 1

There are some other CI failures that are likely due to CI infra problem, but it is likely that they will either succeed or fail with the same problem listed above.

@haochenx
Copy link
Member

But besides of the dependency problem when testing, CI reports suggests that the package is generally installable, so ↑ could be addressed later IMO.

@gares
Copy link
Contributor Author

gares commented Jul 14, 2023

Lua Is not the cause of the failure, it is used to tally the results.

Also, to my understanding, on ocaml 5 failures are unrelated.

@haochenx
Copy link
Member

Lua Is not the cause of the failure, it is used to tally the results.

Ah, I see. So are lines like the below the actual hints about the failure?
(from https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/00a17951e1a00458e77a7bab37e46a3c11bf62ee/variant/extras,x86_32-ocaml-4.14,elpi.1.17.0,tests)

# RUNNING  sepcomp1 (simple separate compilation)      dune
KO       sepcomp1 (simple separate compilation)      dune
# RUNNING  sepcomp2 (simple separate compilation)      dune
KO       sepcomp2 (simple separate compilation)      dune
# RUNNING  sepcomp3 (separate compilation double naming) dune
KO       sepcomp3 (separate compilation double naming) dune
# RUNNING  sepcomp4 (separate compilation double naming) dune
KO       sepcomp4 (separate compilation double naming) dune
# RUNNING  sepcomp5 (separate compilation different processes (step 1)) dune
KO       sepcomp5 (separate compilation different processes (step 1)) dune
# RUNNING  sepcomp6 (separate compilation different processes (step 2)) dune
KO       sepcomp6 (separate compilation different processes (step 2)) dune
# OK       w                      0.00   0.23   0.27   11.4M  elpi
# ------------------------------------------------------------------
# Tests: 135
# Passed: 129
# Failed: 6
# Skipped: 0
# ------------------------------------------------------------------
# Log of the first failure: _log/dune+sepcomp1.log
# ------------------------------------------------------------------
# executable: dune
# args: exec tests/sources//sepcomp1.exe -- -I src/
# Error: Thread.create: Resource temporarily unavailable
# ------------------------------------------------------------------
# End log of the first failure: _log/dune+sepcomp1.log
# ------------------------------------------------------------------
# make: *** [Makefile:84: tests] Error 1

Since the error says "Error: Thread.create: Resource temporarily unavailable" I thought it might be due to some issue about the CI machine (as other platform were succeeding) I have tried to hit the "rebuild" on the CI job page a couple of times, but they ended up with the same place.

I am not sure about the root cause, but it seems to be more related to the particular CI machine than the package and test cases so I don't see them as blocker for this PR.

Also, to my understanding, on ocaml 5 failures are unrelated.

Do you mean the following failing test cases:
(from https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/00a17951e1a00458e77a7bab37e46a3c11bf62ee/variant/extras,s390x-ocaml-5.0,elpi.1.17.0,tests)

- OK       w                      0.00   2.02   2.33   18.0M  elpi
- ------------------------------------------------------------------
- Tests: 135
- Passed: 134
- Failed: 1
- Skipped: 0
- ------------------------------------------------------------------
- Log of the first failure: _log/elpi+trace-browser-cut.log
- ------------------------------------------------------------------
- executable: /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/elpi
- args: -no-tc -test -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/_build/install/default/bin/../lib/elpi/ -I /home/opam/.opam/5.0/.opam-switch/build/elpi.1.17.0/tests/sources/ trace_cut.elpi -trace-on json file:///opam-tmp/trace_cut.json__13__.new -trace-at 0 99 -trace-only user
- 
- Parsing time: 0.000
- 
- Compilation time: 0.008
- ------------------------------------------------------------------
- End log of the first failure: _log/elpi+trace-browser-cut.log
- ------------------------------------------------------------------
- make: *** [Makefile:84: tests] Error 1

As the CI is not giving any information, I can't say anything. But it indeed does not look like a blocker to me.

@haochenx
Copy link
Member

As the CI failures seem unrelated, I am in favor of considering for merge, but someone else should have a check.

"cmdliner" {with-test}
"dune" {>= "2.8.0"}
"conf-time" {with-test}
"atdgen" {>= "2.10.0"}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"atdgen" {>= "2.10.0"}
"conf-lua" {with-test}
"conf-gnuplot" {with-test}
"atdgen" {>= "2.10.0"}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As you already discussed this is not needed to make the tests succeed, so I don't have any strong opinion on adding it. Since the binaries are used to collect the test results, I wanted to point out that we have the necessary conf packages

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks, done upstream

@mseri
Copy link
Member

mseri commented Jul 17, 2023

I am rerunning the failing tests

@mseri
Copy link
Member

mseri commented Jul 17, 2023

I suggest we merge it. If there are issues we can get bug reports from users on these platforms

@mseri
Copy link
Member

mseri commented Jul 17, 2023

The issue with Thread.create is strange though, I don't remember seeing it in previous releases of elpi

@mseri mseri merged commit aa4ff8b into ocaml:master Jul 17, 2023
@gares gares deleted the release-elpi-v1.17.0 branch July 17, 2023 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants