Geth rakudo/nom: b9332ae1aa | TimToady++ | tools/build/NQP_REVISION
bump NQP for debug message fix
01:12
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....2-g2685b8c
254f76a0e0 | (Stefan Seifert)++ | src/Perl6/Grammar.nqp

Fixes "Object does not exist in serialization context" when identical modules
  are loaded from different dists which could happen when a large dist is forked
for a different auth with some modules left untouched and both forks used in the same program.
Identical source led to identical source-id which is used by MoarVM as the handle for identifying a serialization context body. Fix by including the name of the installed source file in the hash. This name includes the dist-id, so it should be unique enough.
[Tux] perl6 csv-ip5xs Deprecated use of %*LANG<MAIN> assignment detected in use; module should export syntax using $*LANG.define_slang("MAIN",<grammar>,<actions>) instead 09:23
(value in braid: Perl6::Grammar, value in %*LANG: Perl6::Grammar+{Tuxic}) 09:24
lib/Slang/Tuxic.pm: my Mu $MAIN-grammar := nqp::atkey(%*LANG, 'MAIN'); 09:25
lib/Slang/Tuxic.pm: nqp::bindkey(%*LANG, 'MAIN', $MAIN-grammar.HOW.mixin($MAIN-grammar, Tuxic));
ENOFROGGSAROUND. Could someone pls fix Slang::Tuxic? 09:26
samcv hey tux 09:33
[Tux] o/
samcv oh yeah i heard that was going to break :P
[Tux] so, no timeings till that is fixed 09:35
IOninja [Tux]: that's just a warning, isn't it? 09:37
samcv that's what i thought too
i can install the module and tests pass 09:38
[Tux] IOninja, no, all scripts using Slang::Tuxic now fail 09:48
I'll try to get a short example 09:50
tux.nl/Files/20170219105050.png
===SORRY!=== 09:51
Incompatible MROs in P6opaque rebless for types Perl6::Grammar+{Tuxic} and Perl6::Grammar
IOninja Well, if there's a lesson to be learned here, for me it's: don't use modules whose purpose is to slightly alter syntax :) 09:52
[Tux]: well, the deprecated stuff is a warning, as I see from that message. It's that rebless error that's an error. No idea what that's about 09:53
IOninja & # IO ninjaing 09:54
[Tux] IOninja, I don't think we ever met, but there is a (long) story behind it. Short conclusion: without Slang::Tuxic, I'm gone 09:55
samcv so having spaces after the routine name is a very important thing for you [Tux] ? 11:03
[Tux] yes. 11:04
see tux.nl/style.html if you are interested
samcv i also don't like cuddled else's heh 11:08
did a PR for Data::Dump and really didn't like editing a long chain of cuddled if elses
you mean that when the closing brace and the else is on the same line right 11:09
IOninja haha, [Tux], I think you'll love bdfoy's book 11:24
Well, I've no sympathy, TBH. You use the argument that space in sub calls is to mirror natural language, but then you go and use parentheses that aren't needed. Surely `wash $self;` is more natural than `wash ($self);` 11:29
and if the brace is part of the block and must be the same indent level, why is the opening brace not follow the same rules? 11:30
¯\_(ツ)_/¯
stmuk_ the only good thing about Python is they don't have discussions about indentation 11:32
[Tux] IOninja, the parens in «wash ($self);» are for demonstration only! of course one would write «$self->wash;» or «$self.wash;» or «wash $self;» I 100% agree 11:52
nine .tell ugexe I tracked your XXX issue down to MoarVM re-using an SC when the source is identical. Which in this case it probably shouldn't. 11:57
yoleaux2 nine: I'll pass your message to ugexe.
nine Can anyone confirm that the build is broken on nom/master/master? Getting "Out-of-sync package detected in LANG1 at ifiable : (value in braid: NQPMu, value in $*PACKAGE: GLOBAL)" during Stage parse 12:26
lizmat Files=1176, Tests=55923, 184 wallclock secs (11.37 usr 4.38 sys + 1101.78 cusr 96.89 csys = 1214.42 CPU) 12:37
nine: rebuilding
IOninja Do we have any "instructions for conversion" or whatever for the braids stuff? Like, if someone *was* using %*LANG, %*PRAGMAS, and $*ACTIONS, what should they be using now? 13:53
DrForr I probably am. 14:01
gfldex jnthn: is lastcall defined/sane for non-Methods? 15:18
i'm asking because lastcall is ENODOC
timotimo well, %*PRAGMAS is now $*LANG.pragma 15:20
and also: $/.CURSOR.pragma has them, too
and also $/.CURSOR.package and such 15:21
jnthn gfldex: All the dispatcheres (wrap, method, multi) share the same impl of lastcall (which just throws away any remaining candidates) 15:34
gfldex jnthn: roast seams to test lastcall for methods only. Is this a ENOROAST then? 15:38
m: my \manna = :a1:b2:c3; dd manna; 16:00
camelia :a1
gfldex i think this should warn
m: my @manna = :a1:b2:c3; dd @manna; 16:01
camelia Array @manna = [:a1]
gfldex and this should warn for sure
timotimo yeah, rakudo is currently pretty bad at handling pairs bunched up without commas 16:02
m: sub test(*%args) { say %args }; test(:a:b:c)
camelia {a => True, b => True, c => True}
timotimo oh 16:03
that used to give a => True, b => 1, c => 1
gfldex actually the 2nd example should just work
filed as RT#130816 16:16
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130816
jnthn gfldex: Yeah, I'd say so 16:29
ugexe nine: this maybe? github.com/rakudo/rakudo/blob/nom/...on.pm#L429 (that seems like .short-name is striking elsewhere) 17:23
yoleaux2 11:57Z <nine> ugexe: I tracked your XXX issue down to MoarVM re-using an SC when the source is identical. Which in this case it probably shouldn't.
ugexe or maybe the use of method checksum() in CompUnit::PrecompilationStore::File 17:25
nine ugexe: I have a candidate fix. Just need to resolve the build issue 17:30
Ah, downgrading nqp to 2017.2 fixes the build 17:31
IOninja that one doesn't have the braids merge
TimToady you probably had a rakudo without braids, which shouldn't happen if you follow the bumps 17:32
nine TimToady: I tried nom/master/master
TimToady that should work
nine re-trying 17:33
TimToady is it getting an old nom for some reason?
nine Oh, now it did find quite a few more commits in nom 17:35
looking good
TimToady :D
nine ugexe: the fix ^^^
Sorry, no time for writing the test right now as we actually have guests. But ugexe++ did most of the work already in gist.github.com/ugexe/b8ac60d26a17...62e9716d96 17:41
TimToady [Tux]: can you give me a link to a script that fails; my simple attempts to reproduce your rebless error don't do so 17:43
IOninja huggable: csv 17:54
huggable IOninja, github.com/Tux/CSV (see `bench csv` for how to run bench)
IOninja huggable: bench csv
huggable IOninja, for i in $(seq 1 10000); do echo 'hello,","," ",world,"!"'; done > /tmp/hello.csv; perl6 -Ilib -MText::CSV test-t.pl </tmp/hello.csv
IOninja Probably that repo and that script.
'cause "[Tux] │ so, no timeings till that is fixed" 17:55
TimToady okay, I can work with that 18:02
Geth rakudo/nom: 151f761a29 | TimToady++ | src/Perl6/Grammar.nqp
avoid problematic rebless
18:56
TimToady that should fix the rebless problem, but someone should still fix Slang::Tuxic, and that can't be me for several hours at least 18:57
Geth nqp/master: 12 commits pushed by (Pawel Murias)++
review: github.com/perl6/nqp/compare/2685b...8d2185f2d0
19:00
timotimo if we could properly use Slang::Tuxic to develop Slang::Tuxic, maybe tux could work on it in the future 19:22
moritz
.oO( as long as it doesn't become Slang::Toxic :)
19:46
DrForr Then it'd be the theme for the end of the Earth :) 19:49
(Doctor Who reference) 19:51
timotimo i get that 19:52
gfldex do we got traffic statistucs for docs.perl6.org? 20:34
ugexe nine++, now the diff gives the expected output 20:43
nine ugexe: that was a nice weekend riddle :) 20:55
Geth rakudo/nom: c1a0fa72bb | (Nick Logan)++ | src/core/CompUnit/Repository/Installation.pm
Use full identity compunit store/lookup in CURI

