[Tux] This is Rakudo version 2017.05-363-gf974dcc63 built on MoarVM version 2017.05-59-gf17adad2 06:28
csv-ip5xs 2.952
test 12.954
test-t 4.437 - 4.470
csv-parser 13.458
pmurias is my sub foo {...}; my sub bar {...}; &foo := &bar; planned to be allowed? we have it in a test file we don't run 08:49
masak pmurias: is the test file really really old? 08:51
pmurias: these days we statically reject calls to subs that "will never work" based on mismatched args/params, for example. seems like that'd be risky or hard in the face of rebinding. 08:52
pmurias I don't know how to get the git history from before a file rename 08:56
* know
masak: we could disable that if there is a rebinding
masak we could. 08:57
pmurias I'm not championing to have this super useful feature added, I just don't like old failing stuff in the test suite ;) 09:01
jnthn No, I don't think it's allowed. 09:02
masak I would be perfectly fine with saying it's not allowed 09:04
the static checking feels far more useful than the rebinding 09:05
jnthn Indeed
It'd also totally bust up inlining
Or at the very least force us to make the bind do a deopt 09:06
Which would end up making all binds more costly
And they ain't meant to be
So, outlawed for sure
pmurias jnthn: we could detect it at compile time if we are worried about the runtime penalty, but the feature itself doesn't seem very useful 09:09
mostly just confusing the code reader
jnthn If there's tests for it, feel free to toss them out :) 09:10
Given they'd be skip'd anyway 09:11
pmurias The test file also has foo() := 123 09:13
jnthn That's bonkers 09:14
pmurias with my sub foo is raw {my $var; $var}
jnthn hahaha
No.
Just no.
Is there anything actually valid in the test file? ;)
Geth roast: 06fb8a569f | pmurias++ | S03-binding/subs.t
Delete a test file that tests for stuff we don't plan on implementing, that's not run anyway
09:15
jnthn Guess that's my answer :) 09:16
pmurias++ # cleaning up
nine A use case that comes to mind would be mocking in tests. But we have much better tools for that than ye olde Perl 5 trick of replacing subs in packages...
dogbert17 seems as if there's a new version of libuv out, github.com/libuv/libuv/blob/v1.x/ChangeLog 09:49
jnthn A notable change in there being "implement support for cygwin" 10:06
Which was the main blocker for getting MoarVM usable on cygwin also 10:07
So if there's anyone intersted in working on that, they should have a much easier time now. 10:08
Geth rakudo/nom: b838c7305e | (Elizabeth Mattijsen)++ | 4 files
Rename R:Q.ADD-ITERATOR-TO-SET to ADD-PAIRS-TO-SET

