IRC channel logs

2021-04-21.log

back to list of logs

***karlosz_ is now known as karlosz
<nly>no ,doc <function-name> ?
<wingo>should be
<wingo>not all functions have docstrings of course
<wingo>actually i wonder if ",doc" is broken somehow; ,d <function-name> works
<wingo>good morning!
***apteryx_ is now known as apteryx
<cheim0>,doc = ,describe?
<nly>morning :D
<nly>thanks
***erkin is now known as Cathrinus
<BitPuffin>Are there any wlroots bindings for guile? If not, what's the best way to generate c bindings for guile, swig?
***rekado_ is now known as rekado
<rekado>BitPuffin: I had excellent result with the ffi-helper that’s part of nyacc
<BitPuffin>Oh, first time I hear of nyacc
<BitPuffin>Looks interesting!
<rekado>it made writing Guile bindings to DRMAA much easier
<rekado>all it takes to get started is define-ffi-module like here: https://git.elephly.net/?p=software/guile-drmaa.git;a=blob;f=drmaa/v1/ffi.ffi;h=4327926aef2aaa87097247051cbb68e360f82228;hb=HEAD
<rekado>when fed to the ffi-helper this results in a module that I’m importing here to provide more Scheme-like bindings: https://git.elephly.net/?p=software/guile-drmaa.git;a=blob;f=drmaa/v1/low.scm;h=4e9ac55096222969a2cb79ca74c6e5162de7ca4d;hb=HEAD
<flatwhatson>does that make nyacc a runtime dependency of your package?
<rekado>flatwhatson: the generated code depends on one module that nyacc provides. You can copy that module to avoid a runtime dependency on nyacc.
<rekado>that is what guile-libyaml does
<flatwhatson>ah, perfect!
<BitPuffin>rekado: so after you have the raw binding you make more scheme friendly abstractions on top?
<leoprikler>yep
<nly>how do i display favicon from guile web server?
<BitPuffin>nly: guile web server only gives you some very basics, you basically have to either load and serve it as bytes, or serve it with a reverse proxy in front of the web server like nginx
<BitPuffin>Afaik at least
<wingo>you could handle the favicon path and return a suitably-mime-typed bytevector
<wingo>but yeah i usually get nginx to handle the static things
<BitPuffin>Gotta be webscale
<leoprikler>render it ad-hoc with guile-picture-language :)
<BitPuffin>wingo: are there any more or less meaningless microbenchmarks of guile vs C out in space that you know about?
<BitPuffin>By space mean cyberspace
<nly>thanks
<dsmith-work>{appropriate time} Greetings, Guilers
<leoprikler>BitPuffin: you mean other than http://wingolog.org/archives/2019/06/26/fibs-lies-and-benchmarks ?
<BitPuffin>Oh, first time I'm seeing this
<BitPuffin>Was searching earlier but nothing cool came up
<BitPuffin>Will give it a read
<lampilelo>BitPuffin: this benchmark is for guile version < 3, guile became a bit faster since then: https://wingolog.org/pub/fosdem-2020-images/guile-3.0.0-vs-2.2.6-microbenchmarks.png
<BitPuffin>Ah yeah pretty sure I've seen this one, but it is guile vs old guile right?
<lampilelo>BitPuffin: yes
<ArneBab>BitPuffin: there is also Guile (3.0.4, current is 3.0.5) vs. Scheme-to-C-compilers by ecraven: https://ecraven.github.io/r7rs-benchmarks/ — gambit/gerbil compiles Scheme to C, Chez is crazy assembly-optimization, racket is Chez, then you get the Schemes that are roughly as fast as Guile 3. The benchmarks also show Guile 3 vs. Guile 2, so they can make older benchmarks somewhat comparable to Guile 3.
<zzappie>hello guilers! anyone knows function analogous to rackets shuffle in guile libs?
<zzappie>* shuffle: Returns a list with all elements from lst, randomly shuffled.
<wingo>woo, i have a pass to elide arity checks
<wingo>(good evening zzappie :))
<wingo>zzappie: nothing in guile's libs i think
<zzappie>hello :)
<zzappie>already stolen it from racket
<wingo>great
<zzappie>only changed those square brackteers
***karlosz_ is now known as karlosz
<dsmith-work>silly rackettes, square brackets are for clojure (, and emacs-lisp)
<dsmith-work>rlb: what's your clojure thing called again?
<leoprikler>zzappie: I have manually implemented good ol fisher-yates
<daviid>and configure.ac
<daviid>zzappie: fwiw, patches and tips in guile-cv's manual sibling sections dedicated to 'configure guile for guile-cv', so repl and raised exceptions do truncate their output, work fine with geiser
<daviid>manumanumanu: it is not a hack, it is a nive and clean patch - the hack is to have to ask users to apply it, unfortunately
<daviid>*nice ...by lloda - we both, and any one of us working with large structures, depends on the patch, otherwise, guile is just unusable
<daviid>most users are dead scared to patch (ice-9 boot-9) themselves though, hence guile is unusable - form them,guile-cv users and any other users who have to manipulate large structures
<daviid>i stoped working on guile-cv, it was to teach yung adults and not so young adults :), but defiitely beginners for most of them, to use scheme and have fun doing so image processing ... even phd students didn't feel confortable to patch ...
<daviid>dsmith-work: lokke
<daviid> https://git.sr.ht/~rlb/lokke