Releases: LPCIC/elpi
Releases · LPCIC/elpi
1.20.0
CHANGES:
Requires Menhir 20211230 and OCaml 4.08 or above.
-
Language:
- attribute
:remove
to remove a clause from the program
- attribute
-
Compiler:
- Build the index at assembly time, rather than optimization time.
This makes compilation slower, but startup faster. - Adding clauses before the type/mode declaration of a predicate
is now forbidden, since they are immediately inserted in the index
and the type/mode declaration can change the index type
- Build the index at assembly time, rather than optimization time.
1.19.6
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