IRC channel logs

2015-05-01.log

back to list of logs

***dje is now known as dje42
***michel_mno_afk is now known as michel_mno
***wleslie_ is now known as wleslie
***michel_mno is now known as michel_mno_afk
<dsmith-work>Happy Friday, Guilers!!
<davexunit>happy friday indeed
<civodul>hey, happy Friday!
***michel_mno_afk is now known as michel_mno
***michel_mno is now known as michel_mno_afk
<linas>I've got a dynamic library stumper. This works: (dynamic-link "./build/opencog/guile/libsmob.so") but this doesn't: (dynamic-link "/usr/local/lib/opencog/libsmob.so")
<linas>The second one gives me ERROR: In procedure dynamic-link: file: "/usr/local/lib/opencog/libsmob.so", message: "file not found"
<dsmith-work>Same file?
<linas>I'm stumped. Same libary, different location. Both are chmod 755
<linas>ldd -d indicates that it has no unresolved dependencies
<dsmith-work>Hmm.
<dsmith-work>Any other files or symlinks?
<civodul>linas: the "file not found" message is misleading
<civodul>probably there are unresolved symbols or something
<linas>civodul, yes, that's why I tried ldd -d
<civodul>ah sorry
<linas>but it does depend on yet other libraries, which depend on yet others, and so maybe one of the others
<linas>let me look
<dsmith-work>linas: Well, try it with strace and see if it does open the file properly
<linas>Ah. found it.
<dsmith-work>linas: Yes?
<linas>#$%^&*( its trying to load python
<dsmith-work>heh
<dsmith-work>And so the snake bites again
<linas>in our envoronemnt, almost nobody knows any scheme, so they code in python, because learning scheme is too hard. So they write python code like this: load_scm("(perform-action x y z)")
<linas>:-)
<linas>The smarter ones eventuallly figure it out, and stop using python
*dsmith-work wishes ldconfig would quit complaing about .scm files...
<civodul>linas: heh, sounds fun :-)
<davexunit>linas: where do you work?
<davexunit>it's always interesting to here about organizations using guile
<linas>increasing your user-base is my side-effect
<davexunit>:)
<linas>watch out though, one of the developers posted: "C++:hell scheme:hogwarts haskell:Heaven"
<davexunit>haha
<davexunit>makes sense, we're too impure for Haskellers.
<linas>you may violently disagree, but my impression is that a typed-scheme would go a long ways towards improving its acceptablility to the average programmer
<civodul>don't get davexunit started ;-)
*civodul stealthily agrees
<linas>Problem is, people look at (f x y z) and they have no clue what the types of x y z should be, so they get very lost and confused
<davexunit>some of us have interest in a Typed Racket-like thing for Guile
<davexunit>personally, I'm attacted to dynamic languages because I can escape the rigid world of static types.
<linas>types can be dynamic .. err, dynamic-ish?
<davexunit>being able to determine type errors at compile time is obviously a nice feature, but in my experience you have to sacrifice too much of what makes programming enjoyable.
<linas>I'm not suggesting that you go to a "rigid world", but rathre, have some markup that helps people debug
<davexunit>now, being able to write sections of my Guile type with static types... that could be neat.
<davexunit>s/Guile type/Guile code/
<linas>of course, type-checking at compile time is nice but even nicer is a stack trace that says "you dummy I was expecting an int and you gave me a string"
<linas>I dunno. Iguess it already prints that.
<linas>Hmm.
<civodul>yes, sort-of
<davexunit>it prints some stuff like that
<civodul>but often it's not as readable as one might like
<civodul>like: wrong type arg: #f
<davexunit>yeah, "but what type did you want???"
<davexunit>harder to say that when dispatching on type, like if you used 'match' or something.
<civodul>bad error reporting scares newcomers away
<civodul>i would be worth to investigate what can be done to improve the situation
<linas>changing the topic: have you ever heard of a mashup of scheme and prolog?
<linas>Because I realize that, defacto, thaat is what I am .. err. inventing... and probably badly.
<davexunit>linas: miniKanren?
<davexunit>it's not prolog, but it's a logic/relational programming system
<linas>yes, ..
<linas>I'll look.
<davexunit> https://github.com/ijp/minikanren
<davexunit>^ an r6rs port that works with Guile
<linas>Because I have a "database" of "facts" that are written in scheme. And I "query" (search/pattern-match) that database to find facts a la boolean-satsifiability.
<davexunit>sounds like minikanren could help you out.
<linas>and some of my "facts" are recursive functions.
<linas>well, my stuff is already implemented, and works quite well.
<davexunit>okay
<linas>and has a user base I cannot disrupt. but it could be more elegant or something
<davexunit>minikanren might still interest you. it is *the* relational EDSL for Scheme.
<davexunit>it even has its own book!
<linas>and a wikipedia article!
<ijp>protip: kanren means "relation"
<linas>well, I've got 3-4 books on my system (so there!) (but they don't actually match what the code actually does)
<linas>cool. OK, yes, so minikanren is almost exactly what I'm re-inventing.
<linas>well, with bayesian probabilities thrown in for good measure, but whatever.
<linas>col thanks
<davexunit>yw
<linas>so how would I set LD_LIBRARY_PATH from within guile (e.g. during a module load) ?
<dsmith-work>linas: setenv ?
<linas>yayy! it works!
<dsmith-work>yey
<linas>FYI, my not-actuallly-minikanren + probabilities is at http://github.com/opencog/atomspace
<davexunit>f
<davexunit>oops
<dsmith-work>Anyone ever seen am image with the text: "The Sacred Text of Gerald J. Sussman Confounds the Python Heretics. 2009 A.S." ?
<dsmith-work>I've got it on paper and pinned up on my wall, but I can't find the original image anywhere.
<davexunit>dsmith-work: no, it sounds funny. I want to see it.
<dsmith-work>It's some famous ceiling panel, I think.
<dsmith-work>But edited with lambdas and the logo from SICP and stuff.