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
chexum has quit [Remote host closed the connection]
chexum has joined #picolisp
alexshendi has joined #picolisp
alexshe46 has quit [Ping timeout: 265 seconds]
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
alexshendi has quit [Ping timeout: 248 seconds]
alexshe17 has joined #picolisp
alexshe17 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
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
<tankf33der> morning all
<abu[7]> Hi tankf33der!
<tankf33der> gahr: here? question about picolisp port in freebsd.
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe67 has joined #picolisp
alexshe67 has quit [Read error: Connection reset by peer]
alexshe24 has joined #picolisp
alexshendi has quit [Ping timeout: 252 seconds]
<tankf33der> i am thinking how to change a Makefile a little.
<tankf33der> abu[7]: one liner
<abu[7]> ?
aw- has left #picolisp [#picolisp]
aw- has joined #picolisp
<tankf33der> 13:53 <tankf33der> i am thinking how to change a Makefile a little.
<abu[7]> Yes, and "abu[7]: one liner" is a question?
<tankf33der> no, announce. :)
<abu[7]> Ah! OK β˜ΊπŸ‘
<tankf33der> works in Linux and FreeBSD out of box now.
<tankf33der> very significant for porting purpose.
<tankf33der> afk in 2h.
<abu[7]> I see. Looks good
<abu[7]> Released
<tankf33der> Must have line in my TODO from beggining of pil21 :)
<abu[7]> about this lib issue?
<tankf33der> Aha
<tankf33der> now will be much better
<abu[7]> Perfect
geri has joined #picolisp
<geri> hey
<geri> what strategies are there to ensure there are no symbol collissions?
<geri> silly example
<abu[7]> (private) Args
<geri> won't it still be a problem if collissions are in a single file?
<abu[7]> Yes
<abu[7]> There is no "collision" if in the same lexical context
<geri> hm
<abu[7]> The program can't know that you *mean* different symbols
<geri> is "lexical context" here meant as anything that happens before (====) is called?
<abu[7]> Yes, for example
<abu[7]> but ==== relates only to transients
<abu[7]> (private) until the next one with that symbol
<geri> how does private work exactly?
<abu[7]> In any case, 'dolist" is better defined with transient or private Arg
<geri> also, how does using transient symbols for arguments work exactly :D
<abu[7]> Hmm
<geri> or more like, if i have 2 functions in different namespaces that have argument of "Args", how does pil know they're different?
<abu[7]> Many questions ;)
<geri> im a very curious person ;)
<geri> take your time
<abu[7]> I think "doc private" and the ref for transients try to explain it
<abu[7]> "Args" is always local within one file o until (====)
<geri> yeah explanation in ref.html#transient is pretty telling i guess xd
<abu[7]> (private) (A B) ... (private) A
<geri> basically once you read the source file, the stuff is already in memory, so there's little need to refer to args as symbols for example
<abu[7]> A is new after the second
<abu[7]> B remains
<abu[7]> Yes
<abu[7]> (private) is more fine-grained than transients
<abu[7]> Transients dp
<abu[7]> don't need a declaration
<geri> why is every symbol transient if i load a file with namespace setup and then inspect the namespace symbol itself?
<abu[7]> "Transient" means not readable in the current search order
<abu[7]> The printer simply doen not know it is intered in *some* namespach
<abu[7]> e
<geri> makes sense
<geri> so with every file i load, more stuff gets interned? just in another namespace/variable
<abu[7]> Right
<geri> okay
<geri> (box) is kinda like gensym in other lisps, right? :D
<geri> just makes an uninterned symbol
<abu[7]> Yes, pretty much the same
<geri> very cool
<abu[7]> optional with a value
<abu[7]> (I think not in gensym)
<abu[7]> 'box' is 'new' without implicit 'T' sending
<abu[7]> and without external symbol creation
<geri> i was thinking of doing something like common lisp's use of gensyms in macros to make argument collission less of a problem (occasionally)
<geri> should be viable, not sure if its worth it though
<abu[7]> Yes, this would work, but more verbose than simple transients
<geri> also more reliable...
<abu[7]> with gensym?
<geri> well, (box) in this case
<geri> its not an issue if you have small source files though
<abu[7]> Not more reliable
<abu[7]> if you use (====) or (private)
<geri> fair
<geri> why is {} a reader macro instead of just using (box)?
<abu[7]> Good question
<abu[7]> IIRC I just did not know what to do with an empty external
<geri> im not very knowledgeable about external symbols...
<geri> what's the problem with {} and external symbols exactly?
<abu[7]> I don't remember if I ever used {}
<abu[7]> No problem
<abu[7]> Otherwise {} would be a syntax error
<geri> or couldve just been a part of symbol names
<abu[7]> T
<abu[7]> {} may be convenient to create an anonymous sym at read time
<abu[7]> short of `(box)
<abu[7]> : (1 {} 2)
<abu[7]> -> (1 $177442400326654 2)
<abu[7]> : (1 `(box) 2)
<abu[7]> -> (1 $177442400326661 2)
<geri> yeah, but saving 4 characters per use doesn't sound worth the (admittedly small) extra reader complexity
<abu[7]> The reader is not much more complex, be6ause it would need to handle it somehow
<abu[7]> (eg. issue an erro)
<geri> typically "any other character" is just a symbol
<geri> it'd be weird to have { be a valid symbol but not unheard of
alexshe24 has quit [Read error: Connection reset by peer]
<abu[7]> It could return NIL, like () does
<abu[7]> But an anon sym is more convenient
alexshe6 has joined #picolisp
alexshe6 has quit [Read error: Connection reset by peer]
<abu[7]> If "{}" is found, it just calls (consSym ZERO $Nil)
alexshendi has joined #picolisp
<abu[7]> No big thing
<geri> ((== C (char "{")) ...)
<geri> in llvm~read0
<geri> pretty horrifying
<abu[7]> :)
<abu[7]> Still very simple when compared to a parser of other languages
<geri> well that's true
<geri> unless forth
<geri> what does that block even do?
<abu[7]> indeed
<geri> if {} calls box, but otherwise?
<abu[7]> ((== C (char "{")) ?
<geri> i dont think ive seen {XYZ} syntax anywhere in docs
<geri> yes
<geri> the else clause
<abu[7]> It reads an external
<abu[7]> {ABC1234567}
<geri> nothing about this syntax in reader macro part or in external symbols part...
<abu[7]> "External Symbols" in @doc/ref.html
<geri> i still dont see "{...}" there, am i blind?
<geri> oh wait
<geri> theres more than one external symbols headers
<abu[7]> Yes, the second
<abu[7]> or doc/structures
<geri> ah, okay
<abu[7]> Line 281 ff
<abu[7]> cryptical
<geri> it appears as last line for me :D
<geri> i see {177777} though
<abu[7]> oops
<abu[7]> copy/pasted the wrong number from Vip st tus line
<abu[7]> so it is 87
<geri> honestly im not sure how exactly to use (box) for fixing symbol collissions considering if you use (let) you'll probably still use 1 or more normal symbols
<geri> maybe ` + let that returns a list
<geri> which do be verbose
<abu[7]> T
<abu[7]> it will be messy
<geri> it is also pretty cool though :D
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
<geri> (pretty dolist)
<geri> is pretty horrifying
<geri> :D
beneroth has joined #picolisp
<geri> much better
<geri> although value of dolist is still horrifying
<abu[7]> Yeah :)
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
alexshe26 has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshe26 has quit [Ping timeout: 248 seconds]
alexshe81 has joined #picolisp
alexshe81 has quit [Ping timeout: 252 seconds]
alexshendi has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshe93 has joined #picolisp
alexshendi has quit [Ping timeout: 248 seconds]
alexshendi has joined #picolisp
alexshe93 has quit [Ping timeout: 248 seconds]
alexshendi has quit [Quit: -a- Connection Timed Out]
alexshendi has joined #picolisp
alexshendi has quit [Ping timeout: 260 seconds]
alexshendi has joined #picolisp