alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
alexshe61 has joined #picolisp
alexshendi has quit [Ping timeout: 264 seconds]
alexshe61 has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
aw- has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe3 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
peterhil has quit [Ping timeout: 252 seconds]
alexshe3 has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
peterhil has joined #picolisp
razzy has joined #picolisp
<razzy>
beneroth: Regenaxer: All streaming functions have buffer. Some functions wait for end of data stream to start working (sort). my question was how do i know difference from a glance.
<Regenaxer>
Hi razzy, you mean the Unix 'sort' program, right? The pil 'sort' function does no I/O
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshe96 has joined #picolisp
<beneroth>
Good morning Regenaxer, razzy
<Regenaxer>
Hi beneroth
<beneroth>
razzy, look at it like this: if yo do (in '(unix-command) (line)), then (line) will block until the input channel delivered a ^J newline character
<beneroth>
if you do (in 'unix-command (till " ")) then (till " ") will block until the input channel delivered a " " space character
<beneroth>
correction: (in '(unix-command) (till " ")) then (till " ") will block until the input channel delivered a " " space character
<Regenaxer>
and I think there is no *general* way to recognize what kind of algorithm a program or function uses
<beneroth>
if you do (in '(unix-command) (char)) then (char) will block until a single character has been received
<Regenaxer>
yes
<beneroth>
Regenaxer, T. it's not a pattern of working.
<Regenaxer>
yeah
<beneroth>
razzy, so how/where your program is waiting depends entirely on the programming.
<Regenaxer>
beneroth, what you described depends also how 'unix-program' behaves
<beneroth>
T
<Regenaxer>
e.g. if it flushes
<Regenaxer>
can well be the receiver must wait until a full buffer is sent
<beneroth>
I say: if it involves I/O then there could be wait times. otherwise not, unless especially programmed. when doing I/O, especially when interfacing with other programs like (in '(unix-command)), the behavior and potential misbehavior/error behavior of the other program has to be considered
<beneroth>
considered as in: do I trust this other program? how much do I check values I receive from it? do I trust the program to return in acceptable time or do I need to do a timeout around the call e.g. using (abort)
<beneroth>
this is general programming topic, nothing special to picolisp.
<Regenaxer>
I still don't understand what razzy really means
<Regenaxer>
what problem to solve
<beneroth>
I suspect he is just generally confused/worried about waiting/blocking behaviors?
<beneroth>
razzy, ?
alexshe96 has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
peterhil has quit [Ping timeout: 260 seconds]
<razzy>
Hi all, i am sorry. I should have also said that answer was "there is no general way now, you need to look at pil code".
<razzy>
I think it would beneficial to have flag in function that says "good for streaming"
<Regenaxer>
or, in case of sort, at Unix or GNU
<Regenaxer>
I still don't understand
<Regenaxer>
They are all good for streaming, no?
<beneroth>
T
<Regenaxer>
Your question is: Which algorithm does what?
<Regenaxer>
Does an algorithm need all data before it starts?
<beneroth>
razzy, we feel there still is a misunderstanding. maybe you can explain a bit more?
<Regenaxer>
Which other algorithms come to mind except sort?
<razzy>
I have rule, to imagine almost infinite data when writing code. I was traumatised in past by other people code, who needlessly need to wait for all data to come in
<Regenaxer>
(and sort does *no* streaming, it takes a set of data, and may well process them one by one)
<beneroth>
razzy, easy: only do what is necessary and no more. KISS.
<Regenaxer>
For example, you can read from a stream and insert into a tree
<Regenaxer>
so the tree is always sorted
<beneroth>
razzy, don't wait on things you don't strictly require. but the things you strictly require.. you have to wait for them. or abort or whatever.
<beneroth>
if your code works on lines, don't read the whole file, just read a line.
<beneroth>
if your code works on a string, don't read a whole line, just the string you need to process on.
<razzy>
yep
<Regenaxer>
So there is no function which could be flagged
<razzy>
so pil functions have this in mind, yes?
<Regenaxer>
No, it is the algorithm the programmer chooses
<beneroth>
yes/the question doesn't really make sense
<beneroth>
that is all general programming topic
<Regenaxer>
razzy, *which* pil function could have that in mind?
<Regenaxer>
have what in mind?
<razzy>
:D, i think Regenaxer is too good of a programmer to understand.
<razzy>
Regenaxer: So all pil functions have kiss in mind and are streaming compliant when possible
<Regenaxer>
No
<Regenaxer>
well, kiss yes
<Regenaxer>
Which function is streaming compliant, and which not?
<Regenaxer>
'sort' does no streaming
<Regenaxer>
it takes a list
<razzy>
I do not care about MB buffer overhead as long as buffer is constant. I care about buffer that explodes with huge incomming data
<Regenaxer>
yes, so as ever you need to understand how the used algorithm behaves
<Regenaxer>
You can always produce huge amounts of data
<Regenaxer>
nothing to do with I/O
<Regenaxer>
or you can overflow the stack
<razzy>
i think it is scalability problem. when i put bigger data in, it breaks
<Regenaxer>
yeah
<razzy>
ok, so, i go back to pil :]
alexshendi has quit [Read error: Connection reset by peer]
alexshe10 has joined #picolisp
<beneroth>
razzy, picolisp does not build any buffer in the background. you do that explicitly in picolisp programming. therefore the question cannot be answered in the general case, only for specific code.
<beneroth>
so if you have something programmed, feel free to ask Regenaxer and/or me to review it, especially considering the criteria you like to focus on :)
alexshe10 has quit [Quit: -a- Connection Timed Out]
brandelune has joined #picolisp
alexshendi has joined #picolisp
alexshe14 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
brandelune has quit [Quit: This computer has gone to sleep]
alexshe14 has quit [Quit: -a- Connection Timed Out]
razzy has quit [Ping timeout: 258 seconds]
brandelune has joined #picolisp
alexshendi has joined #picolisp
brandelune has quit [Quit: This computer has gone to sleep]
razzy has joined #picolisp
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
razzy has quit [Ping timeout: 258 seconds]
brandelune has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
brandelune has quit [Quit: This computer has gone to sleep]
razzy has joined #picolisp
aw- has quit [Ping timeout: 264 seconds]
razzy has quit [Ping timeout: 258 seconds]
razzy has joined #picolisp
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
brandelune has joined #picolisp
peterhil has joined #picolisp
razzy has quit [Ping timeout: 265 seconds]
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
razzy has joined #picolisp
razzy has quit [Ping timeout: 258 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 258 seconds]
razzy has joined #picolisp
razzy has quit [Ping timeout: 265 seconds]
clacke has quit [Read error: Connection reset by peer]
wineroots has quit [Remote host closed the connection]
alexshe69 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
brandelune has quit [Quit: Leaving]
alexshe69 has quit [Ping timeout: 258 seconds]
<beneroth>
Regenaxer, remember my troubles with PSH not working via SSH (from Windows) ?
<Regenaxer>
yes
<beneroth>
must be the SSH client used doing something weird. using another SSH client shows none of those issues.
<Regenaxer>
ah, ok, strange
<beneroth>
yeah strange, as normal SSH terminal works as expected, but when starting a process in it and connecting it to PSH it stops working
<beneroth>
MobaXterm has this issues. no such issues with the (older) putty.
<Regenaxer>
Some tty attributes probably
<beneroth>
must be. something exotic. no ideas.
<beneroth>
but unless I find the root cause (which I will not search further), we can consider this a BCK problem (between chair and keyboard). solution: use a proper SSH client ;-)
<beneroth>
just FYI
<Regenaxer>
Good :)
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe91 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe83 has joined #picolisp
alexshe91 has quit [Read error: Connection reset by peer]
alexshendi has quit [Ping timeout: 258 seconds]
alexshe83 has quit [Ping timeout: 260 seconds]
emacsomancer has quit [Quit: WeeChat 3.3]
emacsomancer has joined #picolisp
clacke has joined #picolisp
clacke has quit [Read error: Connection reset by peer]