IRC channel logs

2015-02-15.log

back to list of logs

<paroneayea>ah okay :)
<paroneayea>no biggie
<paroneayea>davexunit: out of curiosity
<paroneayea>do you do any smart geiser/guix integration when hacking?
<davexunit>for building packages, no, but sometimes I do open my geiser REPL to experiment with new procedures.
<paroneayea>davexunit: kk :)
<davexunit>I just make sure my guile load path has the guix stuff
<davexunit>I hack on guix-web using a REPL server.
<paroneayea>cool
<davexunit>I need to learn how to use the monads better for building packages from the REPL and other cool things
<paroneayea>I need to learn how monads work ;)
<paroneayea>I have the impression "invisibly passing state in a functional world by bridging between functions", but what does that mean? and does it use lexical scope hacks to achieve it? or what?
<ijp>paroneayea: rather than values, you have functions from state -> state+value, and a means for composing them
*paroneayea tries to parse that and fails
<ijp>paroneayea: https://gist.github.com/ijp/6561748#day-2-functional-logging
*paroneayea reads ijp's post with interest!
<davexunit>ijp: good post
<davexunit>I can see the clear lead up to monads
<davexunit>good examples
<ijp>I am unreasonably proud of remove*** from that file
<paroneayea>ijp: are you taking a class with taylanub?
*paroneayea looks at the filename
<ijp>paroneayea: no, I was "giving it"
<ijp>there were supposed to be 7 in total, but he was too busy
<paroneayea>aha
***sumoudou is now known as ShiroiKuma
<paroneayea>ijp: for exercise 1-2, it took me a long time to figure out what "shares as much of a tail as possible with the original procedure", but once I did and worked through your example, I was like, ahaaa!
<paroneayea>(I wasn't sure if you meant tail call, and it wasn't clear that procedure meant list, I guess)
<zacts>hello geeks
<Digit>:)
<ijp>paroneayea: oh right, yeah, that's a mistake
<ijp>that remove silliness isn't really relevant to understanding monads, but I find it amusing
<mark_weaver>taylanub: I filed a bug report with Debian about their mistaken copyright info on smartmontools, which violates Debian policy, and the responses have been disconcerting. https://bugs.debian.org/777583
<mark_weaver>we are in a bit of a severity-setting war. they keep downgrading it to 'wishlist'.
<paroneayea>ijp: btw, http://shift-reset.com/blog/2013/12/24/The%20Night%20before%20M-x-mas/ is hilarious
<ijp>mark_weaver: it's disappointing that they won't fix such an easy issue, but the maintainer has responded, and I doubt you are going to get it fixed earlier by citing debian policy (unless you go over their head)
<ijp>paroneayea: I meant to do another one last year, but I only helped someone with their "12 days of xmas"
<mark_weaver>ijp: that was a great read :) s/yeelong/yeeloong/
<mark_weaver>ijp: yeah, that was my last message on the subject, and I expect more of the same.
<mark_weaver>I always assumed that Debian would take care to keep their copyright files accurate, but now I know better.
<taylanub>that's irritating :\\
<mark_weaver>I still think it's worth checking their copyright files, but we can't put as much trust in them as I'd hoped.
<mark_weaver>ijp: I looked at the diff between your original and the current version. I can testify to the fact that I've never seen RMS even the slightest bit intoxicated.
*ijp shurgs
<mark_weaver>(and I saw him as often as one would see a house-mate over several years)
<ijp>I did that in a couple of hours on xmas eve, I wasn't dilligently factchecking
<mark_weaver>heh :)
<ijp>I like that I did it, but I'm only really proud of the first verse
<ijp>if I'd thought it through, there could have been some real plot progression
***Pastaf_ is now known as Pastaf
<rekado>mark_weaver: there were a few more empty drv files. Deleting them with "guix gc -d ..." fixed the issue.
<rekado>There was an unexpected shutdown when the battery ran out. AFAIR the laptop was idle, though, so it's a little odd that this would cause any such problems.
<rekado>This was only on the machine running the Guix System Distribution, not with Guix on top of another system.
<rekado>So there I'm running the latest kernel offered through Guix.
<davexunit>hello #guix
<taylanub>should I name the Clozure CL package "ccl", or "clozure-cl", or "clozure"? Arch uses "ccl".
<taylanub>the website is ccl.clozure.com and tarballs are named ccl. I think ccl kind of wins out; only question would be whether it might get confused with something else
<taylanub>hm, apt-cache search ccl doesn't reveal anything likely to get confused, and Debian's package archive is huge, so I'll go with ccl.
<roelj>I'm running the Guix daemon with: "guix-daemon --cores=5 --max-jobs=4 --build-users-group=guix-builder" as root. Then as a normal user "guix package --install emacs". This gives me an error: "guix package: error: build failed: substituter `substitute-binary' died unexpectedly"
<roelj>I also tried running guix-daemon with "--no-substitutes". Then a lot of packages compile, but after about two hours some dependency failed to build.
<roelj>What am I doing wrong? I'd like to install Emacs using Guix..
<davexunit>roelj: do you see any error output from the daemon?
<davexunit>the error you pasted is from the client.
<roelj>No, I see: "accepted connection from pid 13287, uid 1000"
<roelj>and "1257 operations"
<davexunit>roelj: have you authorized hydra.gnu.org?
<roelj>I do get a warning from the client: "substitute-binary: guix substitute-binary: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable"
<davexunit>bam, that' sit.
<roelj>No, I guess not
<davexunit>that's it*
<davexunit>you need to authorize a server to receive substitutes from.
<roelj>Ok
<roelj>Ahh, substitutes are binary package so the install process is quicker?
<davexunit>yes
<davexunit>see section 3.4 in the manual for more info on how to authorize a server: https://gnu.org/software/guix/manual/html_node/Substitutes.html#Substitutes
<roelj>Thanks a lot!
<roelj>I really like Guix
<davexunit>you're welcome! welcome to the community :)
<davexunit>glad you like it.
<roelj>One more question. I am running Debian now, but I'd like to some day boot Guix instead. Can I do it without removing Debian?
<davexunit>you could dual boot.
<davexunit>have 1 partition for GuixSD, and another for Debian.
<roelj>I was more thinking about making a btrfs subvolume where I can install a full guix system, and then switching it as the root.
<roelj>That would work pretty much the same I guess.
<roelj>How can I do a full Guix install?
<davexunit>I have no experience with that, but if it accomplishes what you want, go for it. :)
<roelj>lol, yeah
<roelj>Should I install guix with the usb image? Or can I use the guix-in-Debian for a full Guix installation?
<davexunit>roelj: basically, you partition your disk how you would like, then create an operating system config file, then run something like 'guix system init my-config.scm' to do the install
<davexunit>the manual has much more in depth information, of course, so do read that.
<davexunit>roelj: you can use either.
<davexunit>it would be more convenient to do it from the comfort of your debian system, I think.
<taylanub>(how) can I use an SVN checkout (of a specific tag) as the source?
<davexunit>taylanub: grep for svn-fetch in the gnu/packages directory.
<roelj>davexunit: Ok, off to the manual it is. Thanks for your help!
<davexunit>you'll see some examples.
<taylanub>thanks
<davexunit>roelj: this section in particular https://gnu.org/software/guix/manual/html_node/System-Installation.html#System-Installation
<roelj>davexunit: I'm getting "guix archive: error: mkdir: Permission denied" when I want to add the authorization for hydra.gnu.org
<taylanub>is there something like 'guix download' for svn?
<davexunit>roelj: 'guix archive' must be run as root
<taylanub>or, what's the quickest way to get the hash?
<davexunit>since it is a task for an administrator, not a regular user.
<davexunit>taylanub: not currently, I've been meaning to fix it.
<davexunit>but not sure what the best UI is for it.
<taylanub>oh right, I remember
<davexunit>taylanub: so, in the interim, what I do is clone the repo, delete the special svn dirs recursively, then run 'guix hash -r'
<taylanub>ok
<davexunit>see the implementation of svn-fetch for the steps that are taken
<roelj>davexunit: Got it. Thanks again
<davexunit>it would be nice for guix download to handle this stuff, because it will save us having to do a manual process *and* from cloning the repo twice.
<taylanub>indeed
***DusXMT_ is now known as DusXMT
<taylanub>davexunit: might it be that 'svn export' is a better way to get specific revisions from SVN repos?
<rekado>hmm, "./waf configure" fails during "guix build" but works fine in "guix environment --pure".
<davexunit>taylanub: I dunno.
<davexunit>my svn knowledge is minimal
<davexunit>I never had to use it.
<davexunit>thanks, git.
<rekado>the environment is identical, yet in guix build an error is thrown about a file that cannot be found.
<rekado>the file is a C file generated by waf to test the compiler.
<rekado>odd.
<nebbia>hi everyone, is guix at a stable version ?
<taylanub>nebbia: if you mean like 1.0, then no, the latest release is 0.8.1
<nebbia>ok, but does it follow the fhs hierarchy standard ?
<nebbia>and which package manager'
<nebbia>?
<taylanub>Guix is the package manager. the GNU system it installs does or is fairly easy to make it conform to the FHS from what I know. see NixOS
<nebbia>but this is another distro
<taylanub>Guix is a package manager plus a lot of recipes that ship with it (currently about 1.2k IIRC), but the Guix project/developers also develop e.g. GNU dmd (an init system) and other things related to making a full GNU OS (using the Linux-libre kernel for now). that OS is called Guix System Distribution or GuixSD for short.
<mark_weaver>taylanub: is there any way to bootstrap ccl from source code?
<mark_weaver>it looked like there wasn't
<mark_weaver>Debian doesn't contain ccl, which is unusual.
<taylanub>mark_weaver: apparently there isn't. an SVN checkout contains precompiled images for all supported platforms.
<taylanub>is that unacceptable for Guix?
<mark_weaver>I don't know, I'd like to hear what civodul things.
<mark_weaver>*thinks.
<taylanub>ok
<taylanub>the "lisp kernel" is in C and can be simply compiled, but it requires a "heap image" to run, and that can't be generated without a running copy of CCL
<taylanub>by the way is it possible to specify different source origins for different platforms? the SVN checkout contains things like FreeBSD and Solaris images, which are big.
<mark_weaver>not having a way to bootstrap from source code makes me very grumpy
<mark_weaver>it's not the source code that you're downloading. we shouldn't call it that.
<mark_weaver>you can look at the 'mit-scheme' scheme package for one way to deal with it.
<mark_weaver>it shouldn't be called 'source' there either, IMO.
<mark_weaver>rekado: there are several differences between the guix-daemon build environment and "guix environment --pure". most notably, guix-daemon sets up a chroot container and private namespaces that contain *only* the inputs.
<mark_weaver>and the build environment lacks /bin/sh, and has an extremely minimal /etc, etc.
<mark_weaver>nebbia: no, we do not follow the FHS at all.
<taylanub>is there a way to make Emacs's M-q do correct indentation for (#:foo x <newline> #:bar y ...)? mine aligns #:bar with y.
<mark_weaver>taylanub: I hacked emacs to make it do the right thing there. civodul uses my hack also. I should really upstream it.
<mark_weaver>see http://www.netris.org/~mhw/scheme-indent-function.el
<nebbia>mark_weaver why?
<mark_weaver>in my .emacs, I explicitly (load "scheme") and then redefine that function. there's only one added clause in the 'cond'.
<mark_weaver>nebbia: the special features we provide would not be possible if we followed the FHS.
<mark_weaver>nebbia: if you want a basic intro to the ideas of Guix, you might want to watch this video: http://audio-video.gnu.org/video/ghm2014/2014-08--courtes--were-building-the-gnu-system--ghm.webm
<mark_weaver>taylanub: see the comment ";; This next cond clause is the only change -mhw"
<mark_weaver>taylanub: that copy of 'scheme-indent-function' was based on emacs 24.2. I suggest copying it from the version of emacs you're already using and then just adding that 'cond' clause.
<taylanub>mark_weaver: thanks!
<mark_weaver>taylanub: yw!
<nebbia>mark thanks !
<mark_weaver>np!
<mark_weaver>nebbia: actually, this paper might be more germane to your specific question: http://arxiv.org/abs/1305.4584