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 |