timotimo now i finally had the opportunity to read through the post as well; jnthn++ :) 00:04
lizmat drops a pin from act.yapc.eu/ye2016/training-jeff.html 06:23
TimToady thought you'd learn Perl 6, eh? 06:51
lizmat yeah :-) finally :-) 06:57
dalek kudo/nom: 157b46e | lizmat++ | src/core/Any-iterable-methods.pm:
Fix for RT #129044

If the Regex candidate needs to use .ACCEPTS, then it basically is the same as the Mu candidate. However, since we also have a Callable candidate, and Regex.isa(Callable), that doesn't work. So we abstract the Mu candidate logic into two private methods, and call these from both the Regex as well as the Mu candidate.
Also micro-optimize the :end versions, because assignment to $_ is not needed for every iteration. 5a79516 | lizmat++ | src/core/Any-iterable-methods.pm: Fix .grep for RT #129044 as well
Same problem, same solution
07:04
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129044
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129044
dalek kudo/nom: 9f50553 | lizmat++ | src/core/Baggy.pm:
Make Baggy eqv Baggy at least 10x faster

For a 3 element bag comparing successfully with another 3 element bag
08:16
TheLemonMan so much speed! 08:18
lizmat, I sent a PR with some tests for RT#129044 :) 08:29
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129044
dalek ast: 4317d58 | LemonBoy++ | S02-types/list.t:
Add tests for RT#129044.
08:32
ast: dca884a | lizmat++ | S02-types/list.t:
Merge pull request #145 from LemonBoy/rt129044

