IRC channel logs

2014-04-13.log

back to list of logs

<civodul>stis: impressive work!
<ijp>civodul: how do you handle working around guile bugs in guix?
<civodul>do you really want to know? :-)
<stis>civodul. I think I release it, it's good to have a tag and not develop forever.
<civodul>yeah :-)
<civodul>ijp: Guix still has to support 2.0.5
<civodul>so it has a copy of a subset of one or two web modules
<civodul>and a copy of SRFI-37
<civodul>i think these are the main things
<ijp>so straight copying, no fancy hacks
<civodul>well, for the web stuff it's terrible
<civodul> http://git.savannah.gnu.org/cgit/guix.git/tree/guix/http-client.scm#n56
<stis>ok I released a new version, night hackers!
<cky>mark_weaver: Congrats on your progress on Google Code Jam!
<cky>Currently I only have A-small and B-small solved, but I've only been working on it for 1.5 hours (and I spent much of the time on problem A reacquainting myself with Rackety stuff).
<cky>Am trying to decide on whether it's best to focus the remaining 2.5 hours on B-large or C-small. :-P
<davexunit>ooh google code jam
<davexunit>didn't know about it
<cky>davexunit: You still have 2 hours left.
<cky>You can easily wing it in that time.
<cky>You might not solve all 4 problems in 2 hours, but if you successfully solve 2, you'll get through.
<davexunit>cky: I'll be too distracted by other things going on around me.
<davexunit>it looks fun, though.
<cky>Problems A and B are really easy. I promise you.
<davexunit> I'm too busy writing particle simulations :P
<cky>Oh dear. :-P
<mark_weaver>cky: thanks! we'll see whether I got the large problems correct. *crosses fingers* :)
<mark_weaver>cky: looks like you got a late start.
<mark_weaver>good luck! (it's better if I don't distract you)
<cky>mark_weaver: :-D I have 1 hour to formulate a solution for problem C, though it's been stewing in my brain the whole day. Here's hoping!
<mark_weaver>that was a tough one.
<cky>mark_weaver: But yes, late start for me indeed.
<cky>Is it? Uh oh.
<mark_weaver>D was easier, fwiw.
<cky>Huh.
<cky>Okay, lemme try. :-)
<mark_weaver>although if you've been thinking longer about C, maybe that will make up for it, dunno!
<mark_weaver>good luck!
<cky>Thanks!
<mark_weaver>(I'd still recommend doing C at some point, even if not before the qualification round ends, because it's an interesting problem)
<ijp>mark_weaver: have you ever read "Adding Delimited and Composable Control to a Production Programming Environment"?
<mark_weaver>ijp: no, I haven't heard of that one.
*mark_weaver looks it up
<ijp>I'm impressed by the care it takes to make everything work right
<mark_weaver>I'll add it to my reading list.
<mark_weaver>ijp: Thanks for bringing that to my attention. Hopefully Andy already read it and incorporated its lessons into Guile.
<ijp>nalaginrut brought to my attention a problematic interaction between abort and reset, and I've been looking to see if there was a way to fix it
<ijp>note "reset" not "prompt"
<ijp>I *think* the way racket handles it is that their low level version of abort returns a thunk, whereas ours does not
<ijp>so the extra work we do in reset isn't necessary
<cky>mark_weaver: Congrats on your perfect score.
<ijp>3 years in a row, isn't it?
<mark_weaver>thanks!
<mark_weaver>I don't remember if I got a perfect score last year. I think maybe not.
*mark_weaver looks
<mark_weaver>one thing I'm pleased about this year is that my solutions were all purely-functional and yet still fast enough to run in just a few seconds even on my YeeLoong.
<mark_weaver>(and of course, all written in Guile)
<mark_weaver>I do recommend trying to do problem C before looking at the answer.
<mark_weaver>well, if you're bored, anyway :)
<mark_weaver>I didn't get a perfect score last year. The last problem stumped me.
<mark_weaver>(Treasure)
<cky>mark_weaver: Wait, what, your problem C is purely-functional?!
<cky>mark_weaver: I actually used a vector for that.
<mark_weaver>yep :)
<mark_weaver>my guess is that my solution works in a much different way than yours
<cky>Um, yeah. ;-)
*ijp surreptitiously slides a url to pfds underneath cky's nose
<mark_weaver>when I have enough time (and even sometimes when not), I tend to just try to solve the large problem, and not even think about the small one.
<cky>I do like my 13-line solution to problem A. (All my solutions this time are in Racket.)
<cky>ijp: Does Scheme have pure-functional vectors?
<mark_weaver>I didn't use vectors at all.
<ijp>cky: I have semi-functional vectors, and sequences based on trees
<cky>mark_weaver: *nods*
<cky>By semi-functional, do you mean copy-on-write? ;-)
<ijp>the difference between our primitive continuations and rackets, is that racket has a primitive way of capturing the current delimited continuation without abort
<ijp>cky: no
<ijp>cky: it uses mutation under the hood
<ijp>it doesn't do any copying
<ijp> https://github.com/ijp/fectors
<ijp>anyway, the above difference means I don't think I can fix the interaction with the current set of operators
<ijp>because to get the continuation I need to abort, and have the call-with-prompt fix it up
<ijp>which means a special handler, and anyone else using the default prompt is going to get that handler
<ijp>I'll discuss with Andy tomorrow, and maybe a report
***linas_ is now known as linas
<cky>mark_weaver, ijp: https://gist.github.com/cky/10566479 <-- my GCJ code if you're curious
<mark_weaver>all of our solutions are now available from google.
<cky>I know, but each entry requires a separate download, I have to unzip each, etc.
<cky>so I provided the Gist as a convenience for people who just want to glance.
<mark_weaver>cky: nice concise solutions :)
<cky>:-D
***alezost`` is now known as alezost
***Fuuzetsu is now known as Guest17487
<stis>hej guilers!
***Guest17487 is now known as Fuuzetsu
<e2x>When I type (display "\\n") into the repl, it displays a newline as expected. If I have a script with (display (cadr (command-line))) and type ./script "\\n", it displays \\n. What is an easy way to get the latter case to display an actual newline?
***linas_ is now known as linas
<ijp>is "\\n" a newline in the shell?
<ijp>hmm, no
<ijp>e2x: the problem then is that guile sees a string with two characters, whereas in guile source \\n is treated as one
<ijp>I can't think of any easy way to do it from string escapes, though I know there is for format escapes
<ijp>but, you can get the shell to handle C style escapes (or at least bash can)
<ijp>./script $'foo\\n'
<ArneBab>my first FFI test: http://paste.lisp.org/display/142024
<cky>ArneBab: Did it work?
<ArneBab>yepp - feel free to try it ☺
<ArneBab>it gives the version of the netcdf4 library
<cky>Nice. :-)
<cky>The last FFI project I did was Rackona, a Racket-based libjvm FFI.
<cky>Not tried Guile's FFI yet. :-P
<ArneBab>better readable: http://paste.lisp.org/display/142024#1
<ArneBab>this is the trivial case, though
<ArneBab>it shows that bindings to C libraries work
<ArneBab>(but I need to get to bed now)
<ArneBab>cu
<cky>Have fun!
<ArneBab>you too!
<cky>\\o