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 [Quit: No Ping reply in 180 seconds.]
chexum has joined #picolisp
chexum has quit [Remote host closed the connection]
chexum has joined #picolisp
chexum has quit [Remote host closed the connection]
chexum has joined #picolisp
theruran has quit [Quit: Connection closed for inactivity]
chexum has quit [Quit: No Ping reply in 180 seconds.]
chexum has joined #picolisp
chexum has quit [Ping timeout: 255 seconds]
chexum has joined #picolisp
Regenaxer has quit [Ping timeout: 248 seconds]
inara has quit [Quit: Leaving]
inara has joined #picolisp
Hunar has quit [Quit: Bridge terminating on SIGTERM]
abu[m] has quit [Quit: Bridge terminating on SIGTERM]
Thorsten[m]1 has quit [Quit: Bridge terminating on SIGTERM]
abu[m] has joined #picolisp
Thorsten[m] has joined #picolisp
Hunar has joined #picolisp
Regenaxer has joined #picolisp
genpaku has quit [Read error: Connection reset by peer]
genpaku has joined #picolisp
chexum has quit [Read error: Connection reset by peer]
chexum has joined #picolisp
chexum has quit [Quit: No Ping reply in 180 seconds.]
chexum has joined #picolisp
<Hunar> Hello abu :) I checked out PicoLisp's solution to RossetaCode's signal handling task, I modified it a bit to catch ctrl-c, how can I run a function then exit? calling (bye) doesn't work ix.io/4gyv
<Hunar> wait my code is wrong
<abu[m]> Hi Hunar! (bye) definitely wmrks, the problem is probaly the call *inside* the 'push'. So it runs immediately.
<Hunar> I needed a quote
<Hunar> '(bye) now works :)
<Hunar> wait no
<abu[m]> ok :)
<abu[m]> (push ... '(prog ... ?
<Hunar> Yep :)
<abu[m]> btw, for such a test I would do (loop (println (inc (0))) (wait 500))
<Hunar> It's one of those times where you think about something for hours, then when you ask you figure out the answer :/ happened alot in school
<abu[m]> or (loop (printsp (inc (0))) (flush) (wait 500))
<abu[m]> Right! ☺
<Hunar> I just copy/pasted it and didn't even look at the code :)
<abu[m]> You could simply do (push '*Bye (println "...")
<abu[m]> It will run upon exit
<abu[m]> No, forget that :)
hrberg has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<abu[m]> You want it *inside* the sigterm handler only
hrberg has joined #picolisp
<Hunar> Ah, that is better :) .. my use case was to run a loop calculating stuff, then let the user stop it with ctrl-c without closing the whole program. I know how to do it now :)
hrberg has quit [Client Quit]
hrberg has joined #picolisp
<Hunar> I have one tiny suggestion, I was searching for how to print to stderr and (doc 'prin) or the other print functions didn't help, then I found (msg ..) by accedent .. mabe they should (see also) each other :)
<abu[m]> True, there should be more "see also"s
<abu[m]> But the print functions refer to each other
<abu[m]> and msg too
<Hunar> It helps alot.. one of the MAIN reasons I chose picolisp was the great, offline, and cleaf documentation :) have you ever looked at common lisp's docs, they look like encrypted messages
<abu[m]> ☺
<Hunar> msg refers to prints but the prints dont refer back
<Hunar> take a loon at this page, do you understand anything? how would a beginner understand that
<abu[m]> This is intended, because very many functions do call printing
<Hunar> look*
<abu[m]> uh, indeed!
<abu[m]> CL is far too verbose for my taste everywhere, also the language itself
<Hunar> :)
<Hunar> It's the c++ of lisps.. I abandoned c++ because in modern "good" syntax every line is like hald a screen wide, tooo verbose.
<Hunar> half*
<abu[m]> I did always say exactly the same (C++ vs. C like CL vs. simple Lisp)
<Hunar> :) now C + PicoLisp is my favorite
<abu[m]> perfect :)
<beneroth> haha
<beneroth> I came from C++ to Lisp, saw that Common Lisp has platform incompatibilities and even multiple incompatible compilers. So I was like "had enough of that in C/C++" and searched for another lisp, ending up here
<abu[m]> Hi beneroth: You are a C++ fan
<beneroth> well it was my first language, so it will always be in my heart. but for most tasks it's a too verbose too inflexible language
<beneroth> and too big a language.. nobody programs in C++, everyone just picks a subset kinda
<abu[m]> Yeah, like in Java
<beneroth> I grokked templates and don't see why they didn't get more leverage also in other languages.. but I guess most people didn't grok it
<beneroth> I think java is worse
<beneroth> java is less consistent
<beneroth> C++ is to big, but not full of exceptions at surprising places I think?
<abu[m]> My understanding is that templates use up lots of memory due to internal duplication, no?
<beneroth> well basically templates generates classes the same way classes generate structs + functions.
<beneroth> and only what is used
<beneroth> so where Java casts suddenly everything to +Object to handle different types in generics, C++ compiler would create adapted containers for every type
<abu[m]> And classes are code, so there is a lot of duplication
<beneroth> so I don't think it does really a lot of duplication.. of course if you do too many specializations, maybe
<beneroth> certainly more duplication/verbosity also in RAM than picolisp. But picolisp only has 3 data types, basically.
<abu[m]> I got that feeling in the 90s, in the only C++ project I ever participated in
<beneroth> could be. most C++ projects are horrible
<Hunar> I like to know the whole language.. in c++ or Common lisp, you simply cant
<beneroth> I didnt participate much in any C++ projects, most stuff was myself or small team
<beneroth> Hunar, yeah
<beneroth> and C# is nowadays not a single language anymore but a collection of mixed in dialects xD
<beneroth> looking the same but behaving differently depending on the context
<beneroth> e.g. Linq, or normal C# vs. Razor C# (= C# embedded in html)
<Hunar> Oh, I didn't know that. It looked elegant in the Unity3D tutorials I saw
<beneroth> yeah it looks the same but it's not always behaving the same.
<beneroth> That I find inconsistent. That I find so bad about Java/C#, and I think its not so much present in C++ unless you put it in (which probably many projects do. I even hated the Qt C++ library, they did a lot of redefining and their own precompiler)
<beneroth> C# is surely the best language for the Windows platform :)
<beneroth> Windows C++ API is awful
<beneroth> though most of C# Windows API is C++ in nicer clothing :)
seninha has joined #picolisp
<beneroth> hi seninha
<seninha> hi
<Hunar> I never found any GUI library in c/c++ to be enjoyable. the only GUI programming I had fun with was the one in Racket
<abu[m]> Hi seninha!
<beneroth> I had fun with the SDL libraries. but that was only 2D, not GUI. I tried to build my own GUI library in it. Learned a lot.
<beneroth> Qt is full of magic
<beneroth> gtk might be okayish
<Hunar> Hello seninha
<beneroth> windows api was okayish but a lot of code. like 2 pages A4 paper just for an empty window.
<beneroth> and translating the API errors into something meaningful was sometimes very difficult.. they have an advantaged system with multi-language codes and contexts and whatnot
<seninha> h-hi
<Hunar> beneroth: That was my first introductio to gui programming :D it kept me back for months. I was like "is this really how people make a simple window"
<beneroth> Hunar, I guess we both were too late for Borland, that was supposedly very good and a fully integrated system
<beneroth> I think I tried out wzwidgets or something similar named, that was also acceptable and multiplatform
<Hunar> Yeah, I never heard about it :)
<beneroth> bbl
seninha has quit [Remote host closed the connection]
<abu[m]> Hunar, what I forgot to say at our initial discussion: You said you want to catch Ctrl-C, but this is not SIGTERM.
<abu[m]> Ctrl-C is SIGINT
<abu[m]> The 'kill' command sends SIGTERMD (ie. 15) by default. SIGINT is 2.
<abu[m]> PicoLisp by itself does not allow the programmer control over SIGINT handling.
<abu[m]> You could inhibit sending INT via Ctrl-C by telling the shell not to send it
<abu[m]> $ stty intr 0
<Hunar> Oh, thanks for the info :)
pfd has joined #picolisp
chexum has quit [Remote host closed the connection]
chexum has joined #picolisp
pfd has quit [Quit: Client closed]