IRC channel logs

2017-03-30.log

back to list of logs

<mattst88>hello. I'm a gentoo developer and I rediscovered that guile fails to compile on ia64
<mattst88> https://bugs.gentoo.org/show_bug.cgi?id=613986
<mattst88>looks like this was reported a few years ago as well https://lists.gnu.org/archive/html/guile-devel/2014-02/msg00012.html and mark_weaver said he could probably debug it if he had shell access on an ia64 system
<mattst88>I think that can be arranged on gentoo's ia64 development system, if you'd be willing
<mattst88>if you would, please send your ssh key and account username to vapier@ and mattst88@gentoo.org and I'll see that you get access
<handsome_pirate>Ahoy!
<handsome_pirate>So, I'm looking at building guile 2.2 to be parallel with 2.0
<handsome_pirate>I'm having trouble finding documentation on that
<lloda>handsome_pirate: have you tried ./configure ... --prefix
<lloda>that should be all you need really
<wingo>lloda: yeah correct, it is just a representational change. we can certainly add the things you mention
<wingo>regarding syntax objects
<wingo>handsome_pirate: it's also possible to install to the same prefix i tihnk
<wingo>you have to use --program-suffix=-2.2 if you want the guile 2.2 binary to be installed as "guile-2.2"
<wingo>and then after that the only "collision" is guile.info / r5rs.info; r5rs is the same. perhaps we should apply program_suffix to the info file too
<wingo>but anyway the libraries have different names, the includes have different names, pkg-config has diff names, so no collision there.
<wingo>that said, when i test this stuff, i use different prefixes :)
<handsome_pirate>wingo: well, different prefixes won't work within the boundaries of distro packaging guidelines
<handsome_pirate>wingo: but, thanks, you have given me a good starting point :)
<wingo>:)
<wingo>right if you are doing distro packaging, afaiu it's the executable names, the info file, and the .m4 macros that collide. you can apply a policy for --program-suffix for the first one but the last two need some manual tweaks sadly
<wingo>but the .m4 file from 2.2 should work fine for builds against 2.0, so that's a thing
<ArneBab>wingo: different suffixes for info files would be useful for Gentoo
<handsome_pirate>And Fedora :)
<wingo>:)
<handsome_pirate>i should sleep; 2am local
<amz3`>npmjs is so massive
<dsmith-w`>Thursday Greetings, Guilers
***dsmith-w` is now known as dsmith-work
<void_pointer>I have a module I have written, but the calling conventions are a bit wonky. Trying to come up with better ones. It is a unit-testing library.
<void_pointer>Right now, tests look like
<void_pointer>(test-eq exp1 exp2 'name NAME 'xfail XFAIL 'skip SKIP)
<void_pointer>Where the symbols at the end are optional keyword arguments (using symbols instead of keywords) that can be put in any order and take values or expressions (doesn't matter since it will evaluate them)
<void_pointer>I didn't use keyword arguments because I wanted my library to be portable across a few scheme implementations
<void_pointer>But this is kind of messy and ugly
<void_pointer>Marco Maggi (the Vicare developer) had one suggestion, which would be to do something like
<void_pointer>(test-eq exp1 exp2 ... (xfail XFAIL) ...)
<void_pointer>To pass the optional keyword parameters in
<void_pointer>Which looks a bit cleaner in many ways but would be more involved to make it work
<void_pointer>But I suspect that there should be a better way still to do this than either of these
<void_pointer>Or perhaps those are the best options
<void_pointer>Any advice?
<lloda>wouldn't (let ((xfail XFAIL) ...) (test-eq exp1 exp2 ...) ...) work?
<void_pointer>lloda: basically, pull the variable from the environment (dynamic scope essentially)
<void_pointer>seems a bit weird in a library to do that for a procedure/macro provided to the user
<lloda`>right. What about ((test-eq 'xfail XFAIL ...) exp1 exp2) ?
<void_pointer>lloda`: hmm, that does make it easier to keep them separate mentally, though that would rule out using synax-rules macro for test-eq
<lloda`>will you want to have > 2 exps at some point?
<void_pointer>lloda`: yes. I just gave one example. I actually use a rather generic macro right now that can take any number and then there are several more specialized proxy macros
<drev>I am on guixSD. Very happy about everything, I have just tried installing git with
<drev> guix package -i git
<drev>while everything seems to succeed, I still can't find the git binary.
<drev>sorry, wrong channel. Meant for #guix
<IHateIrc>Hello, how can I convert a fraction to a double?
<void_pointer>the exact->inexact procedure
<void_pointer>Integers and rationals/fractions are exacts
<void_pointer>Going to inexact will make it floating point something
<void_pointer>The exact floating point it converts to depends on the scheme implementation
<void_pointer>It could be singles for one, doubles for another, quads for another, or some multiprecision (e.g. with GMP)
<void_pointer>For Guile, I think it goes to double
<IHateIrc>Thanks void_pointer
<void_pointer>No problem
<void_pointer>One thing to note
<void_pointer>A number can be exact and complex (basically, each part is integer or rational) in some scheme implementations
<void_pointer>Scheme numerical type system is interesting and has considerable variety
<IHateIrc>void_pointer: Yeah it sure is pretty awesome. I'm just following a scheme text book and trying to implement a cube function.
<IHateIrc>It works now. Before it was spitting out a HUGE fraction.
<void_pointer>Which book?
<void_pointer>SCIP?
<void_pointer>Hmm, you know, it is funny. I don't know of any scheme implementation that also has algebraic numbers in addition to integers, rationals, and inexacts