<daviid>brendyn: please send a bug report at bug-guile at gnu dot org <daviid>brendyn: if yu are using guix, there is an slib guix package <brendyn>I installed the package via guix but guile doesnt seem to find it. <brendyn> In procedure primitive-load-path: Unable to find file "slib/guile.init" in load path <daviid>brendyn: is the guile you are using to use slib the one in guix as well? <daviid>hum, that is surprising, I sugget you ask in #guix <civodul>brendyn: besides note that SLIB is old and "clunky" on the edges <civodul>for one it's always been difficult to use it in a Scheme that has a module system <brendyn>In general, if I'm looking for a procedure that I expect exists in a guile module somewhere, how can I go about finding it. I just wanted to find a prime? test <civodul>oh, maybe you can extract it from SLIB instead of trying to get the whole SLIB to work :-) <daviid>brendyn: guile-lib is your friend :) <brendyn>As I learn to program, I find it unintuitive which procedures exist in modules and which ones I need to make my self or copy-paste in <daviid>brendyn: guile's reference manual procedure index (among other indexes) is your friend <brendyn>I'm about 25% of the way through SICP <daviid>brendyn: guile-lib is in guix of course, and just do (use-modules (math primes)) <brendyn>Interesting that it takes 0.6 seconds to load <daviid>brendyn: it's running some 'expensive' code at load time ***chrislck1 is now known as chrislck
<guile-guest4>Was wondering if there is anything like slime for use with guile+emacs. Any type of melpa package for this? <snape>guile-guest4: there is Geiser <amz3>OrangeShark: I get things going as smoothly as I can <amz3>guile-guest4: what are you up to? <OrangeShark>I am doing alright. Need to do more Guile hacking though. <amz3>you released guile-git afterall, time for some rest <amz3>I promised myself to write something for scheme2018 <amz3>I already have 3 pages out of 14 which is the max <amz3>seems like I don't have a lot to say <amz3>OrangeShark: I have a better idea of what I want to do <amz3>I plan to create three version of the database that I wrote called now zehefyu93 <amz3>sneek: zehefyu93 is a quad store written in guile on top of wiredtiger database library <amz3>one version of zehefyu93 will be simple with microkanren querying <amz3>the second version will be versioned in a single branch like datomic <amz3>and the third will be more like git <amz3>actually the third version of the database is what is in the repository right now except it doesn't have microkanren querying <amz3>OrangeShark: that is a lot of work <amz3>I don't think all three will be ready for the conference tho <amz3>three versions of the quad store <amz3>the paper will deal with all three versions <amz3>anyway, I just wrote the introduction and the 'road to zehefyu93' section of the paper <amz3>remains the second section which shall describe how those work <vivien_>Hello guile! I'm using the foreign function interface on my custom C code, and I have 2 questions. 1. I have a function that fills an output parameter of enum type ; should I use the "int" ffi type? 2. I'm paranoid of the garbage collector; is there a way to tell guile (when running my unit tests) to run the GC before each allocation? <vivien_>And yet another question: 3. Does the garbage collector scan my bytevector for pointers or not? <civodul>the GC does not scan bytevectors (they are bytevectors, not "pointervectors" ;-)) <civodul>re #2, at each allocation libgc determines whether it needs to run a full, stop-the-world mark & sweep phase or not <civodul>what you could do in your unit tests is too explicitly call the 'gc' procedure, if you want to stress-test that aspect of your bindings <civodul>re #1, an "enum" is an "int", indeed <vivien_>OK thank you. For #1: OK, for #2: it is a little annoying since I would rather run the GC inside the scheme library function, not in the test, but this reduces my paranoia. For #1: I must keep a bytevector A alive for at least as long as another bytevector B, but I will never use bytevector A in the scheme code. Will the compiler optimize it away? If so, how do I tell it not to? <civodul>it's a run-time issue, not a compile-time issue <civodul>a common way to work around it is using a weak hash table <civodul>so you would do (hashq-set! table b a) in your weak hash table <civodul>and that guarantees that A will disappear only once B has become unreachable <vivien_>So table should be a global define of the module right? <civodul>(it should be a weak-key hash table in the example above)