IRC channel logs

2016-05-13.log

back to list of logs

<mark_weaver>ecraven: this git URL works: http://git.sv.gnu.org/r/guile.git
<ecraven>mark_weaver: thanks!
<ecraven>hm.. no luck, Empty reply from server
<mark_weaver>ecraven: the git urls should work now too
<mark_weaver>ecraven: does git://git.sv.gnu.org/guix.git not work for you? I'm cloning from it right now.
<mark_weaver>sorry, git://git.sv.gnu.org/guile.git
<ecraven>ah, didn't try that yet, the http url doesn't work
<ecraven>hm.. guile.git still doesn't seem to work
<mark_weaver> http://git.sv.gnu.org/r/guile.git works for me
<ecraven>neither does guix.git for me
<mark_weaver>what exactly happens on your end?
<ecraven>neither works here :-/ one machine in london, one in austria
<ecraven>for the http urls, that curl error "Empty reply from server"
<ecraven>for the git urls, I'll wait for the timeout and then tell you the exact message
<mark_weaver>strange
<ecraven>indeed
<ecraven>savannah seems to be down a lot :-/
<mark_weaver>really? not in my experience
<ecraven>I've had trouble with getting mit-scheme too sometimes
<mark_weaver>they've had some trouble with denial of service attacks
<ecraven>after about 15 minutes: fatal: read error: Connection timed out
<mark_weaver>thanks. I don't know what to make of this, though.
<wingo>ACTION cleans up wip-port-refactor
<ecraven>mark_weaver: now, the timeout is immediate, "Connection reset by peer"
<wingo>bah, the git push is hanging, presumably on the hook that mails things
<wingo>no idea why that would be synchronous :P
<roelj>wingo: So you are also having trouble mailing using fencepost?
<wingo>roelj: i usually don't mail via fencepost but the guile repo has a hook that sends mail
<wingo>and that hook appears to be hanging
<wingo>everything terrible
<wingo>oh well
<roelj>My mu4e hangs when attempting to send a mail using fencepost.gnu.org -- since about 12 hours ago.
<wingo>12 hours!
<roelj>Pretty cool :P
<roelj>I just killed it a minute ago
<taylan>ecraven: if you want extra reproducability points and perhaps higher quality build recipes, maybe guix can help ^_^
<ecraven>taylan: some day, I'll go that route.. for now, I'm still staying with Arch and Nixos..
<ecraven>last time I checked, nixos was far superior for generating a complete httpd.conf with multiple vhosts and services
<ecraven>if I find a lot of free time, I'll try to add that to guixsd, but I don't have that sort of time right now :-/
<taylan>that's understandable, GuixSD is still 0.x after all
<taylan>ACTION will hopefully get back to guix packaging Real Soon Now
<djcb>roelj: in a classic case of passing the blame bucket:
<djcb>what's hanging is smtp-sending (smtpmail) which is not really part of mu4e
<ArneBab>isn’t it rather good that it’s hanging? It means it would work when the server returns.
<roelj>djcb: Yes, I know. Maybe I should've been more clear about that.
<roelj>Unfortunately, that isn't asynchronous, so I had to open another Emacs..
<wingo>pretty weird that the default port conversion strategy is "substitute"
<civodul>i think it was to allow "smooth" transition from 1.8
<civodul>never error out, JS style ;-)
<wingo>hehe
<civodul>in 2.0 'procedure?' is quite expensive
<civodul>well, there's no built-in
<wingo>relatedly, the fact that port conversion strategies are used for input does not appear to be mentioned in the manual
<wingo>only output
<civodul>oh
<wingo>strange, because only "substitute" is honored
<wingo>not "escape" (but i guess that's by definition, if you have an error on input you don't know what the codepoint is)
<civodul>maybe it's not only undocumented, but also unknown
<civodul>yeah
<wingo>mmm, it's certainly tested
<civodul>ok
<wingo>so i have no doubt that someone out there depends on it...
<wingo>dunno tho
<wingo>r6rs provides for different strategies for input too, /me checks
<wingo>right, r6rs has "ignore", "raise", and "replace"
<wingo>"ignore" seems incredibly foolhardy
<wingo>but "replace" has the virtue of specifying that it's the U+FFFD for the replacement char instead of what we do, which is use '?'
<wingo> https://docs.racket-lang.org/r6rs/r6rs-lib-std/r6rs-lib-Z-H-9.html#node_sec_8.2.4
<civodul>yeah
<civodul>should there be 'br-if-proc' in 2.2? (sorry to derail the discussion a bit ;-))
<wingo>:)
<civodul>because srfi-1 uses 'procedure?' at each entry point
<wingo>are you looking to port srfi-1 things to scheme?
<wingo>ah it's in scheme
<civodul>i'm profiling guix, and that 'procedure?' is high in the profile makes me unhappy :-)
<wingo>:)
<wingo>civodul: i think re: 2.2, a 2.0 profile doesn't necessarily say what we should do in 2.2
<wingo>civodul: where do the procedure? calls come from?
<wingo>which srfi-1 procedure
<civodul>most SRFI-1 procedures do things like (check-arg procedure? proc filter-map)
<civodul>i mean calling a subr is always going to be more expensive than using a built-in instruction
<civodul>and there's no type info available at compile-time in this case
<wingo>i dunno, to an extent i don't see the point of the checks
<civodul>i think it had to do with one of the optimization passes
<wingo>like, unless the list is (), you'll find out soon enough if it is a procedure
<civodul>right
<wingo>i think it is totally acceptable to not raise an error on (filter-map 'foo '())
<wingo>so i would remove the check entirely
<wingo>map has no check, i must have removed it for a similar reason
<wingo>err
<wingo>i mean boot-9 map
<wingo>civodul: thing is i would immediately say "yes" but since there are different kinds of procedures i dunno
<civodul>the checks are a response to https://savannah.gnu.org/bugs/?33628
<wingo>if it were just programs with a tc7, then fine
<wingo>but there's applicable structs and applicable smobs too
<civodul>maybe the instruction could use a slow path for things that are not tc7_program
<wingo>in that case we should inline the scheme, not make a new procedure
<wingo>meaning
<wingo>(procedure? x) -> (or (program? x) (procedure/slow? x)) or something
<wingo>and then the program? inlines to a nice br-if-tc7
<ecraven>still no luck cloning guile from savannah :-
<wingo>and the procedure/slow? is still a callout
<civodul>ah yes
<wingo>ecraven: yeah, sadness :/
<wingo>like i said the github mirror i mentioned does represent master tho
<wingo>get 43a038f6e12cc4615df3f4fb9e6904bd819a2928 and you're good
<ecraven>wingo: ah, sorry, I must have missed that github mirror
<wingo>it's not official, it's just some repo i noticed, but it is up to date
<wingo>if you want me to make one i can do that too
<ecraven>don't bother, normally the savannah one should work, anyway
<wingo>yep
<wingo>civodul: after finishing this wip-port-refactor cleanup for merge i will prepare a change that makes input decoding errors substitute with U+FFFD instead of ?, if that is ok with you
<wingo>and document it
<wingo>civodul: so, when will guix be able to use guile 2.2? when 2.2.0 is released?
<civodul>wingo: dunno the rationale about U+FFFD, but it should be fine surely? :-)
<civodul>wingo: re guix yes, though i'd like to start using it ASAP, at least for the "host side"
<civodul>and i'd like to have some of our Guile-using packages available for 2.2 too
<wingo>civodul: the unicode spec recommends U+FFFD for decoding error substitutions, as does r6rs
<civodul>ah ok, good
<civodul>then let's do it
<wingo>so this port stuff is the last thing i need for 2.2 i think
<wingo>i am good to release after this lands, from a feature POV
<wingo>we'll need a couple of prereleases i guess but feature-wise i'm good
<civodul>excellent
<wingo>after all these years, r6rs is still mostly the right thing :)
<civodul>heh :-)
<civodul>i think 2.2 is indeed already great in many ways
<davexunit>+1
<civodul>so it's mostly a matter of hunting bugs and addressing compatibility issues
<wingo>yep
<civodul>from a lurker's POV, we're done ;-)
<wingo>hehe
<wingo>ACTION looking forward to rewriting rdelim's read-line in scheme
<wingo>lol, the docs for read-delimited! say "It's something of a wacky interface, to be honest."
<civodul>:-)
<wingo>(ice-9 rdelim) and (ice-9 rw) are total clownshoes
<civodul>ACTION didn't know the latter
<wingo>soft ports are embarassing
<random-nick>what does ice-9 stand for?
<wingo>search for it in the manual :)
<wingo>C-s in info is the easiest way
<wingo>actually maybe that is a terrible suggestion
<wingo>b/c of all the modules whose names start with ice-9
<wingo>heh yeah
<wingo>anyway https://www.gnu.org/software/guile/manual/html_node/Status.html documents it
<amz3`>davexunit: did you try your game on ubuntu?
<dsmith-work>Happy Friday, Guilers!!
<amz3`>happy friday dsmith
<dsmith-work>civodul: Might I suggest making a few release-candidates of 2.2 before the officieal release? ;^)
<dsmith-work>Typoes and things happen...
<davexunit>amz3`: no
<amz3`>i'd rather update my guix box the :p
<civodul>dsmith-work: of course :-)
<civodul>dsmith-work: though as you might have noticed, wingo is taking care of everything :-)
<dsmith-work>wingo: ^^
<wingo>lol :)
<ecraven>wingo: guile 2.1 (correctly compiled) is doing much better :) I'll publish the results tomorrow
<random-nick>how to incorrectly compile guile?
<avoine>without -O2 I think
<paroneayea> https://identi.ca/x11r5/note/F-pl1OMnSwOt0XFg1gMGoA x11r5 is my favorite markov bot
<davexunit>I wrote a simple markov bot in guile awhile ago, wanted to make a novelty twitter account with its output, but never got around to it
<davexunit>was going to be along the lines of King James Programming
<random-nick>someone should make a markov bot that outputs into espeak
<paroneayea>davexunit: oh cool
<paroneayea>davexunit: did you write your own markov chain implementation?
<paroneayea>or use a library?
<davexunit>paroneayea: I wrote a really simple implementation
<davexunit>if I did it right, it was a simple algorithm
<paroneayea>davexunit: cool
<davexunit>I should dig that code up sometime
<stis>Cheers Friday hackers!
<paroneayea>so, something kind of interesting
<frofroggy>do tell
<paroneayea>I had a character in the MUD I wrote where after they ran their "main loop" for a while, they was a stack overlow and the character's main loop crashed
<paroneayea>thanks to mudsync's design, it didn't kill the rest of the game
<paroneayea>but for this main loop, I had decided to just literally loop in what I thought was an interative process
<paroneayea>so I checked htop
<paroneayea>and that character's main loop (I tested without it!) somehow consumed 48% of my memory
<paroneayea>yikes!
<paroneayea>well, I figured it out kinda
<paroneayea>if I instead switched out of the "while" loop
<paroneayea>and instead had the character's main loop "recurse" kind of instead, the problem went away... at the end of every procedure, the last thing done was to call the character's loop again
<paroneayea>and then, no problem
<paroneayea>can run forever, no increase in memory
<paroneayea>this maybe helps to see the original code:
<paroneayea> https://notabug.org/cwebber/mudsync/src/master/worlds/bricabrac.scm#L666
<paroneayea>so, here's what was happening, I *think*
<paroneayea>the code would suspend and re-awaken on that loop
<paroneayea>every time it sent a message
<paroneayea>but!
<paroneayea>what I think I didn't realize
<paroneayea>every time it woke up again, I think it was setting up another prompt
<paroneayea>setting up so many that it took up all memory if left to do its own crazy thing
<paroneayea>but I think this, and the SIGABRT stuff, indicates to me how little I understand when prompts get set up and when they disappear in guile
<paroneayea>maybe I have to become more familiar with that internally
<paroneayea>at least it was easy to fix.
<paroneayea>ACTION pushes a fix
<paroneayea>so I guess the old link no longer applies
<frofroggy>paroneayea: tail calls, nice.
<paroneayea>davexunit: I'd be really interested in that code, btw
<paroneayea>the markov chain stuff
<paroneayea>if you run into it!