"setup.py" scripts are obsolete at this stage: they are still supposed
to work, but as recent events demonstrate
(https://github.com/pypa/pip/issues/11975), various problems are bound
to appear more and more frequently. Transition to newer systems
(pyproject.toml + the "build" front-end), hoping to avoid such issues in
the future.
Replace `%eq(a, b)` with:
* `a <-> b`: unify two logic variables
* `a <- b`: assign a value to a logic variable
Replace `%eq(a, b, conv_prop=N.p)` with:
* `a <- N.p%(...)`: assign a value to a logic variable after a
conversion/combination using a property from 1) one or multiple logic
variables or 2) an entity:
Replace `%predicate(N.p, ...)` with:
* `N.p%(...)`: create a predicate atom from a property, several logic
variables and optional extra arguments.
This commit introduces full support for dynamic variables in Lkt:
* new syntax for declaration: `dynvar my_var: MyType`;
* new annotation to require it at property call:
`@with_dynvars(my_var)`;
* associated unparsing and lowering code.
The current select-based code to consume subprocess output on the fly
sometimes misses the end of the output. Rework it to consume mixed
stdout+stderr until the end of output instead.