Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-07-11

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

All times shown according to UTC.

Time Nick Message
01:47 mst joined #perl6-dev
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
02:02 llfourn joined #perl6-dev
02:59 Geth ¦ roast: 4105520fa1 | (Aleks-Daniel Jakimenko-Aleksejev)++ | S15-nfg/emoji-test.t
02:59 Geth ¦ roast: Unfudge all Emoji todo tests. samcv++
02:59 Geth ¦ roast: review: https://github.com/perl6/roast/commit/4105520fa1
03:09 vendethiel joined #perl6-dev
03:12 astj joined #perl6-dev
03:42 stmuk_ joined #perl6-dev
03:51 astj joined #perl6-dev
03:52 astj joined #perl6-dev
04:04 llfourn joined #perl6-dev
04:20 astj joined #perl6-dev
05:42 samcv question. our `sub exit` has untyped argument. is this what we want or should it be typed to cool?
05:42 samcv m: exit Any
05:42 camelia rakudo-moar 83e157: OUTPUT: «No such method 'Int' for invocant of type 'Any'␤  in block <unit> at <tmp> line 1␤␤»
07:20 astj joined #perl6-dev
07:29 [Tux] This is Rakudo version 2017.06-197-g83e157012 built on MoarVM version 2017.06-56-g161ec639
07:29 [Tux] csv-ip5xs        2.761
07:29 [Tux] test            12.548
07:29 [Tux] test-t           4.298 - 4.333
07:29 [Tux] csv-parser      12.538
07:34 samcv o/ [Tux]
07:35 [Tux] o/
07:40 lizmat samcv: added a paragrapgh
07:41 samcv yay :)
07:41 lizmat Files=1209, Tests=64192, 215 wallclock secs (13.22 usr  4.85 sys + 1307.87 cusr 136.26 csys = 1462.20 CPU)
08:16 [Tux] samcv, can you - just for completeness - also confirm the "High end Unicode in Perl6" talk?
08:33 samcv [Tux], i can't find any way to do that
08:33 samcv i see submit
08:33 [Tux] weird
08:33 samcv oh i think i found it. i have to go to edit
08:34 samcv done!
08:34 [Tux] thanks.
08:36 lizmat not sure this is a bug or I am doing something wrong:
08:36 lizmat m: role MyWay { multi method say(MyWay:D: |) { note "whee"; nextsame } }; my $*OUT = $*OUT but MyWay; $*OUT.say("foo")
08:36 camelia rakudo-moar 83e157: OUTPUT: «Cannot resolve caller say(Any+{MyWay}: Str); none of these signatures match:␤    (Mu $: *%_)␤    (MyWay:D $: | is raw)␤  in block <unit> at <tmp> line 1␤␤»
08:39 lizmat hmmm... seems I mixed in the MyWay role into an Any
08:46 lizmat edited answer to: https://stackoverflow.com/questions/45024570/how-could-i-subclass-perl-6s-iohandle
08:46 lizmat afk for a few hours&
08:55 lizmat m: role MyWay { method say(|) { note "whee"; nextsame } }; my $*OUT = PROCESS::<$OUT> but MyWay; say("foo")   # shouldn't this work ?
08:55 camelia rakudo-moar 83e157: OUTPUT: «foo␤»
08:55 lizmat really afk&
08:57 robertle joined #perl6-dev
09:17 samcv m: exit Mu
09:17 camelia rakudo-moar 83e157: OUTPUT: «Type check failed in binding to parameter '$status'; expected Any but got Mu (Mu)␤  in block <unit> at <tmp> line 1␤␤»
09:17 samcv exit Mu orelse say "oh no"
09:18 samcv w: exit Mu orelse say "oh no"
09:18 samcv m: exit Mu orelse say "oh no"
09:18 camelia rakudo-moar 83e157: OUTPUT: «Type check failed in binding to parameter '$status'; expected Any but got Mu (Mu)␤  in block <unit> at <tmp> line 1␤␤»
09:23 llfourn m: role MyWay { method say($a) { note "whee"; nextsame } }; my $*OUT = PROCESS::<$OUT> but MyWay; $*OUT.say("foo")
09:23 camelia rakudo-moar 83e157: OUTPUT: «whee␤foo␤»
09:23 llfourn lizmat: does &say actually call .say?
09:25 llfourn (it doesn't)
10:03 astj joined #perl6-dev
10:45 lizmat llfourn: multi sub say(Str:D \x) { my $out := $*OUT; $out.print(nqp::concat(nqp::unbox_s(x),$out.nl-out)) }
10:45 lizmat ah, yes, see what you mean  :-)
10:46 lizmat m: role MyWay { method print(|) { note "whee"; nextsame } }; my $*OUT = PROCESS::<$OUT> but MyWay; say("foo")   # shouldn't this work ?
10:46 camelia rakudo-moar 83e157: OUTPUT: «whee␤foo␤»
10:46 lizmat whee!
11:23 * lizmat wonders if it would make sense to have an IO::Handle.print candidate that would take a native str array
11:23 lizmat so we wouldn't need to join before printing
11:24 nine Is "$handle.print: $_ for @lines;" not enough?
11:27 lizmat eh, no  :-)
11:28 lizmat trying to squeeze out some more % on say / print
11:28 lizmat specifically the **@args candidates
11:32 astj joined #perl6-dev
12:00 * lizmat wonders why a new issue of the Perl 6 Weekly is not worthy of a @perl6org tweet anymore
12:05 stmuk_ can anyone remember the url to the output of the processes which create examples.perl6.org? I think it's on p6c.org but don't seem to have it bookmarked
12:08 timotimo it's in a subfolder named "build-log", but i can't reach it via http
12:08 timotimo oh
12:09 timotimo my mistake, it's examples.perl6.org not examples.p6c.org
12:09 moritz https://examples.perl6.org/build-log/
12:09 stmuk_ moritz++
12:15 Zoffix lizmat: ask moritz for keys to the account? :)
12:16 moritz which account?
12:16 Zoffix I see past weeklies were retweets from me but this week I did not use #Perl6 tag, so it probably wasnt in the @perl6org's feed
12:16 Zoffix moritz: "* │ lizmat wonders why a new issue of the Perl 6 Weekly is not worthy of a @perl6org tweet anymore"
12:16 moritz oh sorry, just being busy
12:16 Zoffix :)
12:19 Zoffix AlexDaniel, from what I recall while experimenting with ufobat's example, ealier rakudos .kill just fine. Also, the tree dies if you send kill yourself outside of Rakudo. So it's some kind of regression. Keep in mind there was one more bug that may have contributed to your code's comments: accessing list of signals (as kill does) wasn't thread safe and created a race where signal table was busted
12:21 moritz that said, I'd gladly give somebody else access to the perl6org twitter account
12:24 lizmat feels to me I shouldn't be at all Perl 6 knobs  :-)
12:25 * Zoffix thinks lizmat should get the Twitter knob :)
12:25 lizmat so if I have a sub a(|) {} , is there a way to pass on all parameters to another sub/method ?
12:25 moritz not really
12:25 lizmat other than doing (|c) ?
12:26 lizmat I mean, proto's can  :-)
12:26 moritz and {next,call}same too
12:26 lizmat indeed  :-)
12:26 Zoffix some p6 op?
12:26 Zoffix nqp::p6* I mean
12:27 lizmat yeah, that's the question
12:27 moritz I think there is, yes
12:27 Zoffix m: use nqp; sub a(|) { dd nqp::p6argvmarray }; a <a b c>, 42, :70meow
12:27 camelia rakudo-moar 83e157: OUTPUT: «(("a", "b", "c"), 42)␤»
12:28 lizmat hmmm.. pass nqp::p6argvmarray ?
12:28 lizmat not interested in names
12:28 lizmat nameds atm
12:32 lizmat ah, duh, can't work
12:32 lizmat because self is part of the parameter list, and that changes with the call to a method
12:46 timotimo are takecapture and usecapture usable from perl6 code, or will they be messed up by existing signature binding code we generate?
12:53 awwaiid joined #perl6-dev
13:20 lizmat ok, so I can make say() and put() about 10% faster
13:20 lizmat *but* it will break a lot of spectest that expect say() internally calles $*OUT.print
13:21 Geth ¦ rakudo/nom: 58900e7ba8 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
13:21 Geth ¦ rakudo/nom: IO::Handle.say(Str:D) instead of Str
13:21 Geth ¦ rakudo/nom:
13:21 Geth ¦ rakudo/nom: We cannot unbox type objects as strings, these should be done by the
13:21 Geth ¦ rakudo/nom: \x candidate.
13:21 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58900e7ba8
13:24 lizmat the gain is mostly caused by not needing to find out the nl-out using a method call, but inside IO::Handle directly accessing the private attribute
13:25 lizmat https://gist.github.com/lizmat/a8c06dd75f07d15013735c71e4fabf11  # the diff in question
13:26 Zoffix Are those spectests part of 6.c or just something that was added later? IMO the tests should not make any assumptions on what methods say() and put() use. Just that they use $*OUT handle for output.
13:26 lizmat FWIW, for interface consistency, I believe that say() *should* call $*OUT.say
13:26 * lizmat checks
13:27 lizmat S16-io/note.t predates 6.c  (August 2015)
13:30 * Zoffix would argue that test assumes too much about internal implementation
13:32 lizmat well, t/spec/S16-io/say.t has the same issue
13:32 Zoffix If it were at least using print(), you could argue there's an expectation that &print call maps to .print call, but &note -> .print ¯\_(ツ)_/¯  even .say is a closer match
13:33 lizmat and several advent post tests
13:33 lizmat e.g. integration/advent2009-day07.t
13:33 lizmat this all got triggered by https://stackoverflow.com/questions/45024570/how-could-i-subclass-perl-6s-iohandle
13:33 Zoffix Same deal with S16-io/say.t. The writer of the test let their knowledge of internal implementation of IO::Handle seep into the test
13:34 Zoffix lizmat: oh, the correct Bleed Rakudo answer is override .write-internal and .read-internal methods
13:34 Zoffix Though I'm unsure if jnthn++ decided they are good to be the final names for the methods
13:35 lizmat well, that's it: if you provide your own .say / .put / .print / .note methods, the interface is clear
13:35 Zoffix And I don't think they're tested/implemented yet
13:35 lizmat write-internal feels to me as something that's internal  :-)
13:35 Zoffix We had a lot of ecosystem breakage because people were assuming exactly what these tests assume that method X is implemented in terms of method Y
13:36 donaldh joined #perl6-dev
13:36 Zoffix lizmat: yeah, the names were still up to bikeshedding, but the plan was that subclasses just need to override those and not worry what is implemented in terms of what
13:36 Zoffix There's also .eof-iternal. The IO::Pipe interface shows the usage: https://github.com/rakudo/rakudo/blob/nom/src/core/IO/Pipe.pm#L25-L51
13:37 lizmat still, if you just want to capture whatever is being "say"d, you don't need any of the internals
13:38 nine But....if tests assume something and people assume the same thing because the tests assume that then that's how our specification works. Then in Perl 6 method X _is_ defined as an augmented call of method Y.
13:38 lizmat you just need to know that your object needs to provide a "say" method if say() is done with $*OUT being set to your object
13:39 lizmat maybe this is 6.d stuff
13:40 Zoffix nine: you were the person who argued that doing so robs of crutial optimization opportunities
13:40 lizmat anyways, I think 10% gain on say() would be worthwhile to have
13:40 * lizmat goes back to fixing (<) on Mixes
13:41 nine Zoffix: it does and that sucks :/ We do get away sometimes with correcting the tests (and thereby changing the spec) but if as you say the ecosystem actively relies on the tested behavior, that's a line that we may not want to cross.
13:42 Zoffix No, the ecosystem issue did not rely on tested behaviour.
13:43 nine This is a very hard topic. We did promise backwards compatibility with the published spec. And we're breaking that promise at every opportunity. Of course as a still young adult, we get away with a lot of that, but at some point we have to grow up and take things seriously.
13:43 nine Zoffix: oh, I reacted to your "We had a lot of ecosystem breakage because people were assuming exactly what these tests assume"
13:44 Zoffix s/exactly/similar/;
13:44 Zoffix The assumption was .say was implemented in terms of .print IIRC
13:44 Zoffix (and tests assum say() and note() are)
13:45 |Tux| joined #perl6-dev
13:46 nine If that assumption is made a lot, then that could show that assumption's usefulness.
13:46 nine Maybe .say _should_ be specced as calling .print.
13:47 lizmat then why does IO::Handle.say exist ?
13:47 nine Note that I do know very little about all this IO stuff. I'm using those cases as arguments in a more general discussion about spec tests.
13:47 lizmat well, I guess for those who actually do $*OUT.say
13:48 nine The question would then be: what about optimization? That won't be as simple as it is now (write some optimized nqp code or whatever). But it would still be possible, e.g. via spesh.
13:49 Geth ¦ 6.d-prep: 33bbdf8c83 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
13:49 Geth ¦ 6.d-prep: Add TODO: `Define More Concrete Spec Errata Rules`
13:49 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/33bbdf8c83
13:49 nine spesh could still discover, that the code is running the standard case that will just call .print and use an even more optimized version instead.
13:49 lizmat spesh is smart enough to notice $*OUT hasn't changed ?
13:50 nine I'm fairly in hand waving territory right now :) But I guess it could be made smart enough to notice that, yes.
13:50 nine Or some more general mechanism will lead to equally optimized code.
13:51 nine The general mechanism could deal with dynamic variables (a pain point where we need to figure out optimization anyway) and how to detect that they do not change from one iteration of a loop to another.
13:51 nine Maybe that's something spesh even already does, I have no idea.
13:52 nine Spesh does recognize that some times are always the same. So it must have tracking infrastructure. And that may be repurposeable.
13:53 nine MoarVM does already inline small methods, doesn't it? From there it's not far from inlining a call to a method on $*OUT.
13:54 nine I guess my message is: not all hope is lost, even if we let people have their assumptions in some cases. We don't have to sacrifice all awesomeness to the performance god, like we don't compromise on having a real meta model either.
13:54 lizmat well, even a small (and important) sub like &DYNAMIC doesn't get inlined because of it using nqp::getlexreldyn or so
13:54 lizmat if &DYNAMIC could get inlined, all $*FOO accesses would benefit greatly
13:54 nine lizmat: yes, that's a current restriction. But I wouldn't know a reason for this restriction to remain indefinitely.
13:55 lizmat which includes say()
13:55 lizmat I was under the impression that this was not fixable
13:55 nine I'd be interested in the reason for that
13:55 Zoffix lizmat: " if your fiddling too low." in https://stackoverflow.com/a/45029361/2410502
13:59 lizmat fixed, Zoffix++
14:04 Geth ¦ 6.d-prep: dc55ab42d5 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
14:04 Geth ¦ 6.d-prep: Add another 6.d feature to spec
14:04 Geth ¦ 6.d-prep:
14:04 Geth ¦ 6.d-prep: Spec IO::Handle's `.write-internal`, `.read-internal`, `.eof-internal`
14:04 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/dc55ab42d5
14:04 * Zoffix throws .WRITE-SOURCE, .READ-SOURCE, and .EOF-SOURCE as alternative names to ^ those into the bikeshedding pot
14:05 * [Coke] blahs.
14:05 lizmat blahs ?
14:09 * donaldh leans against bikeshed
14:09 [Coke] dayjob frustrations, everything is mostly fine.
14:09 donaldh Zoffix: source seems too overloaded a term.
14:09 donaldh Zoffix: would .READ, .WRITE and ,EOF suffice?
14:10 Geth_ ¦ nqp/master: 8 commits pushed by pmurias++
14:10 Geth_ ¦ nqp/master: 6dfd4b4dbb | [js] Get unicode name data from our processed version of UCD
14:10 Geth_ ¦ nqp/master: 444490e0d3 | Test get codepoints by name more
14:10 Geth_ ¦ nqp/master: 0d160aa057 | [js] Remove old synchronous proc ops
14:10 Geth_ ¦ nqp/master: f2da96e2f3 | [js] Cosmetic white space changes
14:10 Geth_ ¦ nqp/master: deae523ef3 | [js] Add op signatures for ops that will the runtime implementation filled in later
14:10 Geth_ ¦ nqp/master: b6024b7689 | [js] Fix bug with CodeRefWithStateVars
14:10 Geth_ ¦ nqp/master: 51b5124664 | Attach the match (for file positions etc.) to the QAST properly
14:10 pmurias joined #perl6-dev
14:10 Geth_ ¦ nqp/master: 87535d48e9 | [js] Repair source map support and make it accesible from rakudo
14:10 Geth_ ¦ nqp/master: review: https://github.com/perl6/nqp/compare/f9ca4f14f0...87535d48e9
14:10 Zoffix donaldh: not really. Then saying "call the read/write/eof method" has ambigutity with .read/.write/.eof
14:12 Zoffix Not a fan of having three methods with different functions differentiated by letter case only
14:12 * Zoffix &
14:14 AlexDaniel joined #perl6-dev
14:16 astj joined #perl6-dev
14:18 Geth_ ¦ nqp: 045a4f4c50 | ven++ (committed using GitHub Web editor) | src/vm/js/bin/gen_sourcemap.js
14:18 Geth_ ¦ nqp: js/gen_sourcemaps: Throw proper error
14:18 Geth_ ¦ nqp:
14:18 Geth_ ¦ nqp: When using a string, we throw away a lot of informations like the stack trace.
14:18 Geth_ ¦ nqp: review: https://github.com/perl6/nqp/commit/045a4f4c50
14:18 Ven`` joined #perl6-dev
14:18 Ven`` Whoops. Didn't mean to just commit directly. pmurias: ^ can you review, and revert in case it's incorrect? thanks
14:22 AlexDaniel Zoffix: that's interesting
14:23 AlexDaniel because from my perspective .kill(9) is not going to DWIM anyway
14:23 AlexDaniel if I'm not mistaken, in perl 5 you'd use kill(-9) for that
14:24 AlexDaniel and we have no alternative for that in rakudo (yet?)
14:27 Zoffix DWIM how?
14:28 Zoffix m: say Signal.enums.antipairs.hash{9}
14:28 camelia rakudo-moar 58900e: OUTPUT: «SIGKILL␤»
14:29 Zoffix ok
14:29 Zoffix Well, whatever it's killing, I remember not having ufobat's issue in earlier rakudos
14:29 pmurias Ven``: seems fine, thank you for contributing :)
14:30 Geth ¦ rakudo/nom: 2eeb000c94 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
14:30 Geth ¦ rakudo/nom: Shorten R:Q.MIX-IS-SUBSET a bit
14:30 Geth ¦ rakudo/nom:
14:30 Geth ¦ rakudo/nom: nqp::iterator also returns false on an empty nqp::hash
14:30 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2eeb000c94
14:30 AlexDaniel well, SIGKILL cannot be trapped, so the process has no chance to clean up its children
14:31 pmurias Ven``: the way the source maps are built will very likely change, as building them up from an array of offsets seem more efficient than creating a gigantic JSON string
14:31 AlexDaniel so if you're doing .kill(9) on something, you are deliberately leaving its children alive
14:31 AlexDaniel which is never what you mean, I think
14:31 Zoffix Ah
14:31 Zoffix And what's the correct signal to send?
14:32 AlexDaniel well, the correct thing would be to kill the process group, which in perl 5 is done by negating the signal number… like -9
14:32 AlexDaniel or you can do SIGTERM and *hope* that it will finish and terminate its children also
14:32 Zoffix I'm using $proc.kill: SIGTERM; followed by $proc.kill: SIGSEGV; in toaster and there's a bunch of unkilled stuff remains
14:33 Zoffix m: say +SIGSEGV
14:33 camelia rakudo-moar 58900e: OUTPUT: «11␤»
14:33 AlexDaniel in whateverable, for some reason sighup works better, but I don't think it should be this way…
14:33 * Zoffix &
14:35 AlexDaniel greppable6: kill
14:35 greppable6 AlexDaniel, https://gist.github.com/a0cfc7ef7494187ba7f0c51bfaa6eda7
14:35 Ven`` pmurias: are they disablable entirely?
14:35 AlexDaniel greppable6: kill[^-']
14:35 Ven`` I know they were perf concerning in some apps
14:35 AlexDaniel OH COME ON
14:36 Ven`` AlexDaniel: well done :P
14:36 AlexDaniel ah, this was a malformed utf-8 on one of the threads… so not a segv at least
14:36 pmurias Ven``: currently they are off by default
14:37 greppable6 joined #perl6-dev
14:37 AlexDaniel greppable6: kill[^-']
14:37 pmurias Ven``: they will be enabled by a flag when compiling
14:37 Ven`` pmurias: sounds perfect. thank you :)
14:37 Ven`` sorry for pressing the "commit" button a bit too fast.
14:37 AlexDaniel Ven``: it's my bot! I torture it the way I want!! ;)
14:38 pmurias bbl&
14:39 AlexDaniel by the way, if anybody knows better about things I'm talking about, what would be the right way to kill a process group in rakudo? And should we support negative signal thingy in some way?
14:41 lizmat isn't negative signal values a p5ism ?
14:42 AlexDaniel yes-yes we don't have to do it the same way
14:42 lizmat ok, *phew*  :-)
14:42 lizmat afk for some cycling before it starts raining&
14:42 AlexDaniel let it be a named param or whatever, and it could give a helpful error message if you try to give it a negative signal number
15:35 [Coke] (malformed utf8) see https://github.com/perl6/doc/issues/1414
15:42 nine FWIW both kill(2) and the kill shell command use negative signal numbers for denoting the process group: If pid is less than -1, then sig is sent to every process in the process group whose ID is -pid.
15:43 nine Err...negative PID numbers, not signal numbers
15:44 AlexDaniel signal numbers also
15:44 nine Perl 5's kill supports negative PID numbers, too for process groups. If the OS does it that way that is. So the negative signal number is its OS independent way of killing a process group (though those do not exist on all systems anyway)
15:47 nine AlexDaniel: POSIX man page for kill(1): "If the first argument is a negative integer, it shall be interpreted as a −signal_number option, not as a negative pid operand specifying a process group."
16:19 AlexDaniel interestingly, right now rakudo accepts negative signal values
16:19 AlexDaniel but it seems to do nothing with them
16:19 AlexDaniel at least on moar…
16:34 Zoffix oops
16:34 Zoffix Might be my fault
16:34 Zoffix m: dd $*KERNEL.signal: -50
16:34 camelia rakudo-moar 2eeb00: OUTPUT: «-50␤»
16:34 Zoffix mc: dd $*KERNEL.signal: -50
16:34 committable6 Zoffix, ¦2015.12: «-50»
16:35 Zoffix oh, nmm
16:39 Zoffix Told my trainee about Perl 6. He was suitably impressed :)
16:40 Zoffix Though it was really stupid lead up: "This is written in Perl, though I don't like that lang anymore. If I could, I rewrite this in another lang." "What is it called?" "Umm... PERL 6!"
16:40 Zoffix heh
16:40 timotimo REPL 7
17:00 Zoffix for rakudo.perl6.org, I'm gonna use a Perl 5 web app (after first trying to see if it can work as a Perl 5 CGI script). Don't want the manual process as that's a whole new step that needs to be done on each release and can be forgotten and cron isn't good either because during the release you push the tarballs and send announcement, but with cron you have to sit and wait for it to refresh the page before
17:00 Zoffix you can send anything
17:05 ugexe https://gist.github.com/ugexe/58c2d193b103de4810d91380739621c8 (windows precomp rename error with --ll-exception gives different error)
17:05 ugexe (note this is *after* zef has been precompiled+working, and then I edited a file and rerun)
17:16 ugexe the error goes away in 2017.04, and is present in 2017.05
17:20 Zoffix But not in 2017.06? That looks very familiar to the issue we had on 2017.06 release and I thought we fixed it
17:20 Zoffix Though I saw that error crop up on more recent Rakudo when precompiling files in lib/
17:22 Zoffix "t/04-nativecall/06-struct.t .............. Failed 14/28 subtests"
17:22 Zoffix flopper
17:23 ugexe its in 2017.06 too
17:24 ugexe but yeah, i thought this looked similar to what you fixed
17:25 ugexe where it was precompiling multiple times or something
17:25 Zoffix IIRC it was a "wtf" fix. Like removing the same nqp ops used by Str.subst and using Str.subst instead. Like no sense behind it but it appeared to fix stuff. I guess it didn't really
17:26 Zoffix I'd say this is a release blocker,s ince R* will be based on this release
17:26 Zoffix Oh
17:26 ugexe im slowly bisecting the commit, but any hunches are welcome since building is slow
17:26 Zoffix Maybe not that.
17:27 Zoffix Ohhhh... now I remember. The fix for the thing was that newline translation was done in like IO::Handle.slurp but not in IO::Path.slurp so we ended up with different shas in different parts of the codebase and it thought the source changed
17:27 ugexe ah, which then produced the current bug
17:29 ugexe i think I got lucky... seems like it might be https://github.com/rakudo/rakudo/commit/ca0a74398b9385053c79de62a42418258905c715#diff-c97d8fc8b5978ba87f7f726ed9cc28a4
17:31 Zoffix That sure fits into the picture that checksums don't match someplace
17:31 Zoffix s: IO::Path, 'slurp'
17:31 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/2eeb000/src/core/IO/Path.pm#L602
17:31 Zoffix s: IO::Handle, 'slurp'
17:31 SourceBaby Zoffix, Sauce is at https://github.com/rakudo/rakudo/blob/2eeb000/src/core/IO/Handle.pm#L644
17:32 ugexe well in this case the checksums *do* change (i edit a source file)
17:32 ugexe so before, while the checksums didnt really change, rakudo thought they did and took the path we are debugging currently
17:32 Zoffix Ah, I had the error without it. On first compilation it works, on second fails and I have to remove lib\.precomp
17:33 ugexe likely that windows is holding a handle now somewhere we don't expect
17:34 Geth ¦ nqp: da267b0320 | (Zoffix Znet)++ | src/QRegex/Cursor.nqp
17:34 Geth ¦ nqp: Fix handling of actions in .refine_slang
17:34 Geth ¦ nqp:
17:34 Geth ¦ nqp: We accidentally try to bind them to $name instead of $name ~ "-actions"
17:34 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/da267b0320
17:35 Geth ¦ rakudo/nom: c40a2122cf | (Zoffix Znet)++ | tools/build/NQP_REVISION
17:35 Geth ¦ rakudo/nom: Bump NQP
17:35 Geth ¦ rakudo/nom:
17:35 Geth ¦ rakudo/nom: Changes: https://github.com/perl6/nqp/compare/2017.06-38-gf9ca4f14f...2017.06-48-gda267b0
17:35 Geth ¦ rakudo/nom: da267b0 Fix handling of actions in .refine_slang
17:35 Geth ¦ rakudo/nom: 045a4f4 js/gen_sourcemaps: Throw proper error
17:35 Geth ¦ rakudo/nom: 87535d4 [js] Repair source map support and make it accesible from rakudo
17:35 Geth ¦ rakudo/nom: 51b5124 Attach the match (for file positions etc.) to the QAST properly
17:35 Geth ¦ rakudo/nom: <…commit message has 6 more lines…>
17:35 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c40a2122cf
17:35 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.06-38-gf9ca4f14f...2017.06-48-gda267b0
17:36 ugexe the concat thing from --ll-exception is probably from $handle.print($!source-checksum ~ "\n");
17:37 Geth ¦ rakudo/nom: 0e30ae13df | (Zoffix Znet)++ | .gitignore
17:37 Geth ¦ rakudo/nom: Add ll debuger and zef to ignore
17:37 Geth ¦ rakudo/nom:
17:37 Geth ¦ rakudo/nom: - ll-something-debuger is now generated during build
17:37 Geth ¦ rakudo/nom: - zef is something that exists during release process or when
17:37 Geth ¦ rakudo/nom:    installing it to fetch modules to do extra Inline::Perl5 tests
17:37 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0e30ae13df
17:37 Zoffix ll-something => perl6-lldb-m
17:38 ugexe might be nice if we had a ENV var that the perl6 wrapper could use to point at perl6-whatever
17:39 ugexe well, i guess im more interested in setting --ll-exception
17:42 * Zoffix would just doing it with a bash function stuffed into .bash_aliases
17:43 Zoffix I have this one to run `./perl6` if it exists in directory or `perl6` if not. Avoiding having to remember which one to use depending on if I'm working on rakudo: p6() { if [[ -x ./perl6 && ! -d ./perl6 ]]; then ./perl6 "$@"; else command perl6 "$@"; fi; }
17:44 Zoffix p6() { if [[ $LL_EX ]]; then perl6 --ll-exception "$@"; else command perl6 "$@"; fi; }
17:44 Zoffix Or something or other. I don't know bash :)
17:45 Geth ¦ rakudo/nom: fe1a06cc97 | (Zoffix Znet)++ | t/02-rakudo/08-slangs.t
17:45 Geth ¦ rakudo/nom: Test .refine_slang accepts an action class
17:45 Geth ¦ rakudo/nom:
17:45 Geth ¦ rakudo/nom: Fix: https://github.com/perl6/nqp/commit/da267b0320
17:45 Geth ¦ rakudo/nom: Bump: https://github.com/rakudo/rakudo/commit/0e30ae13df
17:45 Geth ¦ rakudo/nom: Bug find: https://irclog.perlgeek.de/perl6/2017-07-11#i_14857056
17:45 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fe1a06cc97
17:45 ugexe yeah thats probably the correct way. but its not something I can easily explain to a windows user vs `set HARNESS_OPTIONS="-v"` or some such
17:46 Zoffix Ohh.. Yeah
18:43 FROGGS joined #perl6-dev
18:51 nine Zoffix: I think, ugexe and me have found the source of the Windows precomp issues.
18:51 nine We never close the CompUnit::PrecompilationUnit::File's $!handle. I have no idea why that hasn't been an issue before. It just plain should not have worked.
18:51 nine Well we close the .load'ed PrecompilationUnit, but not the dependencies in the case the is-up-to-date check fails
18:52 Zoffix Ah cool.
18:52 nine Here: https://github.com/rakudo/rakudo/blob/nom/src/core/CompUnit/PrecompilationRepository.pm#L137
18:55 nine This should have been an issue since https://github.com/rakudo/rakudo/commit/f55e113290 (2016-09-06). No idea why it's only popping up now.
19:04 ugexe it probably was, but went away somewhere along the line if the fact 2017.04 did not have this issue means anything
19:14 Geth ¦ rakudo/nom: a526d839f5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
19:14 Geth ¦ rakudo/nom: Fix baggy semantics of Mix (<) Mix
19:14 Geth ¦ rakudo/nom:
19:14 Geth ¦ rakudo/nom: This breaks 3 tests in S03-operators/mix.t , which on deeper inspection
19:14 Geth ¦ rakudo/nom: I presume to be faulty.
19:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a526d839f5
19:14 lizmat m: say <a b c>.Mix ⊄ <a b b c d>.Mix
19:14 camelia rakudo-moar fe1a06: OUTPUT: «True␤»
19:14 lizmat this will return False after the above commit
19:30 Geth ¦ rakudo/nom: 37250ed5eb | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm
19:30 Geth ¦ rakudo/nom: Fix precomp dependencies left open when up-to-date check failed
19:30 Geth ¦ rakudo/nom:
19:30 Geth ¦ rakudo/nom: This may fix issues with precompilation on Windows failing with failing to
19:30 Geth ¦ rakudo/nom: rename the new precomp file. Was probably caused by the open file handle.
19:30 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/37250ed5eb
19:48 ugexe nine: i can confirm that fixes it
19:48 nine Yeah!
19:49 nine lizmat: can you note for the next weekly that ugexe++ did all the hard work of digging where the issue may come from?
19:50 lizmat nine: will try to remember  :-)
19:50 ugexe open handles for procs can cause segfaults / no-message halting, so this could possible fix some of those as well
19:51 ugexe although it'd have to be a pretty big dependency chain
19:52 nine But this fix will only affect cases where a precompiled dependency is out of date.
19:53 nine Modules used by the top level script were already handled correctly.
20:03 Geth ¦ roast: 5ffd8ad12f | (Elizabeth Mattijsen)++ | 2 files
20:03 Geth ¦ roast: Add de-activated debugging helpers
20:03 Geth ¦ roast: review: https://github.com/perl6/roast/commit/5ffd8ad12f
20:13 Geth ¦ roast: 36a15940b9 | (Elizabeth Mattijsen)++ | 2 files
20:13 Geth ¦ roast: Add another set of (inactive) debugging helpers
20:13 Geth ¦ roast: review: https://github.com/perl6/roast/commit/36a15940b9
20:15 Geth ¦ roast: 5fa2132fdf | (Elizabeth Mattijsen)++ | 2 files
20:15 Geth ¦ roast: Fix copy-pasto in debugging helpers
20:15 Geth ¦ roast: review: https://github.com/perl6/roast/commit/5fa2132fdf
20:24 Geth ¦ roast: f534df325d | (Elizabeth Mattijsen)++ | S03-operators/set_subset.t
20:24 Geth ¦ roast: De-activate two suspect tests
20:24 Geth ¦ roast:
20:24 Geth ¦ roast: These assume that a Set on either side of (<=) will force Setty
20:24 Geth ¦ roast: semantics.  This is against the notion of baggies being more contagious
20:24 Geth ¦ roast: then setties, as expressed by TimToady on:
20:24 Geth ¦ roast:   https://irclog.perlgeek.de/perl6-dev/2017-07-05#i_14830389
20:24 Geth ¦ roast: review: https://github.com/perl6/roast/commit/f534df325d
20:55 greppable6 joined #perl6-dev
21:00 TimToady joined #perl6-dev
21:20 dct joined #perl6-dev
21:26 samcv i'm working on tweaking things so that concatting two strings will less likely result in having to renormalize them
21:27 TimToady joined #perl6-dev
21:35 Geth ¦ roast: 6b021fbc68 | (Elizabeth Mattijsen)++ | S03-operators/set_subset.t
21:35 Geth ¦ roast: De-activate 3 more suspicious (<=) tests
21:35 Geth ¦ roast: review: https://github.com/perl6/roast/commit/6b021fbc68
21:36 samcv as i have it now it does slow down concatting lots of unicode text when it's single codepoints i'm concatting all together. but that is unusual
21:37 samcv it's more common there's going to be potentially a much longer string
21:37 samcv instead of concatting like thousands of characters one at a time
21:37 AlexDaniel What I don't like about all these name change/tweak ramblings is the approach. Whenever some name was suggested, ten other suggestions would pop up and (at least for me) it's unclear which one is better(and then we get more ramblings on how the proposed name is not good enough). Let's *assume* that at some point we manage to tweak or change the name, would we be getting “ah, name X would've been so much better” comments afterwards
21:37 AlexDaniel Please no… So, if we are feeling at least a tiny bit serious about the whole question, and if we are ready to spend so much time on this beaten bikeshed, why not do the bikeshedding properly? Set up a page on rakudo wiki for brainstorming. Let's put *all* possible names there. Stupid or smart, tweaky or radical, everything goes into the list. After the brainstorming we can see where we stand. Maybe there will be a community favorite
21:37 AlexDaniel that is undeniably better than everything we have seen so far? Maybe not, but I don't know, and I guess nobody does. Sorry to underestimate the effort put into the blog posts, but right now I feel like we only have I-have-this-idea-and-here-is-my-tunnel-visioned-justification-for-it kind of proposals.
21:39 AlexDaniel And personally, I don't even think that we have to decide if the name should be changed/tweaked at all at first. If we did change or tweak the name, what would the best one be? Let's see, and then we can think if we can actually do it…
21:40 lizmat FWIW, I think we can get close to the desired PR effect by just consistently using "Rakudo Perl 6" vs "Perl 6" the same way one would use "perl" and "Perl"
21:41 lizmat aka the former being the implementation, the latter being the name of the language
21:41 lizmat and in case of "Rakudo Perl 6", one could argue it is *an* implementation
21:42 lizmat now, if p5p would start using "Pumpking Perl 5" instead of "perl", we could reach a. some symmetry and b. some distance
21:42 * AlexDaniel can't really see how “Rakudo Perl 6” is more marketable than “Perl 6”, but I really have no idea…
21:43 samcv ok WOW
21:43 samcv in my tests concatting various languages. with actual normal lengths of text
21:43 samcv from 9.829 seconds to  2.761
21:43 samcv and i haven't yet seprately timed the concatting from the other code here
21:44 lizmat cool, that would help say() a lot  :-)
21:44 lizmat AlexDaniel: try googling for "Rakudo Perl 6" and "Perl 6" and compare the results
21:45 lizmat the first hit for "Perl 6" for me is https://www.activestate.com/activeperl
21:45 samcv so this is concatting text 4650 chars long
21:45 lizmat AlexDaniel: which doesn't even have the string "Perl 6" in it
21:46 AlexDaniel lizmat: perl6.org, perl6.org/downloads/, wikipedia, “Why in The World Would Anyone Use Perl 6? | Zoffix Znet”
21:46 AlexDaniel damn personalized results…
21:47 lizmat aka, welcome to my bubble  :-)
21:48 lizmat "Perl 6" has 8.5M results for me, "Rakudo Perl 6" has 40K results for me
21:49 AlexDaniel “rakudo perl 6” stuff seems to be more technical and less bloggy
21:54 AlexDaniel *shrug* but we can also start renaming it to pisix or whateverlang and in a month we'll have decent google results pointing to the official resources… I guess it'll take a bit more to convince me about the marketing benefits :S
21:54 samcv m: say 10.8090910379193/4.48341698
21:54 camelia rakudo-moar 37250e: OUTPUT: «2.41090469303600␤»
21:54 Zoffix FWIW, my view on the naming approach is no one has issues with letting technical decisions be made based on the people's expertise, but when name/branding is at question, then suddenly everyone's a Marketing Director and a Brand Manager (proper jobs you have to go to college for).
21:54 samcv so 2.4x faster with 4000 character unicode text
21:54 samcv 16% faster with 460 characters
21:55 samcv only case it is slower is if you are renfging single codepoints. but that can be optimized if we want i suppose special case low numbers of codeponits
21:55 Zoffix So the "let's start a wiki" approach sounds to me like a sound way to burn everyone out on an issue everyone's already burnt out.
21:55 lizmat samcv: what about concatting something with about 80 chars and a newline ?
21:56 Zoffix So IMO instead of a wiki, TimToady should make the call, asking for community suggestions if he's short on ideas.
21:56 samcv lizmat, that may not get a speedup
21:56 samcv though i can see if i can special case that
21:56 lizmat Zoffix: agree, that would be the RFC , Apocalypse, etc... all over again
21:56 samcv more than it is maybe
21:56 samcv hm
21:56 * Zoffix &'s again
21:56 AlexDaniel no… that would be brainstorming… a list of possible names…
21:56 AlexDaniel but if we don't want that, sure…
21:57 samcv lizmat, so i guess it calls concat as part of the operation
21:57 lizmat yup
21:58 lizmat io_operators, line 24 would be the hottest path
21:58 samcv line 24 of which file
21:58 lizmat src/core/io_operators.pm
21:58 lizmat alternately, if someone would implement nqp::say  :-)
21:59 samcv do we already have that?
21:59 lizmat hmmm... that would not work atm, as the interface sorta defines we call IO::Handle.print, not IO::Handle.say
21:59 lizmat samcv: no we don't
22:00 samcv m: use nqp; nqp::say('test')
22:00 camelia rakudo-moar 37250e: OUTPUT: «test␤»
22:00 lizmat hmmm... duh
22:00 samcv or not to a specific filehandle you mean?
22:00 lizmat ah, yes  :-)
22:00 samcv ah ok
22:00 samcv this would make things a lot faster i think... printing out output. i should do this
22:01 lizmat anyways, I think the comment in io_operators is bogus
22:01 lizmat at least at that place
22:01 samcv yeah idk it is weird
22:02 samcv how about a say operation that accepts two strings as arguments. the string and the ending
22:03 samcv and filehandle obv
22:03 Geth ¦ rakudo/nom: 8cdeb21974 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm
22:03 Geth ¦ rakudo/nom: Remove misleading comment
22:03 Geth ¦ rakudo/nom:
22:03 Geth ¦ rakudo/nom: With the encoding refactor and the proposed use of an IO role
22:03 Geth ¦ rakudo/nom: that needs providing a write-buffer/read-buffer only, this comment
22:04 Geth ¦ rakudo/nom: does not make any sense whatsoever.  This was from another era with
22:04 Geth ¦ rakudo/nom: a different future.
22:04 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8cdeb21974
22:04 lizmat samcv: forget that, maybe focus on nqp::concat being faster if the right hand is a NewLine
22:04 samcv ok
22:04 samcv can do
22:07 Geth ¦ rakudo/nom: 4101581d5d | (Elizabeth Mattijsen)++ | src/core/set_subset.pm
22:07 Geth ¦ rakudo/nom: Properly implement Baggy semantics for (<)
22:07 Geth ¦ rakudo/nom:
22:07 Geth ¦ rakudo/nom: Fix some cases where Baggies would not be contagious enough wrt to
22:07 Geth ¦ rakudo/nom: Setties.
22:07 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4101581d5d
22:09 dogbert17 [Coke]: htmlify failure, 'Writing disambiguation files ... Writing html/js/search.js ... Invocant of method 'wordcase' must be an object instance of type 'Str', not a type object of type 'Str'.  Did you forget a '.new'?'
22:10 dogbert17 in sub write-search-file at htmlify.p6 line 762
22:27 Geth ¦ rakudo/nom: fae4aca029 | (Elizabeth Mattijsen)++ | 2 files
22:27 Geth ¦ rakudo/nom: De-abstract R:Q.SET-IS-SUBSET
22:27 Geth ¦ rakudo/nom:
22:27 Geth ¦ rakudo/nom: With the proper implementation of baggy semantics for (<=), we only
22:27 Geth ¦ rakudo/nom: need this logic once.  So no need to put in a library for multiple
22:27 Geth ¦ rakudo/nom: use cases.
22:27 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fae4aca029
22:31 Geth ¦ rakudo/nom: 2fb109f1de | (Elizabeth Mattijsen)++ | src/core/set_subset.pm
22:31 Geth ¦ rakudo/nom: Any (<=) Setty doesn't need to coerce Setty to a Set
22:31 Geth ¦ rakudo/nom:
22:31 Geth ¦ rakudo/nom: It would be almost a noop for a Set, but potentially expensive for
22:31 Geth ¦ rakudo/nom: a SetHash.
22:31 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2fb109f1de
22:37 Geth ¦ roast: 6fdc8b5d22 | (Elizabeth Mattijsen)++ | S03-operators/set_proper_subset.t
22:37 Geth ¦ roast: De-activate 3 suspicious (<) tests
22:37 Geth ¦ roast: review: https://github.com/perl6/roast/commit/6fdc8b5d22
22:38 Geth ¦ roast: ac3f86d2ff | (Elizabeth Mattijsen)++ | S03-operators/set_proper_subset.t
22:38 Geth ¦ roast: Oops, forgot to remove debug helper
22:38 Geth ¦ roast: review: https://github.com/perl6/roast/commit/ac3f86d2ff
22:38 samcv time to add a brand new roast test
22:40 samcv i forget which RT or even if there's an rt i wrote it for and originally it wasn't complete enough to get merged in
22:40 MasterDuke joined #perl6-dev
22:40 samcv but it had to do with crlf line endings causing problems in certain conditions
22:40 samcv and me and MasterDuke having to change is concat stable in moarvm
22:45 Geth ¦ rakudo/nom: c6cc1a7a3a | (Elizabeth Mattijsen)++ | src/core/set_proper_subset.pm
22:45 Geth ¦ rakudo/nom: Properly implement Baggy semantics for (<)
22:45 Geth ¦ rakudo/nom:
22:45 Geth ¦ rakudo/nom: Please note that 4101581d5d was the one for (<=)
22:45 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c6cc1a7a3a
22:46 lizmat I will overhaul S03-operators/set_subset/set_proper_subset tomorrow
22:46 lizmat good night, #perl6-dev!
22:47 timotimo nite lizmat!
22:55 Geth ¦ roast: 2e1f7d92aa | (Samantha McVey)++ | 5 files
22:55 Geth ¦ roast: Add new test S15-nfg/concat-stable.t
22:55 Geth ¦ roast:
22:55 Geth ¦ roast: This test checks that Unicode text of different languages is able to be
22:55 Geth ¦ roast: broken up into the individual graphemes and concat'ed together without
22:55 Geth ¦ roast: any change or alteration.
22:55 Geth ¦ roast:
22:55 samcv yay more tests
22:55 Geth ¦ roast: The script was originally created when a bug was found in concatting things
22:55 Geth ¦ roast: <…commit message has 8 more lines…>
22:55 Geth ¦ roast: review: https://github.com/perl6/roast/commit/2e1f7d92aa
23:13 BenGoldberg joined #perl6-dev

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