ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
orivej has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
dexen has quit [Ping timeout: 272 seconds]
rob_w has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
dexen has joined #picolisp
aw- has quit [Quit: Leaving.]
rob_w_ has joined #picolisp
aw- has joined #picolisp
orivej has joined #picolisp
_whitelogger has joined #picolisp
<dexen> does a bare coma has any meaning between list elements?
<dexen> i've placed some here and there seemingly out of habit, and it seems to not affect the program at all...?
<Regenaxer> it is a read macro, which places the next item into the *Uni global
<Regenaxer> This is normally used for strings to be localized
<Regenaxer> Look up "read macros" in the ref, and the *Uni global
<Regenaxer> So yes, there is no visible effect :)
<Regenaxer> : *Uni
<Regenaxer> will show something though
<dexen> great
<dexen> starting with PicoLisp is a surreal experience in that some of expected functionality isn't really there, or is handled in unexpected ways. like binary file read/write
<dexen> tho that's not a bad thing, as per the epigram #19 "A language that doesn't affect the way you think about programming, is not worth knowing."
<Regenaxer> I see :)
<aw-> hi dexen, welcome
<dexen> thank you, thank you
rob_w_ has quit [Remote host closed the connection]
<tankf33der> dexen: any git mirrors are unofficial
<dexen> ah. what would be a sensible way of sending the patch?
<aw-> oh i just saw that
<aw-> nice patch! i only noticed that problem on Firefox
<aw-> dexen: typically you can just put a pastebin here for Regenaxer to read
<aw-> or send an email to the mailing list (requires subscription)
<aw-> i send a reply through GitHub as with the previous pull request
<Regenaxer> Hi dexen, tankf33der, aw-!
<Regenaxer> In fact, I don't know rlook well, I did not write it
<Regenaxer> I think it was Jon Kleiser
<Regenaxer> I can gladly take the patch
<Regenaxer> What does it fix?
<aw-> i'll try it now, i think it fixes the search issue in new browsers
<Regenaxer> tankf33der, I tried to find out why pil21 is so much faster on divisio
<Regenaxer> n
<Regenaxer> but cannot see a simple reason
<tankf33der> Regenaxer: ok
<Regenaxer> Mysterious ;)
<aw-> nope doesnt fix
<aw-> Regenaxer: im not sure what that patch fixes, dexen would need to explain
<Regenaxer> ok
<Regenaxer> The focus at the end is commented
<dexen> for UX, i want the docs to give focus to the search <input>. sadly the "autofocus" attribute doesn't seem to work with frames
<Regenaxer> Besides that, only the order of the attributes in the text field are changed?
<dexen> so instead i added a short JS that focuses the search <input>. the comments are to handle older browsers that don't like JS/CSS. it's similar to how previous block of JS and CSS in the same file is commented out
<Regenaxer> but isn't "IIwindow.document.getElementById('search').focus..." commented out?
<dexen> it's not. there are 3 lines inside the new <script> tag. first line is a HTML comment (for old browsers), second line is the actual JS code without comment marks; 3rd line is again HTML comment for old browsers.
<dexen> tbh i wouldn't do the HTML comments on my own, but that's how it is done in other documentation code in those files
<Regenaxer> I see
<Regenaxer> So for me anything is fine
<Regenaxer> (I never read docs in a JS-enabled browser anyway)
<Regenaxer> If nobody objects, I take your version, ok?
<dexen> later on i'll probably also skip the HTML/JS documentation and plug something directly into my IDE (Acme) but for starting, the HTML/JS docs are pretty good
<Regenaxer> What can I write into doc/ChangeLog?
<Regenaxer> A short note
<Regenaxer> and credits to?
<Regenaxer> "... by dexen"?
<aw-> it changes nothing
<aw-> still doesn't auto-focus for me
<dexen> aw, what is your environment? i've only tested it on the (latest) Firefox and Chromium
<aw-> linux suckless 'surf' browser
<dexen> alright let me install and check it out
<dexen> version surf-2.0 hopefully? or an older one?
<dexen> can't get to it now, as i'm having trouble compiling dependencies for the browser. sorry
<Regenaxer> No problem!
<Regenaxer> Shall I postpone the change for now?
<dexen> recommend "Reference lookup search input autofocus", and "by dexen" is fine
<Regenaxer> All right! Good
<Regenaxer> Will be in the next release. Thanks!
<dexen> great thank you
rob_w has quit [Quit: Leaving]
<dexen> the (port) function seems to work only with IPv6...? or am i reading it wrong.
<dexen> asking because it bombs for me with "IP socket error: Address family not supported by protocol"
dexen has quit [Read error: Connection reset by peer]
dexen_ has joined #picolisp
dexen_ is now known as dexen
<Regenaxer> (port) does work fine with IPv6, but it needs a dual stack at runtime
<Regenaxer> oop
<Regenaxer> s
<Regenaxer> ... works fine with IPv4 I mean
<Regenaxer> so, the OS must support it
<dexen> alright, makes sense
<dexen> is there a way to modify the stdin/stdout file descriptors - like the unix dup2() function - so they are attached to different socket for the subsequent (exec ...)?
<Regenaxer> Not without 'native' calls I think
<Regenaxer> 'pipe' does something like that internally
<Regenaxer> You mean an (exec ..) after a (fork)?
<dexen> yes. trying for a very basic functionality; a TCP listener that forks off worker processes and assigns them the connected socket as the stdin/stdout
<Regenaxer> I think this can be done with pipe plus exec
<Regenaxer> I find here stuff like: (pipe (exec 'java "-cp"
<Regenaxer> also in 'mail' in @lib/misc.l
<Regenaxer> (pipe (exec "@bin/ssl" Host (fin Port))
<dexen> i'm getting there, but still having trouble properly propagating the eof state up & down the chain
<Regenaxer> Just close the file descriptor/socket/pipe etc. The Lisp side receives NIL then
<dexen> i'm probably doing something very silly; i wanted to indicate to the child process that there's no more content to *read*, and to switch to *writing* the response instead
<dexen> but using (out Pipe (eof T)) seemingly made the pipe closed in *both* directions
<Regenaxer> hmm (eof) is a pure input function
<Regenaxer> Closing the file descriptor here is not a good idea
<Regenaxer> Better send some dedicated message
<Regenaxer> Anyway (eof T) does not close anything
<Regenaxer> it sets the *input* status to indicate EOF upon ext read. Very seldom needed
<Regenaxer> What kind of child process is that? Is it under your control?
<dexen> yes tho i would like not to change it too much. the idea is to learn picolisp better, so i'd rather understand what i'm doing wrong :D
<dexen> (rd) without count reads "one item", what does that mean? and is there a helper to convert the large integer into smaller integers suitable for (wr) ?
<Regenaxer> No, (rd) reads a Lisp expression
<Regenaxer> A data item of arbitrary size
<Regenaxer> a kind of serializatiin
<Regenaxer> (out "a" (pr <lispExpression>))
<Regenaxer> (in "a" (rd))
<dexen> alright the result is terrible but seems to work: https://github.com/dexen/busy-rpg/blob/master/SERVE_ALT_PIL
pointfree has quit [Read error: Connection reset by peer]
pointfree has joined #picolisp
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #picolisp