IRC channel logs

2015-10-02.log

back to list of logs

<amz3>I am asking because it's similar to what wiredtiger does
<mark_weaver>taylanub: if you want to help, the best way would be to help find and run as many comprehensive test suites for R7RS as you can get your hands on.
<mark_weaver>and preferably import the ones that have compatible licensing
<mark_weaver>the other technical problem is more difficult. I already know what I need to do, but if you aren't very proficient in C it's probably not something you could help with efficiently.
<mark_weaver>the *non-technical* problem is that I'm not sure whether I'd be doing a disservice to the scheme community to support a gratuitously incompatible competitor for the existing R6RS standard.
<ArneBab>With the 30th birthday of the #FSF coming up on saturday, how about a new look at the official #GNU extension language? http://draketo.de/py2guile ← the book is printable!
<amz3>ACTION add a bookmark
<ArneBab>ACTION is happy ☺
***Fuuzetsu is now known as Guest43143
***Guest43143 is now known as Fuuzetsu`
***Fuuzetsu` is now known as Fuuzetsu
***ozzloy_ is now known as ozzloy
<paroneayea>heya
<amz3>heya
<paroneayea>hi amz3, how goes hacks
<amz3>I read a lot
<amz3>I don't wrote a lot of code
<amz3>I'm learning the ways of streams
<amz3>paroneayea: and you?
<amz3>back to GMG?
<paroneayea>amz3: I'm going on to packaging GMG in guix and working on deployment thereof, though right now I'm catching up on email and stuff
<amz3>you remind me I should write to the ML
<amz3>paroneayea: This make me also think that GMG is relevant to the note i just posted
<amz3> http://hypermove.net/do-it-yourself-an-artificial-intelligence.html
<amz3>scroll until cogni-art and backlog two paragraph
<amz3>I don't recall the term you use in GMG, I think it's something like ContentModel or ContentType which allows someone to create new type of content
<amz3>well GMG helped me to build this idea
<amz3>ACTION try give credit where credits is due kind of thing
<paroneayea>amz3: ah interesting, well happy to serve some inspiration :)
<paroneayea>amz3: speaking of user "game" content as a way for AI to interact and grow
<amz3>yes
<paroneayea>amz3: eventually if I have this federated MUD thing, would be fun to try putting some machine learning based agents in it and see if it's possible for them to do anything interesting
<paroneayea>but someone else would have to do it, I know nothing about ML!
<amz3>my interest is mainly in "computing with words" approach
<amz3>I don't understand either how neural network compute their thing
<amz3>"computing with words" is IA theory
<amz3>paroneayea: what is an agent? a non playable character?
<amz3>Is there any MUD that is a sandbox?
<amz3>a sandboxed MUD sounds so crazy. I can't imagine the number of rules that are required
<amz3>I read somewhere that those kind of things are done using guile-log software
<amz3>so it's not the "neural net" kind of garbage
<paroneayea>amz3: I've got more commentary on what that would be at a future time but I am literally having to close my laptop right now
<amz3>bye
<zacts>evening
<nalaginrut>mark_weaver: does call/cc copy the C stack? I know prompts won't
<nalaginrut>and I still no idea what's difference between continuation-stack and VM-stack, which appears in call/cc
<zacts|pi>hello again
<nalaginrut>I found it's slower when you make-prompt-tag for each actor
<nalaginrut>use the default prompt tag seems rather faster
<nalaginrut>44s vs. 10s for scheduling 10000 actors
<zacts|pi>nalaginrut: have you made any recent progress on your guile static blog generator?
<zacts|pi>(I've been away from guile for about 3 - 4 months or so)
<zacts|pi>(guile news that is)
<nalaginrut>zacts: I'm not working on static page generator, it's daveunix
<nalaginrut>I'm focusing on dynamic side ;-)
<artyom-poptsov>nalaginrut: s/daveunix/davexunit/ ;-)
<nalaginrut>oops ;-D
<zacts|pi>oh I see
<zacts|pi>sorries
<zacts|pi>:-)
<zacts|pi>still I would be interested
<zacts|pi>but brb. I'm switching wifi connections (my wifi spot here is blocking ssh at the packet level)
<zacts|pi>(so even ssh over https is being blocked)
<zacts|pi>(so I'm on webchat.freenode.net)
<taylanub>amz3: Alex Shinn mentioned that a cursor API is useful for implementing looping constructs, and Racket has one, so I just wanted to look into how easily one can be implemented in Guile. I don't have a "real-life" use-case.
***ft_ is now known as ft
<roelj>So I constructed a list with scm_cons() and used it in Guile, and I want to free the memory associated with it. How can I do that? (ideally, something similar to free()).
<taylanub>roelj: it will be garbage collected
<roelj>In C also?
<taylanub>yup
<roelj>Wow
<roelj>So I don't have to free() it manually?
<taylanub>the Boehm GC works with C
<roelj>Should I then set the variable associated with the list to NULL, so the GC knows it is no longer used? (Sorry, I know very little about GCs.)
<taylanub>You can (theoretically?) convert any manual-memory-managing C program to a garbage collected C program by linking with the Boehm GC and changing all your malloc() calls to gc_malloc() or so, and simply removing free() calls
<taylanub>(that's the basic idea anyway, I don't have real experience with this)
<roelj>Cool
<taylanub>roelj: if the variable is global or so, then yeah, otherwise it will just go out of scope anyway, and then it can be collected
<roelj>Alright. Thanks a lot, again.
<taylanub>happy to help :)
<roelj>I'm having a rather silly problem with the REPL. Upon calling a certain function, it should read from stdin until "go" appears on a separate line. I could just copy-paste the lines into the REPL after calling that certain function. But I'd like to do the same from a script.
<roelj>How could I do that?
<lloda>(import (ice-9 rdelim)) (let loop () (unless (string=? "go" (read-line)) (loop)))
<lloda>i'm not sure if this is what you mean though
<taylanub>to gather the input you can do something like: (let loop ((result "")) (let ((line (read-line))) (if (string=? line "go") result (loop (string-append result "\\n" line))))) ;untested, and note this will remove the "go" from subsequent input because it's already been read
<taylanub>roelj: ^
<roelj>taylanub: Thanks, I'm going to try
<nalaginrut>evening guilers~
<roelj>lloda: Thanks! it looks clean
<roelj>It's actually the C function waiting for input. So it doesn't reach any Guile code.
<roelj>I'm doing: (load-extension "./libpw-guile.so" "pw_init") (pw-start-game)
<roelj>And the (pw-start-game) function calls a library function from libpw-guile.so, which waits for input.
<roelj>I moved the problem to reading files instead.
<dsmith-work>Happy Friday, Guilers!!
<roelj>Does scheme have an nth function?
<davexunit>what does such a function do?
<mthl>this is left as an exercice for the user :)
<mthl>get the nth element
<roelj>(nth 1) -> (car (cdr something))
<amz3>it's list-index
<davexunit>roelj: list-ref
<davexunit>(list-ref '(foo bar baz) 2)
<davexunit>=> baz
<roelj>Thanks!
<taylanub>can I make 'make check' run only a given test or number of tests?
<lloda>taylanub: I think there's no setup to do that *directly*, but you can make 'make' and then call test-suite/guile-test (a Guile script) with the specific tests you want to run as arguments. test-suite/guile-test has documentation.
<mark_weaver>taylanub: in guile, you can run "./check-guile numbers.test" (or whichever tests you want)
<mark_weaver>for the scheme-based tests anyway
<taylanub>thanks!
<sirgazil>Morning!
<sneek>sirgazil, you have 1 message.
<sneek>sirgazil, paroneayea says: no worries, I didn't see it but the guile with black background looked nice, thanks for sending! I'll use it in future presentations
<sirgazil>Good :)
<paroneayea>hi sirgazil !
<paroneayea>sirgazil: btw I made a big show of your graphic design in the talk
<paroneayea>basically saying how important I think it is in Guile / Guix to make things feel accessible and welcoming to newcomers, and how excited I am for this to be a step towards that
<sirgazil>paroneayea: Oh, really! :)
<sirgazil>paroneayea: I'm implementing the website right now
<davexunit>ooh :)
<davexunit>guile is an exciting place
<sirgazil>it seems I won't have to bother mthl to help me with SXML because I have this running already
<davexunit>would be nice to have a pretty tutorial on the website, outside of the manual.
<davexunit>if we were to do such a thing, what do people think it should consist of?
<davexunit>"hello world", then what?
<davexunit>numbers, procedures, and quotation?
<mthl>sirgazil: Nice!
<sirgazil>davexunit: Personally, I'd like something like Python tutorial but that uses a little program project to introduce the concepts.
<davexunit>something that doesn't emphasize mutation, or only introduces it later would be preferable.
<sirgazil>davexunit: so, after you finish the tutorial you have a little program that you can install? (command-line program is fine, I think)
<sirgazil>mthl: :)
<davexunit>sirgazil: that's one possible approach
<davexunit>not sure I like that approach best, though.
<davexunit>we don't have the picture language that Racket has, but I'm very partial to this: http://docs.racket-lang.org/quick/index.html
<sirgazil>davexunit: Yeah, that's nice. I have How to Design Programs in my "to read" list.
<mark_weaver>oooh, sirgazil is working on our shiny new website! \\o/
<mark_weaver>woohoo!!
<sirgazil>:)
<taylanub>yay, really love that design :)
<taylanub>mark_weaver: it seems the hungry-eol-escapes read option doesn't eat horizontal space after the \\ and before the newline
<dsmith-work>Is gmane down for anyone?
<taylanub>I can ping it but not nping (TCP connect)
<dsmith-work>Ok. It's not just me then. Thanks
<taylanub>np
<taylanub>hm, space after \\ and before newline is pretty useless. looking at the C code, it doesn't seem trivial to support, so I guess we can leave it be.
<amz3>taylanub: what do you mean by "looping construct" ? something like recursion?
<mark_weaver>amz3: for things like foof-loop <http://mumble.net/~campbell/scheme/foof-loop.txt>
<mark_weaver>taylanub: we should probably support spaces between the \\ and newline
<mark_weaver>thanks for bringing this to my attention. please remind me if I forget
<amz3>thanks, I'm reading
<amz3>This is so funny to read
<amz3>Finally, we need not supply a final expression at all, in which case
<amz3>what the loop returns is unspecified.
<taylanub>mark_weaver: I added Kawa's R7RS test suite and marked a couple tests as expected failures, including one for this issue, so that should remind us. I just need to push my modified r7rs-wip branch somewhere...
<taylanub>ACTION goes to drive home, back in ~30 mins.
<amz3>\\(quote "«" "»")
<amz3>some logic language for NLP, defines slash operator and backlash operator between symbols to explain whether the tree construction algorithm should reduce to right or to the left of current word being parsed
<amz3>it's recursively build the tree starting from the leafs which are the words of the sentence
<amz3>tp compute an equation descring the goal of the sentence
<amz3>M-x symbols RET forms RET
<amz3>the paper explain that the perfect algorithm to build the logic trees for english sentences is not know before hand
<amz3>so they use probabilistic grammars like the ones generated by the Earley algorithm to infer probabilistically good enough logic parse of phrases
<amz3>the end results is that several weighted goals are associted with the sentences
<amz3>what opencog does is that based on the context of the environment the sentence is taking place, mostly the request or payload coming with the sentence, it must associate choose one or several goals and execute the correct procedure
<amz3>goal = logic trees
<amz3>the context is a similar metaphor to request, payload and *metadata*. Say un udp paquet is a table of several typed fieds, a JSON request nested datastrutrure that is actually as sparse table
<paroneayea>sent in my copyright assignment to Guile
<amz3>though time nonetheless
<amz3>I never inverstigated this kinds of things because I read that for ... in ... was not schemey
<amz3>I should read that, but I need to finish some code first, switching back forth between study and coding is so boring
<amz3>from my pov it looks like streams, I think that it's possible to do the same thing using an oop approach
<amz3>with mutation
<amz3>but if it use call/cc I'm not sure how it can be pragmatic to use it
<taylanub>how can I debug "ERROR: no code for module X"? it seems to compile the file in which the module resides, but then fails anyway. http://sprunge.us/XOUE (the file contains an R7RS library; I'm developing on the r7rs branch)
<amz3>hmm I'll that my gremlin file
<mark_weaver>taylanub: looks like you're doing some magic to try to convert (srfi 78) into (srfi srfi-78) and it's going wrong.
<taylanub>indeed. I thought thing would go smooth after the conversion in resolve-r6rs-interface
<mark_weaver>I'm sorry, but I don't have time right now to help with this
<taylanub>no problem, I'll poke around
<mark_weaver>but I suspect that it will be a waste of your time to attempt something like this without guidance from us.
<mark_weaver>it's likely to be tricky
<mark_weaver>but if you don't mind wasting time, that's fine of course :)
<taylanub>so far things seemed relatively straightforward. maybe I'm missing something big...
<taylanub>oh... apparently I hit an issue which we also have with R6RS SRFI libraries due to their transformation: http://sprunge.us/YdPK (guile 2.0.11) likewise with my r7rs-wip branch, after (define-library (srfi n) ...), I can ,use it but not (import ...) it because r6rs 'import' transforms it but define-library doesn't.
<taylanub>I guess I'll report that as a bug, dunno if it's a known limitation
<mark_weaver>taylanub: right, we need a better approach to handling this properly, and that's probably a bit tricky
<mark_weaver>the current approach is based on the assumption that the srfi modules will be defined as (srfi srfi-N)
<taylanub>mark_weaver: do you know off-hand any problems with having R6RS 'library' do the same conversion, so (library (srfi :n) ...) becomes (library (srfi srfi-n) ...), just like (import (srfi :n)) becomes (import (srfi srfi-n))? I implemented it and from rudimentary tests (like pastebinned transcript above) it seems to work
<luk>Hello there, anybody here that knows a bit about the guile-gnome lib? I get some strange errors from make check that I'd like to show to somebody with more experience.
***ozzloy_ is now known as ozzloy
<daviid>luk: maybe I can help what guile version and what guile-gnome version ?
<luk>guile (GNU Guile) 2.0.11 / gnome-guile is latest stable from git
<daviid>luk: ok, did you clone recently or are you using and old clone?
<luk>I cloned again today to be sure
<luk>when I try to use the lib in a small program I get the following error: ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
<luk>;;; or pass the --no-auto-compile argument to disable.
<luk>;;; compiling /home/luk/src/test.scm
<luk>;;; compiling /usr/share/guile-gnome-2/gnome/gobject.scm
<luk>;;; WARNING: compilation of /usr/share/guile-gnome-2/gnome/gobject.scm failed:
<luk>;;; ERROR: Throw to key `gruntime-error' with args `("%gtype-class-bind" "No GType registered with name ~A" ("GClosure") ())'.
<luk>;;; compiling /usr/share/guile-gnome-2/gnome/gtk.scm
<luk>;;; WARNING: compilation of /usr/share/guile-gnome-2/gnome/gtk.scm failed:
<luk>;;; ERROR: In procedure #<procedure 15afee0 ()>: Unbound variable: <gclosure>
<luk>;;; compiling /usr/share/guile-gnome-2/gnome/gw/gtk.scm
<luk>;;; WARNING: compilation of /usr/share/guile-gnome-2/gnome/gw/gtk.scm failed:
<luk>;;; ERROR: In procedure class-direct-methods: Wrong type argument in position 1 (expecting class): #<undefined>
<luk>;;; WARNING: compilation of /home/luk/src/test.scm failed:
<luk>;;; ERROR: In procedure latent var already registered: %s: <gtk-tree-path>
<daviid>luk: please use lisppaste or similar, dont paste errors in the channel thanks!
<luk>allright, sorry for that
<daviid>it appears that you don't have gobject, could you edit your config.log and search for 'wrappers' and tell me which wrappers it tried to build
<daviid>do you have more then 1 guile installation?
<luk>All available wrappers will be built:
<luk> atk cairo corba gconf glib gnome-vfs gtk libglade libgnome libgnomecanvas libgnomeui pango
<luk>no, just standard guile on a parabola linux, no legacy old one
<daviid>luk: it seems you installed 'make install' before to run 'make check' ?
<luk>well, yeah. then I got errors from a test.scm and tried make check
<daviid>ok could you you make uninstall, make distclean, ./autogen.sh, ./configure --prefix=/your-prefix, make and make check - but before let me ask did you install guile-lib, the latest?
<daviid>these steps are http://www.gnu.org/software/guile-gnome/developers.html
<luk>yes, I did install the guile lib
<daviid>did you clone guile-lib as well [asking because we don't have pkg-config info wrt guile-lib yet
<luk>yes, I cloned it
<daviid>ok, then redo the steps [make uninstall ..] and paste the make check here http://paste.lisp.org/
<luk>already compiling... ;)
<daviid>i'm doing the exact same here, using master [because I usually use devel...]
<luk> http://paste.lisp.org/+3CIU
<daviid>could you paste your config.log as well, thanks
<luk>paste too large :( http://paste.lisp.org/+3CIV first half
<daviid>ok
<luk> http://paste.lisp.org/+3CIW second half. Internet is slow today...
<daviid>ok, let's try this if you don't mind:
<daviid>make distclean
<daviid>git checkout --track -b devel origin/devel
<daviid>./autogen.sh, ./configure [--prefix=...], make, make check
<luk>same thing it seems
<luk>yep same error
<daviid>weird! I have 1 pango related make check failure using master here [did not know, will investigate, but it is not the same as your problem anyway], none using the snapshot [the savannah tarball associated with the 2.16.3 tag] and none using devel: I wonder what that could be, let me read the config.log
<luk> http://paste.lisp.org/+3CIX
<luk> http://paste.lisp.org/+3CIX/1
<daviid>luk: I don't know what it is yet, and I can not reproduce here
<daviid>no errors reported by make, you are sure?
<luk>hm, let me check that again. not on the last page for sure
<luk>when I run make again it enters and leaves all directories without any error
<daviid>ok
<luk>thank you very much anyway, daviid. I think I'll try compiling again on a different distro tomorrow ;) to tired to do a new system today.
<daviid>luk: it's very unfortunate I cn not reproduce, it makes it difficult for me to debug, but I'm thinking...
<daviid>luk: something went wrong wrt gobject and more specifically gclosure, but I don't know why. not sure changing distro will solve, but if that matters, i'm on debian testing
<luk>I thought more about having a clean system to start with
<luk>not that the one I'm using now is that old, but I run out of options ;)
<daviid>WARNING: compilation of ... glib/gnome/gobject.scm failed: ... "No GType registered with name ... "GClosure"
<daviid>luk: could you 'make install', then
<daviid>guile-gnome-2
<daviid>,use (gnome gobject gclosure)
<daviid>luk: ^^ I think that on youy system, the dynamic-call ... dynamic-link fails
<luk>While executing meta-command:
<luk>ERROR: Throw to key `gruntime-error' with args `("%gtype-class-bind" "No GType registered with name ~A" ("GClosure") ())'.
<daviid>it seems guile-gnome does not find its gobject library
<daviid>,q [to exit from the error]
<daviid>then let me thik
<daviid>think
<daviid>,use (gnome gobject config)
<daviid>*guile-gnome-gobject-lib-path*
<luk>$1 = "/usr/lib/libguile-gnome-gobject-2"
<daviid>(dynamic-link *guile-gnome-gobject-lib-path*)
<luk>$2 = #<dynamic-object "/usr/lib/libguile-gnome-gobject-2">
<daviid>(dynamic-call "scm_init_gnome_gobject_closures" $2)
<luk>no return
<daviid>ok
<daviid>,use (gnome gobject utils)
<daviid>,use (gnome gobject gtype)
<luk>both work
<daviid>,use (gnome gobject gvalue)
<daviid>,use (oop goops)
<luk>no return, no error
<daviid>(define-class-with-docs <gclosure> (<gboxed>)
<daviid> "The Scheme representation of a GLib closure: a typed procedure
<daviid>object that can be passed to other languages." ;; FIXME say something about initargs
<daviid> #:gtype-name "GClosure")
<daviid>you could do this actually: (define-class <gclosure> (<gboxed>) #:gtype-name "GClosure")
<luk>ERROR: In procedure %gtype-class-bind:
<luk>ERROR: Throw to key `gruntime-error' with args `("%gtype-class-bind" "No GType registered with name ~A" ("GClosure") ())'.
<daviid>ok, so here it works, and I have no idea why it fails on your side
<luk>shit, me neither ;)
<daviid>does it let yu baktrace?
<daviid>,bt
<luk>In current input:
<luk> 11:0 3 (#<procedure 1ccb8a0 at <current input>:11:0 ()>)
<luk>In oop/goops.scm:
<luk> 1553:4 2 (#<procedure 1a507e0 at oop/goops.scm:1551:0 (class . …> …)
<luk>In gnome/gobject/gtype.scm:
<luk> 81:8 1 (#<procedure 1ccb620 at gnome/gobject/gtype.scm:74:0 (…> …)
<luk>In unknown file:
<luk> 0 While executing meta-command:
<luk>ERROR: Slot `name' is unbound in object Error while printing exception.
<daviid>don't paste errors here please, and let's try a full backtrace
<daviid>,backtrace #:full? #t
<daviid>then paste the results
<luk> http://paste.lisp.org/+3CIY
<daviid>thanks, will look. had an idea
<daviid>guile was installed how?
<daviid>a distro package maybe?
<luk>pacman
<luk>correct
<daviid>i think that is the problem
<luk>ok, I'll try that
<daviid>do you have the energy to install guile manually? it's going to be quick
<daviid>i'll paste the stps here
<daviid>make uninstall in guile-gnome first
<luk>great, just looking at the manuals, but my connection is slow ;)
<luk>ok
<daviid>luk: dont lok i will paste the steps here now for you
<daviid>uninstall guile-gnome first
<luk>done
<daviid>make distclean
<luk>roger
<daviid>cd /usr/local/src
<daviid>git clone git://git.sv.gnu.org/guile.git
<daviid>be right back
<luk>thats git.svn ?
<luk>hm
<daviid>luk: no, its savannah
<daviid>did it work?
<daviid>worked?
<luk>no
<luk>dns error
<luk>sorry, my connection here it seems
<luk>I'll debug that
<daviid>git clone git://git.sv.gnu.org/guile.git should work
<daviid> http://git.savannah.gnu.org/gitweb/?p=guile.git
<luk>works now
<luk>please wait ;)
<daviid>ok wait!
<daviid>git checkout --track -b stable-2.0 origin/stable-2.0
<daviid>ok?
<luk>15% download, sorry.
<daviid>it's ok no problem
<daviid>luk: the important thing is to run the above git checkout after it cloned, for you to be using the bleeding edge guile stable version [you don't want to use master for now]
<daviid>then we will install guile in /opt, please check you have write pers there [you can do that now already...]
<daviid>then you do this, after git checkout --track -b stable-2.0 origin/stable-2.0
<daviid>.autogen.sh; ./configure --prefix=/opt; make; make install
<daviid>you'll need to have solved write perms in /opt _before_ of course
<luk>I now can write /opt
<daviid>perfect
<luk>aand got it :)
<daviid>ok, checkout stable now
<luk>done
<luk>now starting the autoconf
<daviid>cool
<daviid>it will take about 20min [maybe more, much depending on your computer speed of course]
<daviid>so i'll have a shower :) and be back
<luk>ok, I'll be going to bed actually. very tired here. thanks so much, I'll just try it out. maybe see you tomorrow and I'll report back ;)
<daviid>luk: I'm back, how are things?
<daviid>ah ok, talk tomorrow
<daviid>luk: you need specific settings to compile guile-gnoe against this new guile, so wait for me tomorrow ...
<mark_weaver>daviid: "git checkout stable-2.0" should be sufficient for non-ancient versions of git
<daviid>mark_weaver: ok