Add tests for RT#129044.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129044
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129044
kudo/nom: 84e889e | moritz++ | CONTRIBUTING.md:
Initial contribution guide for Rakudo
08:34
moritz the commit above should document current practise, not create new policy 08:36
comments / improvements welcome 08:37
TheLemonMan m: class Foo is ::("Str") { };
camelia rakudo-moar 9f5055: OUTPUT«===SORRY!===␤This type cannot unbox to a native string: P6opaque, QAST::Want␤»
TheLemonMan looks pretty bad as an error message :\ this used (not) to work though
moritz agreed 08:39
dalek kudo/nom: 2181f7e | moritz++ | / (2 files):
Link contribution guide from README
lizmat jnthn TimToady re === and .WHICH 08:55
I wonder whether it wouldn't be easier to have some kind of .IDENTICAL method, much like .ACCEPTS 08:56
which at least would allow saner identity tests
with the Any.IDENTICAL($other) { self.WHICH eq $other.WHICH }
as a fallback 08:57
(possibly with Mu.IDENTICAL)
was such a thing ever considered ?
lunch& 09:24
travis-ci Rakudo build errored. Elizabeth Mattijsen 'Make Baggy eqv Baggy at least 10x faster 09:32
travis-ci.org/rakudo/rakudo/builds/154383300 github.com/rakudo/rakudo/compare/5...5055315d00
buggable ✓ [travis build above] One job failed due to the timeout. No other failures.
moritz do we have a security contact address already? 09:59
if not, I see two options: ask the RT admins to give us a queue that's not world-readable by default, or go somewhere else for a private mailing list 10:00
timotimo also, how do we manage security-critical releases of updates? 10:01
moritz we... make them? :-) 10:02
timotimo but but but releases are work! :P
do we also release updates to older rakudos? 10:03
jnthn I thought I documented this somewhere once :P
timotimo no timo remembers anything
i do remember a pretty good document about ... things 10:04
moritz if anybody remembers where that document is, that would be great
timotimo was probably a gist?
moritz then I can link it from rakudo.org/about and from bestpractices.coreinfrastructure.o...ojects/313 10:05
jnthn Yeah, I barely had the energy to write the doc at the time. I figured since folks were asking after it so much back then they'd take care of its posterity :P 10:06
ShimmerFairy timotimo: I'm sure any security-critical releases are handled with a healthy dose of "OH GOD NO!!!" :P
timotimo :)
jnthn gist.github.com/jnthn/c10742f9d51da80226fa 10:08
timotimo nine: do we have a good plan for "resources that are allowed to be missing"? because the GTK::Simple module has .dll files that it might download from the web, but that's obviously not useful on linux or mac. at the moment, i just touch the relevant paths so that empty files get installed under those names
ah, it was a secret gist, that's why i didn't find it when browsing jnthn's gists
jnthn Note that we didn't declare any releases LTS yet :) 10:09
timotimo indeed
seems like we're never satisfied withour releases :P
ShimmerFairy timotimo: without knowing what part of the system you're talking about, I'd think that problem is more "how do we specify platform-specific deps?", perhaps 10:10
moritz TL;DR version: for security bugs, we make a bugfix release of the latest release, and one for every LTS release of the last 12 months; right?
timotimo ShimmerFairy: that's also a question, but for quality-of-life, we're also supplying the actual platform-specific deps directly 10:11
jnthn moritz: One for every LTS release *still in support* as far as I remember; depends how long we declared support.
moritz ok
jnthn moritz: The point being that our "Long Term" will become increasingly long with time, as we get better at doing that. :)
moritz but we don't have a security submission guideline yet 10:12
so, what do you prefer? RT or private mailinglist?
jnthn I believe it's a separate RT queue for Perl 5 and I think that works well, in that it collects discussion and it can be made public later by moving it to the public queue at an appropriate time (after disclosure)
moritz ok, then I'll contact the RT admins 10:13
jnthn So I'd nab that approach :)
moritz who should have access to that queue? Everybody with perl6 bug admin? or more restricted?
erm, everybody with rw access to the perl6 queue, not bug admin 10:14
timotimo should we have private github repos for security-related changes, or will we just push patches back and forth on the RT? 10:15
i could imagine it's very easy to fat-finger an accidental push of a security-critical patch to the regular repositories 10:16
moritz timotimo: I'd wait with that until it becomes a necessity 10:18
timotimo: I don't think too many people will collaborate on the first security patches
timotimo when a security-related thing hits us, we'll look like a group of ants that just had its stone lifted from above it :P
fair enough
security patches are usually between one and ten lines
jnthn moritz: Perhaps more restricted in that I'm pretty sure there'll be people with perl6 bug queue access from way back who aren't really involved any more
ShimmerFairy I get the feeling security updates would often fall more on the "wait, what's wrong?" side of discussion than "wait, is this patch right?" :)
moritz having an explicit policy for security things already puts as ahead of many projects :-) 10:19
ShimmerFairy: aye
jnthn: then my approach would be to go through the last rakudo, nqp and moarvm contributors and include active contributors 10:21
and use the same queue for all three projects
ShimmerFairy For queue access, I'd prefer something more restricted than "logged in", at the least; ideally only people who work on security issues should need to know about them :) 10:22
(does RT support the concept of a "write-only" queue? O.o)
jnthn moritz: Seems reasonable to me
ShimmerFairy "write-only" except for your own bugs, that is
moritz ShimmerFairy: all queues you can't read are write-only, because you can always send mails to [email@hidden.address] 10:23
in general, I think that read-access to security bugs is overrated. Some projects even use world-readable security bug reports 10:24
ShimmerFairy oh, cool. So the security queue would end up being (effectively) a "only see what you've reported" type thing, then? And how about submitting bugs via the web interface, would that work?
moritz ShimmerFairy: no, it would be that you submit the bug, can't read it, but receive notifications if sombody CC's you 10:25
ShimmerFairy so (effectively) then means "if you keep the email thread, and reporters select the right reply option" :) 10:26
moritz [Coke]: you seem to be the primary Perl 6 bugadmin contact. Do you want to be involved in the creation of a perl6-security queue in RT?
ShimmerFairy I can see the argument for world-readability, letting people know their system might be vulnerable in the interim, though ideally we would then have a more proactive way of letting people know about security issues/updates. Not sure how that'd be done though. 10:27
timotimo the gold standard is responsible disclosure
ShimmerFairy (something like gentoo's 'eselect news'?) 10:28
timotimo where the news about the vulnerability drop at the same time the patches get available
ShimmerFairy Yeah, I personally agree with the idea that you don't mention it until the problem can be fixed by suddenly-anxious people looking to update :)
timotimo you don't generally want to give 0days out to everybody before the patch 10:29
ShimmerFairy I dunno, sometimes people want a little excitement in their life :V 10:37
mst moritz: hey, people keep talking about you having done more on the Configure and Makefile code than most 12:13
moritz: I'm currently breaking it a lot; patches will not immedaitely be forthcoming but a set of expedient ways to make the things I need to work work will do and I'll want to bring them back upstream ASAP to avoid keeping my hacks 12:14
moritz mst: ok, good to know; I myself don't have big changes planned atm
mst but mostly, I wanted to state for the record, when I refer to this as amateur hour while complaining about it, this doesn't mean it isn't well-factored-sometimes amateur hour
just a disaster of assumptions and lack of years of pain doing toolchain stuff
it doesn't make me want to burn it to the ground and start again 12:15
which usually happens within the first ten minutes when autocrack is involved
just with toolchain hat on, I hate everything even more than usual :D
moritz mst: fwiw I didn't come up with most of the system; what I did was allowing builds with several backends in the same directory
nine mst: lexical module loading will be a bit more involved than expected. And there's some tough questions coming up...
mst moritz: ok, who do I need to repeat that to? 12:16
moritz mst: nobody, I think
mst wants to make sure he can rant about this, and improve it, and not make anybody feel like their puppy's been kicked
nine: yeah, well, it's one of the most important and ground breaking features of perl6's design as advertised over the years, of course it wasn't going to be -simple- 12:17
if it was simple, I'd've done a Devel::Decalre grade hack to demonstrate how to do it and then baited p5p until they did it properly
nine It's not _that_ hard to get rakudo to import the name into the current lexpad instead of GLOBAL. But fun starts once you consider A and B both using C but only A also using C::D. 12:18
D is located in C's nested stash. And both A and B should really see the same C but only A should also see C::D 12:19
mst A and B should only see the same C if their ver+authority+etc. specs both resolve to the same module
but surely either C exported C::D or it doesn't 12:20
so either both see it or neither
nine This has nothing to do with exporting. That's why I talk about lexical module loading while module importing would be more precise. But that's ambiguous and even more confusing...
Well let's say if both A and B just "use C;" both really should see the same unit class C; Otherwise shoving C objects back and forth will be troublesome 12:21
nine learned a lot about the precise difference between packages, stashes and lexpads while playing around with this 12:22
mst ok, when I said exporting, I meant 'symbols that appear in lexical scope after 'use X'' 12:26
which will be X, any exports of X, and I guess any subnamespaces of X marked as externally visible
I dunno, personally I'd 'use C::D' explicitly if I wanted that 12:27
dalek kudo/nom: aaf7c3c | lizmat++ | src/core/Exception.pm:
Initial support for error reporting plugins

This attempts to address RT #128983 . Whenever an error is to be reported, the RAKUDO_EXCEPTIONS_HANDLER environment variable is checked: if it contains something, it is considered to be the name of a class extending the Exceptions:: class (so "JSON" would refer to the Exceptions::JSON class). If such a class exists, then the method "process" is called in that class, with the Exception object as the parameter. That method is than supposed to completely handle the error reporting. b00e9c4 | moritz++ | CONTRIBUTING.md: Fix typo, patrickz++
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128983
mst nine: honestly, if C::D is visible to A, what harm does also making it visible to B do? 12:28
lizmat review: github.com/rakudo/rakudo/commit/aaf7c3c
nine mst: I don't know. That's a bit deeper in language design territory than I'm comfortable with. But yes, even with a visible C::D it's strictly an improvement over visible everything. 12:30
The reason for me to take this on is that a simple use Catalyst:from<Perl5> could spam the GLOBAL namespace with 100s of unwanted names causing all sorts of collisions. But getting a Catalyst::Dispatcher and whatnot would be much less of an issue. 12:31
mst nine: personally, I would expect a use lines results to be deterministic based on it, and the lines before it
nine: trying to avoid importing symbols that don't get used later strikes me as ... odd
unless you're tree shaking for a production precomp or something 12:32
but we basically -must- load the whole compunit anyway AFAICS
so I don't honestly see that you're not just imagining a problem we don't need to have
nine Loading Catalyst will end up loading some HTTP::Request module that will collide with a Perl 6 HTTP::Request module needed by some other library your Perl 6 program is using. 12:33
And doing web requests in a web environment is not really uncommon :)
lizmat nine: are you going to be in Cluj or Innsbruck ? 12:34
mst right, the Inline::Perl5 way of deciding what to import is unfit for purpose currently but it was also the stupidest thing that could possibly work
nine lizmat: both :)
lizmat: arrived in Cluj ~ 2 hours ago
lizmat cool, then I hope to be able to discuss these subjects f2f soon :-) 12:35
mst nine: btw
C could contain C::D and C::E and only ever make C::D visible right? 12:36
nine: YOU ARE NOT IN #yapc 12:37
nine: THIS IS AN ERROR
NotZoffix lizmat: what are you thoughts on having this line return only if the .process() method returns a true value? This will allow for use of "passthrough" event handlers. For example, Exception::Rollbar could ship off the exceptions to rollbar.com, and return a false value from the .process method, so regular Rakudo error handling mechanism would continue its thing and display the regular error messages to the user: github.co 12:42
lizmat NotZoffix: ack 12:43
TheLemonMan what do you think about emitting a p6init when serializing some unit to mbc form ? it should be the missing step to have runnable moarvm bytecode from the p6 side 12:45
jnthn TheLemonMan: Makes sense, I think. And running it more than once is no problem, I think it guards against that. :) 12:46
TheLemonMan yep, it only registers the rakudo_scalar container once 12:47
mst OK 12:48
why is there an nqp-m binary 12:49
but rakudo basically completely ignores it except for --show-config
and invokves moar directly
nine mst: because nqp-m is only a shell script 12:52
mst ajh 12:53
jnthn I don't see why that'd stop the rakudo build process from invoking it... :)
moritz the performance overhead should be neglible
mst right, but at that point I think it's the wrong shell script
anyway
that means it totally won't solve this jumblefuck
like THERE IS NOT CONCEPT of nqp::prefix in --showconfig 12:54
but I'll fix that later
ugh 12:55
the build process *does* invoke it
as well
ALMOST FUCKING THERE 13:08
dalek kudo/nom: 826d438 | lizmat++ | src/core/Exception.pm:
.process now expected to return Boolean

