IRC channel logs

2014-08-06.log

back to list of logs

***fangism is now known as fangism-crtl-Z
<nalaginrut>morning guilers~
<paroneayea>hello nalaginrut :)
<nalaginrut>heya
<paroneayea>davexunit's sly project has me looking into the state of guile again
<paroneayea>I got lost reading wingolog.org for an hour or so :)
<nalaginrut>paroneayea: reading winglog.org is a good thing in daily life
<nalaginrut>for guilers ;-P
<zacts>hi
<ArneBab>nalaginrut: and for anyone who wants to get a deeper understanding of interesting stuff.
***mario-go` is now known as mario-goulart
<TheBrayn>how do I use the function scm_c_make_gsubr? I could not find an example
<TheBrayn>and is it the right function to register a C function with guile to be called from guile?
<ft>I think you want scm_c_define_gsubr.
<ft>And maybe scm_c_export afterwards.
<TheBrayn>that does work, thanks
***Guest8063 is now known as micro
<TheBrayn>what does a function like display return that does not return anything really?
<janneke>libguile/print.c:scm_display says:
<janneke> return SCM_UNSPECIFIED;
<janneke>
<janneke>(if #f #f)
<janneke>(oops)
<janneke>(format #t "~a\\n" (display ""))
<janneke>#<unspecified>
<paroneayea>out of curiosity, is anyone doing any code generation from guile to another language?
<paroneayea>eg, there's the ecmascript->guile thing, but I'm curious about the reverse
<paroneayea>guile->ecmascript
<paroneayea>code generate javascript from a (subset?) of scheme
<ijp>I have plans for it, but it's not a big priority
<paroneayea>ijp: oh interesting
<paroneayea>ijp: I'd love to some day not have to write javascript directly, basically :)
<paroneayea>it's not a language I enjoy
<davexunit>guile->js would be awesome
<ijp>modules is probably going to be the most annoying part
<paroneayea>hm yeah
<janneke>paroneayea: that would be nice
<janneke>write guile, choose to deploy server side in guile, or client side in (guile->) javascript
<davexunit>I'm writing a quick proof-of-concept web interface for guix, and I certainly would love to write guile for everything, not just backend.
<ijp>has anyone written an emacs interface for guix yet?
<davexunit>I've got the "single-page application" route. the guile web server has some JSON endpoints and I render the page with mithriljs.
<davexunit>s/got/gone/
<davexunit>ijp: yes
<davexunit>ijp: https://github.com/alezost/guix.el
<janneke>meanwhile, while trying to get my team to move from C++ to Guile, i am hoping that someone would look at my GUD patches
<davexunit>it will eventually be part of the guix source distro
<janneke>i'd love to get involved in guix, it looks like LilyPond's GUB done right
<davexunit>janneke: join us! it's not too hard to get a development environment running.
<davexunit>easiest way to get started: find a piece of software or a library that hasn't been packaged yet, and package it.
<paroneayea>davexunit: are you running guix in a VM for now?
<janneke>davexunit: no no no, what i need is to get a cross build setup
<paroneayea>or is it a primary OS on any of your machines?
<davexunit>paroneayea: I use it on top of debian, for development.
<janneke>LilyPond's GUB source build system essentially is a cross build for windows, macos (and gnu/linux-* and other (non-)unixes)
<paroneayea>davexunit: ohhhh interesting
<davexunit>paroneayea: yeah, it won't take over your system or anything. you don't even have to install it to /usr or anything.
<paroneayea>are there docs on how to do that that you'd be interested in pointing me to? Is that how you're doing sly and handling the dependencies without installing to root?
<paroneayea>I'd be really curious to look at that.
<davexunit>paroneayea: I plan to do that for sly. I have guile-opengl packaged, but guile-sql is giving me trouble.
<davexunit>(SDL's fault)
<paroneayea>guile-sql? you're building in database support? ;)
<paroneayea>I know, I know, just trolling :)
<davexunit>hahaha
<davexunit>working with an application that uses mysql atm, my hands get confused.
<davexunit>paroneayea: http://git.savannah.gnu.org/cgit/guix.git/tree/HACKING
<davexunit>should get you most, if not all, of the way there.
<paroneayea>davexunit: great, thanks :)
<paroneayea>davexunit: I tried to install guile-sdl I think last night with checkinstall
<paroneayea>and something got angry and the package failed :)
*paroneayea hates doing "sudo make install"
<davexunit>guile-sdl just isn't very good, unfortunately.
<davexunit>I want to make a first release of sly before I go down the rabbit hole of writing SDL 2 bindings.
*paroneayea nods
<davexunit>but things will get easier when I remove that dependency. for instance, sly should work on OS X then.
<paroneayea>davexunit: are you thinking of using the dynamic ffi bindings?
<davexunit>absolutely.
<davexunit>many advantages. I don't have to write any C and I don't have to distribute a shared library.
<paroneayea>I don't know much about that section, I noticed it last night in guile's docs... I assume it's a lot like how pyglet links to C libaries without requiring writing compiled C bindings
<davexunit>yeah, I can send you an example for another library that I'm writing bindings for.
<paroneayea>neat
<davexunit>paroneayea: https://gitorious.org/guile-toxcore/guile-toxcore/source/00c78c57c59c00530fef0d831dd5e712021f79ab:tox/bindings.scm
<paroneayea>davexunit: oh interesting
<paroneayea>does guile have gnome gir supprot?
<paroneayea>support
<paroneayea>oh yup
<paroneayea> https://gitorious.org/guile-gir oh, not worked on in some time I think
<davexunit>our gnome support isn't in great shape right now, but someone is working on improving it.
***fangism-crtl-Z is now known as fangism
<janneke>make on latest guix downloads guile-2.0.9, that can't be right?
<paroneayea>ArneBab: I was just reminded of you a moment ago. after seeing http://draketo.de/proj/wisp/ I wonder if you've seen Hy :)
<paroneayea>not sure if you know me by username btw, this is @cwebber@identi.ca from the ostatus days :)
<paroneayea>ArneBab: http://hy.readthedocs.org/en/latest/ almost the oppostie of what you're doing with wisp... you might like joining #hy :)
<ArneBab>paroneayea: I saw Hy, yes - but I don’t think giving up the technical advantages of Scheme and the readability of Python at the same time is what I want ☺
<ArneBab>paroneayea: it would be useful if I used Python for its Libraries, though
<ArneBab>paroneayea: ah, cwebber I know ☺
<paroneayea>:)
<zacts>when does mark_weaver usually hang out here?
<zacts>I have a question for him..
<cky>zacts: Just ask. He reads logs.
<taylanub>zacts: sneek has a 'later tell' service, and Freenode itself has MemoServ.
<cky>I'm not sure if mark_weaver wants to receive MemoServ messages. I certainly don't usually welcome them.
<zacts>ok, I can just wait.
<zacts>cky: I'm still formulating my question. It's about how to define a certain procedure for guile, based on my (scheme) and the art of programming book.
<zacts>he told me before, and I lost all of my data by formatting /dev/sda instead of /dev/sdb
<cky>zacts: Well, you can ask anyway, when you have a question formulated.
<ijp>cky: you haven't been hanging around here much recently. how's life?
<mark_weaver>zacts: what's your question?
<zacts>oh hey
<mark_weaver>sneek: later tell jenneke: guix has guile-2.0.11, but still includes guile-2.0.9 in it's set of bootstrap binaries. those are updated only rarely.
<zacts>I'll have to find it. I'm trying do define a procedure from (scheme) and the art of programming that is non-standard.
<mark_weaver>s/it's/its/
<mark_weaver>zacts: okay
<mark_weaver>hmm, where's sneek?
<ijp>sneek is absent
<mark_weaver>I'm typing this from a standalone install of GNU Guix running on a gluglug X60 laptop running libreboot. pretty nice!
<mark_weaver>well, still rough around the edges of course, but it's coming along nicely.
<mark_weaver>bleeding edge versions of everything without the usual risks.
<ijp>mark_weaver: you may be interested to learn I finally had a use for ck the other day
<mark_weaver>ijp: ah, good! what for?
<ijp> https://gist.githubusercontent.com/ijp/1e0e67ff93c486f66fc8/raw/173834aa3fdd147e7d99d7c7c7d08ca53f5dc961/cowan.scm
<mark_weaver>nice error messages :)
<ijp>yeah, jcowan wanted a simple compile time parameterisation
*mark_weaver reads the code
<zacts>ok
<zacts>let me pastebin
<taylanub>cky: I didn't know people dislike receiving MemoServ messages
<ijp>taylanub: well, I don't usually identify unless I want to ghost a dead process, so I don't generally see theme
<zacts>mark_weaver: http://paste.lisp.org/display/143335
<zacts>how can I define those procedures using guile?
<mark_weaver>ijp: one problem with that approach is that it will presumably substitute things that it shouldn't, such as 'set!!', 'ref', and 'make' within literal data, as well as inner lexical bindings of the same name, etc.
<zacts>guile-2.0.* specifically
*zacts is eating fair trade chocolate
<mark_weaver>nice!
<zacts>it's really great chocolate
<zacts>"The procedure of no arguments reset returns the user to the prompt"
<ijp>mark_weaver: true enough, but I inferred this would not be a problem from his intended use
<zacts>"writeln / error, can also be defined using the unrestricted lambda."
<mark_weaver>zacts: yeah, I remember writing that for you before. hmm
<ijp> https://gist.githubusercontent.com/ijp/6bfc61d0cea6005ef1d8/raw/51e7afea4dcafc31484f56b47b0e3fa8d75b8feb/try.scm
<ijp>mark_weaver: can you tell me if there is any simpler way to write ^^
<zacts>I wish there was a free software cloud I could back up my files to
<zacts>I guess for this I could use gitorious
<ijp>I think the answer is no, since you need to avoid the handler in the body forms, but it's such a horrible way to write it
<zacts>btw, there is now an online version of my book from my university..
<zacts>just a sec
<zacts> http://www.cs.unm.edu/~williams/cs357/springer-friedman.pdf
<zacts>and, afaik, friedman gave permission for an online version.
<mark_weaver>ijp: you declare 'in' and 'unless' as literals, but I see no mention of them in the patterns or elsewhere.
<ijp>mark_weaver: yeah, I forgot to remove them
<mark_weaver>ijp: I can't off-hand think of a better way to do it.
<ArneBab>mark_weaver: is there a plan for the next minor release?
<mark_weaver>another option would be to wrap the whole thing in let/ec and then invoke the escape continuation from the handlers to avoid the bodies, but that carries the cost of doing the let/ec.
<ArneBab>mark_weaver: this laptop? http://shop.gluglug.org.uk/product/ibm-lenovo-thinkpad-x60-coreboot/
<mark_weaver>ArneBab: yep
<ArneBab>sounds nice!
<ijp>mark_weaver: yeah, I think the let/ec solution might be more transparent
<zacts>mark_weaver: so whenever you get a chance let me know. btw, the paste will only last for a week.
<zacts>the pastebin that is
<zacts>the book should be up forever