Geth roast: 0832cfbaeb | (Ronald Schmidt)++ | fudgeandrun
fudgeandrun - remove error report for valid non-zero exit code
01:21
roast: cd19dd62f8 | (Ronald Schmidt)++ | fudgeandrun
Merge pull request #243 from ronaldxs/fix2-fudgeandrun-exit

fudgeandrun - remove error report for valid non-zero exit code
rakudo/nom: dc5fb20735 | (Jonathan Worthington)++ | src/Perl6/World.nqp
Improve CHECK errors.

They now state that it was a CHECK block that went wrong, and give a line number, rather than just SORRY and the exception text.
10:24
nqp: 3dff0f3cdb | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MOAR_REVISION for exception SEGV fix.
10:25
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...3-ga95639c
rakudo/nom: b2eb1155a7 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Get latest MoarVM.

Fixes a SEGV in exception handler resolution in `sub { INIT return }`.
10:26
¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....6-g3dff0f3
roast: 8bc33ae5e5 | (Jonathan Worthington)++ | S04-statements/return.t
Tests to cover RT #130825.
10:27
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130825
IOninja did it now.. 11:55
buggable!! y u eat 2.1GB of RAM! 11:56
buggable tell Geth you're sorry for chewing through all the RAMs. 11:57
huggable: hug Geth
huggable hugs Geth
lizmat jnthn: would it be an idea to mark 42 xx foo lazy when foo is a bigint, and non-lazy otherwise ? 12:00
dogbert11 huggable: buggable 12:05
huggable dogbert11, nothing found
jnthn lizmat: Not sure about that. I guess my first surprise was that it returned List, not Seq... 12:30
lizmat: But even then, a List can have lazy parts
rt.perl.org/Ticket/Display.html?id=130812 is a bit funny to hunt down 12:31
I can't understand how it manages to parse...
IOninja m: say WHAT (42 xx *) 12:32
camelia (Seq)
jnthn o.O
m: say WHAT (42 xx 10) 12:33
camelia (List)
jnthn I...don't much like that discontinuity...
IOninja neigther
jnthn If we can get away with it, I'd prefer Seq all the time
Guess we'd have to see what spectest has to say
nqp: / "[" ~? "]"/ 12:47
camelia Quantifier quantifies nothing. at line 2, near " \"]\"/"
at gen/moar/stage2/NQPHLL.nqp:765 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)
from gen/moar/stage2/NQPP6QRegex.nqp:87 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPP6QRege…
jnthn m: / "[" ~? "]"/
camelia ===SORRY!===
Cannot find method 'rxtype' on object of type NQPMu
jnthn What on earth
Oh... 12:48
Geth rakudo/nom: 91a4ac5a67 | (Jonathan Worthington)++ | src/Perl6/Grammar.nqp
Panic upon solitary quantifiers in regexes.

The error case here is unable to construct an AST that will not blow up in interesting ways later on in compilation, so we need to abort. Fixes RT #130812, where the `sorry` rather than `panic` led to an internal error because of follow-up operations on a malformed AST.
13:01
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130812
roast: a62d2cfe78 | (Jonathan Worthington)++ | S05-metachars/tilde.t
Test to cover RT #130812.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130812
[Coke] jnthn++ 13:04
Geth roast: 3085a00cbf | (Jonathan Worthington)++ | S02-types/baggy.t
Correct test sensitive to hash ordering.
13:44
nqp: a0de23c86b | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MoarVM for two SEGV fixes.
13:45
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...7-g3d85900
IOninja huh 13:46
Geth rakudo/nom: 1cafc67b1a | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Get latest MoarVM.

  * Fix SEGV on xx with a huge value on the right side
  * Fix SEGV when an enormous number of combiners were put on a char
¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....7-ga0de23c
IOninja m: my class Foo does Baggy {}; my $b = Foo.new: <a a b>; say WHAT $b.invert
camelia (Seq)
IOninja oh OK 13:47
thought it were a baggy and was worried the infix:<eqv> got broken for them
Geth roast: 00c3c04394 | (Jonathan Worthington)++ | S15-nfg/many-combiners.t
Test to cover SEGV in RT #129227.
13:48
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129227
IOninja the stresstest's been weird lately. Highly variable in how long it takes to finish up, to the point I often suspect it hanged 14:23
h'sbeen sittin' on t/spec/S17-procasync/stress.t for a few minutes now :/
and it's done... and t/spec/S17-channel/stress.t was super fast. Other times in reverse, I don't even notice procasync one, but it takes ages to do t/spec/S17-channel/stress.t 14:24
and what's more annoying is I'm running this on a 24-core VM but end up waiting for 2 test files to complete one after the other. >:| 14:43
lizmat IOninja: I guess the "slow" algorithm needs some tuning then :-) 14:45
IOninja Hm. Wonder if this new weird behaviour have to do with my marking these files as `slow`: github.com/rakudo/rakudo/commit/26...9d441877c9
Maybe.
lizmat basically, the "slow" files are "spread out" evenly over the available test files 14:46
IOninja ZOFVM: Files=1225, Tests=132903, 243 wallclock secs (22.75 usr 3.50 sys + 4567.17 cusr 284.20 csys = 4877.62 CPU
and there probably ends up one at the very end? The one I end up waiting on.
lizmat so given say 1000 test files and say 50 slow files, one slow file will be started for each set of 20 test files
IOninja looks at code
lizmat perhaps they should be evenly spread over the first half 14:47
IOninja Will look more at it later. Need to do other stuff ATM.
Geth rakudo/nom: a08e953018 | (Zoffix Znet)++ | 2 files
Fix .comb(Int) failing to work on Cool

  - Simply forward the capture from the Cool.comb method to Str.comb
  - Make Cool.comb an `only` method to prevent infiniloop in dispatch
   when .comb is given wrong args
Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14120030
14:50
roast: ec65112712 | (Zoffix Znet)++ | S32-str/comb.t
Test .comb(Int) works with Cool invocant

Rakudo fix: github.com/rakudo/rakudo/commit/a08e953018
14:51
IOninja b2gills: done.
Geth rakudo/nom: 742573724c | (Zoffix Znet)++ | 2 files
Fix hang in dispatch of .lines/.words when given wrong args

The Cool candidates take a capture and forward it to Str candidates. When the methods are given wrong arguments, we end up stuck in an infinite loop with the Cool and Str candidates passing the stuff to each other.
Fix by making Cool candidates `only` methods.
Bug find: irclog.perlgeek.de/perl6/2017-02-22#i_14144282
15:06
roast: c4ccaa4ce0 | (Zoffix Znet)++ | 2 files
Test .lines/.words with wrong args do not hang

Rakudo fix: github.com/rakudo/rakudo/commit/742573724c
15:08
travis-ci Rakudo build failed. Jonathan Worthington 'Panic upon solitary quantifiers in regexes. 15:20
travis-ci.org/rakudo/rakudo/builds/204184707 github.com/rakudo/rakudo/compare/b...a4ac5a671b
buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (1), or GitHub connectivity (0).
jnthn buggable++ 15:47
[Coke] getting a sporadically failing example test on doc/Type/IO/Socket/INET.pod6 (chunk 1) when run under load. seems to be fine on its own. 16:00
ww.
Geth rakudo/nom: 755e25bd57 | (Elizabeth Mattijsen)++ | src/core/Numeric.pm
Make %% about 14x faster for Int,Int case

  - add candidate for Int:D, Int:D
  - use native mod_i if possible
This makes "($_ if $_%%5 for 1..1000000).sum" about 3.3x faster
19:50
IOninja cool 19:52
m: use nqp; say nqp::mod_I(nqp::decont(42),nqp::decont(0),Int))
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected closing bracket
at <tmp>:1
------> 3od_I(nqp::decont(42),nqp::decont(0),Int)7⏏5)
IOninja m: use nqp; say nqp::mod_I(nqp::decont(42),nqp::decont(0),Int)
camelia Division by zero
in block <unit> at <tmp> line 1
19:53
IOninja aww
m: use nqp; say nqp::mod_I(nqp::decont(42),nqp::decont(0),Num)
camelia P6opaque: get_boxed_ref could not unbox for the representation '20' of type Num
in block <unit> at <tmp> line 1
IOninja m: use nqp; say nqp::mod_n(nqp::decont(42),nqp::decont(0))
camelia This type cannot unbox to a native number: P6opaque, Int
in block <unit> at <tmp> line 1
IOninja m: use nqp; say nqp::mod_n(42e0,0e0) 19:54
camelia 42
IOninja interesting...
timotimo fantastic, lizmat 19:59
IOninja What's this char = 2 bytes is from? github.com/rakudo/rakudo/blob/7425...le.pm#L589 20:17
lizmat UTF-16 ? 20:19
or rather, words rather than bytes ? 20:20
lizmat is not sure about JVM internals
IOninja m: "I♥u".bytes.say
camelia No such method 'bytes' for invocant of type 'Str'
Did you mean '.encode($encoding).bytes'?
in block <unit> at <tmp> line 1
IOninja m: "I♥u".encode.elems.say 20:21
camelia 5
IOninja Hm. Well, it's wrong. Wondering what the Right™ is.
j: "/tmp/Foo.pm6".IO.spurt: "I♥u so very much"; "/tmp/Foo.pm6".IO.open.readchars(3).say
camelia I♥u
IOninja j: "/tmp/Foo.pm6".IO.spurt: "I love you so very much"; "/tmp/Foo.pm6".IO.open.readchars(3).say
camelia I love
ugexe m: say "I♥u".ords.elems 20:22
camelia 3
IOninja m: .encode.elems.say "u", "♥", "\c[rainbow flag]"
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3.encode.elems.say7⏏5 "u", "♥", "\c[rainbow flag]"
expecting any of:
infix
infix stopper
statement end
statem…
IOninja m: .encode.elems.say for "u", "♥", "\c[rainbow flag]"
camelia 1
3
14
IOninja m: .chars.say for "u", "♥", "\c[rainbow flag]" 20:23
camelia 1
1
2
IOninja two?
I thought it was ZWS stuff
moritz m: say "\c[ranbow flag]".substr(0).uniname
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized character name [ranbow flag]
at <tmp>:1
------> 3say "\c[ranbow flag7⏏5]".substr(0).uniname
moritz m: say "\c[rainbow flag]".substr(0).uniname
camelia WAVING WHITE FLAG
moritz m: say "\c[rainbow flag]".substr(1).uniname
camelia RAINBOW
IOninja m: say "\c[eye in speech bubble]".chars 20:24
camelia 1
IOninja m: say "\c[eye in speech bubble]".substr(0).uniname
camelia EYE
IOninja m: say "\c[eye in speech bubble]".substr(*-1).uniname
camelia EYE
IOninja m: say "\c[eye in speech bubble]".substr(1).uniname
camelia Nil
IOninja .ask samcv is it normal that "\c[rainbow flag]".chars == 2 ? It's listed in ZWJ sequence: unicode.org/emoji/charts/emoji-zwj-...ences.html 20:25
yoleaux2 IOninja: I'll pass your message to samcv.
lizmat m: use nqp; say nqp::mod_I(-13,4,Int); say nqp::mod_i(-13,4) # shouldn't these be the same ? 20:31
camelia 3
-1
lizmat jnthn: ^^^ ?
ah, there's already a RT #128318 20:38
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128318
IOninja it's not wrong, but just inconsistent, innit? 20:40
geekosaur make sure that inconsistency isn't deliberate. soemtimes you *want* floating point to behave differently (remember the whole negative zero thing?) 20:48
...although you might ten need to actually change _I to check the type
instead of (presumably) assuming someone wanting the integer behavior uses _i
IOninja Well, I don't know yet if it's right, I'm still trying to find the formula :}
m: say -13**5 mod -13 20:49
camelia 0
IOninja m: use nqp; say nqp::mod_I(-13**5, -13) 20:50
camelia ===SORRY!===
Arg count 2 doesn't equal required operand count 4 for op 'mod_I'
IOninja m: use nqp; say nqp::mod_I(-13**5, -13, Int)
camelia 0
IOninja m: use nqp; say nqp::mod_i(-13**5, -13)
camelia 0
IOninja 0 is good
I don't know what I'm doing \o/ 20:51
IOninja relocates
Geth rakudo/nom: 5ec25177b7 | (Elizabeth Mattijsen)++ | src/core/Int.pm
Make Int % Int about 8x faster

  - use nqp::mod_i if possible (hacked for RT #128318)
If RT #128318 would have been fixed, this would have made Int % Int about 10x faster.
20:59
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128318
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128318
b2gills my disconnect from earlier was caused by Perl 6 code that occasionally managed nearly 500% cpu on a 4 core (+4 hyperthreads) machine, according to `top` 21:16
moritz
.oO( know your ulimits )
21:19
b2gills It was the RAM usage and swapping that forced me to boot up another computer and ssh in to kill it 21:20
timotimo jvm always uses utf16, i think? 21:52
lizmat yeah, I think the 2*chars was a rude approximation :-) 21:53
IOninja I filed it as rt.perl.org/Ticket/Display.html?id...et-history seems its in want of a proper nqp::readcharsfh impl on JVM 22:03
jnthn The JVM backend is in want of a proper strings impl :) 22:06
MasterDuke anyone have any thoughts on the modified-as-of-yesterday-to-take-into-account-system-bittedness-(which-i-hope-isn't-a-real-word-but-i-can't-think-of-the-right-one) github.com/rakudo/rakudo/pull/1021? 22:25
lizmat hmmm... it appears that if I turn foo xx N into a Seq, it breaks >>xx<< :-( 22:34
jnthn Hmmm :S 22:35
MasterDuke heh, thought the '>>xx<<' was another emoticon at first read
jnthn Cross-eyed with big ears? :)
MasterDuke sad elephant instead of sad panda? 22:36
jnthn hehe 22:37
MasterDuke jnthn: btw, any pointers on my Binder.java problem? 22:40
jnthn MasterDuke: I'm about to go to sleep now, but ask me again tomorrow and I'll take a look :)
MasterDuke thanks, will do 22:41
lizmat fwiw, it breaks with consumed iterator error
jnthn m: say ((1,2),(3,4)) >>Z<< (<a b>, <c d>) 22:43
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing << or >>
at <tmp>:1
------> 3say ((1,2),(3,4)) >>Z<7⏏5< (<a b>, <c d>)
expecting any of:
infix
infix stopper
jnthn m: say ((1,2),(3,4)) >>[Z]<< (<a b>, <c d>) 22:44
camelia This Seq has already been iterated, and its values consumed
(you might solve this by adding .cache on usages of the Seq, or
by assigning the Seq into an array)
in block <unit> at <tmp> line 1
jnthn Seems it's a more general problem than just xx
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you so very much"; with "/tmp/Foo.pm6".IO.open { .read(2); .seek: 1, SeekFromCurrent; .tell.say } 22:54
camelia 3
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you so very much"; with "/tmp/Foo.pm6".IO.open { .readchars(2); .seek: 1, SeekFromCurrent; .tell.say } 22:55
camelia 24
IOninja looks .readchars messes up the current position as far as seekage is concerned (it's fine if you try to read more, for example)
lizmat jnthn: ah, good point
IOninja only on moarvm
lizmat that means I'll direct my attention to that tomorrow first
jnthn I...didn't know we had readchars :P 22:57
Oh wait, maybe I did :)
IOninja: fwiw, note current position for reading chars is...involved 22:58
Note sufficiently to be that far off
But it's at byte level
And we have to read ahead at the bye level to know the next thing isn't a combining char or other non-break thingy in order to hand back the char before it
*byte 22:59
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you so very much"; with "/tmp/Foo.pm6".IO.open { .readchars(2).say; .tell.say }
camelia I
3
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you so very much"; with "/tmp/Foo.pm6".IO.open { .readchars(2).say; .readchars(3).say; .tell.say }
camelia I
lov
6
IOninja Seems only .seek is affected though
b2gills sounds like `readchars` is buffered
jnthn Yeah, something's odd with seek there
Buffered - well kinda :) 23:00
IOninja m: say "I love you so very much".chars
camelia 23
IOninja aha
m: "/tmp/Foo.pm6".IO.spurt: "I love you\nso very much"; with "/tmp/Foo.pm6".IO.open { .readchars(2); .seek: 1, SeekFromCurrent; .tell.say }
camelia 24
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you\nso very much" x 100; with "/tmp/Foo.pm6".IO.open { .readchars(2); .seek: 1, SeekFromCurrent; .tell.say }
camelia 2301
jnthn Anyway, just sayin' that if it's off-by-one it's actually not lying :)
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you\nso very much" x 10000; with "/tmp/Foo.pm6".IO.open { .readchars(2); .seek: 1, SeekFromCurrent; .tell.say }
camelia 32769
IOninja m: "/tmp/Foo.pm6".IO.spurt: "I love you\nso very much" x 20000; with "/tmp/Foo.pm6".IO.open { .readchars(2); .seek: 1, SeekFromCurrent; .tell.say }
camelia 32769
IOninja b2gills++ indeed looks like something buffering or something 23:01
jnthn Yeah, that looks like some kinda buffering
IOninja will just file this one
Too hard for me, yet :)
jnthn The .tell being off-by-some without .seek is the thing I was talking about, to be clear.
I don't really consider that part a bug
The .seek doing something way off, otoh... 23:02
Sleep time; 'night
IOninja night
filed as rt.perl.org/Ticket/Display.html?id=130843 23:10
Geth rakudo/nom: 90dfdf581d | (Nick Logan)++ | tools/install-dist.pl
Refactor install-dist.pl

  * Create just one Distribution class per routine
  * Add more descriptive CLI option names
  * Fix missed `Distribution::Path.new(s/:file/:meta-file/)` switch-a-roo
23:18
ugexe nine: github.com/rakudo/rakudo/blob/90df...ist.pl#L20 deleting the version file here makes its non-functional because upgrade-repository() will be rerun on it again (it errors trying to upgrade from v0->v1, since the repo was is actually v2) 23:23
so I suspect we need a way to determine if a repo without a version file is actually v0 or not 23:24
MasterDuke timotimo: i was surprised by the time difference between $a+=5 and $a=$a+5, a profile is kind of interesting. += is 25% spesh, 75% jit, 6000262 frames entered (1999795 eliminated by in-lining). = + is 100% jit, 671 frames entered(5999385 eliminated by in-lining) 23:33
for `my $a = 0; loop (my $b = 0; $b <= 10000000; $b+=5) { $a+=$b }; say $a` vs `my $a = 0; loop (my $b = 0; $b <= 10000000; $b=$b+5) { $a=$a+$b }; say $a` 23:34
lizmat good night, #perl6-dev! 23:45
IOninja night 23:56
samcv IOninja, it should be 1 character. there are some that show up as multiple characters still 23:58