IRC channel logs

2014-10-30.log

back to list of logs

<nalaginrut>morning guilers~
<lloda>mark_weaver: ok, thanks. Question, do we do --no-ff?
<sneek>Welcome back lloda, you have 1 message.
<sneek>lloda, mark_weaver says: having looked again, I don't think the issue with c&e tests should block your patches. I'm okay with you pushing them. thanks for your work on this!
<lloda>thx sneek
<civodul>Hello Guilers!
<lloda>hello civodul, question
<lloda>do we use --no-ff on the Guile repo?
<rekado>I've written my first few modules ((monad core), (monad maybe), ...) and I'm loading them from a file with use-modules.
<rekado>when the file is compiled, I get an error ;;; ERROR: no code for module (monad maybe)
<rekado>my code is here: https://github.com/rekado/guile-monad
<rekado>the modules export functions as they should, so I don't understand what this error wants to tell me.
<rekado>I'm running this on the command line: guile --fresh-auto-compile test.scm
<nalaginrut>rekado: cool~I'll play it when I'm free ;-)
<nalaginrut>rekado: maybe run 'guile -L ./' at topdir of your project
<nalaginrut>rekado: it's ok for me to run 'guile test.scm'
<wleslie>ooh, a new greeting
<rekado>nalaginrut: thanks. This works. I guess I should add the current directory to my load path by default.
<nalaginrut>rekado: you should write a makefile to install it first
<nalaginrut>or just link monad to the default load path
<nalaginrut>it's easier
<nalaginrut>I make a link when I'm wring projects, so it's easy to debug/test
<rekado>good idea; I'll do that.
<nalaginrut>rekado: btw, is guile-monad a completed project now?
<rekado>nalaginrut: well, not really. I'd like to implement a couple more standard monads first and then implement monad transformers next.
<nalaginrut>nice~
<nalaginrut>I'm looking forward to it ;-)
<rekado>:)
<rekado>I'm a little worried about using syntax transformers, though.
<rekado>when there are many monadic actions to be chained with >>= I wonder if I'll run into some limitations.
<rekado>haven't thought about this long enough to be sure there won't be any problems.
<nalaginrut>I hope it's fine, if no, there'd be a way to improve, IMO ;-P
<rekado>so far it looks all good. My actual goal is to write an XMPP pubsub library, but I got sidetracked as I thought the best way to write it would be in a monadic style with an XMPP monad.
<rekado>so, I guess I'll see if it's working as expected once I'll make use of it in my next project.
<nalaginrut>cool~
<civodul>lloda: i think so
<civodul>you need to pull --rebase first
<civodul>rekado: looks nice!
<civodul>FWIW, i've done this in Guix: http://git.savannah.gnu.org/cgit/guix.git/tree/guix/monads.scm
<civodul>roughly inspired by Racket's better-monads.rkt
<civodul>would be nice to converge on the API
<civodul> http://www.gnu.org/software/guix/manual/html_node/The-Store-Monad.html
<civodul>also a nice (IMHO ;-)) trick: http://lists.gnu.org/archive/html/guix-devel/2013-10/msg00034.html
<lloda>civodul: pushed, I hope it's all right
<civodul>pushed what? :-)
<civodul>sorry i didn't follow earlier discussions
<lloda>lloda-array-support branch, which fixes array literals in the compiler in master
<lloda>wingo & mark_weaver said ok
<civodul>ah ok
<naboo>which of you wrote guile-curl?
<rekado>civodul: are you planning to release your monads code as a separate module independent from guix?
<rekado>I'd be okay with abandoning my project if I could just build on your module instead.
<dsmith-work>Morning Greetings, Guilers
<civodul>rekado: i have a longer-term plan to submit it for inclusion in Guile core
<civodul>but in the meantime, i think it's going to be copy/paste if other projects need it
<civodul>dunno, maybe we could do better
<dsmith-work>rekado: In general, it's a bad idea to have . in youre guile path for the same reason it's bad to have . in your $PATH
<civodul>naboo: it's Mike Gran, i don't think he's on this channel currently
<bipt>how about (ice-9 abstract-nonsense)?
<bipt>i'd use option types all the time if there were a standard module for it
<rappooman>hello
<taylanub>for allowing the user to decide whether a generic #f is fine or whether they need to know if there was a real result, I like the idea of "returning optional values." currently we can do that because superfluous values are ignored anyway, but once we change that it would be neat to still have "optional return values"
<rappooman>is it okay to ask a question to ask specific questions in this channel?
<taylanub>rappooman: just ask :) it's not very crowded anyway so the extra round-trip is all the less useful
<naboo>civodul: thanks, a found him in guile archive list on gnu mail list. civodul i looking for sample of ftp upload files with guile-curl. I can't figure out how do that for my project :(
<rappooman>I have started a Guile-REPL over a TCP socket (example code is somewhere in the docs, I can look it up if you need)
<rappooman>so I connect from another PC and call a procedure which calls a thread - the REPL keeps running until the created thread terminates, then the REPL quits without any error message and the socket connection closes
<rappooman>is that normal?
<rappooman>*creates a thread
<taylanub>rappooman: what version of Guile?
<rappooman>2.0.5, running on a Raspbian (so ARM)
*taylanub tries to reproduce on 2.0.11
<rappooman>hmm... the thread calls some c code which does some heavy malloc'ing - this could be a/the problem :(
<bipt>taylanub, yeah, that's a good pattern that i should use more
<taylanub>rappooman: have you tried a minimal test-case? e.g. just launch 'guile --listen=12345' from one shell, 'netcat 127.0.0.1 12345' from another, then insert '(begin-thread (display "foo\\n"))'
<civodul>bipt: i like that module name, i'm sure that would give users an incentive to look at it :-)
<civodul>naboo: i've never actually used guile-curl so i can't help
<bipt>hm, looks like "named" return values work: (call-with-values (lambda () (values #:foo 1)) (lambda* (#:key foo) foo)) => 1
<rappooman>taylanub: this doesn't seem to work, "connection refused"
<taylanub>rappooman: did you type 'localhost' instead of the IP? because then it doesn't seem to work. (irritated me too)
<taylanub>in fact Imma report that...
<rappooman>taylanub: yes, IP doesn't work either
<taylanub>oh, that's weird. 2.0.5 does have --listen, right? otherwise launch guile and enter (spawn-server (make-tcp-server-socket #:port 12345)) I guess
<rappooman>weird, this doesn't work either - but when I compile a program and use spawn-server it works fine...
<rappooman>let me rephrase, the REPL says "$1 = #<thread 3052041328 (c4a2a0)>", but I cannot connect to it
<taylanub>is this 2.0.5 from Debian stable?
<rappooman>it's Raspbian, so I am pretty sure it is
<taylanub>hm, everything seems to work fine for me with 2.0.5-deb+1-3. I can launch /usr/bin/guile --listen=12345, ncat 127.0.0.1 12345, then (begin-thread (display "foo\\n")) or (join-thread (begin-thread (display "foo\\n")))
<taylanub>that's just the simplest test case of course
<rappooman>huh, I can connect from the same host, but I cannot connect from any other host like that
<rappooman>anyway, I pasted "(begin-thread (display "foo\\n"))" into the remote session and it actually closes the connection and quits the REPL on the server
<rappooman>oh hey! "scheme@(guile-user)> Segmentation fault"
<rappooman>that's a message that the compiled version didn't write to the terminal (or the remote terminal)
<rappooman>if this doesn't happen to you then I guess there's something wrong with the Raspbian version :(
<taylanub>oh sorry, I assumed you were testing on localhost. --listen seems to accept no host parameter.
<taylanub>testing on localhost, I can't reproduce the segfault
<rappooman>well, I guess I'll have to find a way to solve this problem without a thread, thank you for your help
<davexunit>yet another cool chicken library http://wiki.call-cc.org/eggref/4/websockets
<davexunit>need a guile equivalent
*davexunit thinks about writing a static site gnerator with guile
<serhart>davexunit: I like that idea
<davexunit>I would probably call out to emacs in batch mode to process org files, though.
<davexunit>but everything else could be guile!
<serhart>could always write an org file parser in guile :}