FROGGS_ o/ 07:12
[Tux] This is Rakudo version 2016.10-57-g4829f1c built on MoarVM version 2016.10-15-g715e39a 07:38
csv-ip5xs 3.283
test 14.585
test-t 6.813
csv-parser 17.030
FROGGS jnthn: why dont we have the highwater here? 08:41
m: grammar G { token TOP { a+ } }; say G.subparse("aaaaaabbbbbb"); say $/.CURSOR.'!highwater'()
camelia rakudo-moar 4829f1: OUTPUT«「aaaaaa」␤0␤»
dalek ast: f0d17aa | niner++ | / (3 files):
Another test for nested packages
08:52
arnsholt FROGGS: I think you need a dba to set the highwater mark 09:05
(Grepping through the sources, looks like that's what sets it)
lizmat git diff
oops
jnthn - A bug 09:07
+ A fix
lizmat if it only were that easy :-)
arnsholt =D
lizmat gives up on an opt that would give Str.match another 1% 09:08
jnthn FROGGS: Only certain things update the highwater.
FROGGS: Of note, protoregexes
FROGGS: Also alternations
lizmat runs fine in a script, breaks the build with "Invocant requires a type object of type List, but an object instance was passed"
jnthn They're basically the places where we can also produce highexpect
lizmat weird
jnthn Since the point is the two are "in sync" (e.g. the point we mark is the point that we expected those things) 09:09
FROGGS arnsholt: ahh, that reminds me that we dont have dba yet :o) 09:10
arnsholt: (outside of nqp that is)
arnsholt jnthn: I still can't quite get it to set the highwater, even with an alternation. Do you have an example that sets it? 09:22
jnthn m: "abc" ~~ /. [ [d|e] || { say $/.CURSOR."!highwater"() }]/ 09:25
camelia rakudo-moar 4829f1: OUTPUT«1␤»
jnthn m: "abc" ~~ /.. [ [d|e] || { say $/.CURSOR."!highwater"() }]/
camelia rakudo-moar 4829f1: OUTPUT«2␤»
dalek kudo/nom: 04b6da1 | lizmat++ | src/core/Str.pm:
The list of iterators was from a previous idea

In the new form, we only ever have 2 iterators: one that post processes cursor values, and one that does not. So make them proper named classes for better optimizability.
10:12
lizmat m: class A { class B {} }; use MONKEY; augment class A { class B { } } # buglet ? 10:16
camelia rakudo-moar 4829f1: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B␤»
lizmat or at least LTA error ?
jnthn No idea what it thinks it's doing there :) 10:18
lizmat rakudobug it to be sure ? 10:20
jnthn Sure, something's going on 10:27
moritz should probably a redeclaration error 11:15
timotimo are we allowing augmentation of packages that way? 11:16
moritz well, package is the only thing you can redeclare implicitly 11:20
but in the example above, A::B is redeclared 11:21
timotimo yeah
dalek kudo/nom: 4f87b54 | lizmat++ | src/core/Str.pm:
Don't use indexes

