IRC channel logs

2017-10-05.log

back to list of logs

<Apteryx>how to make string-match return a boolean?
<cmaloney>Apteryx: Couldn't you wrap the function so if you get anything other than an empty list it returns true?
<Apteryx>cmaloney: oh, it seems we have regexp-match?
<cmaloney>Yeah, there's several string matching functions
<Apteryx>string-match will return either #f or <regexp-match object>, so that should work.
<cmaloney>\\o/
<daviid>GHM video are mono (not stereo) or do I have a config prob here?
<michaelis>Hi. Can I create graphical applications in guile? What widget sets are available and easy to use with guile then?
<roelj>Is there a faster way to write a byte to a file than using either (write ...) or (display ...)?
<michaelis>Hi. Sorry for being so daft but what exactly is guile? Can I write a whole application in it or is used for this thing called "extension", that I don't know anything about? Or is it both?
<roelj>michaelis: Guile is an implementation of the Scheme programming language. So you can write a whole application in it.
<michaelis>roelj: Thank you.
<roelj>michaelis: But you can also use it as an extension language, because at its core, there is libguile, which is written in C.
<michaelis>roelj: And what exactly is a extension language?
<roelj>michaelis: A language that can be used to extend your program. So you need to embed an interpreter for that language in your program.
<michaelis>roelj: I see on guiles official web page that there is no way in creating a simple network socket. Do I solve that with for example C and integrate this into my guile source code in some way?
<roelj>michaelis: Have you seen this?: https://www.gnu.org/software/guile/manual/html_node/Internet-Socket-Examples.html#Internet-Socket-Examples
<roelj>You could also write that stuff in C, and then expose functions to Scheme from your C code.
<roelj>But in the case of network sockets, I think you could just use Guile entirely.
<michaelis>roelj: Ok, thank you. I found it just after you posted the link. :) I have just started to navigate the web page.
<roelj>Good luck! :)
<michaelis>roelj: Thank you.
<ArneBab_>michaelis: welcome back. For graphical applications, see guile-gnome
<ArneBab_> https://www.gnu.org/software/guile-gnome/
<jeko>Is a Guile Hacker called a guiler ?
<manumanumanu>yes
<manumanumanu>among other things
<amz31>davexunit: what is the purpose of before-draw-hook and after-draw-hook in chickadee?
<davexunit>amz31: for doing things like frame rate calculation
<davexunit>you can measure time before and after the draw call and calculate fps from there
<amz31>tx
<OrangeShark>Happy Thursday
<Apteryx>Hello Guile! When using `string-split', what arg for CHAR_PRED should I use to split on any whitespace character? It says I can use a "character set".
<Apteryx>Oh, I just found a "Character Sets" section; it wasn't indexed.
<OrangeShark>Apteryx: yeah, there should be a predefined one for whitespace
<Apteryx>char-set:whitespace :)
<civodul>ooh looks like the bdw-gc list at opendylan.org is dead :-(
<ArneBab_>davexunit: what’s the difference/relationship between Chickadee and Sly?
***dsmith-w` is now known as dsmith-work
<dsmith-work>{appropriate time} Greetings, Guilers
<ArneBab_>(appropriate 'time) Greetings ☺
<davexunit>ArneBab_: I don't work on Sly anymore.
<davexunit>I do work on Chickadee.
<ArneBab_>so Chickadee is a followup project?
<davexunit>yes.
<davexunit>Chickadee is a lower level library that should appeal to more people.
<ArneBab_>could you mark it as such on your website?
<ArneBab_>(in the project listing)
<davexunit>yeah sometime
<davexunit>I haven't had much time for editing things like that
<ArneBab_>^ there’s a problem in your editing workflow ☺
<davexunit>I'm busy
<davexunit>I don't write much code these days
<davexunit>let alone work on my website
<ArneBab_>(when I hit that wall, I switched to drupal: just clicking edit on the website to change the content)
<ArneBab_>(nowadays drupal isn’t really what I want anymore, but I don’t yet have a replacement)
<davexunit>I can assure you my workflow is just fine
<ArneBab_>(⇒ I need something which avoids having to recover buffers)
<ArneBab_>ok :)
<davexunit>I haven't prioritized hacking in the past year
<davexunit>so things are out of date
<ArneBab_>I’m personally dissatisfied with my website dev tools, but I don’t have the time to really fix it.
<davexunit>I like using my static site generator. I need to make a real release of guile-syntax-highlight and clean up my environment.
<davexunit>then it will be better. just unmotivated to do it.
<dustyweb>wingo: others: https://github.com/cwebber/rebooting-the-web-of-trust-fall2017/blob/master/draft-documents/lds-obcap/lds-obcap.md
<dustyweb>I collaborated with Mark S. Miller and he offered to be co-author omg
<bavier>dustyweb: sweet!
<bavier>question: I have a guile@2.0.9 installed in /usr/bin, and a guile@2.0.14 installed into /usr/local/bin. But when I invoke `/usr/local/bin/guile --version`, I get "2.0.9". Any ideas why?
<bavier>oh, nvm, figured it out. rpath on the /usr/local guile pointing to /usr/lib64 instead of /usr/local/lib. doh
<civodul>/usr/local is sooo 90's ;-)
<laertus>my compilation of guile 2.2.2 has been hanging for hours at "BOOTSTRAP GUILEC ice-9/psyntax-pp.go"
<laertus>top shows this process is the culprit, using 84% of the cpu -- mostly in user space: https://paste.pound-python.org/show/FjgHzHgxA5tCizY5QHtK/
<laertus>ltrace doesn't show anything... strace shows https://paste.pound-python.org/show/ucc4lUSzUMGDLjD0xnxo/
<ArneBab_>dustyweb: this sounds like something which would be cool to have in a availabillity-ensurance system for Freenet. Nice!
<zacts>hello #guile
<dsmith-work>laertus: It usually does take a *long* time. Depends on build machine of course.
<dsmith-work>How many hours?
<laertus>well, it was hanging on just that part for at least a couple hours
<dsmith-work>Did it ever progress beyond that?
<laertus>i killed it and am giving it another try without having the guix build directory mounted as ext4 zramfs
<laertus>because i have heard on here that guix sometimes has issues with ext4
<laertus>(though plenty of other stuff built on there fine for me)
<laertus>now it's on spinning rust xfs
<laertus>if it had been giving me some progress reports, saying things were kind of sane i would have probably let it run
<dsmith-work>laertus: Are you building from a package or from git? The package has some bootstraping so it takes less time.
<laertus>but it just hanging there without making any visible progress for 2+ hours is weird
<laertus>that's a good question.. i'm not sure
<dsmith-work>laertus: It used to take me a whole weekend to rebuild guile for sneek.
<laertus>hmm
<dsmith-work>laertus: (the local channel bot)
<laertus>maybe i should have let it run...
<dsmith-work>Yeah.
<laertus>i wish software that took a long time to build would do a little mini-benchmark before it started building and told you what the expected wait time was
<dsmith-work>Ooo. Cool idea.
<laertus>it's still being slow
<laertus>i wonder what it is that makes it so slow
<laertus>i don't think it's the gc, because perf doesn't show the gc functions being hit more than about 8% of the time
<bavier>laertus: bootstrapping uses the C scheme interpreter, which is just plain slow
<laertus>interesting
<laertus>is there any potentially low-hanging fruit in optimizing it?
<bavier>laertus: possibly, though I can't think of any offhand
<laertus>i seem to remember there used to be a really high performance scheme interpreter
<laertus>stalin, was it?
<dsmith-work>laertus: All the guile compiler and optimizations are now in Scheme. The C Scheme interpreter is really minimal and just for bootstrapping.
<dsmith-work>laertus: The package comes with pre-compiled files to make it faster.
<dsmith-work>laertus: That's the current low-hanging fruit.
<laertus>but it's still slow
<laertus>so i was wondering if maybe some of stalin's optimizations could be used in it and if it'd make a difference
<dsmith-work>laertus: https://wingolog.org/archives/2016/01/11/the-half-strap-self-hosting-and-guile
<laertus>thanks
<dsmith-work>laertus: It's actually a time warping optimizer. Takes all the slowness at runtime and packages it up and stuffs it in the build step instead. Slower up front but faster where it counts.
<dsmith-work>;^)
<laertus>ah
<laertus>i guess which is preferable depends on how often you build guile.. :)
<dsmith-work>heh
<dsmith-work>yes
<laertus>also, it looks like the bootstrap compiler is not for this
<laertus>"The bootstrap C interpreter in libguile loads the Scheme compiler and builds eval.go from eval.scm."