Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-02-19

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 kalkin- joined #perl6-dev
00:44 llfourn joined #perl6-dev
01:05 ZzZombo_ joined #perl6-dev
01:05 ZzZombo_ joined #perl6-dev
01:10 ZzZombo_ joined #perl6-dev
01:12 Geth ¦ rakudo/nom: b9332ae1aa | TimToady++ | tools/build/NQP_REVISION
01:12 Geth ¦ rakudo/nom: bump NQP for debug message fix
01:12 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9332ae1aa
01:12 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.02-21-gf414161...2017.02-22-g2685b8c
01:15 dogbert17 joined #perl6-dev
01:29 agentzh joined #perl6-dev
01:45 llfourn joined #perl6-dev
01:57 llfourn joined #perl6-dev
02:21 kalkin- joined #perl6-dev
02:46 user_ joined #perl6-dev
03:11 mr_ron joined #perl6-dev
03:24 dalek joined #perl6-dev
03:24 synopsebot6 joined #perl6-dev
03:26 ZzZombo joined #perl6-dev
03:26 ZzZombo joined #perl6-dev
04:51 IRCFrEAK joined #perl6-dev
04:51 IRCFrEAK left #perl6-dev
05:41 agentzh joined #perl6-dev
06:56 llfourn joined #perl6-dev
07:30 robertle joined #perl6-dev
07:57 llfourn joined #perl6-dev
08:56 llfourn joined #perl6-dev
09:01 RabidGravy joined #perl6-dev
09:23 [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:24 [Tux] (value in braid: Perl6::Grammar, value in %*LANG: Perl6::Grammar+{Tuxic})
09:25 [Tux] lib/Slang/Tuxic.pm:    my Mu $MAIN-grammar := nqp::atkey(%*LANG, 'MAIN');
09:25 [Tux] lib/Slang/Tuxic.pm:    nqp::bindkey(%*LANG, 'MAIN', $MAIN-grammar.HOW.mixin($MAIN-grammar, Tuxic));
09:26 [Tux] ENOFROGGSAROUND. Could someone pls fix Slang::Tuxic?
09:33 samcv hey tux
09:33 [Tux] o/
09:33 samcv oh yeah i heard that was going to break :P
09:35 [Tux] so, no timeings till that is fixed
09:37 IOninja [Tux]: that's just a warning, isn't it?
09:37 samcv that's what i thought too
09:38 samcv i can install the module and tests pass
09:48 [Tux] IOninja, no, all scripts using Slang::Tuxic now fail
09:50 [Tux] I'll try to get a short example
09:50 [Tux] http://tux.nl/Files/20170219105050.png
09:51 [Tux] ===SORRY!===
09:51 [Tux] Incompatible MROs in P6opaque rebless for types Perl6::Grammar+{Tuxic} and Perl6::Grammar
09:52 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:53 IOninja [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:54 * IOninja & # IO ninjaing
09:55 [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:57 llfourn joined #perl6-dev
10:05 llfourn joined #perl6-dev
11:03 samcv so having spaces after the routine name is a very important thing for you [Tux] ?
11:04 [Tux] yes.
11:04 [Tux] see http://tux.nl/style.html if you are interested
11:08 samcv i also don't like cuddled else's heh
11:08 samcv did a PR for Data::Dump and really didn't like editing a long chain of cuddled if elses
11:09 samcv you mean that when the closing brace and the else is on the same line right
11:24 IOninja haha, [Tux], I think you'll love bdfoy's book
11:29 IOninja 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 agentzh joined #perl6-dev
11:30 IOninja 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 IOninja ¯\_(ツ)_/¯
11:30 llfourn joined #perl6-dev
11:32 stmuk_ the only good thing about Python is they don't have discussions about indentation
11:52 [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:57 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.
11:59 SourceBaby joined #perl6-dev
11:59 Undercover joined #perl6-dev
12:26 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:37 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 lizmat nine: rebuilding
13:12 ZzZombo_ joined #perl6-dev
13:12 ZzZombo_ joined #perl6-dev
13:22 pyrimidine joined #perl6-dev
13:41 geekosaur joined #perl6-dev
13:53 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?
14:01 DrForr I probably am.
14:20 llfourn joined #perl6-dev
14:36 AlexDaniel joined #perl6-dev
14:38 ZzZombo joined #perl6-dev
14:38 ZzZombo joined #perl6-dev
15:06 pmurias joined #perl6-dev
15:18 gfldex jnthn: is lastcall defined/sane for non-Methods?
15:18 gfldex i'm asking because lastcall is ENODOC
15:20 timotimo well, %*PRAGMAS is now $*LANG.pragma
15:20 timotimo and also: $/.CURSOR.pragma has them, too
15:21 timotimo and also $/.CURSOR.package and such
15:32 agentzh joined #perl6-dev
15:34 jnthn gfldex: All the dispatcheres (wrap, method, multi) share the same impl of lastcall (which just throws away any remaining candidates)
15:38 gfldex jnthn: roast seams to test lastcall for methods only. Is this a ENOROAST then?
16:00 gfldex m: my \manna = :a1:b2:c3; dd manna;
16:00 camelia rakudo-moar b9332a: OUTPUT: «:a1␤»
16:00 gfldex i think this should warn
16:01 gfldex m: my @manna = :a1:b2:c3; dd @manna;
16:01 camelia rakudo-moar b9332a: OUTPUT: «Array @manna = [:a1]␤»
16:01 gfldex and this should warn for sure
16:02 timotimo yeah, rakudo is currently pretty bad at handling pairs bunched up without commas
16:02 timotimo m: sub test(*%args) { say %args }; test(:a:b:c)
16:02 camelia rakudo-moar b9332a: OUTPUT: «{a => True, b => True, c => True}␤»
16:03 timotimo oh
16:03 timotimo that used to give a => True, b => 1, c => 1
16:03 gfldex actually the 2nd example should just work
16:16 gfldex filed as RT#130816
16:16 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130816
16:29 jnthn gfldex: Yeah, I'd say so
17:23 ugexe nine: this maybe? https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/Repository/Installation.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.
17:25 ugexe or maybe the use of method checksum() in CompUnit::PrecompilationStore::File
17:30 nine ugexe: I have a candidate fix. Just need to resolve the build issue
17:31 nine Ah, downgrading nqp to 2017.2 fixes the build
17:31 IOninja that one doesn't have the braids merge
17:32 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
17:32 TimToady that should work
17:33 nine re-trying
17:33 TimToady is it getting an old nom for some reason?
17:35 nine Oh, now it did find quite a few more commits in nom
17:35 nine looking good
17:35 TimToady :D
17:38 pyrimidine joined #perl6-dev
17:40 Geth ¦ rakudo/nom: 254f76a0e0 | (Stefan Seifert)++ | src/Perl6/Grammar.nqp
17:40 Geth ¦ rakudo/nom: Fix SC collision when identical modules are loaded from different dists
17:40 Geth ¦ rakudo/nom:
17:40 Geth ¦ rakudo/nom: Fixes "Object does not exist in serialization context" when identical modules
17:40 Geth ¦ rakudo/nom: are loaded from different dists which could happen when a large dist is forked
17:40 Geth ¦ rakudo/nom: for a different auth with some modules left untouched and both forks used in
17:40 Geth ¦ rakudo/nom: the same program.
17:40 Geth ¦ rakudo/nom:
17:40 Geth ¦ rakudo/nom: Identical source led to identical source-id which is used by MoarVM as the
17:40 Geth ¦ rakudo/nom: handle for identifying a serialization context body. Fix by including the
17:40 Geth ¦ rakudo/nom: name of the installed source file in the hash. This name includes the dist-id,
17:40 Geth ¦ rakudo/nom: so it should be unique enough.
17:40 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/254f76a0e0
17:40 nine ugexe: the fix ^^^
17:41 nine Sorry, no time for writing the test right now as we actually have guests. But ugexe++ did most of the work already in https://gist.github.com/ugexe/b8ac60d26a17d2c256c41f62e9716d96
17:43 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:54 IOninja huggable: csv
17:54 huggable IOninja, https://github.com/Tux/CSV (see `bench csv` for how to run bench)
17:54 IOninja huggable: bench csv
17:54 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
17:54 IOninja Probably that repo and that script.
17:55 IOninja 'cause "[Tux] │ so, no timeings till that is fixed"
18:02 TimToady okay, I can work with that
18:15 agentzh joined #perl6-dev
18:56 Geth ¦ rakudo/nom: 151f761a29 | TimToady++ | src/Perl6/Grammar.nqp
18:56 Geth ¦ rakudo/nom: avoid problematic rebless
18:56 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/151f761a29
18:57 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
19:00 Geth ¦ nqp/master: 12 commits pushed by (Pawel Murias)++
19:00 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/2685b8c71a...8d2185f2d0
19:22 timotimo if we could properly use Slang::Tuxic to develop Slang::Tuxic, maybe tux could work on it in the future
19:46 moritz .oO( as long as it doesn't become Slang::Toxic :)
19:49 DrForr Then it'd be the theme for the end of the Earth :)
19:51 DrForr (Doctor Who reference)
19:52 timotimo i get that
20:33 agentzh joined #perl6-dev
20:34 gfldex do we got traffic statistucs for docs.perl6.org?
20:43 ugexe nine++, now the diff gives the expected output
20:55 nine ugexe: that was a nice weekend riddle :)
21:20 Geth ¦ rakudo/nom: c1a0fa72bb | (Nick Logan)++ | src/core/CompUnit/Repository/Installation.pm
21:20 Geth ¦ rakudo/nom: Use full identity compunit store/lookup in CURI
21:20 Geth ¦ rakudo/nom:
21:20 Geth ¦ rakudo/nom: Ensures that two modules with identical short-names (but different auth/ver) can both be loaded if requested from CURI
21:20 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c1a0fa72bb
22:11 geekosaur joined #perl6-dev
22:23 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 rakudo-moar c1a0fa: ( no output )
22:23 ugexe m: package auth::foo { use XXX:auth<foo>; say source-file; }; package auth::bar { use XXX:auth<bar>; say source-file; };
22:23 camelia rakudo-moar c1a0fa: OUTPUT: «/home/camelia/site#sources/8541B2A37683CCD27F257877177FEADBC1E427D0 (XXX)␤/home/camelia/site#sources/BA864429D7ACEBB7DA1F99CBAAA630378E8A0B8B (XXX)␤»
22:34 timotimo ok, so ...
22:34 timotimo on language/variables we have a line $*ERR "Standard error filehandle, AKA stderr"
22:35 timotimo how come the page doesn't even show up in duckduckgo results ...
22:36 timotimo a whole bunch later there's a page from the tablets that explains stderr being named $*ERR
22:50 TimToady there's a new pull request against Slang::Tuxic, if anyone with appropriate priviledges can apply it
22:51 TimToady (it belongs to froggs)
22:51 TimToady [Tux]: ^^^
22:55 TimToady also, the rebless problem was fixed several hours ago, but you'll have to git pull rakudo again
22:59 TimToady if anyone else wants to update a slang module, https://github.com/FROGGS/p6-Slang-Tuxic/pull/3 shows how to do it
23:01 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:03 IOninja Probably because it can't read from a pipe opened in another thread?
23:03 IOninja m: await start prompt "x"
23:03 camelia rakudo-moar c1a0fa: OUTPUT: «x»
23:03 japhb (FWIW $*IN was put into raw TTY input mode before the start { }, so it's not tty line discipline, delta bugs)
23:03 japhb IOninja: Why can't it?
23:04 IOninja Well, locally that gives "Tried to read() on a socket from outside its originating thread"
23:04 japhb Oh FFS
23:04 japhb libuv limitation?
23:04 IOninja somethign with libuv
23:04 japhb Gorram libuv
23:06 * japhb wonders how the heck he's going to make this work now ...
23:06 IOninja One workaround is two Channels
23:08 IOninja I had a working gist somewhere, but with 750 gists I think it's hopeless to find it again https://gist.github.com/zoffixznet/
23:10 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 japhb I wonder if $*IN can be recreated from the fd ...
23:11 IOninja m: say await start $*IN.lines
23:11 camelia rakudo-moar c1a0fa: OUTPUT: «(»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…»
23:11 IOninja Wonder how camelia manages to make it work
23:12 IOninja oh, that works fine
23:12 japhb Not a TTY?
23:15 geekosaur joined #perl6-dev
23:22 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 IOninja But it still crashes with same error. I guess it doesn't really close it.
23:50 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.

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary