IRC channel logs

2015-11-06.log

back to list of logs

<solrize>guile 2.1.1 prints "copyright 1995-2014" banner instead of 2015
<solrize>wingo your estimate was spot on, that build took about 7 hours on quad core arm scaleway
<solrize>real 371m33.782s
<solrize>user 855m19.670s
<solrize>sys 0m51.890s
<solrize>so about 230% utilization, not that bad i guess
<tennix>a quick question: if i use guile in my program, can i make my program MIT license
<davexunit>tennix: yes
<tennix>good
<davexunit>though it's always good clarify which MIT license ;)
<davexunit>they made several
<davexunit>people typically mean either the Expat or X11 license.
<tennix>When creating a new repo on GitHub, there's an option to select a license to initialize the repo
<nalaginrut>morning guilers~
<tennix>it provides a MIT license
<davexunit>yes github is big on "permissive" licensing
<davexunit>I recommend one of the flavors of the GPL, personally.
<davexunit>ACTION almost has a working websocket server
<tennix>ok
<tennix>morning nalaginrut
<nalaginrut>heya
<davexunit>websocket handshake works, now to actually send/receive data
<tennix>are you the creator of artanis framework?
<amz3>nalaginrut: hi!
<amz3>I'm was wondering about your http server
<amz3>because I need a server for my database
<amz3>I mean I'm thinking about making a server infrastructure for guile-wiredtiger
<amz3>nalaginrut: is you server prefork?
<nalaginrut>amz3: if you just need a simple http server, I suggest you use guile inner server
<amz3>what's the difference?
<nalaginrut>amz3: before Artanis 0.2, there's no difference ;-P
<amz3>thanks
<amz3>because I think I need prefork
<nalaginrut>but Artanis wrapped many things for convenience
<amz3>I think
<amz3>sorry
<amz3>like what ?
<nalaginrut>it's possible to write the plugin based on Artanis, of course it's 0.3+...
<nalaginrut>amz3: you can do that yourself, just like send static file, or some exceptional checks
<nalaginrut>amz3: the new server core is in wip-server-core branch, but I have no time for it at present
<nalaginrut>I'm writing the document for release
<nalaginrut>amz3: you need prefork as in Apache?
<amz3>it's an optimisation that I though would be easy to get
<amz3>yes
<amz3>I think
<amz3>I'll a closer look at guile web server
<amz3>*have
<amz3>based on the descrription it's a prefork server
<amz3>I mean it recycle threads at least
<amz3>need to dive in :)
<amz3>it doesn't use thread at all!
<nalaginrut>amz3: it's green thread, so I feel so strange you mentioned prefork ;-D
<amz3>i don't think it's green thread
<amz3>you mean your implemenetation?
<nalaginrut>amz3: why you don't think so?
<amz3>because there is no use of continuations
<amz3>so how would green be implemented without call/cc ?
<amz3>s/green/green threads/
<amz3>I'm not sure what the poll-set does in http/server.scm:http-read
<nalaginrut>amz3: it use prompts, which is actually delimited continuations
<csed>Is there a function in Guile that returns a random element from a list? Wrote one, but it'd probably be better if I used a built-in one.
<csed>Also, if I do (use-modules (ice-9 debug)), I don't have access to the (trace ...) function. Did something change regarding that module from 1.8 to 2.0? Because I'm using this as the reference: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html
<nalaginrut>csed: (list-ref lst (random 5))
<civodul>csed: yes, this is the 1.8 documentation, things are different in 2.0
<nalaginrut>csed: (list-ref lst (random (length lst)))
<civodul>csed: see http://www.gnu.org/software/guile/manual/html_node/Tracing-Traps.html
<nalaginrut>csed: IIRC there's no built-in one
<csed>nalaginrut: The latter one is basically what I did. Cheers.
<csed>civodul: Thanks, I'll take a look.
<nalaginrut>ACTION plan to add MQTT in V2.1+
<amz3>nalaginrut: i was reading guile server, not artanis server
<nalaginrut>amz3: artanis server is guile server, before v0.2
<nalaginrut>105 people, I never saw so many people here ;-)
<amz3>let's party!
<amz3>together we can write GNU google with artanis overnight
<wingo>meep
<artyom-poptsov>amz3: I suppose we should name this search engine as "Gnoogle". ;-)
<amz3>artyom-poptsov: ahah
<amz3>We should choose another goal, otherwise we can be accused of copying, which is silly but nonetheless...
<nalaginrut>well, I may release it today, or tomorrow, just need to finish MVC in manual
<amz3>what about earth software system, it has nothing to do with Goodle, right?
<amz3>nalaginrut: `\\o/'
<nalaginrut>amz3: yeah, artanis+wiredtiger = gnoogle huh?
<amz3>:p
<m0li>Guilers hello, I would like a suggestion please. I am beginner in Lisp, You recommend me read once SICP?
<m0li>Thanks in advance :)
<taylan>m0li: yeah SICP is a really great book
<m0li>thanks you taylan!, im beginner no problem?
<remi`bd>absolutely not
<m0li>ok, thanks! guilers!
<remi`bd>the first parts of the book are accessible
<remi`bd>everything is detailed, explained, very pedagogically
<turbopape>I didn't read it (yet) myself, but it may be too long.
<turbopape>I would suggest going through the little schemer, much lighter.
<m0li>remi`bd, thanks! go now to SICP
<turbopape>SICP is more about algorithms (along with Lisp)
<remi`bd>the first chapters of the SICP are really general
<remi`bd>Scheme is heavily used, but only as a simple language to illustrate their message
<remi`bd>here’s the table of contents: https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start
<m0li>thanks guys, and I start with SICP, thank you for your recommendations :)
<mbuf>m0li, you might want to read HTDP as well
<mbuf>m0li, and do the course on Systematic Program Design
<amz3>m0li: I'm working on a tutorial, if you want to have look http://hypermove.net/learn-scheme-guile-basics.html
<amz3>it's not meant to be comprehensive, but instead get you started and hopefully get the schemey spirit along the way...
<amz3>there is a follow up called "forward"
<m0li>oh thanks guys are very nice. thank you very much for your help, I'm watching the tutorial amz3 :)
<amz3>don't hesitate to ask questions
<m0li>amz3, ok :) thanks!
<turbopape>Hi, I am interested in helping in Guile development, but I got lost in the git repo... Where I can find a good starting point to understand the code tree ?
<davexunit>turbopape: the "libguile" directory contains the C code, the "module" directory contains the Scheme code.
<davexunit>I recommend spending more time looking at Scheme code.
<turbopape>ok davexunit, thank you
<davexunit>the way to find stuff to help with is to use Guile for awhile. you will surely run into something and go "gee I wish there was a way to X"
<turbopape>indeed, that's what I will surely do. I'll implement something than I'll wander through the code...
<davexunit>like right now I'm trying to implement the websocket protocol, because no one else has done it yet.
<remi`bd>nice!
<remi`bd>davexunit: CL’s hunchentoot as implemented it from a while, in case you’re looking for another lisp implementation of websocks
<remi`bd>s/from/for/
<davexunit>the spec is pretty easy to read and simple, so I'm just having a go without other implementations to reference.
<davexunit>I have the handshake working
<davexunit>now I need to read/write frames and respond to ping control frames so I can get a web browser to hold a connection open to my server
<amz3>davexunit: what are you using it for?
<nilg>where to easily look for a function in Guile's core and standard libraries?
<amz3>nilg https://www.gnu.org/software/guile/manual/html_node/Procedure-Index.html
<davexunit>yeah ^
<davexunit>and, at the Guile REPL, you can search through imported symbols via the ",apropos" meta-command
<nilg>thanks amz3. Does that include all library functions? I'm looking for something called all or every, but can't find it...
<davexunit>nilg: 'any' and 'every' are available in SRFI-1
<davexunit>(use-modules (srfi srfi-1))
<nilg>I've just found it, thanks!
<davexunit>yw
<lloda>,a name will show only info about imported names
<lloda>however, if you use (use-modules (texinfo reflection))
<lloda>(help name) will give you information about name in modules not yet loaded
<lloda>a must, imo
<amz3>+1
<amz3>add (use-modules (texinfo reflection)) to ~/.guile file
<wingo>lloda: i had no idea, neat!
<davexunit>how does it manage to do that?
<amz3>it use textinfo as input like the name suggest ;)
<davexunit>but how does it get it?
<davexunit>does it load every single module into memory and rip out the docstrings?
<davexunit>that would be bad.
<davexunit>so it must do something else.
<wingo>i guess it gets loaded modules that haven't been imported
<lloda>it only works with the modules that come with Guile, so I think that information is part of the install
<amz3>it use resolve-interface defined in boot-9 which rely on resolve-module
<amz3>really I don't know, it's not defined per-se in reflection.scm as a (define (help name) ...)
<lloda>it hooks into (help) through add-value-help-handler! & friends
<amz3>yes
<amz3>add-name-help-handler! has the signature i'm interested in
<amz3>I mean that it leads to a `define-macro help` that runs thing, but still can't find the answer
<wingo>what are you looking for amz3
<amz3>I am looking for how the help command help find the documentation of procedures that are not imported yet
<amz3>it seems like `help-doc` in ice-9/session.scm goes through all exported symbols
<amz3>L176
<amz3>first time I see a recursive fold
<wingo>the module folder will traverse the module tree
<wingo>which is loaded modules
<wingo>though they might not be imported
<wingo>p sure it won't load things that haven't been loaded tho
<dsmith-work>Happy Friday, Guilers!!
<amz3>so help-doc is really the interesting procedure though there is the help macro which is the entry point, which allows to query for documentation of objects you already imported
<drdanmaku>wow, the new guile site is really good, great work :)
<amz3>drdanmaku: I'm not happy, the robots are not big enough, also they don't speak globbish
<ArneBab_>amz3: could you add “apply” to your tutorial? Using that was a pretty important step for me — for example realizing that (sum list) is just (apply '+ list).
<lloda>'+ ?
<ArneBab_>amz3: maybe after (cdr (list apples donuts chai)): “if you want to get the sum of a list, you can apply the function: (apply + (list apples donuts chai)) is equivalent to (+ apples donuts chai)
<amz3>good idea
<amz3>I was wondering how to do it
<ArneBab_>lloda: I did not know that — thank you!
<amz3>ArneBab_: thanks:!
<ArneBab_>amz3: note that my first example of apply was wrong (apply '+ …) ← wrong ' there
<ArneBab_>amz3: and glad to :)
<ArneBab_>lloda: that’s the error — good to see that you caught it!
<ArneBab_>thanks for checking!
<amz3>ok
<cosarara>hello! I've installed guile 2.0.11 and guile-gnome-2.16.3, and it seems that something is broken - I can't run the hello.scm example (http://hastebin.com/tanokedoyi)
<cosarara>huh I might be hitting this https://lists.gnu.org/archive/html/guile-devel/2015-10/msg00025.html
<davexunit>cosarara: hello!
<cosarara>hi davexunit!
<davexunit>daviid is the person to ask about guile-gnome stuff, but he's not in the channel right now.
<davexunit>I haven't yet tried guile-gnome
<davexunit>so I'm afraid I can't tell, but contacting daviid via the guile-gnome mailing list or waiting for him to appear in the channel (as he does frequently) will get you some direction.
<amz3>cosarara: if daviid doesn't show up, send message on the mailling list :)
<cosarara>daviid, I was waiting for you! :D
<cosarara>It seems guile-gnome won't run on arch linux http://hastebin.com/tanokedoyi https://lists.gnu.org/archive/html/guile-devel/2015-10/msg00025.html
<daviid>cosarara: hello! you need to install gcc 4.9, guile-gnome won't compile using gcc 5.2
<cosarara>daviid: will it be hard to make it work with gcc 5.2? do you know what the incompatibility is?
<daviid>cosarara: actually I don't know :) for the time beeing, you'll have to use gcc 4.9
<davexunit>ACTION got the first test case done for reading websocket frames over lunch
<codemac>question - are there any walkthrough/guides, tools, starter repos, etc for starting a new guile project using guile, gnu autotools and gplv3? I'm just copy pasta-ing other people's repos and I feel I need to learn a bit more about what I'm doing.
<davexunit>codemac: we don't have anything like that. it would be *really good* to have something to point to.
<davexunit>I proposed a tool on the mailing list that would generate project boilerplate automatically
<codemac>:) I'm literally using your haunt repo right now haha!
<davexunit>which I copied from guix and others ;)
<davexunit>I want to add a new subcommand to 'guild' called 'guild init'
<davexunit>that would create a new project directory with the minimal autotools boilerplate to get started with.
<codemac>ooooh that would be nice
<mouldysammich>What is guile?
<mouldysammich>guild*
<davexunit>a set of helper tools for guile
<davexunit>'guild compile' is what makefiles and such use to compile guild code
<davexunit>and it's trivial to add new subcommands to it
<mouldysammich>Where is it hosted? I cant seem to find it.
<davexunit>it comes with guile
<mouldysammich>oh right lol
<mouldysammich>Yes, a project generation command for guild does sound useful.
<cestdiego>Hello guys
<cestdiego>any recommended setup for guile on Emacs?
<cestdiego>also anyone around using guile in GuixSD?
<cestdiego>I mean guix/GuixSD
<davexunit>cestdiego: install Geiser
<davexunit> http://geiser.nongnu.org/
<rekado>cestdiego: guix discussions are usually next door at #guix. (I'm using GuixSD.)
<davexunit>as am I
<cestdiego>so with the new Guile are we closer to Guile Emacs?
<nalaginrut>manual is updated,
<nalaginrut> http://www.gnu.org/software/artanis/manual/manual.html
<nalaginrut>preparing release
<paroneayea>good luck nalaginrut !
<nalaginrut>ok, done
<nalaginrut>well, it's morning, I need to sleep, I have other work to do today
<nalaginrut>but the mail still doesn't exist in our mailing-list, seems I can't announce it on HN/reddit now