***cluck` is now known as cluck
<wleslie>sneek: how are you enjoying the prerelease? <jgrant>What are the big features in 2.2, sans the VM speed increase iirc? <mark_weaver>however, I have not yet agreed to transparently thread-safe ports. ***please_help is now known as moshe
<lloda`>mark_weaver, that's not what I'm after, I want something for the repl, or some way to set the default there. <wingo>srfi is still numbering their standards, cute <wingo>oh did i say cute i meant ridiculous <wingo>if only we had some kind of universal resource identifier <civodul>SRFI-aeadcc69-d582-4575-91d4-e1aac7081060 <wingo>so what is the deal with gdb in guile? debian doesn't build it that way <wingo>mark_weaver: whenever you are around, would be interested in your thoughts on the unorder finalization vs mark functions thing <wingo>or civodul too! did that sound like a source of bugs to you? <wingo>that a marker for a still-live object that's on the finalization queue could see other, already-finalized objects? <civodul>not really a source of bugs for me ;-) <civodul>but again, we can't suddenly turn on topologically-ordered finalization <nalaginrut>oh I love SRFI-aeadcc69-d582-4575-91d4-e1aac7081060, please add it! <nalaginrut>wingo: I removed .tarball-version manually, so the version problem gone <wingo>civodul: why can't we turn on topologically-ordered finalization? <wingo>civodul: i guess you don't use libs with markers and finalizers, right? <wingo>somewhat surprised you haven't seen an issue with gnutls, but whatevs <wingo>maybe it's because you're still on guile 2.0 ;-) <wingo>civodul: would you mind if i did a prerelease of 2.2 any time? <wingo>i think i just need to update docs <civodul>wingo: GnuTLS doesn't have any problems with 2.0 <wingo>the change there is that finalization happens on another thread by default <civodul>wingo: i don't mind for the prerelease (on the contrary :-)), as long as the disagreements with mark_weaver as resolved <wingo>which disagreements with mark? i can remember many but nothing current :) *wingo superpower: forgetfulness <wingo>that's the thing with email, you have to keep checking it :P <civodul>well it's just from today or yesterday <wingo>do you have opinions about port threadsafety, civodul ? <civodul>wingo: i sympathize with both viewpoints :-) *civodul ought to live in Switzerland ;-) <civodul>i can see why we'd want to follow the libc precedent <civodul>and i can see why we'd want thread-safety by default <civodul>perhaps the thing is just to provide '-unlocked' variants *davexunit compiles master <wingo>civodul: you would prefer to expose -unlocked variants rather than exposing the ability to put a port into unlocked mode? <wingo>libc has modes that file streams can be in, and one is unlocked <civodul>it's not clear to me how that would work performance-wise, though <wingo>it's what libc does and it works fine.... blah <daviid>amazing work indeed! congrat congrat! wingo, if you had some available pay time to get slot inheritance 'à la clos' it would be ideal, to get in 2.2, wdyt? <wingo>daviid: sure. there will be many (maybe a dozen) prereleases, so there is no immediate rush, and i am booked for the next couple weeks; let's talk over mail though (the igalia address, i still lose things on the other side :) <daviid>ok, good news! let's talk there then <davexunit>did some silly microbenchmarks with a loop that counts to a billion <davexunit>guile 2.0.11 took 71 seconds, guile 2.1 took 8 seconds, ruby 2.1.5 took 42 second, and node 0.10.36 took only 953ms <wingo>it's a loop, any compiler can do a good job on that :) <wingo>though i guess unboxing to native integers helps v8 there <davexunit>it was interesting to see the wildly different performance between the various dynamic languages I had on hand <davexunit>it's nice to see Guile beat the pants of ruby and python ;) <davexunit>I hit C-c before the benchmark was done... it was taking several minutes. I must have done something wrong <davexunit>guix has made it quite easy to try out these things quickly <daviid>wingo: the goops refactoring is really great, did you came to run some speed check, goops related I mean before and after? <wingo>daviid: i ran some speed checks afterwards, and had to make a lot of optimizations as a result <wingo>the status is that it is faster than 2.0 but slower than it was before the optimization (because 2.2's compiler is faster) <wingo>there is lots of room to make it faster tho <wingo>but do measure and see how it is for your workload <wingo>the dispatch was about the same before and after, it's mostly the initialization and slot access that can be tricky <wingo>davexunit: did it work for small numbers? <daviid>wingo: ok, great! we have room for... the fact we have most of it in scheme is a win anyway! <davexunit>I timed the whole application run, though, with 'time', but I don't think the startup/shutdown time makes much of a difference considering how long this took <wingo>davexunit: did you use "for"? what if you use "while" and explicitly increment a local? <wingo>ah that should be equivalent <wingo>dunno tho, sometimes for has special bytecode compilation <wingo>careful if you try that in python 2 though, i think in python 2 it makes an array eagerly, of a billion elements in this case <moshe>but how does guile compare to other schemes and lisp? <wingo>there you have to use xrange i think <moshe>say, chicken, bigloo, ikarus, and also sbcl, clisp, and clojure <wingo>moshe: dunno :) sounds like a project for you :) <wingo>i think most of those will be faster <moshe>in python 3.0+, range IS xrange <wingo>except for clisp and maybe clojure <wingo>measurement is the source of truth here :) <moshe>then again, a simple while loop isn't a very interesting benchmark ;) <daviid>mark_weaver: about the patch you wrote for me related to threads, is it in master? <mark_weaver>daviid: do you mean popen thread safety? if so, yes. <mark_weaver>(I'll be mostly afk today, because of a new baby born into my household a few hours ago) <daviid>mark_weaver: yes that one. Oh, baby bearth, fantastic! welcome baby! <paroneayea>mark_weaver: go pay attention to those baby things :) <daviid>wingo: just checked out the master branch as well and both make, make check worked perfectly here, GNU Guile 2.0.11.114-649ec. will leave it as is for now, but later will compile g-wrap and friends... bbl *dsmith-work needs a newer auto* to build master <mario-goulart>davexunit: out of curiosity, I run that loop thing here in CHICKEN, and the result is funny. Interpreted: 3m30.489s. Compiled: 0m0.846s. <davexunit>mario-goulart: makes sense to me. the interpreter is slower than expected, but chicken does native compilation so 846ms seems about right, given that V8 achieves similar speeds. <davexunit>guile will get there when our lord and savior wingo blesses us with native compilation. <davexunit>"... and wingo looked upon the compiler and saw that it was good."