<ArneBab_>I’m mainly modelling it after timeit(...) I know from python. It might prove to be a mistake, but I can change it then <ArneBab_>and it helps me learn about syntax-case :) <starmon>Hello! I'm having trouble using a module from the working directory... <ijp>the current directory is not on the load path by default <remi`bd>hello! I’m writing bindings for GnuNet (dynamic FFI), there’s this GNUNET_PROGRAM_run function that takes argc and argv as arguments, and I don’t know how to handle this <remi`bd>to experiment, I tried to craft myself fake argc/argv, but I couldn’t find how to set argv to something like { "foo", NULL } <remi`bd>another question: how can I make an “array of pointers” (for instance, a “char *argv[]” or a struct foo *options[]”) ? I tried to make a bytevector of pointers, but pointers being wrapped (and not raw pointers), it didn’t work <davexunit>remi`bd: for the pointers, use 'pointer-address' to unwrap them <davexunit>that way you can stuff them into a uint bytevector <remi`bd>uint? aren’t pointers signed quantities? <ijp>that wouldn't make sense <remi`bd>oh yes excuse me, ptrdiff_t is signed, not pointers <remi`bd>another question: is there a specific way to treat pointers to functions? <davexunit>yes, that works for sending scheme procedures to C functions <davexunit>I've used it for C libraries that register callbacks ***u_l-lap is now known as unknown_lamer
*davexunit bought "The Reasoned Schemer" today *davexunit was hoping to find it on sale at MIT Press' loading dock sale, but couldn't find it so paid full price <davexunit>paroneayea: I'm happy to have it and complete my collection of schemer books. <paroneayea>relatedly, now I need to find either a way to run (mini)kanren in guile 2.x or install guile-log? <paroneayea>there is a bug where minikanren does not run by default, apparnently. <davexunit>paroneayea: ijp has a minikanren implementation that works with guile <davexunit>my only concern with it is that the official reference implementation has been updated since ijp's last commit. not sure if it matters. <davexunit>the issue with this version is that it's just a heap of code, no modules. <davexunit>probably so that it uses R5RS features only or something <davexunit>not that I think about it, I've run into that. ***karswell` is now known as karswell
<ijp>davexunit: strictly speaking minikanren is not valid r[5/6]rs because it uses invalid symbol names <ijp>but I think racket in #lang r6/5rs is the only thing that will complain about that <paroneayea>but it provides an interesting backdrop for the second <davexunit>admittedly, I haven't read both of them thoroughly yet <paroneayea>davexunit: would be interesting to think how it might be done in a way that can happen in the background <davexunit>would be neat to use a minikanren relation to describe how an enemy makes their next move <davexunit>in other news, I have the essential parser combinator functions working, complete with some basic tests. <davexunit>dealing with ambiguous and left-recursive grammars... <davexunit>I haven't yet read an explanation that has made the solution click for me yet <davexunit>this has been a really great guide most of the way, though <davexunit>the actual code isn't great, but the explanations have helped