To have regular exception processing happening after all, return a True value. Suggested by Zoffix++
13:09
ast: 2ab7a1f | lizmat++ | S32-exceptions/misc.t:
Fix test now that we also have an Exceptions class
13:13
travis-ci Rakudo build errored. Elizabeth Mattijsen 'Initial support for error reporting plugins 13:25
travis-ci.org/rakudo/rakudo/builds/154437892 github.com/rakudo/rakudo/compare/2...f7c3cf5738
buggable ✓ [travis build above] 2 builds failed. All due to the timeout
TheLemonMan hmm, at what time the rakudo ops are effectively registered into moarvm ? after a quick test they still aren't there when the outer CompUnit :main (or :load) is hit 13:28
[Coke] (security contact address) I started this process back at Christmas. 13:34
moritz: forwarded you the email chain. 13:38
... no I didn't, because your email has changed.
RT: 1367; @LARRY: 17; BUG: 449; BUILD: 9; CONC: 40; DOCS: 1; GLR: 4; JVM: 67; LHF: 1; LTA: 115; MATH: 4; NATIVECALL: 15; NEW: 877; NYI: 89; OSX: 5; PERF: 25; POD: 17; PRECOMP: 12; REGEX: 24; RFC: 41; SEGV: 35; SPESH: 1; STAR: 5; TESTNEEDED: 25; TODO: 10; UNI: 30; UNTAGGED: 394; WEIRD: 3 13:45
m: my $f = any(<a b>); say "a" ~~ / $f /; # RT 127106 13:46
camelia rakudo-moar 826d43: OUTPUT«P6opaque: no such attribute '$!pos' in type Cursor when trying to get a value␤ in block <unit> at <tmp> line 1␤␤»
mst argh 13:48
M_LIBPATH apparently means two things
mst sighs
mst crowbars some more
[Coke] isn't rt.perl.org/Ticket/Display.html?id=127906 notabug? isn't | first come first serve? 13:49
m: my $a = [1..3],[4..6]; dd $a; #RT #126336 13:52
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126336
camelia rakudo-moar 826d43: OUTPUT«WARNINGS for <tmp>:␤Useless use of ".." in expression "4..6" in sink context (line 1)␤Array $a = $[1, 2, 3]␤»
[Coke] m: my $a = [1,2],[3,4]; dd $a; 13:53
camelia rakudo-moar 826d43: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 4 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤Array $a = $[1, 2]␤»
[Coke] got UNTAGGED under 375. 13:58
dalek kudo/nom: 998e2b7 | moritz++ | CREDITS:
Use different email address in CREDITS