Ensures that two modules with identical short-names (but different auth/ver) can both be loaded if requested from CURI
21:20
ugexe m: my %m1 = :perl<6.c>,:name<XXX>,:ver<1>,:auth<foo>,:provides(:XXX<lib/XXX.pm>); my %m2 = |%m1, :auth<bar>, :provides(:XXX<lib/XXX.pm6>); for %m1, %m2 -> %m { try mkdir "lib"; %m<provides>.values[0].IO.spurt(qq|unit module {%m<provides>.keys[0]};\n|~q|sub source-file is export {$?FILE}|); CompUnit::RepositoryRegistry.repository-for-name("site").install(Distribution::Hash.new(%m,:prefix($*CWD))) }; 22:23
camelia ( no output )
ugexe m: package auth::foo { use XXX:auth<foo>; say source-file; }; package auth::bar { use XXX:auth<bar>; say source-file; };
camelia /home/camelia/site#sources/8541B2A37683CCD27F257877177FEADBC1E427D0 (XXX)
/home/camelia/site#sources/BA864429D7ACEBB7DA1F99CBAAA630378E8A0B8B (XXX)
timotimo ok, so ... 22:34
on language/variables we have a line $*ERR "Standard error filehandle, AKA stderr"
how come the page doesn't even show up in duckduckgo results ... 22:35
a whole bunch later there's a page from the tablets that explains stderr being named $*ERR 22:36
TimToady there's a new pull request against Slang::Tuxic, if anyone with appropriate priviledges can apply it 22:50
(it belongs to froggs) 22:51
[Tux]: ^^^
also, the rebless problem was fixed several hours ago, but you'll have to git pull rakudo again 22:55
if anyone else wants to update a slang module, github.com/FROGGS/p6-Slang-Tuxic/pull/3 shows how to do it 22:59
japhb Anyone have any idea why `start { ...; $*IN.read(1); ... } would block forever at the read? (Meaning, I'm hitting keys, but the read never returns.) 23:01
IOninja Probably because it can't read from a pipe opened in another thread? 23:03
m: await start prompt "x"
camelia x
japhb (FWIW $*IN was put into raw TTY input mode before the start { }, so it's not tty line discipline, delta bugs)
IOninja: Why can't it?
IOninja Well, locally that gives "Tried to read() on a socket from outside its originating thread" 23:04
japhb Oh FFS
libuv limitation?
IOninja somethign with libuv
japhb Gorram libuv
japhb wonders how the heck he's going to make this work now ... 23:06
IOninja One workaround is two Channels
I had a working gist somewhere, but with 750 gists I think it's hopeless to find it again gist.github.com/zoffixznet/ 23:08
japhb I'm not sure I want to go the Channel method anyway. The code is already slow just with the workaround for combining character delay, I'm not sure I want to force Channel overhead on it too. 23:10
I wonder if $*IN can be recreated from the fd ...
IOninja m: say await start $*IN.lines 23:11
camelia (»Wann treffen wir drei wieder zusamm?« »Um die siebente Stund‘, am Brückendamm.« »Am Mittelpfeiler.« »Ich lösche die Flamm.« »Ich mit« »Ich komme vom Norden her.« »Und ich vom Süden.« »Und…
IOninja Wonder how camelia manages to make it work
oh, that works fine 23:12
japhb Not a TTY?
IOninja Well, I tried with: $*IN.close; say await start { my $h = IO::Handle.new(path => IO::Special.new: "<STDIN>").open; $h.read: 5 } 23:22
But it still crashes with same error. I guess it doesn't really close it.
japhb IOninja: When I look at the MoarVM code, it appears to me it puts one copy of the std* handles in the tc->instance (in src/moar.c:setup_std_handles()) and then forever more just refers to those. 23:50