Geth rakudo: jstuder-gh++ created pull request #1379:
Add test to finish Issue 1305 (LTA Range Error)
04:26
rakudo: e91159c5a1 | (Jeremy Studer)++ | t/05-messages/02-errors.t
Add test to finish Issue 1305 (LTA Range Error)

  <github.com/rakudo/rakudo/issues/1305>
05:07
rakudo: 5a76b3cfe4 | (Zoffix Znet)++ (committed using GitHub Web editor) | t/05-messages/02-errors.t
Merge pull request #1379 from jstuder-gh/issue_1305_test

Add test to finish Issue 1305 (LTA Range Error)
travis-ci Rakudo build failed. Zoffix Znet 'Merge pull request #1379 from jstuder-gh/issue_1305_test 06:44
travis-ci.org/rakudo/rakudo/builds/326674840 github.com/rakudo/rakudo/compare/1...76b3cfe47e
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
lizmat Files=1231, Tests=75999, 328 wallclock secs (14.85 usr 5.32 sys + 2269.97 cusr 233.42 csys = 2523.56 CPU) 08:53
Geth rakudo: f99943d3fd | (Elizabeth Mattijsen)++ | src/core/Str.pm
Streamline infix:<x>

  - add Bool:D candidate, makes it about 2x faster for True
  - only call nqp::x if there's actually something to do, mild improvement
Inspired by twitter.com/zoffix/status/950537151212675072
09:09
lizmat Zoffix: re github.com/zoffixznet/q , cool! maybe some documentation is in order? 09:13
also, maybe that should be in core ? 09:14
jnthn We already have a .dump() on QAST nodes in core, fwiw 10:13
(So perhaps that can be improved) 10:14
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Streamline infix:<x> 10:37
travis-ci.org/rakudo/rakudo/builds/326725911 github.com/rakudo/rakudo/compare/5...9943d3fd3c
buggable [travis build above] ☠ All failures are due to: failed make test (3 failures). Across all jobs, 2 unique test files failed.
|Tux| Rakudo version 2017.12-143-gf99943d3f - MoarVM version 2017.12-22-gc2de234c4
csv-ip5xs1.098 - 1.099
csv-ip5xs-2012.688 - 12.764
csv-parser12.309 - 12.624
csv-test-xs-200.434 - 0.482
test11.299 - 11.497
test-t2.783 - 2.810
test-t --race1.124 - 1.166
test-t-2050.385 - 50.631
test-t-20 --race18.147 - 19.213
11:53
2017-12-05 22:26:46 test-t 2.825 11:54
2018-01-09 12:44:30 test-t 2.810
2017-12-01 17:41:36 test-t 2.809
2017-12-13 10:54:18 test-t 2.785
2018-01-09 12:47:47 test-t 2.783
lizmat m: sub a(Any:D $a) { }; a # should this fail or not ? 12:09
camelia Too few positionals passed; expected 1 argument but got 0
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat argh, I meant: 12:10
m: sub a(Any:D :$a) { }; a # should this fail or not ?
camelia Parameter '$a' of routine 'a' must be an object instance of type 'Any', not a type object of type 'Any'. Did you forget a '.new'?
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat basically the question of: stackoverflow.com/questions/481663...it-a-requi
m: sub a(Any:D :$a = 42) { }; a # I guess requiring a :D for a named, means you have to supply a defined default value for it 12:11
camelia ( no output )
lizmat m: sub a(Any:D :$a = Int) { }; a
camelia Parameter '$a' of routine 'a' must be an object instance of type 'Any', not a type object of type 'Int'. Did you forget a '.new'?
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat BTW, same issue with positionals: 12:17
m: sub a(Any:D $a?) {}; a
camelia Parameter '$a' of routine 'a' must be an object instance of type 'Any', not a type object of type 'Any'. Did you forget a '.new'?
in sub a at <tmp> line 1
in block <unit> at <tmp> line 1
Geth rakudo: 5f7fdfdd37 | (Elizabeth Mattijsen)++ | src/core/List.pm
Add some type-smileys to signature of infix:<xx>

Should create better error messages on input with type objects.
12:22
rakudo: ca4fcacafe | (Elizabeth Mattijsen)++ | src/core/List.pm
Add Bool:D candidates for infix:<xx>

  - makes 42 xx False about 16x faster
  - makes 42 xx True about 10% faster