the old one is bouncing right now
14:01
lizmat afk& 14:06
perlpilot m: "bc" ~~ / ||@(<b bc>) >>/ or say "Failed"; say $/; 14:09
camelia rakudo-moar 826d43: OUTPUT«Failed␤Nil␤»
perlpilot m: "bc" ~~ / "b" || "bc" >>/ or say "Failed"; say $/; 14:10
camelia rakudo-moar 826d43: OUTPUT«「b」␤»
perlpilot m: "bc" ~~ / "a" || "b" || "bc" >>/ or say "Failed"; say $/; 14:11
camelia rakudo-moar 998e2b: OUTPUT«「b」␤»
TimToady the >> doesn't distribute
but the first one looks kinda like a bug 14:12
m: "bc" ~~ / || < b bc > >>/ or say "Failed"; say $/; 14:13
camelia rakudo-moar 998e2b: OUTPUT«「bc」␤»
perlpilot Aye, I'm just playing with RT#127906 Coke asked if it's notabug. I think it is
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127906
TimToady the @() should work like <>, I'd think
mst AUGH 14:14
Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/m-main.nqp')
ah COCKS it installed crap into NQP
Couldn't load Rakudo REPL.pm: While looking for '/home/matthewt/tmp/moarl/lib/perl5/x86_64-linux-gnu-thread-multi/Alien/MoarVM/Install/share/nqp/lib/Perl6/BOOTSTRAP.moarvm': no such file or directory 14:16
wut
is there some baked in dir for finding things like that? 14:19
hmm 14:20
augh. ok, one last hacky attempt 14:24
aaaaaaaaaaaa 14:27
oh gods DAMN IT 14:29
jdv79 good to know you're having fun 14:31
[Coke] <rogers>Language</rogers>
mst src/vm/moar/ModuleLoaderVMConfig.nqp 14:32
hardcodes looking for bits of rakudo in the moarvm tree
in spite of moarvm having a --libpath option
timotimo you might be able to get that path from backendconfig perhaps 14:33
mst no
that's the bug
it uses backendconfig instead of rakudo's final PREFIX
timotimo oh?
mst thereby shitting itself
remember I'm trying to do separate clean trees 14:34
timotimo ah, backendconfig comes from what's compiled into moarvm, then? 14:35
mst yes
so if you install rakudo somewhere else
[Coke] RT: 1367; @LARRY: 17; BOOTSTRAP: 3; BUG: 453; BUILD: 9; CONC: 40; DOCS: 1; GLR: 4; IO: 12; JVM: 67; LHF: 1; LTA: 115; MATH: 6; NATIVECALL: 15; NEW: 874; NYI: 89; OO: 5; OSX: 5; PERF: 26; POD: 17; PRECOMP: 12; REGEX: 28; REPL: 3; RFC: 41; SEGV: 35; SPESH: 1; STAR: 5; TESTNEEDED: 25; TODO: 10; UNI: 30; UNTAGGED: 373; WEIRD: 3 14:37
mst I think it's time to go eat before I throw a chair 14:38
[Coke] gives mst a snickers. 14:40
TheLemonMan don't forget to wrap the chair in a try { ... }
timotimo if you don't wrap it in a try, someone else might catch it for you 14:41
jnthn So long as you don't throw a mug...
timotimo i can't handle a perl 7 right now 14:42
pmurias nine: if we load perl5 module at use time to import stuff into namespaces how are we going to precompile stuff? 14:43
yoleaux2 22 Aug 2016 12:10Z <jnthn> pmurias: Ah, makes sense (the local register thing, and why a temporary was needed). The leak fix looks good.
mst oh AAAAAAAAAAAA it tests for blib/ even in install mode
that's what was hiding the problem
right. ok. food. 14:44
&
TheLemonMan correct me if I'm wrong, but rakudo_scalar is registered by p6init which is registered by the BOOTSTRAP which /needs/ rakudo_scalar to be loaded by the ModuleLoader 14:56
looks like a catch22 situation
perlpilot [Coke]: When mst is not himself (as in the snickers commercials), who is he? :) 15:56
skids
.oO(Lewis Black?)
16:06
b2gills
.oO( Maybe mst always needs a Snickers. That would explain a lot actually )
16:23
perlpilot b2gills++ :) 16:34
b2gills mst += Inf 16:35
travis-ci Rakudo build passed. Moritz Lenz 'Use different email address in CREDITS 16:37
travis-ci.org/rakudo/rakudo/builds/154463205 github.com/rakudo/rakudo/compare/8...8e2b701d9b
[Coke] rt.perl.org/Ticket/Display.html?id=127443 - my take here is that binding to $a throws out the type you had. not sure if that's correct, though. anyone? 18:44
m: { my module Cool::Utils; } ; say Cool::Utils 18:45
camelia rakudo-moar 998e2b: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Semicolon form of 'module' without 'unit' is illegal. You probably want to use 'unit module'␤at <tmp>:1␤------> { my module Cool::Utils;⏏ } ; say Cool::Utils␤»
[Coke] m: { unit module Cool::Utils; } ; say Cool::Utils 18:46
camelia rakudo-moar 998e2b: OUTPUT«===SORRY!=== Error while compiling <tmp>␤A unit-scoped module definition is not allowed in a subscope;␤Please use the block form.␤at <tmp>:1␤------> { unit module Cool::Utils;⏏ } ; say Cool::Utils␤»
[Coke] is [OO] a reasonable tag for .WHICH questions? 18:58
s/questions/tickets/ 18:59
.tell TimToady newish sink ticket at RT #128692 19:03
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128692
yoleaux2 [Coke]: I'll pass your message to TimToady.
dalek Heuristic branch merge: pushed 90 commits to nqp/better-O by arnsholt 21:09
Heuristic branch merge: pushed 92 commits to rakudo/better-O by arnsholt 21:27