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