***turbopape__ is now known as turbopape
<mike121>civodul: cool, thanks. I can delay the chore of learning how to write a finalizer to another year. <joolean>Hey Guilers! Just wanted to stop by and say that the new web site looks really, really great. And congrats on 2.1.1 <acebarry>I apologize if this has been discussed before. <acebarry>Also, the link in the footer that leads to the community section 404's. I just guessed the channel is here ;) <guile-guest4>Ragnarok, linked from the guile homepage, just goes to a blank Gitorious page. is there another library for webdev in guile? <paroneayea>heya davexunit. I'm procrastinating on reading the last 5 difficult emails in my inbox by catching up on tech news :) <davexunit>"holy shit Guile's new webpage looks like it was designed after 1999" <davexunit>"Holy fuck that's the best gnu site I've ever seen" <davexunit>"Guile wins the award for the most cute and friendly GNU website" <paroneayea>the only negative ones I've seen are about mobile stuff <davexunit>"The cute illustrations on the GNU guile page should encourage anyone to try some LISP." <davexunit>but who actually gets that totally right on the first go? <davexunit>"A GNU project webpage that looks friend modern and not falsely hip. And a lisp at that." <davexunit>I don't know if "friend modern" is a typo or what but either it was a nice compliment ***ft_ is now known as ft
<paroneayea>one other comment I saw was "Guix is Guile's killer feature" <paroneayea>we seem to be doing a good job of increasing the ability of both <davexunit>ACTION hacks on guile-syntax-highlight some more <atgnag>Have you been able to install guile-reader? <Xe>Does guile being under the AGPL mean any programs I make with or using it also need to be AGPL? <Xe>what's the legal sthick with the LGPL? <Xe>i can link it to GPL and non-gpl code? <wirrbel>can someone point me at a good repository that exemplifies a module layout for a guile extension? <taylan>Xe: you can link LGPL code and proprietary code, but you must make it possible for your users to link your proprietary components with their own version of the LGPL component, for instance by shipping .o files generated by the C compiler prior to linking <remi`bd>Congratulations for the new release! The features list is extremely impressive. <remi`bd>New virtual machine, new intermediate code, new object file format… it’s almost unbelievable to have such amount of enormeous changes in just one release <civodul>remi`bd: it reflects work done over a lot of time, but yes, it's really crazy :-) <solrize>hey guile 2.1 looks good but when i try to build it on x86-64 debian 7, it complains that the installed version of bdw-gc is too old <amz3>doesn't the configure complain? <solrize>yes that was the configure complaining <taylan>solrize: a fairly recent BDW-GC is probably needed <solrize>taylan, hmm, ok, thanks. are the new versions really better? bdw has been around forever <taylan>it seems to be under active development... <taylan>solrize: BTW you can use Guix on top of Debian to easily get very new GNU packages :) <taylan>it's very easy to install on top of an existing distro with the drop-in binary tarballs <solrize>i've been afraid to mess too much with the config of my main computer but lately i'm messing with some small servers/vps so i coudl try on those <solrize>well i thought the gnu spirit is to compile everything from source as much as possible... <taylan>the changes this will make to your system are fairly small and self-contained <taylan>you can also compile guix from source, this is just a bit quicker <solrize>ftp://alpha.gnu.org/gnu/guix/guix-binary-0.8.2.armhf-linux.tar.xz that the current version? <solrize>aha, ok, ftp://alpha.gnu.org/gnu/guix/guix-binary-0.9.0.armhf-linux.tar.xz <solrize>hmm looks like my armhf config finished <solrize>is guix interesting? guile seems to be building ok on the arm now <solrize>hash.c:115:3: warning: left shift count >= width of type <solrize> JENKINS_LOOKUP3_HASHWORD2 (str, len, ret); <taylan>I find guix very very interesting <taylan>"lt-guile" doesn't ring a bell for me. maybe Guile 2.1 names an executable so during compilation. if it eats a lot of CPU it's probably indeed the compiler. <civodul>solrize: "lt-guile" is the name of the 'guile' executable before it's installed <solrize>hmm ok. i wonder what it's doing, it's used 6 cpu minutes <solrize>is there any chance this step could be parallelized ? <taylan>the building of individual .go files can't be parallelized, but the whole build process can be parallelized by running e.g. 'make -j4', and then it will build multiple .go files in parallel <solrize>taylan, i'm using make -j4, i guess this particular .go is very large <solrize>or else something's broken... how long should it take? this box is about 1/8 the speed of a fast x86 per core <taylan>solrize: it's normal that the first few .go files take very long to build <solrize>16 minutes now, i'll look in on it later i guess. probably should go to bed and check tomorrow... <taylan>you would have probably been done installing it with guix by now ;) <solrize>the gnu system should eventually include sources to everything and debug symbols in all the binaries, so you can always look at what any program is doing <taylan>guix lets you fetch the source of a package, and to install debug info. (that's not really new per se, though guix offers a much higher confidence in source-binary correspondence.) <taylan>(much higher than conventional package managers that is) <solrize>so what's going on, this very long bootstrap process? <taylan>solrize: it's bootstrapping the efficient compiler from a very primitive compiler, roughly, from what I understand <solrize>oh interesting. i wonder whether it could compile the compiler with stalin or something <taylan>if you're doing this on a slow machine, I'd leave it overnight indeed <taylan>stalin might just take literal months to compile something big like the Guile compiler :) <solrize>omg i didn't realize it was that slow <solrize>guile seems like a cool and powerful full featured scheme system, which is kind of at odds with being an extension language <taylan>maybe I'm misinformed though, very few people seem to actually get it to work at all <taylan>yeah, it's really not just an extension language anymore <lloda>being full featured AND an extension language is Guile's reason to be <lloda>solrize: not yet, but it's in the plans I believe <solrize>nice... i was looking at luajit recently and it's impressive <wingo>if your box has 1/8 the speed of a fast x86 per core and you have around 4 cores your -j4 build is going to take around 6 or 7 hours, solrize <wingo>the initial two files are not compiled in parallel for bootstrap reasons, then the rest are compiled in parallel <solrize>i think it's 1/2 hour into the second one... the first was much faster <wingo>the second will take around 7 times as long as the first, then the following ones get faster <solrize>is it using some simple interpreter to self-compile the compiler? <solrize>box is a scaleway.com 4-core arm7 server if that's of any interest <civodul>i hope people also noticed the somewhat interesting release ;-) <taylan>"I came here not knowing what this was and now I think it's cool" :D <mbuf>the new guile site is excellent! <solrize>why are there BSD devils all over it? <paroneayea>which is a version of "how to implement propagators" by sussman which is pretty nice, and explains in terms of the actor model as well <paroneayea>> Although regular-expression systems are derived from a perfectly good mathematical formalism, the particular choices made by implementers to expand the formalism into useful software systems are often disastrous: the quotation conventions adopted are highly irregular; the egregious misuse of parentheses, both for grouping and for backward reference, is a miracle to behold. In addition, attempts to increase the expressive power and <paroneayea> address shortcomings of earlier designs have led to a proliferation of incompatible derivative languages. <daviid`>hi guilers! good times, new release, new web site ... fantastic!! <daviid`>some of the comments are really awsome! <davexunit>"The moral of this story is that regular expressions are a beautiful example of how not to build a system." <davexunit>btw, Sly being on the new guile home page got me 400 tracked page views <davexunit>I don't think it really ought to be featured so prominently since there's nothing for people to actually use in an easy way, yet. and it's a library, not an application. <daviid`>ACTION thinks we should leave sly there and not removing it <davexunit>lilypond should be there or something, despite the whole 1.8 -> 2.0 fiasco. <daviid`>add lilypond and Kisê [not that I wrote it, I don't mind really, but it is the only full app written using guile, guile-gnome anf guile-sqlite3] <paroneayea>I also think Sly is pretty compelling, but I agree that it isn't something someone can pick up and use very easily right now <paroneayea>Sly is one of the things that really drove me to explore Guile <paroneayea>if Sly had a page that showed that video of davexunit doing live coding <davexunit>I guess it means I just need to fix some bugs that I know exist and release as-os. <daviid`>yeah, leave it tehre! davexunit release and get an exmple of a game ... <davexunit>the limitation for sly's site right now is Pelican. <paroneayea>davexunit: maybe instead use that pressure to get that release out there instead :) <davexunit>in which I will make a little framework for all of my project pages so they have a uniform look <paroneayea>ACTION reading through a bunch of the material from sussman's advanced symbolic computation class <paroneayea>I wish I lived in an alternate universe where I was able to take this in person. <paroneayea>I'm glad that in the present universe, the material is publicly available. <amz3>davexunit: yeah let sly on the website, it's already useable, but a release would be very helpful. I don't it requires to be sync with the new website as long as there up to date doc <davexunit>alright I'll release something when I get a chance. will prioritize that. <davexunit>then I've really gotta get the haunt migration out the door. <amz3>I started to try to make minikanren work with tuple database <amz3>I'm to the point where i need to use in a real app to make sure it works <amz3>but so far I find it nice to make queries using minikanren <paroneayea>and yesterday there were a bunch of positive comments on hacker news <sirgazil>Yeah, thank you everyone for working on the project! <sirgazil>I'll start fixing problems with the website today <paroneayea>davexunit: btw, re: getting Sly out and stuff, at least container stuff finally landed <davexunit>I've already found some new problems with it! :) <sirgazil>Glad to see most comments about the website are positive :) <davexunit>sirgazil: yeah people really like it overall! <davexunit>we've avoided the "web 2.0 hipster" association for the most part <paroneayea>> Traditionally, in cryptographic literature, the participants are named Alice and Bob, but in our class they are named Alyssa and Ben. <paroneayea>davexunit: from the diffe-hellman example in that goldmine of material <sirgazil>Thanks, davexunit, I'm collecting issues to fix now. <davexunit>but most importantly don't let the nits about mobile make you think that you didn't do a completely stellar job with this. <sirgazil>No problem, I'm a learner, I know I make mistakes. The good thing is they can be fixed. <m0li>thanks guilers, your web and Guile is very awesome and beautiful! <amz3>there is so much things nice about guile <amz3>and also things that needs improvements ;) <m0li>no davexunit, thank you guilers :)! congratulations!, and yeah very nice for happy hacking :) <amz3>I wondering what's up with the bot of nala <paroneayea>rekado: btw, I think you mentioned scsh interest <paroneayea>did you ever get it to run? I just tried compiling, and it segfaulted ***raphaelsss is now known as raphaelss
<amz3>I pushed a fixed version of miniKanren, based on microKanren with a small example query over a list of tuple <amz3>the query does return the identifiers of amirouche's friends <amz3>I will try to mock datomic query dsl <davexunit>I wonder if I should use it as the basis of a lexer for doing syntax highlighting <davexunit>I am a bit unhappy with what I've come up with. <davexunit>lexing scheme went OK, but lexing XML was more complex because context was more important. <civodul>so you're working on a syntax highlighter? <civodul>Skribilo has something, but not very good <davexunit>I'm using a parser combinator style approach <davexunit>originally I used SRFI-41 streams to treat a port as a character stream <davexunit>so I moved instead to using a string with an index marking the cursor. <davexunit>and the combinators return results + the new cursor <davexunit>that seems to be better and allows me to use regexps directly <davexunit>though so far in practice I haven't used many regexps. <davexunit>but lexing XML exposed some flaws in my design. <davexunit>context is important, and I don't account for it <davexunit>href="#foo" could be just plain text or an attribute <davexunit>it depends on if something like "<a " came before it <davexunit>in one way it's nice, I have a lexer that knows how to parse a full opening tag like "<a href=\\"#foo\\">" <davexunit>and it returns a list of the different components of that expressions <davexunit>which then must be flattened into the resulting token list <davexunit>maybe this is all too much to be dumping on IRC here ;) <davexunit>but it's clear to me that my design could use some work <davexunit>the end result is that I want to a accumulate a flat list of tokens <civodul>i'd need to look more closely, but parser combinators sound interesting anyway ***cataska_ is now known as cataska
<davexunit>ACTION really wants this syntax highlighter to work decently so he can roll out a new blog <davexunit>still have to figure out how to make Skribe more pleasant to edit as well. <paroneayea>ACTION considers rolling out a irregex-guile guix package, why not <paroneayea>"why not" might be the pile of other unfinished things <paroneayea>I really want to have SRFI-115 on hand generally <solrize>hmm i built guile 2.2 and ran make install. then when i try to run guile i get: <solrize>guile: error while loading shared libraries: libguile-2.2.so.0: cannot open shared object file: No such file or\\ <solrize>export LD_LIBRARY_PATH=/usr/local/lib makes it find 2.1.1 <amz3>solrize: did you try to uninstall guile-2.0? <amz3>does anyone has a socket + thread snippet ? :) <solrize>old version is 2.1.1 in debian 8 i think <solrize>yeah i just ran "make" and "make install" which put it there <davexunit>the gnu build system uses /usr/local as the default prefix <davexunit>it can be changed with ./configure --prefix=/whatever <solrize>i had run apt-get install guile-2.0 earlier i think <solrize>should i rebuild? the build takes 7 hours but i guess i can start it and let it run <solrize>looks like debian put it in /usr/bin <davexunit>reconfiguring wouldn't entail a full rebuild <davexunit>/usr/local is the typical place for stuff compiled "by hand" <solrize>well i have /usr/local/bin ahead of /usr/bin in my path <solrize>but anyway my debian guile install is now busted, it's not real important that i fix it (it's a throwaway cloud server even) but it seems like something didn't work right <solrize>how do i do that? the make install pushed out 100's of files <solrize>oh wait, i see, the tarball i downloaded was 2.1.1 but since it's a 2.2 prerelease it named a lot of libraries 2.2 and i got confused and thought 2.1.1 was the old version <solrize>yeah but it's not a 2.2 release candidate, why does it name the libs 2.2 ? <davexunit>as far as parallel installation is concerned <solrize>ok i guess you guys have thought this through <davexunit>2.1 is the unstable transition series being stable 2.0 and stable 2.2 <sirgazil>ACTION fixed responsive design issues in the website <sirgazil>Now they are waiting for a kind maintainer to deploy them. <sirgazil>ACTION goes check what else needs updating/fixing <daviid`>sirgazil: great! i ment o write but i'll jump here instead: could you grab the latest guile-gnome description from the 'new' web-pages. indeed the old description is obsolate... really inaccurate <gnusosa>To anybody that worked on the new redesign of the guile website, thank you. I looks beautiful. <gnusosa>It's just amazing , the logo, the clean design. <daviid`>yeah all praise goes to sirgazil, with these wonderful drawings <daviid`>sirgazil: we should remove guile-gtk or otherwise have a 'historical lib, not maintain for more then 5 to 10 years ...' but i'd just remove it in this case <daviid`>and we should add an entry for guile-clutter <daviid`> https://www.gnu.org/software/guile-gnome/clutter/ [note that 1.12.2 has not been release yet, but i already prepared it's web-pages as if ... i can quickly comment that entry untill release is out, probably i should if you add an entry to guile's web pages, please let me know, tx!] <daviid`>sirgazil: great, thanks! I really ment to patch but i'm overloaded and better work on guile-lib and guile-clutter release ... <profan>is there any meaning behind the guile api reference sometimes specifying that the C functions refer the SCM type and sometimes not? <profan>ie, one line they'll say explicitly "SCM scm_c_locale_stringn_to_number" and the few functions before have no specifications (implicitly SCM?) <amz3>profan: can you give an example of a C function without SCM? <amz3>I'd rather think there is no error and that the function updates the argument in place <Sleep_Walker>is it correct assumption that guile-json requires guile 2+? <profan>pretty much the entire API reference where the functions also exist inside of scheme <profan>(so i assume they're defined like SCM scm_sum(SCM z1, SCM z2);) if defined like that <profan>saying C function may have been a bit off, since they're the ones used from within guile as well i suppose <profan>so that function signature would make sense? <profan>looking at the source, it looks to be that way at least, might have answered my own question <csed>But now I've realized that I'm not actually sure how cond works. It's just one iteration, right? If it doesn't reach the recursive call it just stops. <csed>In which case I'd have to make the edge case check at the start? <csed>Also, I have no idea if this'd be more suited to #scheme or whatever. I can go ask there, if need be. <csed>Yeah, so the car was the problem. <csed>Retracting that, there are about five thousand problems also I suck at figuring out recursion so bad. <paroneayea>csed: going through The Little Schemer helped me a ot <csed>paroneayea: Should go through it, yeah. I mean, PAIP is both explaining and providing examples to it very well. I'm just not thinking about it properly. <paroneayea>man, guile/guix are killing it on getting coverage this week <csed>Practice practice practice. <dsmith-work>csed: You can think of cond as a chain of if's. It evaluates each of the conditions from left to right (until one is true). No recursion, unless you call something recursively. <csed>dsmith-work: Figured as much, yeah. Cheers. <csed>I think the problem I'm having is that I'm calling (+ (thing (car list)) (thing (cdr list))) But then I get (thing ("asdf")) followed by (thing (()). That then reaches the car function and freaks out. <csed>And it passes by my null? since (null? (())) => #f <csed>Aaaand wrong again. Works now. <OrangeShark>csed: cond evaluates each clause in the order you have. So it first does the (equal? item (car tree)), if it is false, it moves onto the next clause which then checks (null? tree) <csed>OrangeShark: I was missing a (null? tree). I just had an atom check in terms of (not (or (pair? tree) (null? tree))). I saw the "not?" and figured I had that covered. Then I double-checked and went "oh" <csed>Added the null? and it worked as expected. <OrangeShark>csed: but don't you already have the null? as the second clause of the cond? <csed>OrangeShark: I changed from that paste a few times. Didn't repost it because the problem turned out to be something completely different. <csed>Figured I'd give solving it a go before asking for more help. <OrangeShark>csed: oh okay, basically the problem was just the ordering, you wanted to do (null? tree) before the first clause in that paste <csed>OrangeShark: Righto. Thanks. <profan>is there a raw list of all the C api functions in guile somewhere? <profan>trying to generate some bindings towards the C api for another language without going bonkers <profan>i mean, they're there in the API reference, and i'm going with just parsing that to generate it right now, but if theres a better way