Perl 6 - the future is here, just unevenly distributed

IRC log for #p6dev, 2016-05-01

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:47 ilbot3 joined #p6dev
01:47 Topic for #p6dev is now Perl 6 language and compiler development
03:14 skids joined #p6dev
07:53 lizmat joined #p6dev
08:01 RabidGravy joined #p6dev
09:18 psch i don't get the p6for desugar
09:19 psch i mean, with a label
09:20 timotimo p6for was quite a challenge
09:20 psch m: (^3).map({ .say }).sink # this is label-less i think
09:20 camelia rakudo-moar d7698f: OUTPUT«0␤1␤2␤»
09:20 timotimo it's important that we can turn a for into a while loop, so that was a part that got into it
09:20 psch eqv to < for ^3 { .say } >
09:20 timotimo and the one-arg-rule was also a part that made for some trouble
09:20 timotimo get it? made for some trouble?
09:21 psch ...no? :/
09:21 psch oh
09:21 psch ...yeah, alright :P
09:22 psch i suppose we don't have a syntax for attaching a label to a method call, do we?
09:22 psch i mean, in the Perl 6 HLL
09:22 timotimo yeah, i don't think we do
09:24 psch m: my \block = A: { .say; last A }; (^3).map(block).sink
09:24 camelia rakudo-moar d7698f: OUTPUT«===SORRY!=== Error while compiling /tmp/5d5SmRGyhB␤Confused␤at /tmp/5d5SmRGyhB:1␤------> my \block = A:⏏ { .say; last A }; (^3).map(block).sink␤    expecting any of:␤        colon pair␤»
09:24 psch m: my \block = A: { .say; last A }; say block #(^3).map(block).sink
09:24 camelia rakudo-moar d7698f: OUTPUT«===SORRY!=== Error while compiling /tmp/rMWCD6QrM3␤Confused␤at /tmp/rMWCD6QrM3:1␤------> my \block = A:⏏ { .say; last A }; say block #(^3).map(b␤    expecting any of:␤        colon pair␤»
09:24 psch oh hm
09:24 psch can't even do that apparently
09:25 psch m: A: my \block = { .say; last A }; say block
09:25 camelia rakudo-moar d7698f: OUTPUT«-> ;; $_? is raw { #`(Block|57422960) ... }␤»
09:27 psch m: my \block = { A: { .say; last A } }; (^3).map(block).sink # hrmm
09:27 camelia rakudo-moar d7698f: OUTPUT«0␤control exception without handler␤  in block  at /tmp/PshjUs9pRJ line 1␤  in block <unit> at /tmp/PshjUs9pRJ line 1␤␤»
09:27 timotimo i must admit i'm not entirely sure how the label gets in there
09:27 psch src/Perl6/Actions.nqp:404 :P
09:28 psch if $label { $call.push($label) }
09:28 psch where $call is the QAST::Op callmethod map
09:28 timotimo ah, ok, so it takes an extra argument
09:29 psch oh duh, of course
09:30 psch m: A: (^3).map({ .say; last A }, :label(A)).sink
09:30 camelia rakudo-moar d7698f: OUTPUT«0␤»
09:30 psch that looks about right then i guess?
09:30 psch which means a nested one is...
09:31 psch m: A: (^3).map({ (^3).map({ .say; last A }) }, :label(A)).sink
09:31 camelia rakudo-moar d7698f: ( no output )
09:31 psch m: A: (^3).map({ (^3).map({ .say; last A }), :label(A) }, :label(A)).sink
09:31 camelia rakudo-moar d7698f: ( no output )
09:31 psch well, apparently not quite :P
09:32 psch ...sink is important there :l
09:32 psch m: (^3).map({ (^3).map({ .say }).sink }).sink
09:32 camelia rakudo-moar d7698f: OUTPUT«0␤1␤2␤0␤1␤2␤0␤1␤2␤»
09:32 psch m: A: (^3).map({ (^3).map({ .say; last A }).sink, :label(A) }).sink
09:32 camelia rakudo-moar d7698f: OUTPUT«0␤control exception without handler␤  in block  at /tmp/dUWVhKO0eB line 1␤  in block <unit> at /tmp/dUWVhKO0eB line 1␤␤»
09:33 psch m: A: (^3).map({ (^3).map({ .say; last A }, :label(A)).sink, :label(A) }).sink
09:33 camelia rakudo-moar d7698f: OUTPUT«0␤0␤0␤»
09:33 dalek rakudo/nom: b61ca12 | lizmat++ | src/core/Str.pm:
09:33 dalek rakudo/nom: Fix RT #128038
09:33 dalek rakudo/nom:
09:33 dalek rakudo/nom: Clients of Rakudo::Internals.SUBSTR-SANITY were checking for definedness
09:33 dalek rakudo/nom: rather than Failureness.  I wonder how many other places in the core
09:33 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128038
09:33 dalek rakudo/nom: setting we make that mistake  :-(
09:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b61ca1228a
09:33 psch well
09:34 psch the good thing is that works the same in r-j
09:34 psch the bad thing is that i had hoped it wouldn't so i get a new hint where to look
09:35 psch i have to say i wish i could see the desugared p6for QAST
09:35 psch as in, the QAST::Op that calls map and sink and so on
09:38 psch oh wow
09:38 psch the bug is even narrower than previously assumed
09:39 psch because:
09:39 psch $ ./perl6-j -e'A: for ^1 { for ^1 { .say; last A } }'
09:39 psch 0
09:39 psch but!
09:39 psch $ ./perl6-j -e'A: for 1 { for 1 { .say; last A } }'
09:39 psch 1
09:39 psch ===SORRY!===
09:39 psch labeled last without loop construct
09:40 psch m: use nqp; say nqp::iscont(^1); say nqp::iscont(1)
09:40 camelia rakudo-moar d7698f: OUTPUT«0␤0␤»
09:41 timotimo put "note(result.dump)" into the Ops.nqp ?
09:41 psch yeah, i'll try that
09:41 nine_ Maybe it's an optimizer thing?
09:41 psch nine_: no, i checked that
09:42 psch "5 but False" not working on r-j is an optimizer thing, though
09:42 psch '
09:42 psch 'cause constant folding or something, i forgot
09:58 dalek rakudo/nom: 1e54c52 | lizmat++ | src/core/Exception.pm:
09:58 dalek rakudo/nom: Fix for RT #128045
09:58 dalek rakudo/nom:
09:58 dalek rakudo/nom: Let the bikeshedding on the new message begin!
09:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e54c52c9a
09:58 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128045
10:05 psch heh, the child nodes for the callmethod can't be stringified :/
10:07 psch callmethod sink that is
10:18 lizmat m: my $a = Failure.new("foo"); (1,2,$a,3).minmax.say; say $a.handled   # another questionable use of .defined
10:18 camelia rakudo-moar 1e54c5: OUTPUT«1..3␤True␤»
10:18 lizmat I would argue that this should fail ?
10:19 timotimo sounds sensible
10:31 lizmat or possibly ignore the Failure without handling it ?
10:32 lizmat m: (1,2,Str,3).minmax.say   # like this?
10:32 camelia rakudo-moar 1e54c5: OUTPUT«1..3␤»
10:33 lizmat *like it does with type objects
10:40 dalek rakudo/nom: fcac39b | lizmat++ | src/core/Any-iterable-methods.pm:
10:40 dalek rakudo/nom: Nativy excludes flags
10:40 dalek rakudo/nom:
10:40 dalek rakudo/nom: Since they're natives in Range anyway
10:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fcac39bd4b
10:50 lizmat m: 'my $a = Failure.new("foo"); (1,2,$a,3).Supply.minmax.list.say; say $a.handled   # similar issue
10:50 camelia rakudo-moar 1e54c5: OUTPUT«===SORRY!=== Error while compiling /tmp/RpFlPrd9Cb␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/RpFlPrd9Cb:1␤------> st.say; say $a.handled   # similar issue⏏<EOL>␤    expecting any of:␤        sing…»
10:50 lizmat m: my $a = Failure.new("foo"); (1,2,$a,3).Supply.minmax.list.say; say $a.handled   # similar issue
10:50 camelia rakudo-moar 1e54c5: OUTPUT«(1..1 1..2 1..3)␤True␤»
10:56 timotimo another point where "language features meet and behave in unforeseen ways"
11:08 psch hm, anything against a dump method on NQPMu that returns "NQPMu\n"?
11:08 psch cause i'm running into "no such method" right now, and i remember running into it a few times before
11:08 psch and seeing as it can turn up in QASTs at nearly every level...
11:09 psch or is that mixing concerns too much..? :/
11:12 [Tux] This is Rakudo version 2016.04-58-g1e54c52 built on MoarVM version 2016.04
11:12 [Tux] test            21.937
11:12 [Tux] test-t          13.408
11:12 [Tux] csv-parser      23.486
11:13 timotimo psch: just put it in as a debugging aid and then rip it back out?
11:19 psch timotimo: yeah, i'm doing that anyway.  just wondering if it's something that should stick around... :)
11:20 timotimo we may rely on it to stringify to "" in some places perhaps
11:20 timotimo but NQPMu tends to F you over so often
11:20 timotimo any undeclared/not-findable name evaluates to NQPMu instead of erroring
11:20 timotimo which we may want to change anyway
11:24 psch well, i'm really only concerned about a ChildNode that could be NQPMu
11:25 timotimo right
11:27 dalek rakudo/relocateable-precomp: 2330534 | niner++ | src/core/CompUnit/PrecompilationRepository.pm:
11:27 dalek rakudo/relocateable-precomp: Avoid loading a module from source when already loaded as precompiled version
11:27 dalek rakudo/relocateable-precomp:
11:27 dalek rakudo/relocateable-precomp: * We load a precompiled module A.
11:27 dalek rakudo/relocateable-precomp: * We use lib 'foo';
11:27 dalek rakudo/relocateable-precomp: * We try to load A again.
11:27 dalek rakudo/relocateable-precomp:
11:27 dalek rakudo/relocateable-precomp: This resulted in a duplicate symbol error, since we loaded A from source again
11:27 dalek rakudo/relocateable-precomp: (as we are no longer allowed to precompile) and the duplication checks failed.
11:27 dalek rakudo/relocateable-precomp:
11:27 dalek rakudo/relocateable-precomp: Fix by explicitly check the loaded status before even asking if we may
11:27 dalek rakudo/relocateable-precomp: precompile.
11:27 nine_ And with this I can successfully install Inline::Perl5 with panda :)
11:28 nine_ This was the last known issue with the relocateable-precomp branch :)
11:28 psch nine_++
11:28 timotimo neat!
11:30 nine_ The TODO list now constists of: * cleaning up the locking code as jnthn++ suggested and * storing updated dependency info after re-resolving, so we hopefully don't have to re-resolve the next time.
11:30 nine_ However both can be done after a merge just as well.
11:30 timotimo sounds like it, yeah
11:32 nine_ ==> Successfully installed Task::Star
11:33 timotimo very good!
11:33 timotimo sounds like it's safe to merge, then :)
11:34 nine_ Yeah. A bit of rebasing and commit cleanup and it should be good to go
11:35 dalek nqp: 6a6766d | niner++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java.orig:
11:35 dalek nqp: Remove obviously accidentally committed file
11:35 dalek nqp: review: https://github.com/perl6/nqp/commit/6a6766d1d0
11:58 dalek rakudo/nom: 4379cf0 | lizmat++ | src/core/ (2 files):
11:58 dalek rakudo/nom: Make Failures fail in .minmax
11:58 dalek rakudo/nom:
11:58 dalek rakudo/nom: Instead of just ignoring them *and* marking them as handled.  Also
11:58 dalek rakudo/nom: makes List.minmax about 1.5x faster.
11:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4379cf0915
11:58 timotimo wow, it makes it faster, too
11:59 lizmat well, basically the difference between .defined and nqp::defined()
12:00 lizmat since a Failure object is nqp::defined(), it will cause a throw when used later on
12:00 timotimo oh
12:00 lizmat without needing to check specifically for Failures
12:00 timotimo hm, what was p6definite about again?
12:01 timotimo so now we can no longer emit values out of a supply that claim they're undefined and let them be ignored by a minmax supply combinator
12:01 timotimo no clue if we want either of those two
12:01 lizmat hmm... maybe I should gave used nqp::isconcrete...
12:01 brrt joined #p6dev
12:01 lizmat hmmm...
12:01 * timotimo looks up p6definite
12:02 timotimo oh, p6definite is also about generating a p6bool
12:02 timotimo other than that it's just decont + isconcrete
12:02 timotimo if you're going with isconcrete, you'll probably have to decont manually, too?
12:02 timotimo not sure about that
12:02 lizmat timotimo: eh...  any undefined values are still ignored in Supply.minmax ?
12:03 lizmat fwiw, there were no spectest fails with this change
12:04 lizmat $ 6 '(1,2,Str,3).Supply.minmax.list.say'
12:04 lizmat (1..1 1..2 1..3)
12:04 timotimo hm, right
12:05 timotimo if we ever had a type that pretends to be a valid defined value by overriding .defined, that'll break
12:05 timotimo and concrete values that claim to be undefinde
12:05 timotimo etc etc
12:05 timotimo but i don't have a design hat on right now
12:07 lizmat well, I guess it all boils down to whether we want Failures to be throw, ignored and/or handled or not
12:10 tadzik nine_++! \o/
12:32 dalek rakudo/nom: 6df0539 | lizmat++ | src/core/ (2 files):
12:32 dalek rakudo/nom: Restore original .defined semantic in .minmax
12:32 dalek rakudo/nom:
12:32 dalek rakudo/nom: Except that a Failure will always throw.  Only noise-levels slower.
12:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6df053993d
12:37 bartolin has someone an idea why nqp::iterval doesn't work here with rakudo-j: https://gist.github.com/usev6/65701798270ef412a1e41b8c480a0133
12:39 lizmat bartolin: sadly, no  :-(
12:39 bartolin on a related note: how can rakudo-j builds be enabled for camelia?
12:40 bartolin lizmat: thanks for looking. maybe it's down in the implementation of nqp::iterval for jvm ...
12:40 * lizmat looks again
12:42 lizmat bartolin: where does $!iter come from ?
12:42 lizmat ah, MappyIterator, right ?
12:42 timotimo should be, yeah
12:43 bartolin yes. I only duplicated the code from Map.pm for debugging purposes.
12:43 timotimo i wonder what place throws the NPE; would a native java debugger be able to tell you?
12:43 lizmat bartolin: yeah, no clue  :-)
12:44 bartolin timotimo: I think it's in Map.pm method 'pairs' which calls 'Pair.new(nqp::iterkey_s(tmp), nqp::iterval(tmp))'
12:45 bartolin and that nqp::iterval(tmp) is Null
12:45 timotimo huh, seems kind of strange
12:45 timotimo i'm not so sure about the code paths involved here, and i've gotta go AFK for a bit, too
12:46 bartolin here's the link: https://github.com/rakudo/rakudo/blob/nom/src/core/Map.pm#L87
12:48 bartolin m: use nqp; Pair.new("foo", nqp::null)  # gives a NPE on JVM
12:48 camelia rakudo-moar 4379cf: ( no output )
12:59 psch eh, $*REPO and related things isn't transparent enough to me vOv
13:00 psch bartolin: yeah, nqp::null maps directly to NPE on nqp-j
13:00 psch bartolin: that's the VMNull thingy agian
13:00 psch *again
13:01 psch curious how that doesn't happen with sinking nqp::null, actually...
13:01 bartolin psch: yes, that NPE with Pair.new is not surprising. I just wanted to point out where the NPE from 'CallFrame.new.perl' actually happens.
13:02 psch oh, i see
13:02 bartolin do you have an idea about nqp::iterval, perhaps :-) (see my gist above)
13:09 psch i don't see anything in VMIterInstance itself, no
13:11 bartolin ah, maybe it's somewhere here: https://github.com/perl6/nqp/blob/master/src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java#L3611
13:12 * bartolin will looks some more
13:12 psch yeah, that looks about right
13:15 psch that should be rather easily patchable
13:15 psch well, if i don't misunderstand anything :)
13:16 psch the ContextRefInstance has at_key_native and at_key_boxed methods, so it should be possible to fetch those and bind them correctly instead of binding null
13:26 psch hm, although i'm not sure about binding mixed native and boxed to the same hash
13:33 bartolin well, that's probably too far above my paygrade ...
13:35 psch replacing the null in lines 3622 with something like ((ContextRefInstance)agg).at_key_boxed(tc, sci.oLexicalNames[i]) should probably work with the CallFrame example
13:35 psch 'cause i'm pretty sure the values in a CallFrame aren't natives :)
13:35 psch s/lines/line/
13:36 psch lines 3626, 3630, 3634 would probably need appropriate boxing
13:37 psch that's something like box_i(((ContextRefInstance)agg).at_key_native(tc, sci.iLexicalNames[i]), tc.gc.hllConfig.intBoxType, tc) or so... :P
13:38 psch i still have this loop label thing to poke here... :)
13:38 bartolin psch++ thanks a lot for explaining!
13:38 psch ...not really explaining, more like exampling :D
13:51 brrt joined #p6dev
14:21 psch m: constant A = Label.new(:name<A>, :1line, :prematch<foo>, :postmatch<bar>); (^5).map({ (^5).map({ .say; last A }).sink }, :label(A)).sink # i'm fairly sure *this* is pretty close to how it actually desugars
14:21 camelia rakudo-moar 6df053: OUTPUT«0␤»
14:22 psch well, except for the label creation, that probably ends up somewhere slightly different
14:22 psch and the QAST that i'm seeing for r-j hangs the label into the inner map
14:23 psch m: constant A = Label.new(:name<A>, :1line, :prematch<foo>, :postmatch<bar>); (^5).map({ (^5).map({ .say; last A }, :label(A) ).sink }).sink
14:23 camelia rakudo-moar 6df053: OUTPUT«0␤0␤0␤0␤0␤»
14:24 psch this is really confusing
14:39 psch i don't get it
14:39 psch asts between r-j and r-m are identical
14:39 psch so i'll just quietly blame this onto the sink difference
14:39 psch y'know, the one that has us do #?if jvm\n my $ = \n #?endif
14:40 psch bartolin: you're getting along the nqp guts?
14:42 psch +with
14:46 bartolin psch: changing the first null (for sci.oLexicalNames) does indeed help with the nqp::iterval/NPE
14:48 bartolin for the other three cases I get an error 'void' type not allowed here. looks like 'at_key_native' is defined as 'public void at_key_native'
14:48 psch bartolin: oh, right.  you have to get the result from the tc
14:49 psch grep for "tc.native_i" to see how that's used
14:49 bartolin cool, will do
14:53 psch i think the various getattr ops are the cleanest example
14:54 dalek rakudo/nom: 381bb2d | niner++ | src/core/CompUnit/Repository/Installation.pm:
14:54 dalek rakudo/nom: Turn short-name lookup files into directories
14:54 dalek rakudo/nom:
14:54 dalek rakudo/nom: This may become part of CompUnit::Repository::Installation format v1.
14:54 dalek rakudo/nom: Having to change any already existing files on installation of a module makes
14:55 dalek joined #p6dev
14:55 timotimo yay! the branch has landed!
15:03 skids joined #p6dev
15:05 psch #127949 is interesting too, i don't really know how to start looking into the hint caching there though
15:05 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127949
15:05 psch (refering to my own recent comment :P )
15:06 psch m: class A { has $.foo }; class B { has $.bar }; class C is A is B { }; C.new(:1foo, :2bar).bar.say # curious that it works outside the setting, too..
15:06 camelia rakudo-moar 6df053: OUTPUT«2␤»
15:08 bartolin hmm, have to leave now. I had no success so far with tc.native_i -- will look at it later :-)
15:09 psch m: use nqp; class A { has int $.foo }; class B { has str $.bar }; class C is A is B { method new(Int $a, Str $b) { my \SELF = nqp::create(self); nqp::bindattr_i(SELF, A, '$!foo', nqp::unbox_s($a)); nqp::bindattr_i(SELF, B, '$!bar', nqp::unbox_i($b)); SELF } }; C.new(5, "5").bar.say
15:09 camelia rakudo-moar 6df053: OUTPUT«This type cannot unbox to a native string␤  in method new at /tmp/S91XUXvhca line 1␤  in block <unit> at /tmp/S91XUXvhca line 1␤␤»
15:10 psch ...that should probably go into a gist :)
15:11 psch m: https://gist.github.com/peschwa/c2f5a405f123a73578b48c8b187672cf
15:11 camelia rakudo-moar 6df053: OUTPUT«This type cannot unbox to a native integer␤  in method new at /tmp/N8EyQqjAS3 line 8␤  in block <unit> at /tmp/N8EyQqjAS3 line 12␤␤»
15:11 psch m: https://gist.github.com/peschwa/c2f5a405f123a73578b48c8b187672cf
15:11 camelia rakudo-moar e8fd55: OUTPUT«5␤»
15:11 psch hm, yeah, there's more involved it seems
15:11 psch that also works on r-j
15:23 RabidGravy joined #p6dev
15:32 psch m: https://gist.github.com/peschwa/1656b1fee687957d3afcec53f1507e38
15:32 camelia rakudo-moar e8fd55: OUTPUT«(Num)␤»
15:32 psch that breaks on r-j \o/
15:32 * psch adds that to the ticket
18:03 bartolin psch: I'm just spectesting this change: https://gist.github.com/usev6/65701798270ef412a1e41b8c480a0133#gistcomment-1766175
18:03 bartolin was that what you meant (using tc.native_i, etc.)?
18:04 psch bartolin: yeah, mostly.  i'd add a check for tc.native_type == ThreadContext.NATIVE_{I,N,S} to be safe though
18:05 psch aside from that it looks good
18:05 psch ah, but the check might not even be necessary, 'cause the names are already type-dependant
18:07 bartolin psch: as I understand it, ThreadContext.NATIVE_{I,N,S} are set along with tc.native_{i,n,s} in at_key_native
18:08 psch bartolin: not quite, tc.native_type contains the corresponding constant to signify which type the latest atpos_*_native result has
18:09 psch hm, or maybe i'm confusing that with getattr
18:09 * bartolin is looking at src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/ContextRefInstance.java
18:10 psch yeah, me too
18:12 psch bartolin: that's the thing.  normally you'd check tc.native_type to verify that you get the type you expect
18:12 psch bartolin: but since you're already checking via {i,n,s}LexicalNames you don't need to do that, cause that's what'd set tc.native_type in the first place
18:13 bartolin okay, sounds plausible :-) (I'm afraid I don't fully understand the code -- but I've learned quite a bit today)
18:15 bartolin I'll let my spectest run and will open a pull request, eventually
18:17 psch yeah, i'll look out for that :) bartolin++
18:31 dalek joined #p6dev
18:59 dalek rakudo/nom: f5f80d7 | peschwa++ | src/core/Exception.pm:
18:59 dalek rakudo/nom: Correctly identify labeled next/last/redo Exception.
18:59 dalek rakudo/nom:
18:59 dalek rakudo/nom: This only applies when they don't get handled and complain.
18:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5f80d7698
19:16 dalek rakudo/nom: dec807e | lizmat++ | src/core/Any-iterable-methods.pm:
19:16 dalek rakudo/nom: Make List.minmax about 15% faster
19:16 dalek rakudo/nom:
19:16 dalek rakudo/nom: By introducing an int flag that indicates that a valid defined value
19:16 dalek rakudo/nom: has been seen, rather than checking for .defined of the current min/max
19:16 dalek rakudo/nom: value all the time.  Also, if a value is more than max, it cannot be
19:16 dalek rakudo/nom: less then min, so don't bother to check twice.
19:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dec807e1f3
19:34 travis-ci joined #p6dev
19:34 travis-ci Rakudo build failed. Pepe Schwarz 'Correctly identify labeled next/last/redo Exception.
19:34 travis-ci https://travis-ci.org/rakudo/rakudo/builds/127068794 https://github.com/rakudo/rakudo/compare/e8fd55bbe6bc...f5f80d7698bc
19:34 travis-ci left #p6dev
19:35 psch oh damn
19:36 RabidGravy boom
19:36 psch :P
19:37 dalek rakudo/nom: 3c5f7bc | peschwa++ | src/core/Exception.pm:
19:37 dalek rakudo/nom: Refer to the actually existing variable.
19:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3c5f7bcbf6
19:57 travis-ci joined #p6dev
19:57 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make List.minmax about 15% faster
19:57 travis-ci https://travis-ci.org/rakudo/rakudo/builds/127071594 https://github.com/rakudo/rakudo/compare/f5f80d7698bc...dec807e1f3f0
19:57 travis-ci left #p6dev
19:58 * psch waits for the next time travis comes
19:58 timotimo and puts coal under the tree? :)
19:59 psch why would i put coal under the tree?
19:59 dalek rakudo/nom: e2fcdf2 | lizmat++ | src/core/Any-iterable-methods.pm:
19:59 dalek rakudo/nom: Streamline List.min/max
19:59 dalek rakudo/nom:
19:59 dalek rakudo/nom: No noticeable performance difference, but much DRYer
19:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e2fcdf2702
19:59 psch ooh.  travis does that.  right
19:59 psch i hope not :S
19:59 lizmat hmmm... strange that build failing: I've just done a failure free spectest
20:00 psch lizmat: my commit before was that
20:00 lizmat ah, ok
20:00 lizmat *phew*
20:16 skids joined #p6dev
20:21 dalek rakudo/nom: a16f0a4 | lizmat++ | src/core/Any-iterable-methods.pm:
20:21 dalek rakudo/nom: Made !first-concrete loop tighter
20:21 dalek rakudo/nom:
20:21 dalek rakudo/nom: Makes the case of "my @a; @a[1000] = 42; @a.minmax" 10% faster
20:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a16f0a46da
20:25 timotimo neat
20:30 lizmat hmmm...  seems that minmax has quite different semantic than min or max
20:30 lizmat m: my @a = -1..5, ^20; dd @a; say @a.minmax
20:30 camelia rakudo-moar e2fcdf: OUTPUT«Array @a = [-1..5, ^20]␤-1..^20␤»
20:30 lizmat m: my @a = -1..5, ^20; dd @a; say @a.min
20:30 camelia rakudo-moar e2fcdf: OUTPUT«Array @a = [-1..5, ^20]␤-1..5␤»
20:31 lizmat shouldn't they work the same ??
20:33 lizmat S32/Containers:552  indicates that only Range should be special handled
20:33 synopsebot6 Link: http://design.perl6.org/S32/Containers.html#552__indicates_that_only_Range_should_be_special_handled
20:33 lizmat http://design.perl6.org/S32/Containers.html#minmax   # works better
20:41 sortiz joined #p6dev
20:57 travis-ci joined #p6dev
20:57 travis-ci Rakudo build passed. Pepe Schwarz 'Refer to the actually existing variable.'
20:57 travis-ci https://travis-ci.org/rakudo/rakudo/builds/127075618 https://github.com/rakudo/rakudo/compare/dec807e1f3f0...3c5f7bcbf63b
20:57 travis-ci left #p6dev
21:16 lizmat good night, #perl6!
21:22 timotimo gnite lizmat!
21:24 stmuk joined #p6dev
22:49 travis-ci joined #p6dev
22:49 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Streamline List.min/max
22:49 travis-ci https://travis-ci.org/rakudo/rakudo/builds/127078885 https://github.com/rakudo/rakudo/compare/3c5f7bcbf63b...e2fcdf2702a5
22:49 travis-ci left #p6dev
23:09 travis-ci joined #p6dev
23:09 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Made !first-concrete loop tighter
23:09 travis-ci https://travis-ci.org/rakudo/rakudo/builds/127082212 https://github.com/rakudo/rakudo/compare/e2fcdf2702a5...a16f0a46daf8
23:09 travis-ci left #p6dev

| Channels | #p6dev index | Today | | Search | Google Search | Plain-Text | summary