01:23
_whitelogger has joined #picolisp
01:28
orivej has quit [Ping timeout: 256 seconds]
01:28
orivej_ has joined #picolisp
01:52
aw- has quit [Ping timeout: 246 seconds]
04:40
miskatonic has joined #picolisp
05:04
aw- has joined #picolisp
05:05
aw- has quit [Client Quit]
06:29
aw- has joined #picolisp
06:33
rob_w has joined #picolisp
06:43
rob_w has quit [Remote host closed the connection]
06:44
mtsd has joined #picolisp
06:56
<
mtsd >
Good morning!
06:59
<
beneroth >
Good morning
07:00
<
Nistur >
at the weekend, MiniNisturette woke up, looked at me, and said, quite clearly, Qapla'!
07:00
<
Nistur >
I think I'm raising a Klingon
07:01
<
Regenaxer >
Hi all :)
07:03
<
mtsd >
Hi Regenaxer!
07:08
mtsd_ has joined #picolisp
07:10
mtsd has quit [Ping timeout: 256 seconds]
07:22
rob_w has joined #picolisp
07:23
mtsd has joined #picolisp
07:24
mtsd_ has quit [Ping timeout: 260 seconds]
07:27
mtsd has quit [Client Quit]
07:38
orivej_ has quit [Ping timeout: 260 seconds]
08:29
<
beneroth >
Nistur, congrats to the Klingon :-)
08:29
<
beneroth >
Hi Regenaxer :)
08:29
mtsd has joined #picolisp
08:29
<
Regenaxer >
Hi beneroth
08:29
<
beneroth >
hey mtsd :)
08:30
<
beneroth >
tankf33der, thanks for the tip with b2sum - it is really blazing fast :-)
09:14
<
tankf33der >
i have my own b2sum on picolisp and monocypher via mmap.
09:42
miskatonic has quit [Remote host closed the connection]
10:25
<
beneroth >
oh nice :D
10:57
karswell_ has joined #picolisp
11:01
<
beneroth >
Regenaxer, you got a bit time?
11:01
<
beneroth >
what is your recommendation for error handling with (later) ?
11:02
<
beneroth >
seems to me that evaluation (quit) within (later) results in repl of the (later)-childprocess
11:02
<
Regenaxer >
yes, it exits
11:03
<
Regenaxer >
in general quit exits if there is no tty
11:03
<
beneroth >
so (quit) can be used as usual within (later) ?
11:03
<
Regenaxer >
yes, errors go to stderr then
11:03
<
beneroth >
the process which started (later) is also exited, right?
11:04
<
beneroth >
by quit within later
11:04
* beneroth
is trying it out
11:04
<
Regenaxer >
the parent? No, it is not concerned
11:04
<
Regenaxer >
it gets EOF
11:04
<
Regenaxer >
i.e. NIL in the pipe
11:05
<
beneroth >
so.. nothing, just empty results
11:07
<
beneroth >
it's visible in (kids)
11:08
<
Regenaxer >
yes, cause 'pipe' is used
11:08
<
Regenaxer >
The child is a normal family member
11:09
<
beneroth >
so best to extend the (wait NIL (full @)) from the (later) example with a timeout limit
11:09
<
beneroth >
(in practical use, I mean)
11:10
<
Regenaxer >
you have timeout use case here?
11:10
<
beneroth >
I like to call the same function multiple times in parallel, using (later)
11:11
<
beneroth >
but the function might legitimately run into an error
11:11
<
Regenaxer >
Needs care not to start too many processes
11:11
<
beneroth >
if so, I like to detect this in the parent
11:11
<
Regenaxer >
you can send an error token back
11:11
<
beneroth >
yeah right, I forgot it for now
11:12
<
beneroth >
using normal recursion instead, I can still parallelize later (haha) if needed
11:13
<
beneroth >
but then obviously better with a fixed number of worker kids instead of later
11:13
<
Regenaxer >
not to exeed the max?
11:13
<
Regenaxer >
@misc/stress.l does something like that
11:14
<
Regenaxer >
40 children
11:14
<
Regenaxer >
using plain (fork)
11:15
<
beneroth >
yeah like this :-)
11:15
<
Regenaxer >
Not perfect for many processes
11:15
<
Regenaxer >
due to the manual checks
11:15
<
beneroth >
for many simple things, (later) is surely good enough
11:15
<
Regenaxer >
yeah, easiest
11:16
<
beneroth >
and the more extensive approach on the other side of @misc/stress.l would be a database with job entries
11:16
<
beneroth >
(this approach I did before, mainly for resilience)
11:16
<
Regenaxer >
that is more general and flexible
11:16
<
beneroth >
aye, but a bit heavy for smaller stuff
12:05
karswell_ is now known as karswell
13:04
mtsd has quit [Quit: mtsd]
13:29
mtsd has joined #picolisp
13:32
rob_w has quit [Quit: Leaving]
13:32
mtsd has quit [Quit: Leaving]
13:40
<
Regenaxer >
hehe, yeah
14:07
<
beneroth >
Regenaxer, I like to do a non-destructive (redef), meaning I have an existing function 'foo which is recursive (it calls foo), and I like to make a second variant 'bar which decorates 'foo similar to how (daemon) works, but I want to conserve the original 'foo, so I can call both 'foo and 'bar
14:07
<
beneroth >
any ideas? :D
14:08
<
Regenaxer >
Moment, tel :)
14:17
orivej has joined #picolisp
14:21
<
Regenaxer >
ok, done
14:22
<
Regenaxer >
Hmm, just cons something with the value of 'foo' and pass to 'def'?
14:23
<
Regenaxer >
(def 'bar (... (cons ... foo ...)))
14:27
<
beneroth >
that is not replacing the recursive call to 'foo within 'foo, is it?
14:27
* beneroth
thinks easiest way is to make 'foo and 'bar being a single function, overladed by parameter
14:29
* beneroth
thinks there are use cases where keeping those functions separate would be more elegant, but then there is probably no way around iterating through the function body and finding the recursive call to adapt it
14:33
karswell_ has joined #picolisp
14:33
karswell has quit [Remote host closed the connection]
14:50
<
Regenaxer >
It depends
14:51
<
Regenaxer >
I think you must use recur/recurse
15:00
<
Regenaxer >
in 'foo'
15:01
<
beneroth >
yeah that would make it easier
15:01
<
beneroth >
T, that would be a correct/elegant solution
19:40
karswell_ has quit [Read error: Connection reset by peer]
20:05
<
tankf33der >
picolisp is a trap. run until its too late.
20:56
<
beneroth >
too late for what?
22:45
<
DKordic >
[facepalm]