<Regenaxer>
$ sudo apt install make clang llvm libffi librea
<Regenaxer>
$ tar xfz pil21.tgz
<Regenaxer>
$ cd pil21
<Regenaxer>
$ (cd src; make) && bin/picolisp
<Regenaxer>
or
<Regenaxer>
$ (cd src; make) && ./pil +
<Regenaxer>
better
<mtsd>
I was just missing clang and llvm, installing now
<Regenaxer>
great
<mtsd>
There, builds fine after adding some packages. ./pil -version -bye -> 21.0.0
<mtsd>
Great!
<Regenaxer>
:)
<mtsd>
I will try doing a global install, as pil21, and write down how it goes. See if I encounter something special
<Regenaxer>
I think a global install is not needed
<Regenaxer>
Better to have some stable version there perhaps
<mtsd>
I thought of keeping the stable verision where is is, as 'Picolisp', with symlinks called 'pil' etc, and install pil21 as 'pil21'. But then again, pil21 is bound to change still. Easier with a local pil21.
<Regenaxer>
yeah, hard to say what is best
<mtsd>
Only one way to find out :)
<Regenaxer>
I usually never touch the global one (and also very rarely call it)
<Regenaxer>
only for emergencies :)
<Regenaxer>
if all local ones are broken
<mtsd>
I use the global one quite a lot, actually. But I install the latest one manually, not the Debian version
<Regenaxer>
Thats fine too
<mtsd>
I think it shows how flexible pil is, really. Both options are available, and work very well
<Regenaxer>
Indeed, so everyone can pick his favourite style
<mtsd>
T
<Regenaxer>
In the beginning the global Debian releases were too old to be usable, so I planted global links
<Regenaxer>
But now the differences between Debian and latest releases are not so big any more
<Regenaxer>
In Termux it is even better
<Regenaxer>
quite up to date in the release
<mtsd>
Picolisp has stabled :)
<Regenaxer>
T :)
<mtsd>
One such, rare, example of software actually approaching done :)
<beneroth>
hi Regenaxer, mtsd :)
<Regenaxer>
Hi beneroth
<beneroth>
I do it like mtsd, usually making a custom installation into global one
<mtsd>
Hi beneroth
<beneroth>
though in newer projects I started to use a per-project pil-version.. not really needed it thus far though
<Regenaxer>
the local installs don't take much space anyway
<beneroth>
T
<mtsd>
First test works quite well.
<mtsd>
But PDF generation did not work, complains about "pdf - undefined"
<mtsd>
But the function seems to be in place in svg.l, like in pil64
<Regenaxer>
I see
<Regenaxer>
The demo in app/lib.l uses 'pdf' and it works. Not sure atm
<Regenaxer>
You need the namespace
<Regenaxer>
app does (symbols 'ap 'svg 'pico)
<Regenaxer>
So it runs in its own 'ap' namespace
<Regenaxer>
hmm, ok, a bit incompatible :)
<Regenaxer>
The difference is not pil21 itself, but the svg library. I wanted it out of the way and put it into a namespace
<mtsd>
I'll just compare with the demo in app/lib, should solve the issue. My app does not have the namespave
<mtsd>
A tiny bit incompatible :)
<Regenaxer>
yep
<Regenaxer>
I would not say incompatible though. It is more consequent, in pil64 some libs like android and vip were in their own libraries already too
<Regenaxer>
s/libraries/namespaces
<Regenaxer>
Found another bug
orivej has joined #picolisp
<Regenaxer>
in print routines, caused by wrong namespace search
<Regenaxer>
ok, works now
<tankf33der>
Regenaxer: how you found this pribt bug?
<Regenaxer>
Which one do you mean?
<Regenaxer>
ah, print
<Regenaxer>
I noticed in PilBox
<Regenaxer>
the android communication failed
<Regenaxer>
via PLIO, but you see the bug also in 'str?'
<Regenaxer>
(only on special situations)
<Regenaxer>
The read macro bug was nasty
<Regenaxer>
only if ~ is in the first item
<Regenaxer>
(~(foo) ...)
<Regenaxer>
(a b ~(foo) ...) was ok
<Regenaxer>
And the varargs bug only happened if one vararg function calls another
<Regenaxer>
(de f @ (rest)) (de g @ (while (args) (f (next) (next))))
<Regenaxer>
'g' never terminates
<Regenaxer>
Also found in PilBox
<tankf33der>
i see.
<Regenaxer>
The binding of the variable args was wrong
<Regenaxer>
did not nest correctly
<Regenaxer>
Perhaps more such bugs lurking around :(
<Regenaxer>
And the last one, in printing and str?, appeared only if one namespace overshadowed a symbol in another namespace
<Regenaxer>
Then when the android restart was called, the sending of the Java method 'restart' via PLIO failed, because the *string* "restart" was sent to Android
<Regenaxer>
tuff
<Regenaxer>
Now all works
<Regenaxer>
I think I tested every functionality in the Fifi App
<Regenaxer>
I *could* release PilBox
<Regenaxer>
but after finding so many bugs in such quick succession, it seems better to wait a little more