<ijp>civodul: how do you handle working around guile bugs in guix? <stis>civodul. I think I release it, it's good to have a tag and not develop forever. <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 <ijp>so straight copying, no fancy hacks <civodul>well, for the web stuff it's terrible <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 <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. <cky>Problems A and B are really easy. I promise you. <davexunit> I'm too busy writing particle simulations :P <mark_weaver>cky: thanks! we'll see whether I got the large problems correct. *crosses fingers* :) <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! <cky>mark_weaver: But yes, late start for me indeed. <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>(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"? <ijp>I'm impressed by the care it takes to make everything work right <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>I don't remember if I got a perfect score last year. I think maybe not. <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>I do recommend trying to do problem C before looking at the answer. <mark_weaver>I didn't get a perfect score last year. The last problem stumped me. <cky>mark_weaver: Wait, what, your problem C is purely-functional?! <cky>mark_weaver: I actually used a vector for that. <mark_weaver>my guess is that my solution works in a much different way than yours *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? <ijp>cky: I have semi-functional vectors, and sequences based on trees <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: it uses mutation under the hood <ijp>it doesn't do any copying <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>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. ***alezost`` is now known as alezost
***Fuuzetsu is now known as Guest17487
***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>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) <cky>ArneBab: Did it work? <ArneBab>it gives the version of the netcdf4 library <cky>The last FFI project I did was Rackona, a Racket-based libjvm FFI. <cky>Not tried Guile's FFI yet. :-P <ArneBab>it shows that bindings to C libraries work