IRC channel logs

2017-04-19.log

back to list of logs

<wingo>good morning guilefolk
<manumanumanu>Hi there! How is the licensing situation when using guile libraries? Say, ice-9 match?
<manumanumanu>I'm releasing it as GPL anyway, but for future projects... All the libraries seem to be (l)gplv3
<wingo>manumanumanu: guile itself is lgplv3+
<wingo>so a work that is based on guile can only be redistributed in ways provided for by that license.
<wingo>section 4d of https://www.gnu.org/licenses/lgpl-3.0.en.html has the important bits
<manumanumanu>so I don't have to comply with the gpl of ice-9 match, but only with the lgplv3?
<wingo>either you distribute combined work as source, so that the combined work can be rebuilt with a modified guile, or you dynamically link to Guile somehow, so that the user can use an updated guile with your combined work
<wingo>ice-9 match is lgplv3+
<wingo>not gplv3+
<wingo>though, any lgplv3+ may be (at the user's choice) redistributed under the gplv3+
<manumanumanu>oh... I have misread
<manumanumanu>i read gplv3+ and thought "hmh... that's odd"
<wingo>it is a little confusing :)
<wingo>and even if you have been working in this area for years sometimes we forget what the licenses actually say :)
<manumanumanu>Anyway, what is the best way to get guile-2.2 without having to wait for my distro to package it?
<manumanumanu>is it a painful buuild?
<wingo>for me i think the easiest way as just a one-off thing is to use the guix pack
<wingo>see end of https://lists.gnu.org/archive/html/guile-devel/2017-03/msg00095.html
<wingo>it's a simple binary install
<wingo>second easiest would be to install guix as a user (as opposed to making guixsd your OS) then do guix package -i guile; guix is really worth looking at. it is great stuff. https://www.gnu.org/software/guix/manual/html_node/Introduction.html#Introduction
<wingo>finally you can just build it yourself from a tarball
<wingo>which is fine too
<wingo>this is the build dir on a server where i installed it:
<wingo>gc-7.6.0.tar.gz gmp-6.1.2.tar.lz guile-2.1.6 libatomic_ops-7.4.4 libffi-3.2.1 libtool-2.4.6 libunistring-0.9.7 readline-7.0
<wingo>gc-7.6.0 gmp-6.1.2 guile guile-2.1.6.tar.xz libatomic_ops-7.4.4.tar.gz libffi-3.2.1.tar.gz libtool-2.4.6.tar.xz libunistring-0.9.7.tar.xz readline-7.0.tar.gz
<wingo>well, that was with a prerelease, you get the idea anyway
<manumanumanu>wingo: I'll go with guix whenever I reinstall my already very botched up debian installation. I have had it running for over 6 years and doing just about anything will break the system in weird places.
<wingo>heh i understand
<mrnugget>Is there some documentation that describes how to compile Guile locally? I cloned the repository and want to build the master branch, but `./configure` doesn't exist.
<lloda>mrnugget: see HACKING
<lloda>start with ./autogen.sh
<lloda>could be clearer, I think
<ArneBab>manumanumanu: To test something, I simply install a release tarball and then use ./configure --prefix ~/.local
<ArneBab>(get the tarball, configure, make install)
<wingo>mrnugget: tarballs build faster than the git checkout fwiw
<mrnugget>lloda: thanks! Huh, don't know how I missed that.
<mrnugget>wingo: thanks for the hint!
<wingo>np :) tarballs also already have ./configure
<wingo>which is helpful :)
<mrnugget>Yep, that's what I noticed and then I was wondering why ./configure doesn't exist in the repo. But I guess the tarballs are real "releases" and not just packaged "git tags"
<manumanumanu>Got it up and running. There has been magic optimization dust sprinkled over this release. My lazy prime generator runs 2x faster.
<ArneBab>they build *much, much, much* faster ← thanks to pre-generation tricks from wingo
<wingo>manumanumanu: good to hear :)
<manumanumanu>And that is using full call/cc. Might dive in to the delimited continuations tonight
<manumanumanu>using chez's call/1cc (one-off continuations) made it about 15% faster. Ah! A night of continuation fun! What more can one ask?
<nalaginrut>wingo: is there any way to get the current linux version in Guile? Or I have to parse the result from uname from pipe?
<wingo>manumanumanu: if those are escape continuations then consider let/ec from (ice-9 control)
<wingo>nalaginrut: uname and pipe i think
<nalaginrut>ok
<nalaginrut>oh, there's uname in Guile, but I still have to parse
<wingo>interesting, didn't know about that
<nalaginrut>me too
<nalaginrut>I have to make sure the epoll features in Artanis is supported for users
<nalaginrut>it'll be checked when artanis read config
<nalaginrut>of course, not only epoll
<wingo>morning civodul
<civodul>hello wingo!
***Guest45045 is now known as nikita3
<manumanumanu>wingo: beautiful, thank you
<nikita3>nalaginrut: how to make Artanis serve multiple requests in parallel (having pool of db connections)?
<wingo>civodul: i fixed the constant literals thing!
<wingo>v pleased about that
<civodul>wingo: the readonly-ness of literal pairs & co.?
<wingo>civodul: yeah and vectors bitvectors bytevectors and arrays
<civodul>awesome!
<wingo>regardless of whether they contain relocatable data or not
<wingo>yeah, neat stuffs.
<lloda>wingo: is there a way to know if a value is mutable?
<lloda>other than trying I mean
<wingo>lloda: no. why would you want that?
<wingo>big arrays i guess?
<wingo>i just think it's a responsibility of the programmer who makes literal arrays to not mutate them
<wingo>i would like to eventually provide a facility to mark an existing value as immutable
<wingo>so that we could apply the same provisions about mutability to the evaluator, for example, or otherwise when you want to "freeze" data before passing it to an untrusted party
<wingo>it would be possible to do this for every value type except pairs :P
<wingo>being able to have a cons vs mcons would be nice.
<lloda>I have to fix my C++ wrappers. In some places I want to check if SCM can-be-converted, so T const vs T didn't matter before.
<lloda>doesn't mean I need mutable?, hopefully I don't
<lloda>there's lots of breakage
<wingo>2.2 breakage? some other kind?
<lloda>it was a necessary change of course, no question
<wingo>or breakage related to this specific thing
<lloda>yeah the read-only vars
<wingo>before it would segfault tho, right?
<lloda>sure, I'm 100% behind this fix
<wingo>ok, just wondering if it broke something else :)
<wingo>cool.
<lloda>it's just that my wrappers don't handle const vs non-const so now everytime I pass a literal array to a C++ function it breaks
<lloda>it's kind of messy b/c array<T const> vs array<T> const etc...
<wingo>one way to know if something is mutable is if the array handle's writable_elements equals its elements
<wingo>if they don't, it's immutable (and the writable_elements is null)
<wingo>dunno how that fits in with types tho :)
<lloda>ah yes I saw you do that in the patch
<lloda>thx
<wingo>the bsd bdw-gc pkgconfig name change thing is bonkers
<civodul>the .pc file has a different name?
<wingo>yes there is bdw-gc and bdw-gc-threaded
<civodul>oh
<wingo>civodul: thoughts re: 2.2.1?
<wingo>i think we could release directly
<wingo>i always think that tho :)
***nikita2_ is now known as nikita2
<wingo>ACTION running a distcheck
<wingo>ACTION has a happy distcheck
<wingo>well let's go ahead and do it, we can brown-paper-bag later if we need to, and i need to get this off my plate
<janneke>:-)
<wingo>:)
<janneke>ACTION is anticipating self-hosting mes release for weeks...rsn
<civodul>wingo: woohoo, thank you for the release!
<paroneayea> http://blog.racket-lang.org/2017/04/type-tailoring.html
<paroneayea>oh nice
<paroneayea>wingo: are you planning on doing a push to the website re: 2.2.1?
<paroneayea>I can promote it when that happens
<paroneayea>meh :)
<paroneayea>ACTION promotes the mailing list post
<civodul>bah, racket-lang.org is behind CloudFare :-/
<civodul>Cloudflare even
<civodul>i really like what Turnstile is doing
<civodul>we're gonna have to steal it one of these days ;-)
***ertesx is now known as ertes
<handsome_pirate>Y'all, guile22 is now officially going into Fedora
<handsome_pirate>Package review was approved today :)
<spk121>Hooray! I've always been a Fedora guy.
<handsome_pirate> https://admin.fedoraproject.org/pkgdb/package/rpms/guile22/
<handsome_pirate>Now I need to do some admin stuff, and kick off the builds
<amz3`>and this is it!
<amz3`>ACTION the champion of toy projects
<amz3`>I made a 300 lines text editor using termbox bindings
<amz3`> https://github.com/amirouche/azul.scm
<amz3`>needless to say it's not optimized for long lines ^_^
<amz3`>saving the file after edit is left as an exercise
<amz3`>tomorrow i will try to add code highlighting
<amz3`>and *some* days after that...
<amz3`>profit!
<amz3`>but right now, I need to go to sleep!
<amz3`>night #guile