12:47
Zoffix lizmat: yeah, that looks right to me. The attribute's default default is an Any:U, which causes a typecheck error. Even tho the parameter is optional, it *always* can be used inside the routine, even if the argument was not specified, so it must have some :D value in it at all times. -1 on OP's proposal to make :D's automatically required. It's just a single character (!) to type to make them required 12:52
explicitly so addiing special casing IMO will just cause extra learning burden and poorer errors for no benefit
jnthn agrees fwiw 12:56
masak many of those could be compile-time errors if we wanted 13:04
like with `sub a(Int:D $number = Int)`, you've just written a line of code that's just sitting around waiting to blow up at runtime 13:05
but we have all the information to do the typecheck at compile time
lizmat yeah, it's a smop 13:06
masak in my view, this would be the attraction of gradual typing -- that you get to opt into more static checks :)
El_Che except when prototyping, wouldn't "do always static typing" be the best practice? 13:12
I don't see the use of not using types when you have them 13:13
masak not typechecking the type violates Least Surprise :P
El_Che someone (lizmat?) once told me that there isn't a perfomance price to pay for typechekcing, because everything is typed under the hood 13:15
lizmat yup, if you don't specify a type, it will be typechecked against Any (generally)
m: my $a; dd $a.WHAT
camelia Any
El_Che so since then, type check everything :) 13:16
lizmat well, however much you're interested in :-)
masak .oO( have the appropriate amount to typechecking )
Zoffix m: say Int/Num 13:22
camelia Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
Zoffix Kinda LTA IMO, since users don't really ever deal with Bridge methods 13:23
pmurias samcv: why did we choose the non-ignorable (as opposed to shifted) unicode collation
samcv pmurias: becuase it's the simplest and the base level 13:24
but there's no shifted yet becuase it has not been implemented yet 13:25
El_Che samcv: I hear you were planning to come to fosdem? 13:29
samcv no i won't be at fosdem
i was considering it but it is expensive 13:30
El_Che next time, then :)
samcv yes!
El_Che yeah, it's not cheap. Find a good boss that sends you to give a talk :)
Zoffix m: -> Int() $x? {dd $x}() 14:09
camelia No such method 'Int' for invocant of type 'Any'
in block <unit> at <tmp> line 1
Zoffix m: -> Int(Str) $x? {dd $x}()
camelia Invocant of method 'Int' must be an object instance of type 'Str', not a type object of type 'Str'. Did you forget a '.new'?
in block <unit> at <tmp> line 1
Zoffix This, on the other hand, IMO could be improved. Default these to the target, not the source of the coercer 14:10
and then it'd bypass the coersion and not explode above and just make $x an Int type object 14:12
gonna try that this week and see if any spectests explode
Zoffix & 14:13
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Add some type-smileys to signature of infix:<xx> 14:18
travis-ci.org/rakudo/rakudo/builds/326789557 github.com/rakudo/rakudo/compare/f...7fdfdd37a0
buggable [travis build above] ☠ All failures are due to: failed make test (3 failures). Across all jobs, 3 unique test files failed.
lizmat m: dd rand xx 3 # expected 14:26
camelia (0.232755674256339e0, 0.463546185312859e0, 0.645911634770275e0).Seq
lizmat m: dd |(1,2,3) xx 3 # expected 14:27
camelia (1, 2, 3, 1, 2, 3, 1, 2, 3).Seq
lizmat m: dd { |(1,2,3) } xx 3 # UNexpected
camelia (-> ;; $_? is raw { #`(Block|54339088) ... }, -> ;; $_? is raw { #`(Block|54355864) ... }, -> ;; $_? is raw { #`(Block|54355936) ... }).Seq
lizmat shouldn't that just execute the block and flatten the Slips it produces ?
timotimo m: dd do { |(1,2,3) } xx 3 # UNexpected 14:28
camelia (1, 2, 3, 1, 2, 3, 1, 2, 3).Seq
timotimo er, didn't mean to keep the comment
lizmat so you're saying if you want it like that, you need to prefix it with a do ? 14:32
if so, why ?
m: dd { |(1,2,3) }() 14:33
camelia slip(1, 2, 3)
timotimo m: dd { |(1, 2, 3) } 14:34
camelia -> ;; $_? is raw { #`(Block|75592432) ... }
Zoffix lizmat: 'cause some forms of xx thunk and { blah } xx 42 ends being a thunk that returns a Block, so you get a bunch of blocks. 14:40
m: &infix:<xx>.candidates».signature.say
camelia (() (Mu \x) (&x, Any:D $n) (&x, Whatever) (&x, Bool:D $b) (&x, Int:D $n) (Mu \x, Any:D $n) (Mu \x, Whatever) (Mu \x, Bool:D $b) (Mu \x, Int:D $n))
Zoffix I think all teh Callable candidates are for thunks
lizmat grr... so a &x signature will also take a thunk 14:41
I guess this is some wierd xx parsing, because it doesn't happen with custom infix:<foo> 14:42
timotimo yeah, for thunky things we need support in the parser itself 14:43
lizmat m: dd { |(1,2,3) } xx 3 # so this is intentional behaviour ?
camelia (-> ;; $_? is raw { #`(Block|56997376) ... }, -> ;; $_? is raw { #`(Block|57014152) ... }, -> ;; $_? is raw { #`(Block|57014224) ... }).Seq
Zoffix lizmat: yeah, it's done by grammar specially: github.com/rakudo/rakudo/blob/mast....nqp#L3968 github.com/rakudo/rakudo/blob/mast....nqp#L4397
m: multi infix:<xx> (Code, Any:D $n) { say "woot a thunk!" }; say {;} xx 42 14:44
camelia woot a thunk!
True
Zoffix m: multi infix:<xx> (Code $c, Any:D $n) { $c.^mro.say; $c.^roles.say }; say {;} xx 42 14:45
camelia ((Code) (Any) (Mu))
((Callable))
True
Zoffix I believe thunks are `Code` and the other Callables can be Block/Routine
lizmat ok, and the "do" turns the block into a thunk (or 'Code') 14:47
I guess that's the price we pay for getting 14:48
m: dd rand xx 3
camelia (0.131076344781978e0, 0.979521644003032e0, 0.176383433300909e0).Seq
lizmat to work
Zoffix m: (.^mro.map(*.^name) ...^ "Code").say for ((*.so), {;}, sub {}, my method {}, my submethod {})
camelia (WhateverCode)
(Block)
(Sub Routine Block)
(Method Routine Block)
(Submethod Routine Block)
lizmat fwiw, I think this is pretty inconsistent
but now I also understand how this works: 14:49
m: dd |(1,2,3) xx 3 14:50
camelia (1, 2, 3, 1, 2, 3, 1, 2, 3).Seq
Geth rakudo: 014f1712c6 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make |(1,2,3) xx 42 about 3x faster

  - simplify counting
  - directly use iterator.push-all instead of "for" loop
15:07
lizmat afk& 15:08
[Coke] will very likely not be at FOSDEM. 15:15
yoleaux Zoffix: If anyone has any ideas for how to proceed on R#1289 please comment 15:17
synopsebot R#1289 [open]: github.com/rakudo/rakudo/issues/1289 [severe] [6.d BLOCKER] Implement a Way to Know Caller's Language
Zoffix jnthn: TimToady nine ^ ping. Any ideas for how to resolve that issue? I can write code if someone gives me some pointers 15:18
Travis replied saying all looks OK on their end and to open a support ticket: twitter.com/travisci/status/950757629781008384 15:59
DrForr [Coke]: :( 16:01
Zoffix El_Che++ # finding cause of #1377 ; I guess I was wrong and tars can be different :o 16:02
[Coke] DrForr: looks like conferences are a possibility - but out-of-country ones are much harder to sell 16:04
Geth rakudo: 31c2f5311d | (Zoffix Znet)++ (committed using GitHub Web editor) | .travis.yml
Travis debug

try making secondary make test non-verbose to see if starts to fail
16:06
DrForr In the current world economy I can completely understand. 16:08
El_Che FOSDEM has normally a nice mix of Perl 6 devs and users. Let's hope enough Perl 6 people show up :)
DrForr We'll see. I'm booking tonight once I check out the hotel situation. 16:09
(not that I'm deciding *whether*, I'm deciding how long.) 16:11
(now that's a rather *personal* question, innit?) 16:12
Zoffix Interesting; second run with `prove` produced a native call warning about incompatible pointer types: travis-ci.org/rakudo/rakudo/jobs/3...7727#L1578 but `make test` run above it didn't 16:20
[Coke] Zoffix: one's using harness, one's using prove, yes? 16:22
Zoffix And out of 3 Linux runs; 3 `make test` had rundom errors and 3 non-verbose proves succeeded
[Coke]: yeah
[Coke] different version of perl5? different env vars, mebbe?
(wouldn't expect that to matter generally)
Zoffix And I double-checked and indeed, Linux failures started right after new years hard drive issues 16:23
or did it.. 16:26
Zoffix tripple checks
Geth rakudo: 18e3468901 | (Zoffix Znet)++ | 2 files
Revert "Smartify harness automatic job number calculation"

This reverts commit 6f36b02137fe8a27f04c5d701e0cbe01cd68cb29.
Try to eliminate potential Travis Linux failures suspect.
16:30
Zoffix Actually, I see one "wait code 9" error in a commit 2 commits before (and 7hr) before hard drive crash. Tho the two commits in between have timeout failures, so it's hard to tell. 16:37
Disk crash: travis-ci.org/rakudo/rakudo/builds/323728746 first wait 9 failure: travis-ci.org/rakudo/rakudo/builds/323686909
El_Che data could also be corrupted before the crash 16:43
it's actually likely
Zoffix Well, I'll be pwned. Looks like my harness smartification commit was to blame. 16:50
All three jobs passed now.
Zoffix restarts to make sure
Yeah. All green again. 17:07
Hooray? :(
|90d see why harness smartification makes Travis cry: github.com/rakudo/rakudo/commit/18e3468901 causes wait 9 failures: travis-ci.org/rakudo/rakudo/builds/323686909
ZofBot Zoffix, Will remind you on 2018-04-09T12:07:38.028904-05:00 about see why harness smartification makes Travis cry: github.com/rakudo/rakudo/commit/18e3468901 causes wait 9 failures: travis-ci.org/rakudo/rakudo/builds/323686909
Geth rakudo: 6709166f3b | (Zoffix Znet)++ (committed using GitHub Web editor) | .travis.yml
Remove travis debug code
18:04
Zoffix [Coke]: I think you were asking if it were possible to see in git log whether commit was committed using Web Editor. It is: the committer's email address would be [email@hidden.address] so it'd be `git log --oneline --author=users.noreply.github.com` 18:07
[Coke] I don't see that in my local git log for ba8ed096, e.g. 18:25
which I am pretty sure I edited online directly.
Zoffix Hm, yeah. Bot said it was online editor irclog.perlgeek.de/perl6/2018-01-08#i_15665932 but yeah, `git log` shows me your normal email too. I guess the used email depends on github account settings 18:28
[Coke] ah well. no worries, thanks for checking! 18:31
Zoffix [Coke]: tho if you know commit SHA you can use GitHub's API to fetch info: perl6 -MWWW -e 'say jget("api.github.com/repos/perl6/doc/commits/" ~ @*ARGS.head)<commit><committer><name> eq "GitHub" ?? "using web editor" !! "no editor"' ba8ed096 18:35
or looking at github.com/web-flow , `)<committer><login> eq "web-flow"` might be righter 18:37
travis-ci Rakudo build passed. Zoffix Znet 'Revert "Smartify harness automatic job number calculation" 19:30
travis-ci.org/rakudo/rakudo/builds/326889065 github.com/rakudo/rakudo/compare/3...e346890158
Geth rakudo: b688d43935 | (Zoffix Znet)++ | src/Perl6/Optimizer.nqp
Do not compute value unless we gonna use it
20:36
lizmat :q 20:48
oops
:)
jnthn hugs lizmat, good Vi(m) user 20:50
lizmat hehe
jnthn
.oO( Hah! Sometimes it's the humans taking the jobs from the bots! )
brrt \o #perl6-dev 20:52
timotimo o/ brrt 20:53
brrt blegh, meltdown fix makes emacs not start instantaneously
(i'm spoiled)
timotimo :) 20:54
DrForr Obviously the if $editor === $kernel { } branch was failing. 21:07
Geth rakudo: e820f30911 | usev6++ | src/Perl6/Actions.nqp
Chain negated operators on MoarVM only

The 'chain' op was modified for MoarVM with nqp commit 92d1d56831 to allow the option to use the first child as the callee. This does not work for jvm or js, currently.
21:25
roast: e35ef6add1 | usev6++ | 2 files
[jvm] Run tests for chained negated ops

With github.com/rakudo/rakudo/commit/e820f30911 the old behaviour is used when not running on MoarVM.
21:36
rakudo: eed54caef5 | (Elizabeth Mattijsen)++ | src/core/List.pm
Don't allow binding into a List, period

As per jnthn's comment in the discussion on GH #1261. Spectests clean.
22:44
synopsebot RAKUDO#1261 [open]: github.com/rakudo/rakudo/issues/1261 Silent Failure When Binding To Map Key
lizmat bed& 22:45
jnthn 'night, lizmat++ 22:46
Zoffix Now I'll have to edit my Containers article :P 23:36
m: my $list := (my $, my $, my $); $list[0] := 100; say $list; 23:37
camelia Cannot use bind operator with this left-hand side
in block <unit> at <tmp> line 1
Zoffix Yeah. This is one of the examples :)
Zoffix settles for a clarificatory comment 23:39
gfldex If everything becomes immutable who are we gonna get superheros? :->
timotimo the zofferton first got his super powers in a horrific mutability accident 23:52