IRC channel logs

2020-04-12.log

back to list of logs

<ArneBab_>davexunit: is there also a chickadee for Guile 3.0?
<ArneBab_>… I just saw it in git, but I cannot install it …
<marmulak>I thought guile 3 was a done deal, but apparently even my guix system is using 2.2
<ArneBab_>well, it’s always hard to update the foundation to everything
<marmulak>indeed
<marmulak>I thought surely it would be backwards compatible though
<ArneBab_>there are always edgecases that have to be fixed in patch-versions, and you don’t want your system to become unbootable because of those
<ArneBab_>(still I hope we’ll see guix on guile 3 soon)
<marmulak>well will I'm sure
<davexunit>ArneBab_: I use chickadee with guile 3.0.2
<davexunit>upstream guix probably doesn't have it yet, though.
<guix-vits>Hi there.
<daviid>lloda: thanks. I actually did those changes manually, but a stable-2.2-wip-exception-truncate branch might be usefull for othrs ... tx
<daviid>lloda: now on master, do you cherry-pick one commt or merge the wip-exception-truncate branch?
<daviid>lloda: I was also thinking about doing something for our 2.2, 3.0 users who install from a tarball, that we could upload signed versions of pached (ice-9 boot) module, wdyt?
<daviid>lloda: or dowm to the 2.2.x, 3.0.x fine grane if necesasry
<daviid>something that wont solve the sitro problem, but ...
<daviid>*distro
<daviid>for distro, users still may download the appropriate pached (ice-9 boot) module, install it manyally, and if they which also precompile install the .go file ....
<daviid>which is what I recommend in the guile-cv manualll, but I wish I culd just tell users to grab the patched module
<daviid>or may be once we have those, I can even grab it as part of the build fase
<daviid>actually, I could add those to the guile-cv tree itself
<daviid>I don't kow if it would work for guix users though, quite ironically :)
<daviid>it would definitely work for debian, msys2 ... and probably any distro but guix and its 'ancestor' (I for got the name now but 'they know' :))
***Aurora_iz_kosmos is now known as Aurora-Sensei
<daviid>I compiled installed 3.0.3 from master and when I complie guile-cv, it comes with a few of these warnings - WARNING: loading compiled file /opt3/lib/guile/3.0/site-ccache/search/basic.go failed: ;;; "load-thunk-from-memory"
<daviid>
<daviid>*3.0.2 of corse, exactly 3.0.2.2-2b4e4 (patched with the wip-exception-truncate patch, commit 74de3b0a2fe6d5c67ad5ccdb6ed885f777443fbf)
<daviid>I didn't run a 'make uninstall' of the previous 3.0 occurrence that I had in /opt3
<daviid>hum, that might be a guile-lib related problem, to rcmpile install guile-lib ...
<narispo> https://github.com/hlandau/specwriter
<daviid>recompiling/installing guile-lib did solve this problem, fwiw
<daviid>lloda: to answer my first quiz myself, I did cherry-pick the one commit needed from wip-exception-truncate branch to master, which worked fine
<wingo>lloda: am thinking that like scm_c_vector_ref et al, scm_c_bitvector_ref should only work on scm_tc7_bitvector
<RhodiumToad>hm, is there a good algorithm to create a shuffled copy of a list without going via a vector?
<mwette>o/
*guix-vits ghost around
<jcowan>RhodiumToad: You could use Olin Shivers's list-merge! algorithm with a comparison function that returns arbitrary-but-consistent results, I guess
<jcowan>iow, it has to cache its answers, otherwise the process may never terminate
*RhodiumToad used a vector
<jcowan>see srfi 132
<jcowan>oops, s/merge/sort. It's very nice in that it allocates only O(1) space because it reuses the cons cells of the input
<jcowan>on the other hand, it can break both caching and write barriers.
<manumanumanu>Happy easter! How do y'all celebrate?
*RhodiumToad celebrated by writing a solver for the countdown number puzzle
<RhodiumToad>a brute-force one, admittedly
<RhodiumToad>but the size of the search space seems to be typically around half a million entries, so brute-force is quite feasible
<RhodiumToad>(it's slightly variable because the number of subtraction and division subexpressions is affected by the numbers available, since you're not allowed intermediate results that are not integers >0)
<roptat>hi, I'm implementing jsonld in guile, and one of the things I need is IRIs. guile doesn't have a module for that yet, so I'm using (web uri) for now, but I know I'll need to create my own module later
<roptat>URIs are IRIs and so I'm testing with only URIs, which is fine. However, one of my tests has this IRI: "url://a/b/c" which is not considered a valid URI by guile (string->uri returns #f)
<roptat>the reason seems to be that guile wants at least a dot in the host name, but reading RFC3986, the host is an IP or this rule: "reg-name = *( unreserved / pct-encoded / sub-delims )"
<roptat>which should match "a"
<roptat>oh, I found the issue! there's a match to an IPv6 address that works, because "a" matches the regexp for ipv6 addresses, but it's not a valid ipv6, so the result is #f
<roptat>(string->uri "url://g/a/b") works
<RhodiumToad>wtf
<RhodiumToad>why would it accept a v6 address with no : in?
<wingo>i have never heard of an iri :)
<wingo>interesting bug re: ipv6 addrs
<RhodiumToad>v6 addresses in uris should be in [] anyway
<roptat>I've just sent a report
<RhodiumToad>e.g. blah://[::1]/whatever
<roptat>this is ipv6-regexp: (make-regexp (string-append "^([" hex-digits ":.]+)$"))
<roptat>so it matches "a" :)
<RhodiumToad>well that's broken
<roptat>also ipv4-regexp: (make-regexp (string-append "^([" digits ".]+)$"))
<roptat>I believe "42" is a valid host, but it would match the ipv4 regexp
<roptat>IRIs are defined in RFC 3987, while URIs are in 3986, it adds unicode to URIs, basically
<RhodiumToad>why would "42" be a valid host?
<RhodiumToad>I suppose it could be an unqualified local hostname
<roptat>because the rule is any number of characters in the unreserved, pct-encoded or sub-delims, and unreserved is "ALPHA / DIGIT / "-" / "." / "_" / "~""
<roptat>the host is usually a name in the DNS, but it's not defined like that
<roptat>that's how I read the introduction of section 3.2.2 at least
<roptat>`We use the name "host" for the ABNF rule because that is its most common purpose, not its only purpose.`
<roptat>and you're right, it cannot be a plain IPv6, it needs brackets
<roptat>#40582 if you want to add anything
<RhodiumToad>huh. eval is really slow