IRC channel logs

2016-06-21.log

back to list of logs

<daviid>rotty: are you still maintaining guile-gnome-platform on debian?
<daviid>rotty: I ment maintaining the debian package? or maybe it is someone else, I dont know
<mark_weaver>daviid: according to <https://packages.qa.debian.org/g/guile-gnome-platform.html>, the package is orphaned
<daviid>mark_weaver: I've just receivd an enail from debian saying
<mark_weaver>and because of this, it is scheduled for autoremoval from testing.
<mark_weaver>one month from now
<daviid>ah! tx mark_weaver
<mark_weaver>the 'news' section of that page also suggests that rotty's last upload was in 2012
<daviid>[2015-07-18] Accepted 2.16.2-2 in unstable (medium) (Andreas Beckmann)
<mark_weaver>right, that's not rotty
<daviid>I confused the names ...
<random-nick>are (ice-9 q) queues thread-safe?
<mark_weaver>no
<mark_weaver>thread synchronization is quite expensive to add to otherwise simple operations like queue pops and pushes
<mark_weaver>if you need to protect a data structure with a mutex, you might consider using the 'with-mutex' macro
<mark_weaver>but if we put mutex locks into every operation of every data structure, then *all* users would have to pay the heavy cost of mutex operations, whether they need them or not.
<taylan>wingo: thanks for the reminder :) I pinged the and-let thread and two debbugs threads that have patches available. more to come later...
<daviid>mark_weaver: iiuc, the last commit before the 2.0.11 release is 972fb41f0ce124d97f5cf64bde1075510cd21e18, civodul, Thu Mar 20 21:21:21 2014 +0100
<daviid>but the next commit, 8d124d207738be0b43dfc235a5d72519a2ab5db9, is dated Thu Sep 19 14:02:26 2013 -0700 ??? then it fllows normal date sequencing again, just for info, no big deal
<mark_weaver>the date is from when the commit was created. they may later be rearranged and cherry-picked, etc, before ending up in the main repo
<mark_weaver>actually, I suspect that, like an email Date header, you can make it whatever you wish
<daviid>mark_weaver: I was curious
<daviid>tx
***Bobbejaantje is now known as pehlivanlar
<madsy_>MinGW Guile build server is up :) http://li1501-234.members.linode.com:8080/
<madsy_>Test suite jobs are disabled until I get to work tomorrow and get a Windows instance up.
<madsy_>My VHS didn't let me run QEmu + KVM, so Windows puked
<wingo>good morning civodul :)
<civodul>hey, wingo!
<taylan>BTW I'm unemployed now; does something need to be done re. the copyright assignment? I figure it's only relevant when I have a new employer...
<wingo>just fix it up when you get a new employer
<taylan>ok
<taylan>mark_weaver: do you have time to look into the "transform R6RS SRFI module names" patch? once that (and another issue on debbugs) is resolved, I will propose to merge r7rs-wip sans the "PRELIMINARY" commit into stable-2.0, which would give us 99% R7RS compliance, missing only support for circular data in read/write.
<taylan>wingo: do you have an opinion? https://lists.gnu.org/archive/html/guile-devel/2015-10/msg00014.html
<wingo>taylan: that patch looks fine to me fwiw
<wingo>bah, i misapplied a couple patches; sorry taylan
<wingo>the commit log is trash
<wingo>oh well
<taylan>heh, funny how git works. at least the changes are in.
<taylan>wingo: BTW could the R6RS/SRFI patch also be applied to stable-2.0? though maybe it isn't so important if 2.2 is coming soon.
<wingo>yeah i guess
<wingo>i dunno, i guess it doesn't break anything for anyone
<mark_weaver>bah, R6RS hash tables are wrapped SRFI-67 hash tables which are wrapped native guile hash tables. three layers. terrible.
<mark_weaver>need to unify those types into one, I think
<wingo>taylan: applied the and-let* patches; thanks :)
<jlicht>Hello guile!
<jlicht>How can one 'capture' the output of e.g. (system* "echo" "hi") in a string? Wrapping it in `with-output-to-string' does not seem to do the trick
<davexunit>jlicht: you can't use system* for that
<davexunit>you need to open a pipe
<jlicht>davexunit: thanks
<davexunit>np
<davexunit>system* is for things where you are only concerned about the exit status
<davexunit>which is often the case
<jlicht>how does system* actually print its output?
<wleslie>it doesn't, it hands the stdout/err directly to the shell it creates
<davexunit>jlicht: system* itself doesn't print anything
<davexunit>what wleslie said :)
<wleslie>well... the process forks before exec'ing a shell, and both processes have access to the same open stdio file descriptors.
<jlicht>it seems that the docs do not mention this
<jlicht>(not the technical details, but what actually happens to the output of the command you run)
<wleslie>the whole posix section makes assumptions about existing knowledge
<jlicht>I admit that my existing knowledge regarding posix is somewhat lacking :)
<wleslie>for example, I get that many languages have features for starting a process with pipes in place of stdio are often given silly names like 'popen', but the section on pipes and functions like open-pipe are not what I'd have been looking for
<wingo>updates to the documentation are welcome :)
<wingo>is it a goal to support non-gnu make?
<wingo>i guess we are open to patches but without follow-through from a reporter we can't do anything
<kwrooijen>Hey guys, I want to use the `add1` procedure, but it's not globally available and the documentation doesn't tell me in which module it is. https://www.gnu.org/software/guile/manual/html_node/Inlined-Mathematical-Instructions.html#Inlined-Mathematical-Instructions
<kwrooijen>So I'm a bit confused :)
<wleslie>these aren't functions, they are vm instructions
<kwrooijen>Oh, they aren't available to use?
<civodul>kwrooijen: they get used automatically when the compiler deems it appropriate
<civodul>you can check that at the REPL with ",compile"
<kwrooijen>civodul: Ah yeah I see
<kwrooijen>I thought add1 was part of the scheme standard
<wingo>the guile form of "add1" is named 1+
<wingo>which is kinda weird, but there you go
<wingo>sometimes i think we should change to recommend add1/sub1
<kwrooijen>wingo: Oh wow I was trying "+1" instead of "1+" haha
<davexunit>ACTION has grown fond of 1+
<kwrooijen>Thanks :)
<dsmith>wingo, real 52m27.666s building 2.1.3 on my 32bit box. Not too bad! Considering
<wingo>with prebuilt/ working?
<davexunit>paroneayea: where I can find the version of (ice-9 json) that you snarfed for a project?
<wingo>maybe prebuilt/ wasn't being loaded
<efraim>that sounds like my machine
<wingo>dsmith: grep i686-pc-linux-gnu config.log
<dsmith>wingo, Yes, with prebuilt.
<wingo>i wonder if maybe we're allocating a lot of bignums on 32-bit then
<wingo>before optimization anyway
<dsmith>grep i686-pc-linux-gnu config.log | wc -l
<dsmith>81
<wingo>dsmith: is it a fast or a slow machine?
<dsmith>wingo, Anything more specific?
<dsmith>SLow
<wingo>:)
<dsmith>model name : Intel(R) Pentium(R) M processor 1.70GHz
<wingo>well maybe that is it. if you can -j8 on the x86-64 box or so and it's newer, maybe that can be a 10x difference
<wingo>heh
<dsmith>Yeah, this is single code. That was a make -j2
<dsmith>config.status:3197: creating prebuilt/i686-pc-linux-gnu/Makefile
<dsmith>ACTION is off to work...
<dsmith-work>{appropriate time} Greetings, Guilers
<amz3>o/
<civodul>wingo: BTW, IWBN if 2.0 would skip invalid .go files, too
<wingo>civodul: do it :)
<wingo>ACTION cheers on civodul :)
<civodul>(to answer your question as to whether anything's blocking 2.0.12)
<wingo>i'm not sure that any "IWBN" block 2.0.12; seems that's our particular failure mode
<wingo>2.0.13 is cheap :)
<wingo>probably we brown-paper-bag it anyway :P
<civodul>yeah
<civodul>re skipping .go files, is your master patch likely cherry-pickable?
<wingo>civodul: i think so, actually
<wingo>if not precisely applicable, pretty close
<wingo>it doesn't really mess with new stuff
<civodul>ok
<civodul>er, not that simple
<paroneayea>davexunit: oh hi
<paroneayea>davexunit: here:
<paroneayea> https://github.com/cwebber/activitystuff/blob/master/activitystuff/contrib/json.scm
<davexunit>paroneayea: thanks
<paroneayea>davexunit: so that's it above. I also wrote some utilities here: https://github.com/cwebber/activitystuff/blob/master/activitystuff/contrib/json.scm
<paroneayea>though many of them were specific to my project, some weren't, like the pretty printer
<paroneayea>yup
<paroneayea>!
<davexunit>paroneayea: thanks, I'm just giving the code to jlicht as a short-term solution to his json woes
<wingo>41 bugs closed in last day!
<wingo>around 150 remaining
<dsmith-work>wingo: Wow!
<wingo>secret power tip: anyone can close a bug! if it's invalid that's the right thing to do :)
<wingo>just mail NNN-done@debbugs.gnu.org with a kind message and you're good
<wingo>if you have a patch, mail the list instead!
<paroneayea>wingo: nice job on closing bugs!
<paroneayea>wingo: speaking of bugs, should I open a separate bug on the r6rs binary ports which the https/tls port support one requires? or do you think the other bug captures that enough
<paroneayea>ACTION thinks, maybe open a new one
<paroneayea>and link it
<civodul>wingo: so what's the decoding bug for "+"?
<wingo>civodul: that + should decode to space for HTTP POST
<wingo>in the body of the HTTP POST request
<wingo>but not in URLs
<civodul>oh
<wingo>so /foo/bar/baz+qux currently decodes to '("foo" "bar" "baz qux")
<civodul>but decode-url is definitely for URLs, not for POST body
<wingo>whereas the last element should be "baz+qux"
<civodul>yeah
<civodul>i noticed it before: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21888#28 :-)
<wingo>well it gets called for a few things, but yeah
<civodul>so yeah, worth porting the fix to 2.0 IMO
<wingo>ok
<wingo>poor hydra
<wingo>i pushed some fixes to stable-2.0
<wingo>ptal
<paroneayea>is there any nice indexing library kind of like xapian available for guile?
<paroneayea>I imagine not, but just checking
<linas>wingo -- the API for scm_setvbuf changed from version 2.1.2 to version 2.1.3 and that ... was surprising.
<linas>I see why it seems like a good change, but its not exactly compatible.
<linas>(from what I can tell browsing git, I think maybe you're the one who changed it?)
<linas> http://git.savannah.gnu.org/cgit/guile.git/commit/libguile/ports.c?id=59a18451b8bc70fe9cb9b9f41e61bbfa9e0e86be
<linas>perhaps a backwards-compat thingy might be nice? Not sure I care that miuch, but thought I'd mention it
<ecraven>wingo: running the benchmarks now :)
<Madsy>I hope this might be useful for someone http://guile.mechcore.net:8080/
<davexunit>Madsy: awesome!
<davexunit>I've been wanting to experiment with guile on windows sometime so that windows users can play my games
<Madsy>davexunit: The builds also prints out the log from running the unittests on Windows
<Madsy>Well, it will next on the next build iteration. I just finished setting up the VM and scripts.
<nalaginrut>(while #t (format #t "~a" (integer->char (+ 9566 (random 14)))) (usleep 3000))
<nalaginrut>(while #t (do ((i 0 (1+ i))) ((= i 48) (newline)) (format #t "~a " (integer->char (+ 5024 (random 84)))) (usleep 4000)))
<cmhobbs>is there a message queue that guile interacts with well?
<cmhobbs>i saw there was a zmq module for guile but i never managed to get it working
<cmhobbs>there wasn't much documentation, iirc
<davexunit>if that didn't work well then I think the best thing is to write your own
<cmhobbs>well, sure
<cmhobbs>if something standard exists, i'd like to roll with that
<davexunit>I haven't seen anything else.
<cmhobbs>i've got a component of a pile of applications that i'm looking to build and i'd like to use guile
<davexunit>libraries like that are things you usually end up writing yourself in Guile
<cmhobbs>this particular part should take messages out of a queue, throw them at an MTA, take the responses from the MTA, and pass them back to the queue
<cmhobbs>guile seemed well suited for that
<davexunit>yeah sounds doable
<davexunit>writing simple clients for those things might not be too bad.
<davexunit>depending on the complexity of their protocols
<avoine>cmhobbs: this repos looks to have some fixes for zmq 3.2: https://github.com/rashack/guile-zeromq-3
<wingo>i was sure #18583 was an expander bug, but it's really a compiler bug :) wheee
<wingo>ecraven: excellent!
<cmhobbs>davexunit: your comment does beg the question, what's the limit for guile? it seems like it could be pretty general purpose to me. what wouldn't you build with it?
<cmhobbs>also, i feel like i (or we) have had this conversation before
<cmhobbs>so sorry if we have
<davexunit>cmhobbs: I do pretty much everything with it.
<davexunit>web programming, game programming, systems programming, etc.
<davexunit>it's very general purpose
<cmhobbs>yeah, i'm trying hard to absorb the language
<davexunit>I can use the C FFI when I need to use existing libraries, etc.
<cmhobbs>ruby pays my bills but i don't like oop. i'd normally wield common lisp for my general purpose stuff but i like that guile is already on my systems and it's a gnu project
<davexunit>CL is cool, too, though I much prefer Scheme from a PLT perspective.
<janneke>cmhobbs: over the past couple of years guile has become my language of choice for pretty much anything
<davexunit>Ruby pays my bills, too.
<cmhobbs>i don't know that i prefer cl or scheme. less overhead is the main reason i've jumped into guile
<cmhobbs>but this is my third time trying to really learn it
<cmhobbs>i've written two or three small system things and utilities
<janneke>obvious exceptions are programs in webbrowsers (hoping that may change some day) and programs in Emacs (that will change)
<cmhobbs>and then i forget everything after going down a rabbit hole on some function
<davexunit>but I'm currently writing Scheme code in the form of Guix packages to build some custom software so it looks like Scheme is also paying my bills.
<cmhobbs>i wrote a couple of network services in guile for my $employer but i haven't used it with clients yet
<cmhobbs>those network services are no longer being used but i can say i was briefly paid to write guile ;)
<davexunit>cmhobbs: what's making it hard to learn Guile?
<cmhobbs>davexunit: me.
<cmhobbs>i can't focus
<cmhobbs>i find a shiny module
<janneke>davexunit: i like that question
<davexunit>I started learning guile in mid-2012
<cmhobbs>and then just spend all the time i was going to devote to learning the language by focusing on that module
<davexunit>starting with the C API of all things.
<cmhobbs>so it's making it slow to learn guile
<cmhobbs>i'd like to get to the point where i can just twitch and guile falls out like i do with ruby and other languages
<cmhobbs>just takes time
<cmhobbs>i also have a lack of ideas for things to build. no projects == no learning
<cmhobbs>i don't have consistent time for projects, so i need stuff i can work on for a while and drop, then pick up again sometime later
<davexunit>my initial projects were all game related
<davexunit>which I would hack on an hour or two at a time after work
<cmhobbs>yeah my stuff is text processing and little network services
<cmhobbs>i've never had much interest in writing games. i'm not creative enough
<cmhobbs>ah, i did write a really shitty gnugo bot in guile
<cmhobbs>forgot about that
<davexunit>:)
<davexunit>I find Guile really nice for exploring new ways to write programs
<cmhobbs>just a script that spoke gtp and picked arbitrary moves
<davexunit>from coroutines to logic programming to functional reactive programming
<cmhobbs>hm, a gtp library might be fun to write but i don't know how useful it'd be
<cmhobbs>other than maybe a library to generate gtp strings
<davexunit>do whatever is the most fun I guess
<davexunit>I have a bunch of WIP projects that I poke at every now and then
<cmhobbs>right
<cmhobbs>i'll probably start using the pomodoro technique to stay focused while studying guile
<cmhobbs>that way i stop spelunking modules
<cmhobbs>and wasting my time
<dsmith-work>cmhobbs: One approach is to find some thing already written and rewrite it in scheme/guile.
<cmhobbs>good call
<dsmith-work>cmhobbs: At first, you can just do a direct translation. But sooner or later, you start to see how scheme is more powerful, and how there are more elegant ways to solve the problem.
<dsmith-work>cmhobbs: Eventually, you start wanting schemey things in other languages. And then you start getting really really annoyed you are not using scheme.
<janneke>dsmith-work: my experiences exactly...
<dsmith-work>cmhobbs: But the "porting" approch lets you focus on the problem at hand.
<cmhobbs>eh, i use ruby all day. i already want common-lispy things in ruby but i don't have them :(
<dsmith-work>While at the same time having a working reference implementation to compare against.
<cmhobbs>right
***micro` is now known as Guest36258
***amz31 is now known as amz3`
<amz3`>o/
<amz3`>I think I'll throw away uav database from hyper
<cmhobbs>http-get seems to have two return values? how can i operate off just the body of the document it returns?
<cmhobbs>i say it returns twice because i get two prompts in the repl
<cmhobbs>a response and then a string
<cmhobbs>is it a port?
<amz3`>no it's not a port
<amz3`>cmhobbs: look at like 150 https://framagit.org/a-guile-mind/hyper/blob/master/hyper.scm#L149
<amz3`>there is also a let-values I think that allows to do what is done in the snippet using receive
<amz3`>you have to `(use-modules (ice9 receive))` to use receive
<amz3`>basically http-get return two values
<amz3`>which is different but similar to a list of two values
<cmhobbs>web response gives me response-body-port as well
<amz3`>cmhobbs: by the way, in that repository there is a snippet to http-get over https
<cmhobbs>which yields $13 = #<input: r6rs-custom-binary-input-port 8bffe88>
<cmhobbs>i have no idea how to work with that, though
<amz3`>cmhobbs: what procedure are you calling to fetch a url?
<amz3`>I think you are talking about a lower level procedure
<cmhobbs>dammit... ERROR: no code for module (ice9 receive)
<cmhobbs>(http-get (string->uri "http://www.example.com"))
<cmhobbs>is what i'm doing
<cmhobbs>i just want the body out of that
<cmhobbs>i don't care about the headers
<daviid>(ice-9 receive)
<amz3`>cmhobbs: ice-9
<amz3`>sorry I missed the dash
<amz3`>cmhobbs: try this (receive (_ body) (http-get "http://www.example.com") body)
<cmhobbs>receive works nicely, thanks
<cmhobbs>yeah, that's what i just banged out
<cmhobbs>thank you
<wingo>mark_weaver: interesting fallout on the #:select bug in master :)
<wingo>it seems there was a wonky #:select usage in (test-suite lib) or something
<cmhobbs>well, that was a fun experiment. here's a pile of gross code to return or run code from paste.lisp.org: http://paste.lisp.org/display/318915
<cmhobbs>this kind of crap is what happens on slow days for me...
<wingo>sad news people: a bytecode version bump
<wingo>kick off your builds
<daviid>wingo: for info, I worked yesterday and I'm now working on NEWS for 2.0.12, will post or paste later today or tomorrow what I will have been written so far
<amz3`>cmhobbs: aha fun stuff, kind of dangerous tho
<cmhobbs>amz3`: more dangerous would be to just eval-string on the /raw url rather than /xml
<cmhobbs> (eval-string (receive (_ body) (http-get (string->uri "SOME PASTE HERE")) body))
<cmhobbs>ACTION sighs
<cmhobbs>slow day at work :)
<dsmith-work>ACTION is working on getting geiser to work with 2.1 again
<wingo>daviid: excellent!
<wingo>scheme@(guile-user)> (< (error))
<wingo>$4 = #t
<wingo>grrrrrrrrrrrrrr
<taylan>the wonders of optimization :P
<daviid>mark_weaver: is this fix user visible? guild disassemble: Use #:prefix instead of #:renamer [commit f2742bdd68619323da2c5f9f65f10684f6522e3c]
<dsmith-work>Wheee! geiser works again.
<ijp>and the peasants rejoiced
<cmhobbs>\\o/