To keep naming consistency
11:24
lizmat sometimes I wish we could rename 'is-lazy' to 'is-open-ended' 11:41
because lazy evaluation doesn't have anything to do with a Seq being open-ended or not 11:42
s/Seq/Iterator/ 11:43
nine There's now a devel:languages:perl6 Open Build Service project with updated rakudo packages and I'm one of the maintainers :) build.opensuse.org/project/show/de...ages:perl6 11:47
This project is the upstream for rakudo packages in the openSUSE Tumbleweed distro
lizmat nine++ 11:58
m: sub a(+@a) { say @a.iterator.is-lazy }; a(^Inf) # seem to lose an is-lazy here somewhere 12:06
camelia False
lizmat m: Set.new(^Inf) # causes this to infiniloop
camelia (timeout) 12:07
lizmat jnthn timotimo moritz ^^^ do you agree that is a bug ? 12:19
jnthn Well, Set.new(^Inf) is probably a case of "you got what you deserved" :P 12:20
But the .is-lazy getting list is odd
lizmat well, I want it to fail like:
m: ^Inf .elems
camelia ( no output )
lizmat m: say ^Inf .elems
camelia Inf
lizmat hmmm
jnthn wat
lizmat yeah :-) 12:21
jnthn *sigh*
No, elems should not return Inf :/
lizmat ok, will take care of that
jnthn Hopefully it's not roasted
eveo OOC why not?
jnthn But yeah, I think the .is-lazy should probably not be list on that case
eveo: Because the expectation of .elems is you're getting an Int back 12:22
eveo OK
jnthn And also
m: (1, 1 ... *).elems
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
jnthn We are doing this fairly consistently elsewhere
lizmat jnthn: OTOH, this sorta is the same discussion: 12:30
m: dd Int.Range.max
camelia Inf
jnthn I don't mind that 12:33
And no, I don't consider it the same :)
I expect .elems to give back something I can use with * - 1 for example 12:34
In @foo[*-1]
lizmat ok, fair enough :-) 12:35
running spectest now on failing ^Inf .elems
yup, 3 fails :-( 12:36
jnthn: all specifically testing for ^Inf .elems being Inf 12:38
jnthn grmbl
lizmat should I fix the tests and also in v6.c-errata ?
jnthn My feeling is yes...also are the tests all identical? :) 12:39
lizmat pretty much all like:
not ok 7 - -Inf..^Inf.elems is Inf
# Failed test '-Inf..^Inf.elems is Inf'
# at t/spec/S03-operators/range-basic.t line 17
# expected: 'Inf'
# got: (Failure)
[Coke] +1 to fixing them. 12:40
jnthn Maybe covering different start points
lizmat yeah, also with starting point like -Inf 12:41
dogbert17 commit: 2015.06 sub d(::T Numeric $x, T $y) 12:42
committable6 dogbert17, ¦2015.06: «04===SORRY!04=== Error while compiling /tmp/IESJG2vocE␤Missing block␤at /tmp/IESJG2vocE:1␤------> 03sub d(::T Numeric $x, T $y)08⏏04<EOL>␤ expecting any of:␤ new name to be defined «exit code = 1»»
dogbert17 commit: 2015.11 sub d(::T Numeric $x, T $y)
committable6 dogbert17, ¦2015.11: «04===SORRY!04=== Error while compiling /tmp/6_4dWPRKnS␤Missing block␤at /tmp/6_4dWPRKnS:1␤------> 03sub d(::T Numeric $x, T $y)08⏏04<EOL>␤ expecting any of:␤ new name to be defined «exit code = 1»»
lizmat hmmm... why don't we have a 'fails-like' ? 12:43
eveo We have in Test::Util 12:44
lizmat hmmm
eveo same usage as throws-like 12:45
github.com/perl6/roast/blob/master...#L536-L544
Geth roast: c168311e66 | (Elizabeth Mattijsen)++ | 2 files
Fix tests of ^Inf .elems returning Inf

As discussed at irclog.perlgeek.de/perl6-dev/2017-...i_14697876
12:49
rakudo/nom: 20310d7dcd | (Elizabeth Mattijsen)++ | src/core/Range.pm
^Inf .elems now fails instead of returning Inf

  See irclog.perlgeek.de/perl6-dev/2017-...i_14697876
12:50
roast/6.c-errata: 0bbe288ed5 | (Elizabeth Mattijsen)++ | 2 files
Fix tests of ^Inf .elems returning Inf

As discussed at irclog.perlgeek.de/perl6-dev/2017-...i_14697876
12:53
lizmat m: say ^Inf .elems 13:10
camelia Inf
lizmat hmmm
m: (1, 1 ... *).elems
camelia Cannot .elems a lazy list
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
lizmat I'm about the remove the "Actually thrown" bit from this message *IF* it is the same as the original location 13:11
jnthn: anything against that ? ^^^
eveo hm, modules.perl6.org/ lists 833 modules, but zef --list gives 901 13:17
Wonder if it's CPAN modules that aren't available on m.p.o
jnthn lizmat: Hm, on the other hand it provides the valuable information that it was a lazily thrown failure, which we'd lose 13:19
eveo ah, just multiple versions
jnthn language lesson; bbl
Geth rakudo/nom: e538cbc546 | (Elizabeth Mattijsen)++ | src/core/Exception.pm
Don't show "Actually thrown at:" info if duplicate

