IRC channel logs


back to list of logs

<daviid>brendyn: please send a bug report at bug-guile at gnu dot org
<daviid>brendyn: you can grab it from
<daviid>or entering wget
<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?
<brendyn>I'm on GuixSD
<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>It worked
<brendyn>Interesting that it takes 0.6 seconds to load
<daviid>brendyn: it's running some 'expensive' code at load time
<dsmith-work>{appropriate time} Greetings, Guilers
<OrangeShark>greetings dsmith-work
<OrangeShark>how are you doing amz31?
<guile-guest4>Hey folks
***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
<guile-guest4>oh that's great. Thanks snape
<amz3>OrangeShark: I get things going as smoothly as I can
<amz3>guile-guest4: what are you up to?
<amz3>OrangeShark: and you?
<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
<sneek>I'll keep that in mind.
<amz3>one version of zehefyu93 will be simple with microkanren querying
<OrangeShark>ohh, a paper for a conference. That is cool
<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
<OrangeShark>three versions for the same paper?
<amz3>three versions of the quad store
<amz3>the paper will deal with all three versions
<OrangeShark>ah okay
<OrangeShark>thought you were going to write one paper for each
<amz3>that's an idea
<amz3>maybe I will do that
<amz3>anyway, I just wrote the introduction and the 'road to zehefyu93' section of the paper
<OrangeShark>the deadline is soon, right?
<amz3>remains the second section which shall describe how those work
<amz3>2 weeks
<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_>(sorry for my bad english)
<vivien_>And yet another question: 3. Does the garbage collector scan my bytevector for pointers or not?
<civodul>hello vivien_!
<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>usually it does 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)