Again, if we're going to define "constants", they might as well be the actual thing. So get rid of a level of indirection, which gives us about 1%. Not a lot, but for such a vital part of the language worth it. And it should also improve readability for a change :-)
11:28
lizmat m: say "1234567890".subst(/..?/, "x", :ex) # I guess this is a case of DIHWIDT ? 12:10
camelia rakudo-moar 4f87b5: OUTPUT«Substring length (-2) cannot be negative␤ in block <unit> at <tmp> line 1␤␤»
lizmat or should we maybe disallow :ex and :ov explicitely in Str.subst ? 12:11
m: say "1234567890".subst(/../, "x", :ov) # interesting, but is that what the user expects ? 12:12
camelia rakudo-moar 4f87b5: OUTPUT«x34567890x4567890x567890x67890x7890x890x90x0x␤»
masak lizmat: I don't understand the "Substring length (-2) cannot be negative" error message, so it's hard to say whether it's possible to do better than it :> 12:13
also -- unrelatedly -- there is something that bothers me about the phrasing of that message
lizmat m: say "1234".match(/..?/, :ex) # maybe this explains it better ? 12:14
camelia rakudo-moar 4f87b5: OUTPUT«(「12」 「1」 「23」 「2」 「34」 「3」 「4」)␤»
masak perhaps the fact that -2 obviously *is* negative... and Rakudo might wish for that not to be so, but I'm sorry, it is
lizmat the problem is that subst assumes monotonically increasing from/to values and no overlap
masak lizmat: it would seem to me that after the first 「12」 has been replaced with "x", the 「1」 match no longer exists. 12:15
a DWIM argument would perhaps claim that you shouldn't attempt to replace something which is no longer there :P
a sanity argument might try to show that .subst and :ex don't mix well, even in less involved circumstances. (I don't know whether that's true, though.) 12:16
lizmat masak: well, the .match is pretty agnostic about its use by .subst 12:19
so fwiw, the match still exists
masak oh, sure
lizmat *or* we would need to restart a match after each substitute
masak I have no conceptual quibbles about the match
lizmat which would be *BAD* from a performance point of view 12:20
masak it's more like -- does it make sense to exhaustively substitute, the way you can exhaustively match?
my gut feeling is "no, it doesn't"
but I don't have proof
jnthn My initial thought is "probably not"
masak yeah, that
jnthn Or at least "it's very hard to think about"
masak to the extent I understand it, it seems a bad idea 12:21
lizmat yeah... so I'll disallow :ex and :ov in .subst and see what/who starts complaining?
jnthn (Since the text you're replacing may not be what it was at the time of the match)
masak because it's about overlapping matches -- but whenever you make the first substitution on something overlapping, you in a sense invalidate the other overlapping match 12:22
lizmat yup
jnthn The moment the length of the subsituted thing is different from the matched thing, you're in a world of hurt with indexes too
lizmat so my idea is to disallow now, and maybe allow later if we figured a way to have it make sense ?
masak +1
jnthn I guess we didn't have any spectests for being able to do it? :) 12:23
lizmat pretty sure we don't, but lemme test that assumption
masak wouldn't hurt to make the error message a bit apologetic and say that we don't have a good sense of how to do this rather than "it's bloody impossible" :P
just in case someone in the future figures out a way
perlpilot
.oO( Just add a :junction modifier to make the overlapping substitution return a junction of substituted strings ;-) )
12:26
lizmat lunch&
masak perlpilot: I'm so relieved I don't have to handle the fallout of someone seriously proposing that. 12:29
jnthn ;) 12:30
perlpilot yesterday, before a demonstration meeting I was talking about the most dangerous phrases all start with something like "can't you just ..." and then the execs came in and the demo got started for real. About 20 minutes in, one of the execs hyperfocuses on something everyone else thinks is insignificant and says "Can't you just turn turn <feature> off?" We all had a nice chat about that after the demo :) 12:37
s/turn turn/turn/ 12:38
dalek kudo/nom: c8b20f2 | jnthn++ | src/core/ (2 files):
Pass on --optimize setting when precomping.
12:40
kudo/nom: ab11e6a | jnthn++ | src/core/CompUnit/PrecompilationRepository.pm:
Include precomp flags in debug output.
jnthn proves that you can't just turn off the optimizer to eliminate the precomp bug he's hunting
Figured the above two patches are generally useful for others though, so at least something came out of trying that hypothesis. 12:41
MasterDuke_ in the middle of trying to turn more BOOTSTRAPATTRs to Attributes, i also noticed attributes are only ever of type Mu or native (e.g., int, str, bigint) 12:51
dalek kudo/nom: 326aeb0 | lizmat++ | src/core/Str.pm:
Unlegalize :ov and :ex in .subst
12:52
MasterDuke_ is there a reason some of those couldn't be more precise?
[Coke] perlpilot: (can't you just) archive.oreilly.com/pub/post/cant_y...redux.html 12:54
lizmat MasterDuke_: maybe more precise types don't exist yet at that point ?
MasterDuke_ i also tried converting $!arity in Signature from Mu to int. i got it to build (with what seems to be a minor change to create_signature()), but didn't have time to run a spectest. however, is this a welcome change?
lizmat MasterDuke_: I think it is desirable from a memory usage point of view 12:55
MasterDuke_: but I seem to recall some issues with int attributes on JVM (but that maybe long ago) 12:56
MasterDuke_ lizmat: for some its future type might not be available, this is in BOOTSTRAP.nqp, but i think it might be possible to do some types
lizmat: many of them are already int, i just didn't see why $!arity wasn't 12:57
lizmat well, if you can get it to work, more power to you :-) 12:58
perlpilot [Coke]++ alester++ 12:59
jnthn nine: When we run Rakudo to precomp, do we somehow take a different codepath than the normal compiler stages thing? 13:09
nine: Trying to figure out why passing along --optimize=off in c8b20f2 was seemingly not enough 13:10
Oh...though it may be that I disabled an optimization and we rely on the opt to not have the problem
MasterDuke_ jnthn: if you've seen my recent MoarVM PR it was a change i made to help when trying to convert list BOOTSTRAPATTRs to Attributes. if i change Parameter.$!named_names ( github.com/rakudo/rakudo/blob/nom/....nqp#L1464 ) to an Attribute (with a $type of List) with a non auto_viv_container it complains that i'm trying to put an NQPArray into a BOOTStr at github.com/rakudo/rakudo/blob/nom/s
jnthn List won't work 13:11
List is a Perl 6 type
No idea where the BOOTStr comes from though 13:12
MasterDuke_ ok, good to know, i'll have to change that
damn, that's the part i was going to ask about
jnthn A wild guess would be that somehow we generate a hint wrongly 13:13
MasterDuke_ what would the correct $type be? Iterable? 13:15
huh, haven't looked at hints yet 13:16
masak .oO( a wild guess appears! ) 13:19
MasterDuke_ btw, i was using List because i saw this in Parameter.pm: method named_names() { nqp::p6bindattrinvres(nqp::create(List),List,'$!reified',$!named_names) }, which i assume would just become: method named_names() { $!named_names } if i get the change made? 13:21
lizmat MasterDuke_: yes 13:22
arnsholt If it's going to contain an NQPArray, I think it'll have to be Mu
lizmat ah, I assumed it would be List
but isn't it already an NQPArray at the moment ? 13:23
jnthn MasterDuke_: You can't put a Perl 6 type on that attr 13:25
Mu will do 'cus it can be anything
dalek kudo/nom: b90c741 | lizmat++ | src/core/ (2 files):
Give using :ex|ov its own error
13:26
MasterDuke_ jnthn: interesting. in that case, why doesn't it work to use scalar_attr() with no auto_viv for that attr? (scalar_attr() is a bad name at that point, it doesn't do anything with Scalar) 13:29
[Coke] lizmat: could you show us what that error message looks like for you locally now?
lizmat [Coke]: you mean the :ov|:ex one? 13:32
Cannot use :ex adverb in Str.subst, got True 13:33
Cannot use :ov adverb in Str.subst, got True
jnthn MasterDuke_: No idea, sorry 13:35
It seems the optimizer is hiding a precomp bug somehow: github.com/jnthn/oo-monitors/issues/7 13:36
Think somebody mentioned here a while back the --optimize=off broke some tests. May be related to the issue I'm currently hunting.
[Coke] oh, the got is the value. Danke. 13:37
MasterDuke_ jnthn: oh well, thanks for the help, i'll keep messing around then 13:38
dalek kudo/nom: 23faf61 | jnthn++ | src/Perl6/Optimizer.nqp:
Check level before transforming.

  --optimize=0 should run analyses, but not actually transform.