This was bugging me for a while. We'd lose the fact that it was a Failure that was thrown lazily, but *only* if it was thrown at the same location it was received. And with this fix, testing one-liners gets a lot shorter if a Failure was involved.
Breaks one spectest that can be fixed easily. Please revert if considered too magical or for any other reason :-)
13:24
rakudo/nom: dbd0f87a05 | (Elizabeth Mattijsen)++ | src/core/Setty.pm
Make sure failure shows the correct type
13:48
eveo m: say $*PERL.compiler.version.Str.subst: :2nd, :3rd, /'.'/, '-' 14:06
camelia 2017.05.366-ge.538.cbc.54
eveo If you don't know how this implemented, it kinda isn't wrong to expect that to be the same as :th(2, 3)
[Coke] m: say $*PERL.compiler.version.Str.subst: :2nd, :3nd, /'.'/, '-' # curious. 14:19
camelia 2017.05.367-gdbd.0.f.87.a.0
eveo ? it's the same innit? 14:23
eveo is running the first full ecosystem toasting 14:29
And I hope my toaster has a bug 'cause that's waaay too many failures for a 833-module ecosystem. Like 20% if I had to estimate based on amount of redness scrolling past 14:30
lizmat wonders if we know eveo under a different zname
nine eveo: 20 % sounds about right when I recall my last emmentaler run
eveo ouch
And occasionally I get this in output. Wonder what it's trying to do: "The authenticity of host 'github.com (192.30.253.112)' can't be established. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. Are you sure you want to continue connecting (yes/no)?" 14:31
[Coke] eveo: sorry, meant that *I* was curious, not that I knew the output and it was. 14:32
was wondering if something cared about nd and rd being different keys. 14:33
Geth roast: 79b62cfce0 | (Elizabeth Mattijsen)++ | integration/error-reporting.t
Make thrown test a bit less picky
14:35
roast/6.c-errata: a3e1ab4f78 | (Elizabeth Mattijsen)++ | integration/error-reporting.t
Make thrown test a bit less picky
14:36
eveo sqlite> select count(*) from toast where status = 'Succ'; 15:30
701
sqlite> select count(*) from toast where status = 'Fail' OR status = 'Kill';
128
m: say 701+128;
camelia 829
eveo So 4 last modules didn't live long enough. Something hung and was asking me for my GH password
m: say 128/701;
camelia 0.182596
eveo m: say 128/829;
camelia 0.154403
eveo 15% fails
eveo toasts on 2017.05 release 15:31
Ohhh... oops 15:37
timotimo 100% fails
eveo I guess we won't start properly toasting releases until AFTER this release :) My toaster depends on a very recent version of rakudo, 'cause it needs the Proc::Async.kill fix 15:38
And I think one or two others.
Well, I can take the 15% failures and manually check if they still fail on 2017.05
Actually, no. I can teach it to build its own perl6 and use that for toasting, while itself running on newer rakudo 15:39
timotimo would it be enough to supply something different for $*EXECUTABLE and have two installed at the same time? 15:42
as in, you wouldn't have to teach toaster how to build a rakudo
eveo Yeah, I think temp %*ENV; %*ENV<PATH> = join ':', '/where/custom/perl6-is-at/', |$*SPEC.path; should do the trick 15:44
before starting the proc that runs zef
temp %*ENV; %*ENV<PATH> = "/where/custom/perl6-is-at/:$*ENV<PATH>"; # even 15:49
Here's the sqlite3 db for the current HEAD toast results: temp.perl6.party/toast/toast-2017-....sqlite.db
gonna cook up a viewer eventually 15:50
eveo &
cognominal if we have a slang FOO, is it possible to write <$~FOO.method-nm(...)> instead of <method-nm=.LANG('FOO', 'method-nm', ...)> 15:55
if not, why not ?
lizmat cognominal: no idea :-( 16:08
AlexDaniel m: say byte.Range 16:34
camelia -Inf^..^Inf
AlexDaniel isn't it kinda weird? 16:37
this commit changed it: github.com/rakudo/rakudo/commit/b6...daa50164dc
eveo It's just hitting the default: github.com/rakudo/rakudo/blob/nom/...nt.pm#L191 16:38
AlexDaniel c: b69aa55c^,b69aa55c say byte.Range
committable6 AlexDaniel, ¦b69aa55c^: «-Inf..Inf» ¦b69aa55: «-Inf^..^Inf»
AlexDaniel ah, I see the “else” now
( !! :) )
but doesn't it mean that “fail "Unknown integer type: {self.^name}";” is practically dead code? 16:39
eveo Yeah, was about to say
The invocant has Int:U, so it'll always be at least Int
Geth rakudo/nom: 86c3d7aa1f | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Introducing R:Q.ADD-PAIRS-TO-BAG

  - abstract the logic of Baggy.new-from-pairs
  - throws immediately for illegal values
  - after attempting to coerce them to Int
  - awesomified some LTA erroring
  - no need for SANITY method anymore, or keeping whether we saw a Pair
  - alas, 7% slower than before :-(
16:41
rakudo/nom: c9dfa840ee | (Elizabeth Mattijsen)++ | 2 files
Use new R:Q.ADD-PAIRS-TO-BAG in Baggy.new-from-pairs

  - now dies if given a lazy list, rather than infinilooping
  - copy Baggy.new-from-pairs to Mixy to keep Mixy operational for now
lizmat m: say int8.Range 16:42
camelia -128..127
lizmat AlexDaniel: perhaps we need to add "byte" there ? 16:43
AlexDaniel lizmat: yes, here's a ticket RT #131529
eveo is it supposed to be 64 bits tho?
m: my byte $x = 2**64-1
camelia ( no output )
eveo m: my byte $x = 2**64
camelia Cannot unbox 65 bit wide bigint into native integer
in block <unit> at <tmp> line 1
AlexDaniel m, what?
evalable6 AlexDaniel, Full output: gist.github.com/58d7ac3a5f62179ae7...2dc0bc17e5
(exit code 1) 04===SORRY!04=== Error while compiling /tmp/EDqwtG4BNE
Bogus p…
AlexDaniel no it's 8 bits
eveo 2**64 is 8 bits? 16:44
lizmat m: say uint8.Range
camelia 0..255
AlexDaniel slaps evalable6
lizmat that's what byte should be, no ?
eveo I would've thought
AlexDaniel ( github.com/perl6/whateverable/issues/147 )
lizmat: it is exactly that 16:45
lizmat ok, fixing 16:46
eveo ZOFVM: Files=1254, Tests=138717, 125 wallclock secs (24.19 usr 3.33 sys + 2604.11 cusr 146.01 csys = 2777.64 CPU) 17:00
Geth rakudo/nom: af85d5380b | (Elizabeth Mattijsen)++ | src/core/Int.pm
Fix for RT #131529

  - add byte case (it was omitted for some reason)
  - get rid of unreachable default
17:07
cognominal thx lizmat
Geth rakudo/nom: f28762816c | (Elizabeth Mattijsen)++ | src/core/Iterable.pm
Make Iterable.Bag about 60% faster

  - use new R:Q.ADD-PAIRS-TO-BAG
  - use sub instead of private method, we don't need attributes
  - based on a 26-element array with Pairs
17:09
dogbert17 commit: 2015.11 if 0 { say "no" } else{ say "yes" } 17:14
committable6 dogbert17, ¦2015.11: «yes»
dogbert17 commit: 2015.06 if 0 { say "no" } else{ say "yes" }
committable6 dogbert17, ¦2015.06: «yes» 17:15
dogbert17 hmm, did this ever generate a syntax error?
eveo c: all if 0 { say "no" } else{ say "yes" }
committable6 eveo, gist.github.com/cab7b85be4d27fbc8c...bc76fd91df
dogbert17 thx, so it failed a long time ago, time to fix some docs then 17:17
Geth rakudo/nom: a243063c92 | (Zoffix Znet)++ | src/core/Complex.pm
Implement Complex.cis

Fixes hang[^1] with i.cis, but I see more candidates in Real that go through Cool that hang (e.g. unpolar). Need to figure out which can be handled by Complex and implement those, and those that don't need to coerce to .Real, not .Numeric, in Cool candidates.
  irclog.perlgeek.de/perl6/2017-06-07#i_14699844
roast: 71ab9b3bac | (Zoffix Znet)++ | S32-num/cool-num.t
Test Complex.cis
rakudo/nom: 8791b44740 | (Elizabeth Mattijsen)++ | 4 files
Make .Set coercers a few percent faster

By not using a private method, but a sub. Private methods in roles
  are still run-time dispatch :-(
17:25
eveo m: for ^3 -> $n { my $last = False; LAST { $last = True }; for "a".."c" -> $l { say "{"LAST" if $last}: $n:$l" }} 17:41
camelia : 0:a
: 0:b
: 0:c
: 1:a
: 1:b
: 1:c
: 2:a
: 2:b
: 2:c
eveo kinda expected it to print "LAST" at the end 17:42
I guess it runs at the very end or something
m: for ^3 -> $n { my $last = False; LAST { say "Setting"; $last = True }; for "a".."c" -> $l { say "{"LAST" if $last}: $n:$l" }}
camelia : 0:a
: 0:b
: 0:c
: 1:a
: 1:b
: 1:c
: 2:a
: 2:b
: 2:c
Setting
eveo yeah. makes sense, since it'd need to future travel 17:43
perlpilot LAST phasers run after LEAVE phasers which run at the block exit. 17:44
The docs for LAST could make the timing a little more clear without having to hunt down LEAVE
Geth rakudo/nom: 4139b96e9b | (Elizabeth Mattijsen)++ | 3 files
Make .Bag coercers a few percent faster

By not using a private method, but a sub. Private methods in roles
  are still run-time dispatch :-(
17:46
rakudo/nom: 8c7e4e5174 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm
Make .Mix coercers a few percent faster

By not using a private method, but a sub. Private methods in roles
  are still run-time dispatch :-(
17:57
lizmat dinner&
Geth rakudo/nom: fb9e1a87fe | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Introducing R:Q.ADD-PAIRS-TO-MIX

  - abstracted logic of Mixy.new-from-pairs
  - no longer allows NaN, Inf or -Inf as values (which would break Mixy.roll)
  - no longer needs a SANITY method
19:51
rakudo/nom: e5719d6a92 | (Elizabeth Mattijsen)++ | src/core/Mixy.pm
Use R:Q.ADD-PAIRS-TO-MIX in Mixy.new-from-pairs

  - also no longer hang on lazy lists, but throw
  - a few percent faster than before
samcv i think i might take a look at RT 28875 today 19:59
the ignoremark+ignorecase bug rt.perl.org/Public/Bug/Display.html?id=128875
Geth rakudo/nom: bba6de5f40 | (Elizabeth Mattijsen)++ | src/core/Iterable.pm
Make Iterable.Mix(|Hash) about 40% faster

  - by using the new R:Q.ADD-PAIRS-TO-MIX directly without needing to
   pass through Mixy.new-from-pairs with its slurpy sig
20:17
roast: 59736cecfe | (Elizabeth Mattijsen)++ | 6 files
Add .QuantHash/QuentHash.new-from-pairs lazy tests
20:54
roast: 7a88a38e2b | (Elizabeth Mattijsen)++ | 2 files
Add .Bag(|Hash) tests for illegal values
21:44
pmurias m: my sub bar() {};my multi foo(int $foo) {bar(); 456;}; say foo(123) 21:46
camelia Cannot resolve caller foo(Int); none of these signatures match:
(int $foo)
in block <unit> at <tmp> line 1
pmurias m: my sub bar() {};my multi foo(int $foo) {456;}; say foo(123)
camelia 456
eveo Feels like Failure.self should explode it. What's a way to pass through a value and explode it if it's a failure?
pmurias the optimizer thinks that a multi foo(int $foo) {} takes an Int
eveo pmurias: that's the ticket I mentioned earlier in #perl6 today: rt.perl.org/Ticket/Display.html?id...et-history 21:47
lizmat m: dd NaN ~~ Real # this feels, eh wrong 21:48
camelia Bool::True
eveo Why? NaN is Num and Num is Real
lizmat NotaNumber is a Number ?
eveo It has to be some type 21:49
What would it be? Mu?
lizmat from a linguistic point of view, having NotANumber being a Number is weird 21:51
I guess mathematically it makes sense
pmurias eveo: so I should fix that?
eveo pmurias: if you can, that would be great. There's a bunch of native candidates that are commented out in Rakudo due to this bug.
(grepping for the ticket number should find them) 21:52
From a mathematical sense it don't make sense for 0/0 to be a usable value, but from IEEE sense it's a perfectly good-looking NaN
m: say Num(0/0)
camelia NaN
eveo ZOFFLOP: t/spec/S11-modules/import-multi.t 22:00
ZofBot: google killed my VM while I was in the middle of typing the commit!! Kill all humans 22:01
ZofBot eveo, exists (DEPRECATED) The "exists" method is considered to be a deprecated internal method: the normal way to test for existence is to apply the ":exists" adverb to a subscripting operation
Geth roast: f83f077571 | (Elizabeth Mattijsen)++ | 2 files
Add .Mix(|Hash) tests for illegal values
22:14
rakudo/nom: 7fa8568254 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
Make sure that Mixy's only take Real values

Or anything that can be coerced to a Real value. i is not one of them.
22:18
lizmat and that conclude my hacking for today
good night, #perl6-dev!
jnthn 'night lizmat++
eveo night 22:21
samcv yay that ignorecase+ignoremark bug is *almost* done being fixed :-) 22:22
eveo sweet
Geth rakudo/nom: 0a100825dd | (Zoffix Znet)++ | src/core/Failure.pm
Implement Failure.self

  - Explodes Failure if it's unhandled
  - Returns self if it is
  - Provides a concise mechanism to explosively filter out unhandled
   Failures while letting all other values through, thanks to Mu.self
  irclog.perlgeek.de/perl6/2017-06-07#i_14701715
roast: 5bdb393ea9 | (Zoffix Znet)++ | S04-exceptions/fail.t
Test Failure.self

Rakudo impl: github.com/rakudo/rakudo/commit/0a100825dd IRC convo: irclog.perlgeek.de/perl6/2017-06-07#i_14701715
22:23
samcv NeuralAnomaly, status 22:24
NeuralAnomaly samcv, [✘] Next release will be in 1 week and 2 days. Since last release, there are 64 new still-open tickets (61 unreviewed and 0 blockers) and 377 unreviewed commits. See perl6.fail/release/stats for details
eveo greppable6: storage_test333 22:25
greppable6 eveo, gist.github.com/eac0b1f3637b6a1ecc...95b21944b6
eveo Some module created that in my ~/ :S how rude
Pretty cool that it's so easy to find out who :P
timotimo damn, that really is pretty neat 22:33
AlexDaniel timotimo: what is? 23:13
I wish I had time today to do the 2 line change to implement the freaking error message for RT #126732, just so that people shut up and not spam everyone with these stupid emails… 23:15
but no, maybe tomorrow
until then we can probably expect 3 to 5 more emails…
eveo AlexDaniel: if you can't stand the heat don't get in the water ;) 23:16
AlexDaniel timotimo: ah, that it is so easy to find. Well, it's just one git grep away, not a big trouble
eveo: well, techincally, I created the water for this one…
eveo :) 23:17