IRC channel logs

2019-12-11.log

back to list of logs

***catonano_ is now known as catonano
***Server sets mode: +nt
<manumanumanu>Good morning guilers!
<peanutbutterandc>On a Debian 10.2 machine, inside my guix profile, I have install guile-gnome and am trying to play around with it. However, I get the following error: no code for module (gnome gobject). Yes, I have $ eval `guix package --search-paths=prefix` as well. Any ideas as to why it might not be working?
<sneek>Welcome back peanutbutterandc, you have 2 messages.
<sneek>peanutbutterandc, nckx says: I promise that I'm not ignoring you, I've simply not been on-line for the past few days.
<sneek>peanutbutterandc, nckx says: Like, at all. 🙂
<peanutbutterandc>s/install/installed/
<manumanumanu>peanutbutterandc: which guile do you have?
<manumanumanu>if you are on guile-next, guile-gnome is not available
<peanutbutterandc>manumanumanu, It has been figured out. I didn't use (use-modules (gnome-2)) beforehand. It works now. Thank you very much.
<daviid>manumanumanu: afaict, guile-gnome work with the latest guile
<daviid>you need to ,use (gnome-2) first
<manumanumanu>daviid: ooh. I didn't know. The website says "now works with guile.2.2".
<daviid>ah, you figure itout, ok
<wingo>new results vs 2.2: https://wingolog.org/pub/guile-2.2.6-vs-2.9.7-microbenchmarks.png
<manumanumanu>wow!
<manumanumanu>good wwork on the right side of the diagram!
<wingo>tx :)
<manumanumanu>wingo: killing it with the array1 benchmark!
<wingo>the recipe for success is to write a broken thing and then fix it ;)
<manumanumanu>and sum! and destruc!
<manumanumanu>wowza
<wingo>those functions had a weird pathology where a recursive call would make them be JIT-compiled, but other activations on the stack that were doing the recursive calls wouldn't tier up
<wingo>so just a jit bug
<manumanumanu>I asked a question about sum and array1 in the mailing list. I was surprised that they were slower, since they were just tight loops.
<manumanumanu>Nice to know that they also became faster.
<wingo>yeah i thought that was the explanation too, initially
<wingo>turns out my intuitions are malleable :)
<wingo>i think ArneBab pointed out a few months ago that run-time was v different with GUILE_JIT_THRESHOLD=0; that was the clue that something was wrong
<zig`>hello! Good to see progress on the compiler :)
<roelj>Is there an ODBC library/package for Guile?
<lloda>some guile-newra benchmarks got twice as fast overnight :-)
<zig`>roelj: there is https://github.com/eestrada/guile-dbi, but I will gladly guide and help you to use wiredtiger.
<wingo>lloda: neat :)
<zig`>roelj: what is your use-case?
<manumanumanu>Ah, beating racket on my old project euler code with latest master :D :D Easy to port using my for loops as well.
<manumanumanu>wingo: about writing documentation. I am writing texi from the srfi-171 document, and I don't really know how to document the rany? reducer, at least in a clear way compared to rcons: https://srfi.schemers.org/srfi-171/srfi-171.html rcons is a three arity procedure, but in the context of transducers it is never applied in user-facing code. rany? however takes a predicate to return a reducer. How would you
<manumanumanu>suggest documenting that in a way that is not obtuse? Right now i am documenting rcons as @deffn rcons without arguments and then describing the arities in the text, wheres rany? in @deffn rany? pred and documenting the returned reducer in the text.
<wingo>i would use deffnx and repeat the thing three times for the different arities
<wingo>(if i understand the question)
<manumanumanu>But (rany? pred) returns a reducer similar to rcons
<manumanumanu>So I would be documenting two different things
<manumanumanu>so: rcons IS a three arity reducer. (rany pred?) RETURNS a three arity reducer.
<manumanumanu>For text clarity, I would do just @deffn rcons and then document the arities in the text, but for things like emacs code completion I start thinking I did the wrong decision not making everything a procedure that returns a reducer :D
<roelj>zig`: Thanks for the pointer. Unfortunatly I don't see ODBC support in guile-dbi; only database-specific implementations for postgresql, mysql and sqlite. I don't use wiredTiger; I want to execute commands on Virtuoso's ISQL prompt.
<wingo>manumanumanu: yeah dunno then :)
<manumanumanu>I'll do like I did in the srfi. Seems the clearest.
<zig`>sneek: later tell roelj, is Virtuoso a hardwired requirements? I am asking because my work is directly competiting with that kind of software.
<sneek>Will do.
<zig`>sneek: later tell roelj, see for example my recent work on nomunofu (https://github.com/amirouche/nomunofu/) that is *only* a *glimpse* of what is possible. Of course if you have shares in Virtuoso Inc., I understand it will not be possible.
***zig` is now known as zig
<zig>I am wondering why nobody believes me or trust me when I say that wiredtiger (and foundationdb) are the way forward. What can I do to help this situation?
<RhodiumToad>way forward for what?
<zig>for on disk persistence
<zig>distributed and resilient on disk persistence in the case of foundationdb
<RhodiumToad>persistence of what, though?
<zig>persistence of data. wiredtiger and foundationdb are ordered key-value store, they store data on disk with strong guarantees, ACID and CP.
<RhodiumToad>as a database guy, I'm generally skeptical of both key/value stores and "one true way" arguments
<zig>in particular, roelj I think they have been looking for on disk persistence of data for several year, I already proposed to help, but for some reasons, they do not want my help. I wish I was a wasp.
<zig>RhodiumToad: Ah! What is your background in databases? what do you mean by database guy? key/value store is not key/value store in the sense of memcached or REDIS or Aerospike. It is not the "one true way" for all data needs, but for on-disk persistence of structured data, it is. It can even manage OLAP workload with some help.
*RhodiumToad is a postgres developer
<zig>you develop postgres the software or you work with postgres?
<RhodiumToad>both at various times
<zig>interesting.
<zig>you do no seem to know what is an OKVS, tho.
<zig>OKVS = Ordered Key-Value Store.
<manumanumanu>hmh. git.savannah.gnu.org has been down a lot lately
<lloda>^ i've noticed it too
<davexunit>is there somewhere I can see the benchmark results for guile 2.9.6?
<sneek>davexunit, you have 1 message.
<sneek>davexunit, leoprikler says: did you ever get to implement the guix environment shebang?
<davexunit>this page http://ecraven.github.io/r7rs-benchmarks/ only has the latest stable release, which makes sense.
<davexunit>I've seen the benchmarks talked about
<davexunit>ah! I didn't realize the blog post had stuff that the mailing list post doesn't have. https://www.gnu.org/software/guile/news/gnu-guile-296-beta-released.html
<wingo>davexunit: note that things are significantly better since 2.9.6 :) see https://wingolog.org/pub/guile-2.2.6-vs-2.9.7-microbenchmarks.png
<davexunit>wingo: oh cool. thanks for sharing. :)
<davexunit>looking at them side-by-side to compare. a little tricky due to the non-linear y-axis
<wingo>log-scale as well :P
<davexunit>but it does look significant!
<wingo>ah i guess that is what you meant
<davexunit>yes sorry if I wasn't clear
<wingo>yeah basically i fixed the regressions relative to 2.2
<wingo>and made some incremental improvements, and also somehow mbrot jumped way ahead
<davexunit>I was about to ask about mbrot.
<davexunit>so this is basically just regression fixes? what a great result
<wingo>yeah i am pleased :) i think i am done doing perf things for 3.0
<davexunit>now I am curious to know where this will put guile 3.0 relative to the other scheme implementations, but I guess we'll just have to wait for a stable release to see an update to r7rs benchmarks page
<wingo>just need to fix bugs and anything that fits in between now and january 15 or so (aiming to release around then)
<wingo>davexunit: i will be running my own fork of that comparison fwiw soon, comparing against larceny, chez, and gambit
<wingo>i am assuming racket will be approximately chez
<wingo>we are generally faster than chicken now so i am not comparing any more
<davexunit>wow!
<davexunit>that is a great achievement
<wingo>but gambit and chez are quite good
<davexunit>yes
<davexunit>are the benchmarks using AOT compilation with chez?
<wingo>but, the ones that ecraven runs are less interesting to me because gambit and chez are run in an unsafe mode, so i am doing my own
<davexunit>ah
<davexunit>didn't know that detail
<wingo>yes they use AOT with everything pretty much
<wingo>even if it's compiling at run-time, compilation doesn't happen during the benchmark
<rgherdt>are you running chicken with -O5?
<wingo>rgherdt: i actually haven't been able to run the chicken benchmarks as they depend on some libraries that aren't packaged in guix. i was surprised to find fwiw that chicken didn't support r7rs natively
<wingo>i thought adding r7rs support would be somehow magic regarding ease of benchmarking but it's simply not the case :/
<davexunit>I'm super excited for guile 3.0. amazed by how much life has improved with jit.
<wingo>but you can look at the configuration in https://github.com/ecraven/r7rs-benchmarks/blob/master/bench fwiw
<wingo> https://github.com/ecraven/r7rs-benchmarks/blob/master/bench#L370
<rgherdt>hmm, I also didn't try to run the benchmarks, I can give it a try with the r7rs egg. Anyway congratulations for the amazing work
<davexunit>I ran my sprite rendering stress test with 2.9.6. 27k non-rotated sprites with linear motion rendering at 60fps on average on a thinkpad x1.
<davexunit>very happy with that.
<davexunit>I wish I had kept records of previous releases, but I didn't.
<davexunit>but I can say that going from no jit to jit improved performance immensely, and most pre-releases show small gains.
***ng0_ is now known as ng0
<jcowan>An OKVS would be an excellent modern substrate for a Codasyl ("network") database. I've been investigating those lately out of pure historical curiosity, and they have their virtues.
<ng0>zig: you have a nice redefinition of "small" being 7GB with your wikidata database server :O
<ng0>i guess for wiki that's small though
<ecraven>wingo: no time to actually implement it right now, but just to let you know: I'm planning to change the tests so that safe and unsafe are both run and shown, so people can decide what they want to see
<wingo>cool
<wingo>:)
<wingo>i will still need to have tests on the side to make e.g. https://wingolog.org/pub/guile-2.2.6-vs-2.9.7-microbenchmarks.png with error bars, to run it against git snapshots, etc
<zig>ng0: the whole database is 1.7TB
<zig>s/database/data/
<ng0>oof
<zig>thanks john for the reference (https://en.wikipedia.org/wiki/CODASYL)
<ArneBab>wingo: that’s awesome! I’m happy that some one-off comment of mine helped you find this :-)
<ArneBab>wingo: for a blog post you might want to use a non-logscale axis, because that shows more clearly which speedups people might see in their applications. Also at work my highest impact change to show the higher ups some metrics I created was to byte the bullet and switch to linear scale. It’s less exact but a lot more impressive and easier to understand.
<bandali>davexunit, is it possible to have `haunt serve -w` terminate with one C-c rather than two?
<bandali>is that inherent to the underlying guile threads library used in haunt? or something easily configurable?
<davexunit>bandali: yes, it's possible.
<davexunit>at the time I didn't know how but I think I need to trap a certain signal
<bandali>ha i see
<bandali>do you know where i could learn more?
<davexunit>the guile manual has a section on signals
<davexunit>sigaction is the procedure needed
<bandali>alrighty, will have a look, thanks!
<davexunit>np
<bandali>one last question: if i were to send you patches, would your @gnu.org address be okay? or do you prefer another address?
<davexunit>that one works. it will forward to the proper address.
<bandali>okay cool, ty
<davexunit>np!
<ArneBab>wingo: if you look at the numbers for ack and array1, the changes already put guile in the same ballpark as racket and chez
<ArneBab>in the tests of ecraven as they are (unsafe?)
<wingo>i don't think racket does unsafe optimizations
<wingo>so
<wingo>civodul: wdyt about a 2.9.7 on 13 dec; it would have been next friday but holidays. then 2.9.8 two weeks from next friday (3 jan). then 3.0.0 on 17 jan
<kernigh>Hello, does my IRC work?
<bandali>hey kernigh, yup; message received here
<kernigh>Thank you. Didn't get a "cannot send" error like I got a moment ago.
<bandali>cheers :)
<kernigh>I'm looking for help with Guile 2.2.6 on 32-bit-big-endian
<kernigh>The files in prebuilt/32-bit-big-endian are broken,
<kernigh>cause a core dump while building the source code.
<kernigh>I got it to work by moving those files away,
<kernigh>but the "bootstrap" part of the build is very slow.
<kernigh>Suspect that the prebuilt files are from a little-endian machine
<kernigh>but system/vm/assembler.scm might be missing a byte-swap.
<bandali>i'm personally not knowledgeable about that, so unfortunately i won't be able to help
<bandali>but if you don't hear from the others, feel free to write to one of the guile mailing lists
<kernigh> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26854 looks like the same bug.
<kernigh>It says to email 26584 AT debbugs... so I'm writing a mail now.
<bandali>alrighty :) your email will show up as a reply to that thread/bug report
<civodul>wingo: sure, why not
<civodul>i'd like to make sure i can recheck the issues i found out with Guix
<ArneBab>wingo: is there something additional that Mark sees as required feature for 3.0?