13:47
lizmat m: sub a(:$/) { say $/ }; a |("/" => 42) # not sure we should allow :$/ ? 13:49
camelia rakudo-moar b90c74: OUTPUT«42␤»
jnthn I think we'll survive :)
lizmat hehe
jnthn Doesn't do any harm 13:50
Don't think it's worth the extra error checking code to rule it out
lizmat m: sub a(:$_) { say $/ }; a |("_" => 42) # doesn't work with $_
camelia rakudo-moar b90c74: OUTPUT«Nil␤»
jnthn m: sub a(:$_) { say $_ }; a |("_" => 42)
camelia rakudo-moar b90c74: OUTPUT«42␤»
jnthn Does it you say the correct var ;)
lizmat ah, duh :-) 13:51
dalek ast/lexical_module_load: 96badd3 | niner++ | / (4 files):
Fixup tests for lexical module loading

We now need to explicitly use modules if we want to use their symbols and can no longer rely on them being loaded by one of our dependencies.
15:00
ast/lexical_module_load: 2f45726 | niner++ | / (2 files):
Test that globals of loaded modules are imported lexically
ast/lexical_module_load: 02e63a6 | niner++ | packages/S11-modules/Main/Nested.pm:
Remove superfluous use statement
kudo/nom: 4943ef3 | jnthn++ | src/Perl6/World.nqp:
Clean up compiler services object at compunit end.

