IRC channel logs


back to list of logs

<wingo>slyfox: i guess it makes sense; clearly something should be done :)
<wingo>ACTION will spend time on bugs and will get to this one eventually
<slyfox>aha, thank you!
***wleslie_ is now known as wleslie
<wingo>ACTION bug-eating machine
<davexunit>he becomes more like the chickens with each passing day...
<wingo>gaah i seem to have introduced one too.... humm
<wingo>blah, i think i found a bug in guile's keyword argument handling :/
<wingo>oh god this is the worst :/
<wingo>scheme@(guile-user)> (define* (foo #:key bar #:rest baz) (list bar baz))
<wingo>scheme@(guile-user)> (foo 1 2 3)
<wingo>$1 = (#f (1 2 3))
<wingo>scheme@(guile-user)> (foo #:bar 3)
<wingo>$2 = (3 (#:bar 3))
<wingo>scheme@(guile-user)> (foo #:bar)
<wingo>$3 = (#<record-type module> (#:bar))
<wingo>an odd number of arguments + keyword arguments + rest argument + a known keyword in the last argument == reading invalid memory
<davexunit>oh no :(
<davexunit>sounds very bad
<wingo>there since the very beginning of 2.0 :)
<wingo>actually i think for 2.0 maybe we are ok
<wingo>because of an unrelated bug
<wingo>well that's good anyway, the other bug protects us
<wingo>strange though, that (foo #:qux) doesn't error as "unknown keyword", as it would with (foo #:qux 34)
<wingo>i guess that's just a bug tho, if we compare to 1.8
<wingo>ok so the invalid memory access bug is only in 2.1.x. good.
<wingo>fml there are three places that implement kwarg parsing
<wingo>maybe four!
<wingo>oh god there is more
<amz3>code is full of surprises
<amz3>wingo: do you plan to update your blog engine?
<wingo>yeah, gotta put in a spam thing
<wingo>i have a big spam corpus now tho :)
<wingo>i guess also if i make sure to revert all comments then i also have the ham/spam classifier too
<wingo>any bayesian classifiers in guile?
<amz3>that would be a nice contribution to lloda` work I guess if we had a spam detector
<wingo>should be pretty easy, right? dunno
<wingo>like a classic bayesian classifier
<amz3>hmm, I don't know about bahesians classifer, last time I tried to do that I used a regression
<wingo>ACTION super ignorant
<amz3>I'm not an expert either
<amz3>so I replaced a C++ program of 10k code with... forty lines
<amz3>so I replaced a C++ program of 10k code with... forty lines of guile
<amz3>html2text.scm →
<amz3>the c++ version was crashy that's I why I replaced it, the worst in this story is that it's included in debian
<amz3>I tested it over 5Mb of urls from (8G)
<amz3>hn.scm is the full dump of hackernews including most 2016 (including spam)
<amz3>the api is broken right now so you can not reproduce it yet
<amz3>the followings dumps all HN (deprecated API)
<amz3>and this create the hn.urls.txt file
<amz3>wingo: regarding the bug #15228, it seems to me open-process is basically popen documentation changing the fact that it returns multiple ports and a pid, doesn't sound it good to you? Should I factor the explanation or just mention popen as reference about the meaning of arguments? maybe the other around?
<wingo>does the guile 2.0 REPL CVE test actually pass for anyone?
<lloda`>wingo: if that's in the test suite, it passes here (f428e93ee7a4be76341444b228585755807b282f)
<wingo>ACTION nod
<amz3>Entity Linking... done!