Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-10-26

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

All times shown according to UTC.

Time Nick Message
00:02 geekosaur joined #perl6-dev
01:39 FROGGS_ 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
04:41 cognominal joined #perl6-dev
05:36 cog_ joined #perl6-dev
05:50 RabidGravy joined #perl6-dev
07:12 FROGGS_ o/
07:38 [Tux] This is Rakudo version 2016.10-57-g4829f1c built on MoarVM version 2016.10-15-g715e39a
07:38 [Tux] csv-ip5xs        3.283
07:38 [Tux] test            14.585
07:38 [Tux] test-t           6.813
07:38 [Tux] csv-parser      17.030
08:41 FROGGS jnthn: why dont we have the highwater here?
08:41 FROGGS m: grammar G { token TOP { a+ } }; say G.subparse("aaaaaabbbbbb"); say $/.CURSOR.'!highwater'()
08:41 camelia rakudo-moar 4829f1: OUTPUT«「aaaaaa」␤0␤»
08:52 dalek roast: f0d17aa | niner++ | / (3 files):
08:52 dalek roast: Another test for nested packages
08:52 dalek roast: review: https://github.com/perl6/roast/commit/f0d17aadf7
09:05 arnsholt FROGGS: I think you need a dba to set the highwater mark
09:05 arnsholt (Grepping through the sources, looks like that's what sets it)
09:05 lizmat git diff
09:05 lizmat oops
09:07 jnthn - A bug
09:07 jnthn + A fix
09:07 lizmat if it only were that easy  :-)
09:07 arnsholt =D
09:08 * lizmat gives up on an opt that would give Str.match another 1%
09:08 jnthn FROGGS: Only certain things update the highwater.
09:08 jnthn FROGGS: Of note, protoregexes
09:08 jnthn FROGGS: Also alternations
09:08 lizmat runs fine in a script, breaks the build with "Invocant requires a type object of type List, but an object instance was passed"
09:08 jnthn They're basically the places where we can also produce highexpect
09:08 lizmat weird
09:09 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:10 FROGGS arnsholt: ahh, that reminds me that we dont have dba yet :o)
09:10 FROGGS arnsholt: (outside of nqp that is)
09:22 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:25 jnthn m: "abc" ~~ /. [ [d|e] || { say $/.CURSOR."!highwater"() }]/
09:25 camelia rakudo-moar 4829f1: OUTPUT«1␤»
09:25 jnthn m: "abc" ~~ /.. [ [d|e] || { say $/.CURSOR."!highwater"() }]/
09:25 camelia rakudo-moar 4829f1: OUTPUT«2␤»
09:50 |Tux| joined #perl6-dev
10:12 dalek rakudo/nom: 04b6da1 | lizmat++ | src/core/Str.pm:
10:12 dalek rakudo/nom: The list of iterators was from a previous idea
10:12 dalek rakudo/nom:
10:12 dalek rakudo/nom: In the new form, we only ever have 2 iterators: one that post processes
10:12 dalek rakudo/nom: cursor values, and one that does not.  So make them proper named classes
10:12 dalek rakudo/nom: for better optimizability.
10:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/04b6da1d83
10:16 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␤»
10:16 lizmat or at least LTA error ?
10:18 jnthn No idea what it thinks it's doing there :)
10:20 lizmat rakudobug it to be sure ?
10:27 jnthn Sure, something's going on
11:15 moritz should probably a redeclaration error
11:16 timotimo are we allowing augmentation of packages that way?
11:20 moritz well, package is the only thing you can redeclare implicitly
11:21 moritz but in the example above, A::B is redeclared
11:21 timotimo yeah
11:28 dalek rakudo/nom: 4f87b54 | lizmat++ | src/core/Str.pm:
11:28 dalek rakudo/nom: Don't use indexes
11:28 dalek rakudo/nom:
11:28 dalek rakudo/nom: Again, if we're going to define "constants", they might as well be the
11:28 dalek rakudo/nom: actual thing.  So get rid of a level of indirection, which gives us
11:28 dalek rakudo/nom: about 1%.  Not a lot, but for such a vital part of the language worth
11:28 dalek rakudo/nom: it.  And it should also improve readability for a change  :-)
11:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4f87b5460f
12:10 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␤␤»
12:11 lizmat or should we maybe disallow :ex and :ov explicitely in Str.subst ?
12:12 lizmat m: say "1234567890".subst(/../, "x", :ov)   # interesting, but is that what the user expects ?
12:12 camelia rakudo-moar 4f87b5: OUTPUT«x34567890x4567890x567890x67890x7890x890x90x0x␤»
12:13 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 masak also -- unrelatedly -- there is something that bothers me about the phrasing of that message
12:14 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」)␤»
12:14 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
12:14 lizmat the problem is that subst assumes monotonically increasing from/to values and no overlap
12:15 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 masak a DWIM argument would perhaps claim that you shouldn't attempt to replace something which is no longer there :P
12:16 masak 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:19 lizmat masak: well, the .match is pretty agnostic about its use by .subst
12:19 lizmat so fwiw, the match still exists
12:19 masak oh, sure
12:19 lizmat *or* we would need to restart a match after each substitute
12:19 masak I have no conceptual quibbles about the match
12:20 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?
12:20 masak my gut feeling is "no, it doesn't"
12:20 masak but I don't have proof
12:20 jnthn My initial thought is "probably not"
12:20 masak yeah, that
12:20 jnthn Or at least "it's very hard to think about"
12:21 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?
12:21 jnthn (Since the text you're replacing may not be what it was at the time of the match)
12:22 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
12:22 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
12:22 lizmat so my idea is to disallow now, and maybe allow later if we figured a way to have it make sense ?
12:22 masak +1
12:23 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
12:23 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
12:23 masak just in case someone in the future figures out a way
12:26 perlpilot .oO( Just add a :junction modifier to make the overlapping substitution return a junction of substituted strings ;-)  )
12:26 lizmat lunch&
12:29 masak perlpilot: I'm so relieved I don't have to handle the fallout of someone seriously proposing that.
12:30 jnthn ;)
12:37 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:38 perlpilot s/turn turn/turn/
12:40 dalek rakudo/nom: c8b20f2 | jnthn++ | src/core/ (2 files):
12:40 dalek rakudo/nom: Pass on --optimize setting when precomping.
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8b20f230a
12:40 dalek rakudo/nom: ab11e6a | jnthn++ | src/core/CompUnit/PrecompilationRepository.pm:
12:40 dalek rakudo/nom: Include precomp flags in debug output.
12:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab11e6a970
12:40 * jnthn proves that you can't just turn off the optimizer to eliminate the precomp bug he's hunting
12:41 jnthn Figured the above two patches are generally useful for others though, so at least something came out of trying that hypothesis.
12:45 MasterDuke_ joined #perl6-dev
12:51 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:52 dalek rakudo/nom: 326aeb0 | lizmat++ | src/core/Str.pm:
12:52 dalek rakudo/nom: Unlegalize :ov and :ex in .subst
12:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/326aeb0d25
12:52 MasterDuke_ is there a reason some of those couldn't be more precise?
12:54 [Coke] perlpilot: (can't you just) http://archive.oreilly.com/pub/post/cant_you_just_redux.html
12:54 lizmat MasterDuke_: maybe more precise types don't exist yet at that point ?
12:54 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?
12:55 lizmat MasterDuke_: I think it is desirable from a memory usage point of view
12:56 lizmat 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
12:57 MasterDuke_ lizmat: many of them are already int, i just didn't see why $!arity wasn't
12:58 lizmat well, if you can get it to work, more power to you  :-)
12:59 perlpilot [Coke]++ alester++
13:09 jnthn nine: When we run Rakudo to precomp, do we somehow take a different codepath than the normal compiler stages thing?
13:10 jnthn nine: Trying to figure out why passing along --optimize=off in c8b20f2 was seemingly not enough
13:10 jnthn Oh...though it may be that I disabled an optimization and we rely on the opt to not have the problem
13:10 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 ( https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/BOOTSTRAP.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 https://github.com/rakudo/rakudo/blob/nom/s
13:11 jnthn List won't work
13:11 jnthn List is a Perl 6 type
13:12 jnthn No idea where the BOOTStr comes from though
13:12 MasterDuke_ ok, good to know, i'll have to change that
13:12 MasterDuke_ damn, that's the part i was going to ask about
13:13 jnthn A wild guess would be that somehow we generate a hint wrongly
13:15 MasterDuke_ what would the correct $type be? Iterable?
13:16 MasterDuke_ huh, haven't looked at hints yet
13:19 * masak .oO( a wild guess appears! )
13:21 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:22 lizmat MasterDuke_: yes
13:22 arnsholt If it's going to contain an NQPArray, I think it'll have to be Mu
13:22 lizmat ah, I assumed it would be List
13:23 lizmat but isn't it already an NQPArray at the moment ?
13:25 jnthn MasterDuke_: You can't put a Perl 6 type on that attr
13:25 jnthn Mu will do 'cus it can be anything
13:26 dalek rakudo/nom: b90c741 | lizmat++ | src/core/ (2 files):
13:26 dalek rakudo/nom: Give using :ex|ov its own error
13:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b90c7414a0
13:29 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?
13:32 lizmat [Coke]: you mean the :ov|:ex one?
13:33 lizmat Cannot use :ex adverb in Str.subst, got True
13:33 lizmat Cannot use :ov adverb in Str.subst, got True
13:35 jnthn MasterDuke_: No idea, sorry
13:36 jnthn It seems the optimizer is hiding a precomp bug somehow: https://github.com/jnthn/oo-monitors/issues/7
13:36 jnthn Think somebody mentioned here a while back the --optimize=off broke some tests. May be related to the issue I'm currently hunting.
13:37 [Coke] oh, the got is the value. Danke.
13:38 MasterDuke_ jnthn: oh well, thanks for the help, i'll keep messing around then
13:47 dalek rakudo/nom: 23faf61 | jnthn++ | src/Perl6/Optimizer.nqp:
13:47 dalek rakudo/nom: Check level before transforming.
13:47 dalek rakudo/nom:
13:47 dalek rakudo/nom: --optimize=0 should run analyses, but not actually transform.
13:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/23faf61f5f
13:49 lizmat m: sub a(:$/) { say $/ }; a |("/" => 42)  # not sure we should allow :$/ ?
13:49 camelia rakudo-moar b90c74: OUTPUT«42␤»
13:49 jnthn I think we'll survive :)
13:49 lizmat hehe
13:50 jnthn Doesn't do any harm
13:50 jnthn Don't think it's worth the extra error checking code to rule it out
13:50 lizmat m: sub a(:$_) { say $/ }; a |("_" => 42) # doesn't work with $_
13:50 camelia rakudo-moar b90c74: OUTPUT«Nil␤»
13:50 jnthn m: sub a(:$_) { say $_ }; a |("_" => 42)
13:50 camelia rakudo-moar b90c74: OUTPUT«42␤»
13:50 jnthn Does it you say the correct var ;)
13:51 lizmat ah, duh  :-)
15:00 dalek roast/lexical_module_load: 96badd3 | niner++ | / (4 files):
15:00 dalek roast/lexical_module_load: Fixup tests for lexical module loading
15:00 dalek roast/lexical_module_load:
15:00 dalek roast/lexical_module_load: We now need to explicitly use modules if we want to use their symbols and can
15:00 dalek roast/lexical_module_load: no longer rely on them being loaded by one of our dependencies.
15:00 dalek roast/lexical_module_load: review: https://github.com/perl6/roast/commit/96badd3743
15:00 dalek roast/lexical_module_load: 2f45726 | niner++ | / (2 files):
15:00 dalek roast/lexical_module_load: Test that globals of loaded modules are imported lexically
15:00 dalek roast/lexical_module_load: review: https://github.com/perl6/roast/commit/2f45726f93
15:00 dalek roast/lexical_module_load: 02e63a6 | niner++ | packages/S11-modules/Main/Nested.pm:
15:00 dalek roast/lexical_module_load: Remove superfluous use statement
15:00 dalek roast/lexical_module_load: review: https://github.com/perl6/roast/commit/02e63a6431
15:02 dalek rakudo/nom: 4943ef3 | jnthn++ | src/Perl6/World.nqp:
15:02 dalek rakudo/nom: Clean up compiler services object at compunit end.
15:02 dalek rakudo/nom:
15:02 dalek rakudo/nom: It may end up being closed over in MOP modules, and then we try to
15:02 dalek rakudo/nom: serialize the Perl6::World as a result, which goes predictably badly.
15:02 dalek rakudo/nom: This cleans up the reference to the world at the end of the compunit,
15:02 dalek rakudo/nom: so we won't end up with this problem.
15:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4943ef3666
15:05 dalek rakudo/lexical_module_load: 52fae8e | niner++ | src/Perl6/World.nqp:
15:05 dalek rakudo/lexical_module_load: Fix our scoped nested package swallowed by lexically scoped parent
15:05 dalek rakudo/lexical_module_load:
15:05 dalek rakudo/lexical_module_load: In "use Foo; class Foo::Bar { }" Foo::Bar would be created as child of
15:05 dalek rakudo/lexical_module_load: the lexically imported Foo class and was thus missing from the globals.
15:05 dalek rakudo/lexical_module_load: Previous fixes only handled the case when Foo was a stub package, not
15:05 dalek rakudo/lexical_module_load: when it was a full class.
15:05 dalek rakudo/lexical_module_load: Remove the special case and fix the follow up bug that we now got a
15:05 dalek rakudo/lexical_module_load: duplicate symbol when trying to lexically override classes in the
15:05 dalek rakudo/lexical_module_load: RESTRICTED setting. There's no need to upgrade the main package to a
15:05 dalek rakudo/lexical_module_load: global if we only want to create a lexically scoped child anyway.
15:05 dalek rakudo/lexical_module_load: review: https://github.com/rakudo/rakudo/commit/52fae8e2d6
15:14 dalek rakudo/nom: ae85bac | lizmat++ | src/core/ (2 files):
15:14 dalek rakudo/nom: Fix "abc".match(/a<(bc)>/, :as(Str)): abc -> bc
15:14 dalek rakudo/nom:
15:14 dalek rakudo/nom: Spotted by nicq20++ .  Also removed support for as(Range) and as(Pair)
15:14 dalek rakudo/nom: as there is no real performance win to be gotten there (at least for
15:14 dalek rakudo/nom: now). This also removes the rather new Cursor.RANGE and Cursor.FROMTO
15:14 dalek rakudo/nom: methods.
15:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae85bac528
15:16 dalek rakudo/nom: 3fdae43 | (Zoffix Znet)++ | src/core/List.pm:
15:16 dalek rakudo/nom: Make arity-0 infix:<Z> return a Seq instead of a List
15:16 dalek rakudo/nom:
15:16 dalek rakudo/nom: To make it consistently return a Seq for all inputs
15:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fdae43ec0
15:19 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:21 dalek roast: b42e604 | (Zoffix Znet)++ | S03-metaops/zip.t:
15:21 dalek roast: Test artity-0 Z returns a Seq
15:21 dalek roast: review: https://github.com/perl6/roast/commit/b42e60436e
15:29 lizmat afk&
15:49 dalek rakudo/nom: 70a367d | jnthn++ | src/ (3 files):
15:49 dalek rakudo/nom: Make nextwith and friends be real routines.
15:49 dalek rakudo/nom:
15:49 dalek rakudo/nom: This means they are compile-time resolved, rather than runtime, and
15:49 dalek rakudo/nom: so calls to them will produce better code. Done to see if it would
15:49 dalek rakudo/nom: avoid a precomp issue (it didn't), but a good change to have.
15:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/70a367d64d
15:50 viki \o/
15:50 travis-ci joined #perl6-dev
15:50 travis-ci Rakudo build errored. Jonathan Worthington 'Check level before transforming.
15:50 travis-ci https://travis-ci.org/rakudo/rakudo/builds/170778730 https://github.com/rakudo/rakudo/compare/b90c7414a042...23faf61f5f0e
15:50 travis-ci left #perl6-dev
15:50 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.
15:51 jnthn OO::Monitors, with a workaround applied, now seems to precomp fine
15:51 jnthn Well, more to the point, things that use it can precomp fine
16:19 jnthn 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␤»
16:22 * jnthn spectests a fix for that error reporting bug plus the simpler case in RT #129968
16:32 dalek rakudo/nom: ab94694 | jnthn++ | src/Perl6/ (2 files):
16:32 dalek rakudo/nom: Make find_symbol consider the current package.
16:32 dalek rakudo/nom:
16:32 dalek rakudo/nom: Fixes a couple of error reporting bugs.
16:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab94694573
16:32 dalek roast: 3e2326b | jnthn++ | S32-exceptions/misc.t:
16:32 dalek roast: Tests to cover RT #129968.
16:32 dalek roast: review: https://github.com/perl6/roast/commit/3e2326ba25
16:32 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129968
16:50 nine When https://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
16:51 nine DBIish uncovered a rakudo bug which I fixed today. Otherwise adding use statements helped but most installed just fine unmodified.
16:52 nine 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:55 timotimo mhm
16:55 ilmari use_ok is considered pretty useless in perl5 land too
16:57 ilmari 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
17:00 nine And the error messages usually tell you quite well what's broken.
17:08 nine We could deprecate use-ok and maybe catch a couple of dists that would break early on?
17:13 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:14 timotimo oh, the function will not crash
17:14 viki I just tried and it did.
17:14 timotimo it's the rest of compilation that thinks the result of using that module would crash and burn
17:14 timotimo ...oh?
17:16 viki oh, never mind. I'm just used to running with -v switch, and didn't this time
17:17 viki 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:18 viki with all the benefits of skips and todos
17:23 timotimo that's fair
17:51 FROGGS viki++
18:15 pmurias joined #perl6-dev
18:15 dalek rakudo/js: 7baae04 | (Pawel Murias)++ | src/vm/js/perl6-runtime/runtime.js:
18:15 dalek rakudo/js: [js] Fix coercing a rakudo_scalar to num or str.
18:15 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/7baae044de
18:15 dalek rakudo/js: 82846b6 | (Pawel Murias)++ | src/core/Str.pm:
18:15 dalek rakudo/js: [js] Add some NYI stubs for unicode stuff.
18:15 dalek rakudo/js: review: https://github.com/rakudo/rakudo/commit/82846b624e
18:15 dalek nqp: 6ae77ff | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js:
18:15 dalek nqp: [js] Allow Uninstantiable to be composed, and when creating an instance of it produce a better error message.
18:15 dalek nqp: review: https://github.com/perl6/nqp/commit/6ae77ffbd6
18:17 [Coke] pmurias++
18:21 RabidGravy joined #perl6-dev
18:38 vendethiel joined #perl6-dev
19:13 cognominal joined #perl6-dev
19:21 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␤»
19:21 lizmat m: class A { class B {} }; use MONKEY; augment class A { class B { } }   # doesn't exist  ??  :-)
19:21 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␤»
19:22 * geekosaur gets a headache
19:24 RabidGravy clearly need some more goat sacrificing or something
19:27 buggable joined #perl6-dev
19:38 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:39 jnthn \o/
19:39 viki \o/
19:40 jnthn lizmat: Heh, bet that was bust before also. It probably just needs a similar find_symbol call tweak
19:40 jnthn Lemme take a quick look...
19:44 jnthn Think I found it. Compiling. :)
19:44 lizmat jnthn++
19:46 jnthn Yup
19:46 * jnthn writes a spectest and runs the suite
19:47 jnthn 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␤»
19:47 jnthn bah
19:48 jnthn 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␤»
19:53 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"))␤»
19:54 dalek rakudo/nom: 87880ca | jnthn++ | src/Perl6/Grammar.nqp:
19:54 dalek rakudo/nom: Fix augment of a nested package.
19:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/87880cae16
19:54 dalek roast: 78e4df6 | jnthn++ | S12-class/augment-supersede.t:
19:54 dalek roast: Test augment of a nested class.
19:54 dalek roast: review: https://github.com/perl6/roast/commit/78e4df66af
19:54 jnthn lizmat: orig is always mean to be what you originally matched against
19:55 jnthn *meant
19:55 jnthn m: say $*PROGRAM ~~ /e/; dd $/.CURSOR.target
19:55 camelia rakudo-moar ab9469: OUTPUT«「e」␤"<tmp>"␤»
19:55 lizmat so we need to stringify everytime then  :-(
19:55 jnthn vs that, which is always a Str
19:56 jnthn Or just use target? :)
19:56 lizmat ah!  ok
19:59 jnthn Oh, and 87880ca should deal with the augment discrepancy :)
20:01 lizmat jnthn: cool, makes it easier for me to refactor Str.subst
20:02 jnthn :)
20:07 jnthn 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>␤»
20:07 jnthn m: use Test; my $warned; { EVAL 'my $!a'; ok 'no warning'; CONTROL { when CX::Warn { nok 'warned' } } }
20:07 camelia rakudo-moar ab9469: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤»
20:08 jnthn d'oh :)
20:08 jnthn m: use Test; my $warned; { EVAL 'my $!a'; pass 'no warning'; CONTROL { when CX::Warn { flunk 'warned' } } }
20:08 camelia rakudo-moar ab9469: OUTPUT«not ok 1 - warned␤␤# Failed test 'warned'␤# at <tmp> line 1␤»
20:18 dalek rakudo/nom: f21887c | jnthn++ | src/core/Exception.pm:
20:18 dalek rakudo/nom: Avoid warning when producing an exception message.
20:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f21887c9c8
20:18 dalek roast: 1f553c2 | jnthn++ | S32-exceptions/misc.t:
20:18 dalek roast: Test to cover RT #129921.
20:18 dalek roast: review: https://github.com/perl6/roast/commit/1f553c2156
20:18 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=129921
20:18 jnthn A simple one to finish up the day :)
20:22 dalek rakudo/nom: e65d931 | lizmat++ | src/core/Match.pm:
20:22 dalek rakudo/nom: Make Match.Str|prematch|postmatch 2x as fast
20:22 dalek rakudo/nom:
20:22 dalek rakudo/nom: Instead of using $!orig (which is HLL and could be something other
20:22 dalek rakudo/nom: than a Str), use $!CURSOR.target instead.  jnthn++ for the idea.
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e65d931b23
20:22 lizmat jnthn: ^^^ also a simple one...  :-)
20:22 jnthn :)
20:22 * 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...
20:23 lizmat well, that's still better than needing to ditch 1.5 week of work
20:23 lizmat :-)
20:23 lizmat (which was take #1 on the Str.match refactor
20:24 lizmat )
20:25 jnthn Aww
20:25 jnthn Glad it worked out better second time
20:25 lizmat yeah... sometimes you need to be hard on yourself  :-)
20:25 jnthn Not throwing away the wrong thing tends to make stuff even harder later...
20:25 * jnthn goes for some fresh air
20:27 timotimo 2x is amazing
20:27 lizmat timotimo: yeah, I was surprised by that as well
20:44 vendethiel joined #perl6-dev
20:48 dalek rakudo/nom: 1fce095 | lizmat++ | src/core/Match.pm:
20:48 dalek rakudo/nom: Squeeze about 1% out of Match.Bool
20:48 dalek rakudo/nom:
20:48 dalek rakudo/nom: Not a lot, but it's used a lot
20:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1fce095291
20:49 lizmat hmmm.... can we actually have a failed Match object nowadays?
20:50 lizmat I mean, .match sets $/ to Nil or () on a failed match
20:51 timotimo what about submatches?
20:51 timotimo we definitely use failed cursors to signal state around, i think. but i'm not sure baout match objects
20:52 lizmat hmm....
21:00 lizmat oddly enough, only 3 tests in roast fail if Match.Bool always returns True
21:01 lizmat apparently Grammar.subparse can create failed Match objects
21:03 moritz that's likely a hysterical accident
21:03 Zoffix joined #perl6-dev
21:03 moritz failed Match objects used to be a thing, and have later been replaced by Nil (?)
21:03 lizmat ok, yes, indeed
21:03 lizmat looks like subparse is faulty
21:10 travis-ci joined #perl6-dev
21:10 travis-ci Rakudo build passed. Jonathan Worthington 'Make find_symbol consider the current package.
21:10 travis-ci https://travis-ci.org/rakudo/rakudo/builds/170830292 https://github.com/rakudo/rakudo/compare/70a367d64dd7...ab9469457350
21:10 travis-ci left #perl6-dev
21:33 cygx joined #perl6-dev
21:33 cygx o/
21:33 cygx m: say "abc" ~~ /)> . <(/
21:33 camelia rakudo-moar 1fce09: OUTPUT«#<failed match>␤»
21:33 cygx \o/
21:33 lizmat so should we consider that a bug or not ?
21:34 lizmat m: say "foo" if "abc" ~~ /)> . <(/
21:34 camelia rakudo-moar 1fce09: ( no output )
21:36 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.
21:36 Zoffix m: say ("abc" ~~ /)> . <(/).^name
21:36 camelia rakudo-moar 1fce09: OUTPUT«Match␤»
21:37 Zoffix m: say ("abc" ~~ /blasafdsad/).^name
21:37 camelia rakudo-moar 1fce09: OUTPUT«Nil␤»
21:37 Zoffix interesting
21:37 cygx if we consider this a user error, it should fail or die
21:40 Zoffix m: my $s = ')>'; say "abc" ~~ /<$s> . <(/
21:40 camelia rakudo-moar 1fce09: OUTPUT«「」␤»
21:40 Zoffix ¯\_(ツ)_/¯
21:40 Zoffix m: my $s = ')> . <('; say "abc" ~~ /<meow=$s>/
21:40 camelia rakudo-moar 1fce09: OUTPUT«「a」␤ meow #<failed match>␤»
21:40 Zoffix cool
21:41 Zoffix 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>␤»
21:41 Zoffix ehehe
21:42 ggoebel joined #perl6-dev
21:50 dalek rakudo/nom: a1fceeb | lizmat++ | src/core/Rakudo/Internals.pm:
21:50 dalek rakudo/nom: Initialize the $*VAR initializers hash ad-hoc
21:50 dalek rakudo/nom:
21:50 dalek rakudo/nom: If we have an execution error during optimizing, we should at least
21:50 dalek rakudo/nom: get something now, rather than complaining about the $*VAR initializers
21:50 dalek rakudo/nom: hash not being initialized
21:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a1fceeb642
21:59 lizmat ok, getting too tired for this
21:59 lizmat good night, #perl6-dev!
22:01 cygx good night o/
22:04 timotimo lizmat++ # good work today
23:03 Zoffix left #perl6-dev
23:09 vendethiel joined #perl6-dev

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