It may end up being closed over in MOP modules, and then we try to serialize the Perl6::World as a result, which goes predictably badly. This cleans up the reference to the world at the end of the compunit, so we won't end up with this problem.
15:02
kudo/lexical_module_load: 52fae8e | niner++ | src/Perl6/World.nqp:
Fix our scoped nested package swallowed by lexically scoped parent

In "use Foo; class Foo::Bar { }" Foo::Bar would be created as child of the lexically imported Foo class and was thus missing from the globals. Previous fixes only handled the case when Foo was a stub package, not when it was a full class. Remove the special case and fix the follow up bug that we now got a duplicate symbol when trying to lexically override classes in the RESTRICTED setting. There's no need to upgrade the main package to a global if we only want to create a lexically scoped child anyway.
15:05
kudo/nom: ae85bac | lizmat++ | src/core/ (2 files):
Fix "abc".match(/a<(bc)>/, :as(Str)): abc -> bc

Spotted by nicq20++ . Also removed support for as(Range) and as(Pair) as there is no real performance win to be gotten there (at least for now). This also removes the rather new Cursor.RANGE and Cursor.FROMTO methods.
15:14
kudo/nom: 3fdae43 | (Zoffix Znet)++ | src/core/List.pm:
Make arity-0 infix:<Z> return a Seq instead of a List

To make it consistently return a Seq for all inputs
15:16
viki ZOFVM: Files=1198, Tests=130083, 130 wallclock secs (20.06 usr 2.96 sys + 2293.52 cusr 201.63 csys = 2518.17 CPU) 15:19
dalek ast: b42e604 | (Zoffix Znet)++ | S03-metaops/zip.t:
Test artity-0 Z returns a Seq
15:21
lizmat afk& 15:29
dalek kudo/nom: 70a367d | jnthn++ | src/ (3 files):
Make nextwith and friends be real routines.

