beneroth changed the topic of #picolisp to: PicoLisp language | The scalpel of software development | Channel Log: https://libera.irclog.whitequark.org/picolisp | Check www.picolisp.com for more information
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]
aw- has joined #picolisp