the current version of PicoLisp (126.96.36.199) introduces a critical change
in the syntax of Pilog calls to embedded Lisp expressions.
As some of you may know, until now a syntax like
(@X + 3 4)
would cause Pilog to evaluate the CDR (+ 3 4) as a Lisp expression, and
unify the result with the Pilog variable '@X'.
But this syntax has a drawback: If the variable '@X' is already unified
in the current environment, then Pilog doesn't see an expression (@X + 3
4) but, say, (7 + 3 4). This isn't recognized as a Lisp/Pilog
expression, because the CAR isn't a pattern symbol. As a result, strange
things might happen because this may be handled by Pilog in a completely
unexpected way, depending on what the CAR happens to be.
Thus, now the syntax was changed, and expects a '^' (i.e. the caret
symbol) in the CAR:
(^ @X ..
A second - minor - drawback was that the Lisp expression in the CDR
doesn't optically appear as a lisp expression. So, while we are at it, a
second syntax change was introduced, taking the CDR not as an 'exe' but
as a 'prg'. This has - besides being more in line with other PicoLisp
functions - the advantage that you may write more that one expression in
this place for possible side effects.
In total, the new syntax is now
(^ @X (+ 3 4))
I have changed this in a four versions (pil64, pil32, ersatz and mini),
and all related files. Hope I didn't overlook anything.