This means they are compile-time resolved, rather than runtime, and so calls to them will produce better code. Done to see if it would avoid a precomp issue (it didn't), but a good change to have.
15:49
viki \o/ 15:50
travis-ci Rakudo build errored. Jonathan Worthington 'Check level before transforming.
travis-ci.org/rakudo/rakudo/builds/170778730 github.com/rakudo/rakudo/compare/b...faf61f5f0e
buggable [travis build above] ✓ All failures are due to timeout (1), missing build log (0), or GitHub connectivity (0). All failures are on JVM only.
jnthn OO::Monitors, with a workaround applied, now seems to precomp fine 15:51
Well, more to the point, things that use it can precomp fine
m: class A { class B::C {} }; use MONKEY; augment class A { class B::C { } } 16:19
camelia rakudo-moar 70a367: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B::C␤»
jnthn spectests a fix for that error reporting bug plus the simpler case in RT #129968 16:22
dalek kudo/nom: ab94694 | jnthn++ | src/Perl6/ (2 files):
Make find_symbol consider the current package.

Fixes a couple of error reporting bugs.
16:32
ast: 3e2326b | jnthn++ | S32-exceptions/misc.t:
Tests to cover RT #129968.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129968
nine When github.com/bbkr/jsonrpc/pull/30 is merged, Task::Star installs successfully on lexical_module_loading 16:50
timotimo ooooooh, that's a good milestone
nine DBIish uncovered a rakudo bug which I fixed today. Otherwise adding use statements helped but most installed just fine unmodified. 16:51
use-ok is pretty useless however. It will load the module but the symbols won't be visible anymore in the test script. So you'd need to do a plain use anyway but then the use-ok is superfluous. 16:52
timotimo mhm 16:55
ilmari use_ok is considered pretty useless in perl5 land too
use ok 'Some::Module'; is a bit better, since it happens at compile time and imports work, but I prefer just 'use'. it's not like there's any point in running the rest of the test if you can't load the module under test 16:57
nine And the error messages usually tell you quite well what's broken. 17:00
We could deprecate use-ok and maybe catch a couple of dists that would break early on? 17:08
viki I'm surprised it crashes if it can't load the module. I'd expect the test function to output ok/nok and return the value 17:13
timotimo oh, the function will not crash 17:14
viki I just tried and it did.
timotimo it's the rest of compilation that thinks the result of using that module would crash and burn
...oh?
viki oh, never mind. I'm just used to running with -v switch, and didn't this time 17:16
I see no reason to deprecate it then. Can be useful for TDD, with a test file that has just a bunch of `use-ok`s for all the modules you plan to develop by your design. 17:17
with all the benefits of skips and todos 17:18
timotimo that's fair 17:23
FROGGS viki++ 17:51
dalek kudo/js: 7baae04 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js:
[js] Fix coercing a rakudo_scalar to num or str.
18:15
kudo/js: 82846b6 | (Pawel Murias)++ | src/core/Str.pm:
[js] Add some NYI stubs for unicode stuff.
p: 6ae77ff | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js:
[js] Allow Uninstantiable to be composed, and when creating an instance of it produce a better error message.
[Coke] pmurias++ 18:17
lizmat m: class A { class B {} }; use MONKEY; augment class A { augment class B { } } # jnthn :-) 19:21
camelia rakudo-moar ab9469: OUTPUT«===SORRY!=== Error while compiling <tmp>␤You tried to augment class B, but it does not exist␤at <tmp>:1␤------> ONKEY; augment class A { augment class B⏏ { } } # jnthn :-)␤ expecting any of:␤ generic role␤»
lizmat m: class A { class B {} }; use MONKEY; augment class A { class B { } } # doesn't exist ?? :-)
camelia rakudo-moar ab9469: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Redeclaration of symbol 'B'␤at <tmp>:1␤------> }; use MONKEY; augment class A { class B⏏ { } } # doesn't exist ?? :-)␤ expecting any of:␤ generic role␤»
geekosaur gets a headache 19:22
RabidGravy clearly need some more goat sacrificing or something 19:24
japhb jnthn++ xx 1000; # OO::Monitors precomp -- `time perl6 -I lib -M Terminal::Print -e ''` on one of my boxes dropped from 4.957s to .346s! 19:38
jnthn \o/ 19:39
viki \o/
jnthn lizmat: Heh, bet that was bust before also. It probably just needs a similar find_symbol call tweak 19:40
Lemme take a quick look...
Think I found it. Compiling. :) 19:44
lizmat jnthn++
jnthn Yup 19:46
jnthn writes a spectest and runs the suite
m: use Test; lives-ok 'class A { class B {} }; use MONKEY; augment class A { augment class B { } }' 19:47
camelia rakudo-moar ab9469: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Calling lives-ok(Str) will never work with any of these multi signatures:␤ (Callable $code, $reason = "")␤at <tmp>:1␤------> use Test; ⏏lives-ok 'class A { class B {} }; use MO␤»
jnthn bah
m: use Test; eval-lives-ok 'class A { class B {} }; use MONKEY; augment class A { augment class B { } }' 19:48
camelia rakudo-moar ab9469: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# Error: You tried to augment class B, but it does not exist␤»
lizmat m: say $*PROGRAM ~~ /e/; dd $/.orig # jnthn: is there a reason why .orig is not a Str in this case ? 19:53
camelia rakudo-moar ab9469: OUTPUT«「e」␤"<tmp>".IO(:SPEC(IO::Spec::Unix),:CWD("/home/camelia"))␤»
dalek kudo/nom: 87880ca | jnthn++ | src/Perl6/Grammar.nqp:
Fix augment of a nested package.
19:54
ast: 78e4df6 | jnthn++ | S12-class/augment-supersede.t:
Test augment of a nested class.
jnthn lizmat: orig is always mean to be what you originally matched against
*meant 19:55
m: say $*PROGRAM ~~ /e/; dd $/.CURSOR.target
camelia rakudo-moar ab9469: OUTPUT«「e」␤"<tmp>"␤»
lizmat so we need to stringify everytime then :-(
jnthn vs that, which is always a Str
Or just use target? :) 19:56
lizmat ah! ok
jnthn Oh, and 87880ca should deal with the augment discrepancy :) 19:59
lizmat jnthn: cool, makes it easier for me to refactor Str.subst 20:01
jnthn :) 20:02
m: use Test; my $warned; { EVAL 'my $!a'; ok 'no warning'; CONTROL { when CX::Warn { nok 'warned' } } 20:07
camelia rakudo-moar ab9469: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> NTROL { when CX::Warn { nok 'warned' } }⏏<EOL>␤»
jnthn m: use Test; my $warned; { EVAL 'my $!a'; ok 'no warning'; CONTROL { when CX::Warn { nok 'warned' } } }
camelia rakudo-moar ab9469: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤»
jnthn d'oh :) 20:08
m: use Test; my $warned; { EVAL 'my $!a'; pass 'no warning'; CONTROL { when CX::Warn { flunk 'warned' } } }
camelia rakudo-moar ab9469: OUTPUT«not ok 1 - warned␤␤# Failed test 'warned'␤# at <tmp> line 1␤»
dalek kudo/nom: f21887c | jnthn++ | src/core/Exception.pm:
Avoid warning when producing an exception message.
20:18
ast: 1f553c2 | jnthn++ | S32-exceptions/misc.t:
Test to cover RT #129921.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129921
jnthn A simple one to finish up the day :)
dalek kudo/nom: e65d931 | lizmat++ | src/core/Match.pm:
Make Match.Str|prematch|postmatch 2x as fast

