Releases: LPCIC/elpi
Releases · LPCIC/elpi
1.19.5
CHANGES:
Requires Menhir 20211230 and OCaml 4.08 or above.
-
Compiler:
- Improve performance of separate compilation
-
CHR:
- Syntax extension for constraint declaration.
- This aims to avoid the
overlapping
clique error - Example:
constraint c t x ?- p1 p2 { rule (Ctx ?- ...) <=> (Ctx => ...) }
c
,t
andx
are the symbols which should be loaded in the rule of the
constraint and should be considered as symbols composing the context (Ctx
)
under whichp1
andp2
are used.
1.19.4
CHANGES:
Requires Menhir 20211230 and OCaml 4.08 or above.
-
Stdlib:
- Add
once
predicate
- Add
-
Build:
- New
make tests PROMOTE=true
- New
-
Parser:
- Change purge
_build/xxx
from paths once files are resolved in order
to have locs point to the sources and not their copy in_build
- Change purge
1.19.3
1.19.2
1.19.1
CHANGES:
Requires Menhir 20211230 and OCaml 4.08 or above.
Language:
- New
:index (<arg-spec>) "index-type"
where the index type can be
Map, Hash or DTree
Runtime:
- Fix performance regression due to the fix to relocation in unification
introduced in 1.19.0 - New list flattening in DTree index, that is term
app [t1,t2,t3]
is indexed using the same DTree space/depth of termapp t1 t2 t3
1.19.0
CHANGES:
Language:
- Change CHR syntax now accepts any term in eigen variables position
E
in
sequentE : _ ?- _
. 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
1.18.2
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
- Discrimination tree on multiple args by @FissoreD in #213
- Expose `Replace in API by @FissoreD in #217
- Update ELPI.md by @gares in #215
- fix chr trace by @gares in #216
Full Changelog: v1.18.1...v1.18.2
1.18.1
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
formap
andfilter
like HO predicates - New
Calc.register
to register operators forcalc
(aka infixis
)
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
- Add foldr to the elpi builtins by @lukovdm in #203
- API: state updater by @gares in #206
- Indexing via discrimination tree by @FissoreD in #205
- Fix deref assign by @gares in #207
- Api for relocation by @gares in #208
- Update ELPI.md by @gares in #209
- HO api by @gares in #210
- extensible calc by @gares in #211
- Cleanup by @gares in #212
New Contributors
Full Changelog: v1.18.0...v1.18.1
1.18.0
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
eachelpi
handle is completely independent. - Change
State.declare
is deprecated in favor ofState.declare_component
- New
State.declare_component
likeState.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: v1.17.4...v1.18.0