orivej has joined #picolisp
_whitelogger has joined #picolisp
DKordic has quit [Ping timeout: 240 seconds]
beneroth_ has joined #picolisp
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 244 seconds]
beneroth has quit [Ping timeout: 244 seconds]
orivej_ has quit [Ping timeout: 240 seconds]
orivej has joined #picolisp
Blue_flame has quit [*.net *.split]
mario-goulart has quit [*.net *.split]
orivej has quit [Ping timeout: 258 seconds]
mario-goulart has joined #picolisp
Blue_flame has joined #picolisp
casaca has quit [Ping timeout: 246 seconds]
orivej has joined #picolisp
DKordic has joined #picolisp
<
DKordic>
Good morning everyone. TIL GNU make depends on GNU Guile. Happy! happy! joy! joy!
<
DKordic>
For some reason guile is a required rather than an optional dependency of make on the retarded Artix Linux distro.
<
tankf33der>
Regenaxer: i am not sure my question is correct: is all pil21's coroutines will sit on one CPU like pil64 before?
<
Regenaxer>
tankf33der, yes, all in one process. It may run on only one CPU at a given moment
casaca has joined #picolisp
beneroth_ has quit [Quit: Leaving]
<
tankf33der>
Regenaxer: error 404
beneroth has joined #picolisp
<
Regenaxer>
"lat" -> "lab" :)
<
Regenaxer>
I don't want to try to download. Very poor network here
<
tankf33der>
works. beautiful.
orivej has quit [Ping timeout: 264 seconds]
DKordic has quit [Remote host closed the connection]
<
aw->
Regenaxer: is that near your place?
DKordic has joined #picolisp
<
Regenaxer>
back home
<
Regenaxer>
aw-, about 80 km
orivej has joined #picolisp
<
Regenaxer>
About 80 km to the west of us
<
Regenaxer>
We walked a few km and up the hills where we picknicked and I took the above picture :)
<
aw->
was going to visit Germany this summer :(
<
Regenaxer>
Next time :)
<
aw->
Regenaxer: unrelated question
<
aw->
(poll) can be used to check if there's data before reading
<
aw->
is there a way to check if there's a listener before sending with (out) ?
<
Regenaxer>
I think this is not possible
<
aw->
i'm using (abort N (out ... but it's a bit.. rough
<
Regenaxer>
yes, but we cannot know if the data will ever be received
<
aw->
(abort 5 (out .. to a TCP socket
<
Regenaxer>
but out will succeed anyway on a socket
<
Regenaxer>
the buffer is very large
<
aw->
err sorry, it's to a named pipe
<
aw->
sender blocks if there's no reader
<
aw->
this is normal with named pipes
<
Regenaxer>
If you want to do it the hard way, look what pil does with 'tell'
<
Regenaxer>
the parent maintains a growing buffer for each child
<
Regenaxer>
wrChild()
<
Regenaxer>
it checks in a poll() system call if writing can be done
<
Regenaxer>
otherwise buffers it
<
aw->
perhaps i can check if the child pid exists?
<
aw->
(kill Pid 0) ?
<
Regenaxer>
exists is one thing, but also may be busy
<
Regenaxer>
so wrChild buffers all
<
Regenaxer>
without limit
<
Regenaxer>
if the other end of the pipe is busy, the writer will block if more than PIPE_BUF size is written
<
Regenaxer>
So you could indeed use pil's mechanism
<
Regenaxer>
create a child which may block
<
Regenaxer>
but the sender uses 'tell' and will never block
<
aw->
ok i will try
<
aw->
ok so this doesn't really solve the problem
<
Regenaxer>
The problem of blocking?
<
aw->
because even though the sender doesn't block, it will still have tried to send data to a process that is unavailable or missing
<
aw->
in fact, it will 'succede' in sending
<
aw->
which is wrong.. it sent data to nowhere
<
Regenaxer>
the target child simply must (bye)
<
Regenaxer>
the parent closes all then
<
Regenaxer>
But it is too complicated
<
Regenaxer>
the receiver is some other process, right?
<
Regenaxer>
not a pil sibling
<
aw->
no it's a pil sibling
<
aw->
ok i will look at this again tomorrow
<
aw->
i think i'm doing something wrong :)
<
aw->
thanks for the help
<
Regenaxer>
Good, let't talk about it tomorrow
orivej has quit [Ping timeout: 244 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 244 seconds]