Instead of using $!orig (which is HLL and could be something other than a Str), use $!CURSOR.target instead. jnthn++ for the idea.
20:22
lizmat jnthn: ^^^ also a simple one... :-)
jnthn :)
jnthn once again managed to find useful things to do that weren't fixing hyper/race like he's been planning for the last ages...
lizmat well, that's still better than needing to ditch 1.5 week of work 20:23
:-)
(which was take #1 on the Str.match refactor
) 20:24
jnthn Aww 20:25
Glad it worked out better second time
lizmat yeah... sometimes you need to be hard on yourself :-)
jnthn Not throwing away the wrong thing tends to make stuff even harder later...
jnthn goes for some fresh air
timotimo 2x is amazing 20:27
lizmat timotimo: yeah, I was surprised by that as well
dalek kudo/nom: 1fce095 | lizmat++ | src/core/Match.pm:
Squeeze about 1% out of Match.Bool

Not a lot, but it's used a lot
20:48
lizmat hmmm.... can we actually have a failed Match object nowadays? 20:49
I mean, .match sets $/ to Nil or () on a failed match 20:50
timotimo what about submatches? 20:51
we definitely use failed cursors to signal state around, i think. but i'm not sure baout match objects
lizmat hmm.... 20:52
oddly enough, only 3 tests in roast fail if Match.Bool always returns True 21:00
apparently Grammar.subparse can create failed Match objects 21:01
moritz that's likely a hysterical accident 21:03
failed Match objects used to be a thing, and have later been replaced by Nil (?)
lizmat ok, yes, indeed
looks like subparse is faulty
travis-ci Rakudo build passed. Jonathan Worthington 'Make find_symbol consider the current package. 21:10
travis-ci.org/rakudo/rakudo/builds/170830292 github.com/rakudo/rakudo/compare/7...9469457350
cygx o/ 21:33
m: say "abc" ~~ /)> . <(/
camelia rakudo-moar 1fce09: OUTPUT«#<failed match>␤»
cygx \o/
lizmat so should we consider that a bug or not ?
m: say "foo" if "abc" ~~ /)> . <(/ 21:34
camelia ( no output )
cygx depends on whether failed matches are truly no longer supposed to be a thing 21:36
Zoffix Failed match sounds good to me. The match start and end markers make no sense.
m: say ("abc" ~~ /)> . <(/).^name
camelia rakudo-moar 1fce09: OUTPUT«Match␤»
Zoffix m: say ("abc" ~~ /blasafdsad/).^name 21:37
camelia rakudo-moar 1fce09: OUTPUT«Nil␤»
Zoffix interesting
cygx if we consider this a user error, it should fail or die
Zoffix m: my $s = ')>'; say "abc" ~~ /<$s> . <(/ 21:40
camelia rakudo-moar 1fce09: OUTPUT«「」␤»
Zoffix ¯\_(ツ)_/¯
m: my $s = ')> . <('; say "abc" ~~ /<meow=$s>/
camelia rakudo-moar 1fce09: OUTPUT«「a」␤ meow #<failed match>␤»
Zoffix cool
m: my $s = ')> .+ <('; say "All your base are belong to us" ~~ /<meow=$s>/ 21:41
camelia rakudo-moar 1fce09: OUTPUT«「All your base are belong to us」␤ meow #<failed match>␤»
Zoffix ehehe
dalek kudo/nom: a1fceeb | lizmat++ | src/core/Rakudo/Internals.pm:
Initialize the $*VAR initializers hash ad-hoc

If we have an execution error during optimizing, we should at least get something now, rather than complaining about the $*VAR initializers hash not being initialized
21:50
lizmat ok, getting too tired for this 21:59
good night, #perl6-dev!
cygx good night o/ 22:01
timotimo lizmat++ # good work today 22:04