Elpi Versions Save

Embeddable Lambda Prolog Interpreter

v1.19.0

4 weeks ago

CHANGES:

Language:

  • Change CHR syntax now accepts any term in eigen variables position E in sequent E : _ ?- _. Meaningful terms are lists or unification variables
  • Change CHR eigen variables are a list of names (used to be an integer)
  • Fix CHR relocation/scope-checking for new goals

v1.18.2

4 months ago

CHANGES:

Requires Menhir 20211230 and OCaml 4.08 or above.

Language:

  • Change indexing for multiple arguments is now based on discrimination trees
  • Change :index acecpts an optional string to force "Hash" based indexing

API:

  • Change clause_of_term accepts a `Replace grafting directive

What's Changed

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.18.1...v1.18.2

v1.18.1

6 months ago

CHANGES:

Requires Menhir 20211230 and OCaml 4.08 or above.

Parser:

  • Remove legacy parsing engine based on Camlp5

API:

  • New RawQuery.compile_ast, lets one set up the initial state in which the query is run, even if the query is given as an ast.
  • New solution.relocate_assignment_to_runtime to pass a query result to another query
  • New BuiltInPredicate.FullHO for higher order external predicates
  • New BuiltInPredicate.HOAdaptors for map and filter like HO predicates
  • New Calc.register to register operators for calc (aka infix is)

Library:

  • New std.fold-right

Runtime:

  • New clause retrieval through discrimination tree. This new index is enabled whenever the :index directive selects only one argument with a depth > 1.

What's Changed

New Contributors

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.18.0...v1.18.1

v1.18.0

7 months ago

CHANGES:

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

API:

  • Change Setup.init takes a ?state, ?quotations and ?hooks descriptors so that each elpi handle is completely independent.
  • Change State.declare is deprecated in favor of State.declare_component
  • New State.declare_component like State.declare but takes a ~descriptor
  • New State.new_state_descriptor
  • Change Quotations.register_named_quotation now takes a ?descriptor
  • Change Quotations.set_default_quotation now takes a ?descriptor
  • Change Quotations.declare_backtick now takes a ?descriptor
  • Change Quotations.declare_singlequote now takes a ?descriptor
  • New Quotations.new_quotations_descriptor
  • Change RawData.set_extra_goals_postprocessing now takes a ?descriptor
  • New RawData.new_hoas_descriptor

What's Changed

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.17.4...v1.18.0

v1.17.4

7 months ago

CHANGES:

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

Parser:

  • Fix location handling (used to ignore the char count of the initial loc)

What's Changed

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.17.3...v1.17.4

v1.17.3

8 months ago

CHANGES:

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

Builtins:

  • Change unix.process really disabled on OCaml 4.12

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.17.2...v1.17.3

v1.17.2

8 months ago

CHANGES:

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

Builtins:

  • Change unix.process disabled on OCaml 4.12

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.17.1...v1.17.2

v1.17.1

8 months ago

CHANGES:

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

Builtins:

  • New unix.process datatype and unix.process.open/close APIs

What's Changed

New Contributors

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.17.0...v1.17.1

v1.17.0

10 months ago

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

What's Changed

Full Changelog: https://github.com/LPCIC/elpi/compare/v1.16.10...v1.17.0

v1.16.10

1 year ago

CHANGES:

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

  • Elpi:
    • New attribute :replace which replaces a named clause by an unnamed one

Trace browser:

  • Fix display of rule applied after failures