aw- has joined #picolisp
aw- has quit [Quit: Leaving.]
aw- has joined #picolisp
<
tankf33der>
morning
<
tankf33der>
forth-OK
<
tankf33der>
fern-OK
<
tankf33der>
net-OK
<
tankf33der>
make:
*** [Makefile:2: all] Segmentation fault (core dumped)
<
tankf33der>
pilog crashing.
<
tankf33der>
Regenaxer: this code:
<
Regenaxer>
Thanks tankf33der! I take a look
rob_w has joined #picolisp
aw- has quit [Quit: Leaving.]
aw- has joined #picolisp
rob_w has quit [Ping timeout: 240 seconds]
rob_w has joined #picolisp
rob_w has quit [Remote host closed the connection]
clacke has quit [Ping timeout: 255 seconds]
<
Regenaxer>
tankf33der: I found the bug crashing your test
<
Regenaxer>
Seems to work now, but the new Pilog syntax is not ready yet
<
beneroth>
hi Regenaxer :)
<
beneroth>
pil21 bug? or more fundamental?
<
Regenaxer>
Hi beneroth! Yes, pil21
<
Regenaxer>
It supports an nice new syntax for Lisp expressions in Pilog
<
Regenaxer>
(I announced and showed it in PilCon)
<
Regenaxer>
I was annoyed by the need of '->' all the time
<
Regenaxer>
So I rewrote parts of Pilog
<
Regenaxer>
AND did it wrong ;)
<
Regenaxer>
But now fixed
<
Regenaxer>
The new syntax has still problems
<
beneroth>
I remember you mentioning it here once, but I missed that PilCon, and forgot about that
<
Regenaxer>
But the old should work
<
beneroth>
good we have tankf33der <3
<
Regenaxer>
yeah!!! Indeed
<
Regenaxer>
It was a gc bug again, so it shows up only in heavy tests
<
Regenaxer>
The new syntax is: Instead of
<
Regenaxer>
(^ @N (* (-> @A) (-> @B)))
<
Regenaxer>
you just write
<
Regenaxer>
(^ @N (* @A @B))
<
Regenaxer>
I think I never announced it here, cause I wrote it on Tuesday, tHe PilCon day
<
tankf33der>
All passed now.
<
Regenaxer>
Great, thanks tankf33der!!
<
beneroth>
I thank you both!
<
beneroth>
Regenaxer, so within (^ ) expression, all pilog-variables are automatically bound to picolisp variables?
<
Regenaxer>
Absolutely correct
<
beneroth>
makes sense.
<
Regenaxer>
yes, and looks much nicer
<
beneroth>
but gives some additional cost, no? or only on evaluation of variable?
<
Regenaxer>
I think it is a little faster
<
Regenaxer>
The expensive part is the lookup of the values in the Pilog envs
<
Regenaxer>
Was done by (-> @A)
<
beneroth>
I'm thinking about situations where there many pilog variables in existence, but only very few used in the picolisp expression
<
Regenaxer>
Ah, no, it binds only the relevant ones
<
beneroth>
I see. nice.
<
Regenaxer>
@A and @B in the above case
<
beneroth>
so just automation of previous mechanic. and probably faster because less explicit code?
<
beneroth>
(less space in the AST)
<
Regenaxer>
yes, no (let A (-> @A) needed
<
Regenaxer>
The expensive part is the lookup
<
Regenaxer>
Anyway, it is not complete yet
<
Regenaxer>
does not work right if (or ((...))) is involved
<
Regenaxer>
But I found out that 'or' was not really correct anyway, because the values
*are* already replaced by the unification process
<
Regenaxer>
For example:
<
Regenaxer>
(? @A 3 (or ((^ NIL (msg (cons '@A @A))))))
<
Regenaxer>
(3 . 3)
<
Regenaxer>
Expected (@A . 3) right?
<
Regenaxer>
Or this:
<
Regenaxer>
: (? @A 3 (or ((^ NIL (msg '(-> @A))))))
<
Regenaxer>
So not really what is expected
<
Regenaxer>
'->' gets already the 3
<
Regenaxer>
It worked because '->' takes any arg
<
Regenaxer>
But not really clean
<
Regenaxer>
So also the old system with old syntax had its problems
aw- has quit [Quit: Leaving.]