orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 250 seconds]
xkapastel has quit [Quit: Connection closed for inactivity]
stultulo has joined #picolisp
f8l has quit [Ping timeout: 268 seconds]
stultulo is now known as f8l
rob_w has joined #picolisp
<
aw->
Regenaxer: hi
<
aw->
do you plan to make a PicoLisp release (19.12) this month?
<
Regenaxer>
Hi aw-! Yes, as usual
<
aw->
great! thanks
<
aw->
i appreciate the consistency :)
orivej has joined #picolisp
_whitelogger has joined #picolisp
mario-goulart has quit [*.net *.split]
jibanes has quit [*.net *.split]
michelp has quit [*.net *.split]
Nistur has quit [*.net *.split]
pointfree has quit [*.net *.split]
orivej has quit [*.net *.split]
f8l has joined #picolisp
mario-goulart has joined #picolisp
aw- has joined #picolisp
viaken has joined #picolisp
orivej has joined #picolisp
xkapastel has joined #picolisp
DKordic has joined #picolisp
freeemint has joined #picolisp
freeemint has quit [Quit: Leaving]
freeemint has joined #picolisp
freemint has joined #picolisp
<
freemint>
Regenaxer the webserver can call functions like !home. Is there a way to redefine/reload those functions without restarting the server?
<
Regenaxer>
You could do what 'server' does, (setq *Home (cons NewHome (chop NewHome))
<
Regenaxer>
In the parent process
<
Regenaxer>
*Home is just a default, if no arg is given
<
Regenaxer>
no URL arg I mean
<
freemint>
The parent process is stuck in a loop waiting for connections though?
<
freemint>
(Atleast that is how i think http.l works)
<
Regenaxer>
yes, but you can let it execute somehing with 'boss'
<
Regenaxer>
(load "lib/boss.l") upon start
<
Regenaxer>
Or (load "@lib/boss.l")
<
freemint>
Oh, mhh. And how can i trigger boss? Just make function refresh, allow it and trigger it via url?
<
Regenaxer>
I do often things like (boss 'load "app/gui.") on production server to reload libs on the fly
<
Regenaxer>
yes, any child can do
<
Regenaxer>
you can pass a file to the server that calls boss
<
freemint>
Btw is there a way to use httpGate to access to the shells of a
<
freemint>
*shell of a parent
<
freemint>
Mhh file might work too.
<
Regenaxer>
This is not httpGate's business
<
Regenaxer>
but psh runs in a child
<
Regenaxer>
a shell to the parent is not possible
freeemint has quit [Ping timeout: 265 seconds]
<
Regenaxer>
You can also attach psh to a running child
<
freemint>
I mean httpGate holds all the shells in theory.
<
Regenaxer>
how dees it hold shells?
<
Regenaxer>
it just connects to ports
<
freemint>
It spawns the parent process for each service in the names file?
<
freemint>
It reads from the parents error stream?
<
Regenaxer>
only the exec return code iirc
<
Regenaxer>
when starting the process
<
Regenaxer>
Stderr usually goes to a log file
<
Regenaxer>
not usually, always
<
Regenaxer>
ie the one specified in the config
<
freemint>
Could i start a screen(or something similar) from httpGate which contains pil process?
<
Regenaxer>
yes, it is psh
<
Regenaxer>
unless that process does its own repl
<
Regenaxer>
e.g. (repl) from @lib/form.l
<
Regenaxer>
PilBox does that btw
<
freemint>
boss seems like the way to go. Is there a way to capture unix signals. using HUP instead of boss?
<
Regenaxer>
you mean to send something to the parent?
<
Regenaxer>
*Sig1 and *Sig2 are good perhaps
<
freemint>
Yes, send signal to parent which triggers picoLisp function call that updates stuff.
<
Regenaxer>
yes, good
<
freemint>
Could that work?
<
Regenaxer>
but a signal cannot carry further info
<
Regenaxer>
Take a look at 'sigio' and 'udp'
<
Regenaxer>
The parent can register before calling 'server'
<
freemint>
Will Sig1 even trigger in thight loops or do i need a wait in the loop?
<
freemint>
Waiting on a file descriptor using select front-end might work too.
<
Regenaxer>
The interpreter checks at every high level function call, and in "slow" I/O system calls
<
Regenaxer>
yes, select frontend is 'task'
<
freemint>
Forgot the name. Yes task
<
Regenaxer>
app/main.l has an example
<
freemint>
So signal will not work when executing (lenght *Cyclic_lisz)?
<
Regenaxer>
listening for RPC commands
<
Regenaxer>
not in (loop)
<
Regenaxer>
but in (loop (+ 3 4))
<
Regenaxer>
you can try with ^C
<
Regenaxer>
^C generates SIGINT
<
freemint>
Same mechanism? That is good to know
<
Regenaxer>
yeah, all signals
<
freemint>
Ans all signals have the same interrupting power?
<
Regenaxer>
To stop (loop) you must hit ^\ SIGQUIT
<
Regenaxer>
yes, just SIGKILL (9) can't be caught
<
Regenaxer>
So it should not be used on a pil DB process
<
freemint>
It goes right to the OS which kicks the process on the next timer interrupt/kernel tick.
<
freemint>
I understand
<
Regenaxer>
but all signals go through the kernel
<
Regenaxer>
just catching is not possible for -9
<
freemint>
Why can't i capture SigHub inly Sig1?
<
Regenaxer>
SIGHUB is caught
<
Regenaxer>
then *Hup is executed
<
Regenaxer>
SIGHUP I mean
freemint has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 252 seconds]
f8l has quit [Ping timeout: 265 seconds]
freemint has joined #picolisp
orivej has joined #picolisp
f8l has joined #picolisp
freemint has quit [Remote host closed the connection]
karswell has joined #picolisp