<daviid>str1ngs: I found the cause and pushed a fix, please try and let me know if also works on your side ... <str1ngs>daviid: working now thanks. FYI there is a orphaned dimfi somewhere. I'm seeing ;; param-n value 2 <daviid>str1ngs: ok good, will remove the ghost dmfi, tx <mwette>I have discovered that dynamic-link does not work on redhat distributions (redhat, centos, fedora): the response to this command is often "file not found". Any clues? <daviid>str1ngs: pushed a code review fixed removing the calls to dimfi <daviid>mwette: I would first and above all :) double check that the lib itself has all its dependencies fulfilled, using ldd ... and search for eventuall not found ... <daviid>mwette: this is a typical guile-cv dynamic-link 'problem', wrt vigra, then o find out hlf of the lib vigra depends on were not installed ... <daviid>mwette: if tht work, then it should work on redha as for any other distro, but guix, which needs 'full pathname', since it doen't use libtool (per design) <mwette>no issue on other oses (ubuntu, debian, macos); the lib I'm loading is in /usr/lib64; outside of guix; tried full path, no luck <daviid>mwette: my advice is to check the lib using lddyou need to <daviid>mwette: my advice is to check the lib using ldd <daviid>and make sure there no occurrence of 'not found' <daviid>then, double check it is 'knwn to ldconfig' <mwette>all the deps from the "ldd libyaml.so" also appear in "ldd /usr/bin/guile" <daviid>mwette: maybe try strace -o strace.out guile -c "(dynamic-link blabla)" <spk121>mwette: if you run with the environment variable LD_DEBUG=all, you can find the culprit to the "file not found" <dsmith>spk121: Cool. Does that also show the misleading "file" not found when the symbol is not found or the init function return an error? <dsmith>s/show the /show the true cause of the / <spk121>dsmith: I think so. I haven't had to use that trick lately. <dsmith>I'll need to try it next time too. <dsmith>Hm.. Shouldn't be too hard to fake up an error condition. <dsmith>While strace does show what files are looked for and where, it might not be available on all systems. <dsmith>sneek file not found is use strace -efile or set LD_DEBUG=all <sneek>Someone once said file not found is use strace -efile or set LD_DEBUG=all <redkahuna>Hey All, how did you handle to get one connexion to db in guile ? explication: in oop we have singleton to be sure that we have only one connexion opened to the db, how did you handle these type of probleme in guil <rekado_>redkahuna: you can always define state to keep track of things like this (e.g. a procedure that stores a connection handle and returns it when called again); but in the case of database connections I usually prefer to define a macro “with-db” that takes care of opening and closing db connections for the body. <mwette>spk121: for guile 2.0.14, LD_DEBUG reports 'file=/usr/lib64/libyaml.so [0]; dynamically loaded by /lib64/libltdl.so.7 [0]' but then guile, apparently, reports 'ERROR: In procedure dynamic-link: file: "libyaml", message: "file not found"' <spk121>mwette: that is a 'red herring' because libltdl is garbage. The real problem is not with yaml, but with one of its dependencies <spk121>if you go to the end of all that LD_DEBUG output and work your way backwards, you'll find an error <mwette>'/lib64/ld-linux-x86-64.so.2 --list /usr/lib64/libyaml-0.so.2' gives normal stuff: linux-vd.so, libc.so only; no other dependencies <redkahuna>rekado_: So you need to use a global variable to do that no ? <rekado_>redkahuna: no, it can be a local variable in a closure. <redkahuna>rekado_: sorry, can you please send me an example <rekado_>redkahuna: roughly this: (define db-connection (let ((connection #f)) (lambda () (if connection connection (let ((c (connect-to-the-db …))) (set! connection c) c))))) <rekado_>redkahuna: whenever you call (db-connection) you’ll get the already established db connection. <rekado_>“connect-to-the-db” is a placeholder for whatever method you use to connect. <redkahuna>rekado_: ah thanks i understant now ! thanks a lot <regtur>civodul: can you get me started on the FSF copyright assignment (for the pipeline patch)? <dongcarl>Hi! is there documentation on the "@" synatx? <rekado_>dongcarl: in the info document hit “i” (for index) and then @ <rekado_>hit RET and you’ll get to the right place in 6.20.2 Using Guile Modules <rekado_>it doesn’t have much to say about it, though. <civodul>let me know if there's anything you'd like to discuss <civodul>(i agree that paperwork is a bit of a bummer, but hopefully it'll be quick enough) <regtur>I dislike redtape, but it should be worth it <janneke>as a reward you might even get a shoutout on twitter nowadays :) <civodul>the patch looks pretty much ready BTW <civodul>we'll check what wingo thinks but i think it'd be fine to add in 3.0.x <dsmith-work>civodul: Ahh. While I'm thinking about it: The 3.0.1 release announcement mentions 3.0.0. Probably should be 3.0.x <dsmith-work>"Guile 3.0.0 can be installed in parallel with Guile 2.2.x; see" <civodul>dsmith-work: indeed, thanks for the heads-up! <civodul>now we know of one person who actually read it ;-) <dsmith-work>civodul: Do you know of a simple, non-guix test that can trigger the malloc struct bug? <civodul>it seems to be hard to trigger given <rekado_>dustyweb: are you still maintaining guile-webutils? I think I may have a few additions in the future. <civodul>i always feel like all the great debugging tools (sanitizers, gdb record/replay, valgrind, etc.) will never quite work for Guile ***janneke_ is now known as janneke
<redkahuna>Hey all, may be not the right place but: why we use the term closure property to talk about function like cons ( can apply cons to the result of cons) and the same term closure to the abilitfy of use nonlocal variable in function to store state. ?