Zoffix chuckles at latest email on Toronto Perl Mongers mailing list 00:33
It starts with "I've got an old, bad program running under Perl 5.6.1..."
ZofBot: I didn't even know they made Perl that old!
ZofBot Zoffix, subname; method is-hidden () {
timotimo Zoffix: that explains why you didn't know about perl that old. 00:35
because is hidden.
geekosaur they would like to bury perl 5.6, yes >.> 00:39
timotimo i wonder when the first perl6 compiler release to drop 6.c should be 00:43
Zoffix thinks 6.c+6.d, 6.d+6.e, 6.d+6.e+6.f and so on in 3-version bunches 00:45
timotimo i was thinking more along the lines of "30 years" 00:47
BenGoldberg What's the c stand for, anyway? 00:48
timotimo "christmas", or "after beta" 00:49
a was advent, b was birthday 00:50
AlexDaniel c stands for ā€œa bit unready but still good enoughā€
m: my @a= <a b c>; @a.pop, @a[3] = ā€˜hiā€™; say @a 00:53
camelia [a b c hi]
AlexDaniel can anybody explain this?
there's a comma after pop 00:54
but pop does not seem to pop?
timotimo m: my @a = <a b c>; @a.pop; say @a; @a[3] = 'hi'; say @a 00:56
camelia [a b]
[a b c hi]
timotimo right, the value should really be discarded
geekosaur m: my @b = <d e f>; my @a= <a b c>; @a.pop, @b[3] = ā€˜hiā€™; say @a
camelia [a b]
geekosaur buuuuuug
Zoffix AlexDaniel: I'll raise you
m: my @a= <a b c>; @a.pop; @a.pop; @a.pop; @a.pop, @a[5] = 42; say @a
camelia Cannot pop from an empty Array
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
Zoffix m: my @a= <a b c>; @a.pop; @a.pop; @a.pop, @a[5] = 42; say @a 00:57
camelia [a b c (Any) (Any) 42]
Zoffix :)
m: my @a= <a b c>; @a.pop; @a.pop; @a[5] = 42; say @a
camelia [a b c (Any) (Any) 42]
Zoffix mc: my @a= <a b c>; @a.pop; @a.pop; @a[5] = 42; say @a
committable6 Zoffix, Ā¦2015.12: Ā«[a b c (Any) (Any) 42]Ā»
Zoffix that long wow
AlexDaniel yup
well, let's seeā€¦ 00:58
c: all my @a= <a b c>; @a.pop; @a.pop; @a[5] = 42; say @a
Zoffix m: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a[*-1] = 42; say @a
camelia [42]
committable6 AlexDaniel, gist.github.com/fd1b58f8608cc9501d...99371f96da
timotimo internally we push, pop, unshift and shift by moving begin and end pointers around
AlexDaniel now THAT is long :)
Zoffix m: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a.push: 42; @a[5] = 42; say @a 00:59
camelia [a 42 c (Any) (Any) 42]
AlexDaniel fwiw that's #131245
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131245
AlexDaniel amazing bug
Zoffix m: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a; @a[3] = 42; say @a 01:01
camelia WARNINGS for <tmp>:
Useless use of @a in sink context (line 1)
[a b c 42]
Zoffix m: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a; @a = @a; @a[3] = 42; say @a
camelia WARNINGS for <tmp>:
Useless use of @a in sink context (line 1)
[a (Any) (Any) 42]
timotimo huh, i wonder if this is fine for GC ...
AlexDaniel yea depends on what you do with it
m: my @a=(1,2,3,4,5); @a.pop; @a.pop; @a.pop; @a.pop; @a[8]="hi"; say @a
camelia [1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) hi]
AlexDaniel m: my @a=(1,2,3,4,5); @a.pop; @a.pop; @a.pop; @a.pop; @a[7]="hi"; say @a
camelia [1 2 3 4 5 (Any) (Any) hi]
timotimo m: my @a = <a b c d e f g h i j k l>; @a.pop for ^10; for ^100_000 { ~(1 + 32) }; @a[11] = "lol"; say @a
camelia WARNINGS for <tmp>:
Useless use of "~" in expression "~(1 + 32)" in sink context (line 1)
MoarVM panic: Internal error: invalid thread ID 23687456 in GC work pass
timotimo it's totally not. 01:02
Zoffix thread?
Oh, you're being sarcastic?
m: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a[3] = 42; say @a
camelia [a b c 42]
Zoffix j: my @a = <a b c>; @a.elems; @a.pop; @a.pop; @a[3] = 42; say @a
camelia [a b c 42]
Zoffix heh
AlexDaniel amazing
Zoffix s: [], 'pop', \() 01:03
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/701d...ay.pm#L685
timotimo you'll want to look at moarvm here
Zoffix timotimo: why? the bug is present on JVM too 01:04
timotimo github.com/MoarVM/MoarVM/blob/mast...ray.c#L372 - try to figure out if/why/how this set_size_internal doesn't reach zero_slots, or if the zero_slots call is wrong and does The Wrong
okay, then fix it on the jvm, too
Zoffix :/ 01:05
timotimo jvm also implements vmarray, its code might look a lot like the moarvm code 01:06
going to bed, have a good one! 01:07
AlexDaniel m: my @a = (); say @a.rotate(1); say @a 01:09
camelia Modulation by zero
in block <unit> at <tmp> line 1
AlexDaniel :|
Geth rakudo/nom: c7aef59a5b | (Nick Logan)++ (committed using GitHub Web editor) | src/core/CompUnit/Repository/Installation.pm
Fix premature deletion of bin wrappers
03:52
nqp: MasterDuke17++ created pull request #357:
Zero slot when popping an array
04:01
MasterDuke_ .ask nine are these two `sleep 2`s still needed? github.com/perl6/roast/blob/master...#L292-L294 04:07
yoleaux MasterDuke_: I'll pass your message to nine.
[Tux] This is Rakudo version 2017.04.3-163-gc7aef59a5 built on MoarVM version 2017.04-44-gf0db8822 06:15
csv-ip5xs 3.323
test 13.013
test-t 4.340 - 4.395
csv-parser 12.999
Geth rakudo/nom: 91fb3076d2 | (Elizabeth Mattijsen)++ | 3 files
Make R:Q.(BAG|MIX)-ROLL return the iterator object

This makes it more versatile, so it can e.g. be used for BagHash.grab.
07:55
lizmat decommute& 08:02
stmuk Zoffix: did you have Strawberry Perl installed on your Windows test system? 09:57
Zoffix Yes
stmuk I think its a dependency still for prove (although zef has made progress on that) as well as a DDL 09:59
nine ~ 10:00
yoleaux 04:07Z <MasterDuke_> nine: are these two `sleep 2`s still needed? github.com/perl6/roast/blob/master...#L292-L294
nine MasterDuke_: oh, actually not! I just forgot to remove them as planned.
stmuk odd we didn't see the DDL reports before .. I doubt that's changed
err DLL even 10:01
Zoffix uhhh 10:05
jnthn Which DLL is it missing? 10:07
Zoffix stmuk: well, I'm now at home and on Windows10 instead of 7, and I removed old Star and Strawberry and tried to install new star and it just blocks me: i.imgur.com/cHVCHRb.png 10:08
Says "it protected me" and there's no option to run it :/
jnthn: libgcc_s_sjlj-1.dll
Per Tweet, at least: twitter.com/mike_sanderson/status/...8453961728
jnthn huh...wow
stmuk I probably should use mingw rather than the gcc with Strawberry Perl 10:09
jnthn Or do MSVC builds
;)
Zoffix Ah, there's a Run anyway button if you click more info
stmuk I prefer pretending I'm on UNIX :)
Zoffix stmuk: yeah, I'm getting the same error as that person
From moar.exe
Zoffix tries install Strawberry again
stmuk I think the short term fix is to explicity list Strawberry Perl as a dependency under downloads errata 10:10
I probably need to install another clean Windows VM for testing 10:11
people need Strawberry Perl for prove and gcc anyway 10:12
Zoffix Confirming installing strawberry fixed it
stmuk grr $work meeting
jnthn stmuk: Fair enough. I suspect both work out fine enough; I'm just more comfortable with the MSVC build 'cus it's the one I'm regularly using/shipping into production :) 10:15
Not to mention MSVC was the first compiler Moar built under...
timotimo and then i came along and tried to use an x86 intrinsic and made everything explode 10:35
Geth nqp: 7f71ec87e8 | MasterDuke17++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/VMArrayInstance.java
Zero slot when popping an array

Otherwise ghost elements are left.
Fixes rt.perl.org/Ticket/Display.html?id=131245 for the JVM.
nqp: 7c4bd48f59 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/VMArrayInstance.java
Merge pull request #357 from MasterDuke17/zero_slot_when_popping_an_array

Zero slot when popping an array
Zoffix Looks like the new nqp QAST tests are failing on JVM: travis-ci.org/perl6/nqp/jobs/228200034 10:36
Geth roast: c02ad87e7f | (Stefan Seifert)++ | S10-packages/precompilation.t
Remove workaround - precompilation no longer checks timestamps

Now that we rely solely on checksums to detect outdated precomp files, we no longer need to ensure that time stamps are different. Thanks to MasterDuke++ for the reminder.
11:10
Zoffix Here's a controvercial idea: remove .comb and .split from IO::Handle 11:17
timotimo because of the "not closing file handles" thing? 11:18
Zoffix Nope. /me types why
timotimo ok
Zoffix Basically, for them to work correctly, they need to read a chunk, do its thing on it, pull one, *pull another one* reading more chunks to ensure the first one is a complete thing and not just a thing due to not all data being available and basically generate all output that way. Now in addition to that being not very awesome for perf, the chunks it reads means all the other methods will read from some 11:22
weird place instead of the next thing after .comb/.split were used. So basically we have to reimplement lessthanawesome versions of Str.com/Str.split, ensuring they provide all of the featurea, and then we still end up with nearly guaranteed data loss if user uses more than just .comb or .split for reading from handle
timotimo ah 11:23
Zoffix And .words is currently in the same category, but it can be reworded in terms of .lines, which maybe not that dramatic? 11:24
timotimo ah, because whatever splits lines will also split words
Zoffix yeah
Or maybe s/remove/make them slurp/ 11:28
timotimo there's no syntactic relief for "when i leave this loop, close the handle" 11:30
Zoffix so IO::Handle.com/.split/.words would be just self.slurp.comb/.split/.words and if anyone wants laziness they can do Cat.new: gather { while $fh.read(999) -> $_ { .take } } 11:31
timotimo hm. we do sink-all on a "regular" for-loop, right?
Zoffix timotimo: yeah, there is LEAVE $fh.close; or my $fh will leave {.close} = .IO.open; or use Trait::IO; my $fh does auto-close = .IO.open... 11:32
Unless you mean for $fh.lines {ā€¦} .. 11:33
yeah
timotimo i meant for $fh.lines and friends
Zoffix there's :close arg and :limit but that doesn't account for bailing from the loop before exhausiting it. Though the handle will get closed on GC, so this is really a problem for doing that sort of thing ~1000+ times (aside from some special circumstances) 11:35
timotimo yeah, the worst is when we lazily decide to break off 11:38
and the handle just never knows
Zoffix
.oO( along with Cat make FatCat: a Cat that keeps around the part of the string it already generated :o )
12:23
There are no specs for Cat, is there? Other than "it's a lazily generated string". I found none on design.perl6.org 12:24
timotimo that's right :( 12:28
Zoffix Just checking. Didn't want to reinvent the wheel
timotimo a few things will be ... interesting
Zoffix Like what? 12:29
timotimo like, i imagine most things will as a first step nqp::chars a string
jnthn The regex engine will likely need major and deep alternations to match a Cat would be the one that scares me most :)
timotimo if the string's a cat, that'd have to fully generate it
Zoffix Oh 12:30
I guess I'm not making a real Cat then
timotimo a plush cat, then?
Zoffix renames it to Kitten :)
timotimo i'm not sure how deep we'll install cat into the vm itself 12:32
jnthn Not very, I'd think 12:33
timotimo OK, so no special repr or anything 12:34
jnthn Since the fetching of the next bunch of things will be done in HLL code
Zoffix hehehe, I love this error: "Type 'Cat' is not declared. Did you mean 'Rat'?" 12:44
ZofBot: Did you mean 'Rat'? Or another small mammal?
ZofBot Zoffix, i don't like it either, i think i created an RT about it a while ago but it was rejected
Zoffix Aww 12:45
timotimo did you mean squirrel?
nine Actually since for $fh.lines(:close) {...} is pretty much $fh.lines(:close).map: {} the iterator returned by lines could ensure that the file handle is closed however the loop is exited. 13:06
jnthn How?
nine Overriding method map or maybe sink. 13:07
jnthn And then when they do for $fh.lines(:close).grep(/foo/) { ... } ?
timotimo then you're ... in trouble 13:09
jnthn The point here being that losing interest in an iteration is done implicitly, not explicitly.
nine It'd have to override all Any-iterable-methods 13:10
jnthn So trying to "solve" this boils down to fighting a property of the iterator pattern itself, which lacks an explicit "unsubscribe"
(The supply world having one, becasue all the references point in the opposite direction)
nine Yeah, maybe it's just not a good idea :) 13:11
jnthn That's my feeling, yeah 13:13
I think IO::Path.lines is, sadly, probably a bad API in the first place
Sometimes there's necesary complexity
Zoffix Jesus christ... is there ANY browser that works 13:23
Palemoon: "switch to tab" feature annoyed me. Installed firefox. Refuses to go to github.com/rakudo/rakudo/blob/91fb...s.pm#L1852 13:24
MasterDuke_ workes in FF 52.02 on arch linux for me 13:25
Zoffix Not in 53 for me. It's like pressing Enter on the address bar doesn't press it. 13:26
k, works after restarting it... 13:27
Anyway, I'm hitting some sort of a bug, unless I don't get how Seqs work: 13:28
m: my $s = (1, 2, 3).Seq; $s.cache; .say for |$s; .say for |$s
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
Zoffix Why does it tell me it's been iterated? I .cached it? 13:29
MasterDuke_ hm, good thing i just made coffee, i'm on kubuntu zesty on the laptop, not arch
Zoffix m: my $s = (1, 2, 3).Seq; $s.cache; .say for |$s;
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
timotimo .cache is not a mutator, is it?
Zoffix Oh
timotimo m: my $s = (1, 2, 3).Seq; $s.=cache; .say for |$s; 13:30
camelia 1
2
3
Zoffix s: (1, 2, 3).Seq, 'Slip', \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/91fb...Seq.pm#L83
Zoffix timotimo: it is
timotimo i didn't know that
Zoffix .cache returns List $!list
which gets set to List from iterator of Seq's tieratyor 13:31
Aha. So I see why my error happens
The Seq.iterator don't do any checking for $!list: github.com/rakudo/rakudo/blob/91fb...pm#L52-L59 13:32
m: with '/tmp/foo42'.IO { .spurt: join "\n", <A B C D E>; with .open { my $lines = .lines.cache; my $lines2 = .lines.cache; $lines2.head.say; $lines.head.say; } } 13:36
camelia A
B
Zoffix But this is where I was going with it :)
On the topic of .lines being bad API
But wait! There's more! 13:37
m: with '/tmp/foo42'.IO { .spurt: join "\n", <A B C D E>; with .open { .words; my $lines = .lines.cache; my $lines2 = .lines.cache; $lines2.head.say; $lines.head.say; } }
camelia Nil
Nil
Zoffix hehe :D
m: with '/tmp/foo42'.IO { .spurt: join "\n", <A B C D E>; with .open { .words.head.say; my $lines = .lines.cache; my $lines2 = .lines.cache; $lines2.head.say; $lines.head.say; } }
camelia A
Nil
Nil
Zoffix A more fair example :)
What's Seq.is-ready for? Seems isn't used in the sauce anywere. method is-ready(Seq:D:) { $!iter.DEFINITE } 13:42
And it's neither in docs nor in roast 13:44
Ah: github.com/rakudo/rakudo/commit/ab...8ba8494ff7
Zoffix is going to remove it 13:45
ZofBot: got a one-liner to recursively remove .precomp dirs I could steal?
ZofBot Zoffix, However, the labeled forms can use method call syntax: "LABEL
timotimo rm -rf **/.precomp :) 13:46
Zoffix That really works? 13:47
ZOFFLOP: t/spec/S17-promise/nonblocking-await.t 13:48
timotimo at least in fish it does
Zoffix Looks like t/spec/S17-promise/nonblocking-await.t just needs larger sleeps maybe 13:49
ilmari timotimo: and in bash with extglob enabled
timotimo i believe i first learned about it in zsh
Zoffix ilmari: how do I tell if I have extglob enabled? 13:50
ilmari Zoffix: 'shopt extglob'
Zoffix off
timotimo it's important that you have shopt it 13:52
Zoffix Doesn't seem tow ork rm -fr **/.precomp 13:54
tree -fad | grep -i precomp still gives me a bunch of S22-package-format/local-file-src/.precomp/ finds after running that rm
timotimo hm 13:55
ilmari hm, no, it's globstar
shopt -s globstar
timotimo we can try "find -type f -name '.precomp' -delete" maybe?
first without -delete probably :D
Zoffix yey \o/ 13:56
ilmari++ that worked :)
Zoffix creates alias declutter='rm -fr **/.precomp'
and timotimo++ for ** :)
timotimo cool 13:58
Zoffix ZOFVM: Files=1242, Tests=133857, 116 wallclock secs (22.44 usr 3.01 sys + 2422.33 cusr 139.45 csys = 2587.23 CPU) 14:04
nine find . -name .precomp | xargs rm -rf 14:09
is what I use anyway
Zoffix holy crap, this Seq bug is rather extensive. I wonder how many of the issues people have been having due to our changing some stuff from List to Seq were all really just to this bug 14:11
MasterDuke_ nine: like to live dangerously, eh? 14:13
nine MasterDuke_: yeah!
timotimo: -type d is probably more useful
timotimo oh, f stands for file, not folder 14:14
m)
nine MasterDuke_: most of the time I actually do use -print0 | xargs -0 but not when I'm sure there are no spaces in the involved paths. Then I'm just lazy 14:15
MasterDuke_ i've tried to get myself in the habit of using -delete 14:16
nine probably wise :) 14:17
Geth rakudo/nom: 400f4ec883 | (Zoffix Znet)++ | src/core/Seq.pm
Fix a whole ton of methods on cached Seqs

When Seq is cached, its $!list gets .DEFINITE and we can get cached stuff from it. However, several methods do not check for presence of $!list cache and assume the absence of $!iter means the Seq has been consumed and there is no cache.
... (5 more lines)
14:23
Zoffix Fixes infix:<eqv>, .iterator, .Slip, .join, .List, .list, .eager, .Array, .is-lazy, and .sink 14:24
And any time you AT-POS a Seq, it gets cached, so this might've been affecting a bunch of stuff 14:25
And looks like List.sink is bogus too; it ain't doing no sinking 14:35
m: Seq.new(class :: Iterator { method pull-one { say "sunk"; IterationEnd } }.new).sink 14:36
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse class definition
at <tmp>:1
------> 3Seq.new(class ::7ā5 Iterator { method pull-one { say "sunk"
expecting any of:
generic role
Zoffix m: Seq.new(class :: does Iterator { method pull-one { say "sunk"; IterationEnd } }.new).sink
camelia sunk
Zoffix m: Seq.new(class :: does Iterator { method pull-one { say "sunk"; IterationEnd } }.new).cache.sink
camelia ( no output )
Zoffix .ask lizmat should List.sink actually do things? I would've figured it'd do self.iterator.sink-all, since a List could be made from a Seq, for example. And we do sink-all in Seqs, but not lists: irclog.perlgeek.de/perl6-dev/2017-...i_14525429 14:39
yoleaux Zoffix: I'll pass your message to lizmat.
jnthn Zoffix: I think List doesn't do so because it's a positional thing 14:40
And keeps hold of the things it evaluates 14:41
Zoffix jnthn: does that mean a cached Seq shouldn't do it either? 14:42
I guess yes either way. I made a booboo there; need to change .sink's $!list.iterator.sink-all to just $!list.sink
jnthn Caching the Seq takes the iterator and uses it for the cache 14:43
Zoffix jnthn: what's the .sink for? I guess that's my question
jnthn On Seq? 14:44
Zoffix At all
jnthn Oh
It's a method that is called when something is in a void context
Which we call sink context
Zoffix If I do $fh.lines(:close).List.sink the handle won't get closed.
jnthn: but that isn't always true: 14:45
m: my $x = class Foo { method sink { say "sunk" } }; $x
camelia WARNINGS for <tmp>:
Useless use of $x in sink context (line 1)
Zoffix That didn't call .sink
jnthn Correct
Zoffix How come it's not called when it's in a variable?
Feels somewhat like our .DESTROY. You can do some sort of cleanup in it, but it's not guaranteed to be run, so you can't rely on cleanup happening. 14:46
jnthn Because a variable is just accessing something
Consider
my @a = lazy blah();
Zoffix But it's in sink context. Even the warning tells me so. 14:47
Oh, use of $x, not use of Foo; ok
jnthn If we were to sink that we'd end up trying to evalute the whole thing.
Zoffix Ah
OK. Thank makes sense. Thanks.
jnthn So the presumption is that data structures that store thinks, like List, Array, etc. don't go doing evaluation in sink context 14:48
*store things
Zoffix Alright.
jnthn Because by creating them you've created a way to refer to the data in the future
Zoffix .tell lizmat Never mind. jnthn++ answered 14:49
yoleaux Zoffix: I'll pass your message to lizmat.
jnthn Unlike a Seq, which (caching aside) is one-shot.
Geth rakudo/nom: 59f6f48505 | (Zoffix Znet)++ | src/core/Seq.pm
Remove Seq.is-ready method

The method was added for debug reasons in mid-2015. It's not used anywhere in core, roast, or docs.
14:53
rakudo/nom: c13d89b3e6 | (Zoffix Znet)++ | src/core/Seq.pm
Don't sink-all iterator of cached Seq

Was added in previous commit, but after discussion[^1] it was decided it wasn't need to be sunk. I'm still leaving
  $!list.sink in, as a defensive thing in case we make List.sink
do thinks any time in the future.
  [1] irclog.perlgeek.de/perl6-dev/2017-...i_14525466
15:00
roast: 78515bfcb4 | (Zoffix Znet)++ | S32-list/seq.t
Test a bunch of methods on cached Seqs

Rakudo fixes:
  github.com/rakudo/rakudo/commit/400f4ec883
  github.com/rakudo/rakudo/commit/c13d89b3e6
Bug find: irclog.perlgeek.de/perl6-dev/2017-...i_14524925
15:01
Zoffix s/do thinks/do things/; 15:04
ZofBot: what kind of thinks do you do? 15:05
ZofBot Zoffix, =trans( 'A
Zoffix So... anyone feeling up to breaking more modules? Or rather specifically their tests? :) 15:22
Hm... 15:23
Looks like a whole bunch of failures even in our own roast :(
The Seq eqv List thing. We fixed the `eqv` to False that case, but `is-deeply` was still converting Seqs to Lists
And now I fixed that, but getting a bunch of roast failures 15:24
m: use Test; is-deeply (1,).Seq, (1,)
camelia ok 1 -
Zoffix So that should be false really
wow a gazillion roast failures :| gist.github.com/zoffixznet/db3f72d...37f3843e3d 15:25
Basically, unless I messed something up, all those tests are wrong
Zoffix tries 6.c-errata 15:26
Fewer, but still a bunch: gist.github.com/zoffixznet/ea208e2...30e5b5a918 15:30
And looking at this numbers, it's basically guaranteed there'd be a bunch of fall out in ecosystem too
huggable: all modules 15:31
huggable Zoffix, github.com/moritz/perl6-all-modules
Zoffix 1725 occurances of `is-deeply` in ecosystem
Well, I'm glad of one thing: my ignorance about Seq.cache being a mutator that made a bug in is-deeply let us at least fix List/Seq infix:<eqv>. 'cause if is-deeply were working right, this fallout would've been back when we fixed infix:<eqv> 15:33
MasterDuke_ oh, bunch of todo passing in that last gist 15:35
Zoffix .ask TimToady what do we do: due to a sequence of 2 bugs, `is-deeply` currently converts a Seq arg into a List and so falsely makes `is-deeply (1,).Seq, (1,)` pass, which causes 69 roast tests to fail (67 of which are 6.c-errata) and likely many module test suite failures as well. So, do we bite the bullet and fix is-deeply and tests or do we document the flaw and call it by-design? 15:39
yoleaux Zoffix: I'll pass your message to TimToady.
Zoffix MasterDuke_: yeah, it's errata
$ grep 'Non-zero exit status' gistfile1.txt | perl6 -e '$*IN.slurp.comb(/\d+/).sum.say'
69
I'm ending up using perl6 for 1 liners more and more
Zoffix does version bumps 15:40
BTW, t/spec/integration/advent2011-day07.t on 6.c-errata currently crashes: `No such method 'name' for invocant of type 'Mu'` That doesn't sound like being due to my is-deeply fix
Geth rakudo/fixed-Seq-is-deeply: cf0285a108 | (Zoffix Znet)++ | lib/Test.pm6
Fix is-deeply to keep Seq args as Seqs

Currently, the multies incorrectly pass *result* of .cache call to be tested, which is a List. However, all we need to do is call .cache to mutate the Seq into a cached one, but still pass the the Seq down to be tested.
Currently has huge roast fallout. Waiting for discussion. Do not merge yet: irclog.perlgeek.de/perl6-dev/2017-...i_14525888
15:43
Zoffix Current 6.c-errata failures: gist.github.com/zoffixznet/6e56a0a...0a8b1876c9 16:04
(that's without my is-deeply work)
no stresstest failures on master 16:06
ZofBot: ping 16:07
ZofBot Zoffix, It is the default for the ":test" parameter to "/dir()" and "IO::Path"'s "
Zoffix kicks Geth
MasterDuke_ i believe t/spec/S32-exceptions/misc.rakudo.moar is because of my recent rakudo change (i.e., adding X::Parameter::InvalidConcreteness). i'm looking at it now
Zoffix wake up and do some work, you lazy bot
Interesting. Web Hook github page tells me it tried to deliver, but got "Internal Server Error!" 16:09
Oh
"[ERROR] [14905] [6] No such method 'new' for invocant of type 'IO::Socket::SSL' in method get-connection"
jnthn Ah, phew, if there was an extra Async:: in that error I'd be on the hook :P 16:10
Zoffix :}
Reproed the error when trying to re-deliver the hook. 16:11
But the commit was a version bump: github.com/perl6/nqp/commit/c60df1...bb881c865c 16:12
And a bump in Rakudo: github.com/rakudo/rakudo/commit/c7...b3fab831df 16:13
Looks like something in NQP's message (that I included in Rakudo's commit too) made HTTP::UserAgent unhappy 16:14
Oh... User::Agent... It's the version-bump-fetcher that's broken
Geth: ver github.com/rakudo/rakudo/commit/c7...b3fab831df
Geth: ver github.com/rakudo/rakudo/commit/17...d00ef80ccf 16:15
Geth: ver github.com/rakudo/rakudo/commit/17...ae76438a04
Geth: ver github.com/rakudo/rakudo/commit/17...ae76438a04 16:22
Geth Zoffix, version bump brought in these changes: github.com/perl6/nqp/compare/2017....8-g745c61d
Zoffix Well, this sucks. 16:23
The bug disappeared after I simply restarted the bot :/
Geth nqp: c60df1eb07 | (Zoffix Znet)++ | tools/build/MOAR_REVISION
Bump MoarVM version

MoarVM Bump brought these changes:
  github.com/MoarVM/MoarVM/compare/2...6-g8ad18b8
8ad18b8 Merge pull request #589 from MasterDuke17/zero_slot_when_popping_an_array b53b05f Pull body->start + body->elems out into a variable ... (10 more lines)
16:27
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...6-g8ad18b8
Zoffix Yup and re-delivery works too now -_-
Well, filed it in case it ever re-appears: github.com/sergot/http-useragent/issues/174 16:31
r: my @a = <a b c>; @a.pop; @a[3] = 42; say @a 16:32
camelia [a b c 42]
[a b (Any) 42]
Zoffix Cool
(JVM is older commit; but should be fixed on it too)
Geth roast: MasterDuke17++ created pull request #265:
Adapt tests to use new typed exception
16:35
roast/6.c-errata: be6306c948 | MasterDuke17++ (committed by Zoffix Znet) | S32-exceptions/misc.t
Adapt tests to use new typed exception (#265)

Aligns the tests with github.com/rakudo/rakudo/pull/1073
16:38
roast: 2973f845c8 | (Zoffix Znet)++ | S32-array/pop.t
Test no ghost elements in arrays left over

RT#131245: rt.perl.org/Public/Bug/Display.html?id=131245 Fix commits:
  github.com/perl6/nqp/commit/7f71ec...08953462fd
  github.com/MoarVM/MoarVM/commit/8ad18b8460
  github.com/rakudo/rakudo/commit/c7...ee1c56086d
17:18
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131245
timotimo what's actually keeping us from throwing a strawberry perl dependency out? we do have our own prove-like that we already ship with rakudo, don't we? 18:00
Zoffix s/ship with rakudo/have available as a module/; 18:01
But nothing really.
timotimo i believe if anything ever wants to compile stuff it'll try to re-use what moarvm was compiled with, could that be? 18:03
so if you have an msvc-compiled moarvm from a rakudo star or something you won't be able to compile custom modules unless you install msvc
Zoffix huh? That's really weird
timotimo well, it's in the backendconfig?
and isn't that what stuff liek LibraryMake uses?
Zoffix No idea 18:04
buggable: eco LibraryMake
buggable Zoffix, LibraryMake 'An attempt to simplify native compilation': github.com/retupmoca/P6-LibraryMake
timotimo github.com/retupmoca/P6-LibraryMak...e.pm6#L122
Zoffix YUeah 18:05
m: dd $*VM.config<cc>
camelia "gcc"
Zoffix Though that feels more like LibraryMake needing an improvement rather than a reason why we can't drop strawberry as a prereq :)
.oO( ship a compiler with Star, just like Strawberry perl does )
18:06
Oh no. That's it. Latest firefox cries about insecure website when you try to use a login form on a website that doesn't use HTTP 18:14
-- Lazy web developers world-wide :) 18:16
doesn't use HTTPS I mean
Geth roast: d7de586029 | MasterDuke17++ | S12-attributes/native.t
Unfudge a passing test for JVM
18:52
MasterDuke_ m: my @a = (); @a.rotate(1) #bug? 19:02
camelia Modulation by zero
in block <unit> at <tmp> line 1
geekosaur LTA certainly
whether actual bug could be argued I guess 19:03
MasterDuke_ yeah, should it just do nothing?
because that's a 1-line fix
Zoffix Doing nothing sounds sane to me. 19:05
timotimo m: my @a = <1 2 3 4 5>; @a.rotate(100)
camelia ( no output )
timotimo m: my @a = <1 2 3 4 5>; @a.rotate(100); say @a
camelia [1 2 3 4 5]
timotimo right, that's why it modulates
Zoffix m: my @a = <1 2 3 4 5>; say @a.rotate(101);
camelia [2 3 4 5 1]
MasterDuke_ i just added `return unless $elems` 19:06
Zoffix s: [], 'rotate', \(1)
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/c776...t.pm#L1056
MasterDuke_ makes it do nothing, spectests clean
Zoffix Do we still have cost on returns? 19:07
m: sub foo { return 42 }; for ^1000_000 { $ = foo }; say now - INIT now
camelia 0.7867392
MasterDuke_ src/core/Rakudo/Internals.pm:24
Zoffix m: sub foo { return 42 }; for ^1000_000 { $ = foo }; say now - INIT now
camelia 0.7906209
Zoffix m: sub foo { 42 }; for ^1000_000 { $ = foo }; say now - INIT now
camelia 0.77443887
Zoffix m: sub foo { 42 }; for ^1000_000 { $ = foo }; say now - INIT now
camelia 0.5243640
Zoffix would've gone with nqp::if on github.com/rakudo/rakudo/blob/nom/...als.pm#L24 19:08
MasterDuke_ `nqp::unless($elems, return),` 19:09
what i actually added
Zoffix Does it need to be return () tho?
Or the value isn't used
Yeah, returns to at the end 19:10
Which gets returned from .rotate
MasterDuke_ easy hange 19:12
*change
Zoffix And on my local box I consistently get sub { 42 } to be 1.7x faster than sub { return 42 }, so yeah, we still have that cost and we should try to avoid using it when we can 19:13
m: my $l = lazy gather { for ^3 { take say "taken" } }; $l.is-lazy 19:17
camelia ( no output )
Zoffix Doesn't look like .is-lazy reifies anything...
m: my $l = lazy gather { for ^3 { take say "taken" } }; say $l.rotate: 1
camelia No such method 'rotate' for invocant of type 'Seq'
in block <unit> at <tmp> line 1
Zoffix oh
neve rmind
m: my $l = (gather { for ^3 { take say "taken" } }).List; say $l.is-lazy 19:18
camelia taken
taken
taken
False
Zoffix \o/
ZofBot: Taken 3: former CIA agent Bryan Mills deals with a personal tragedy of having a unreified Seq 19:21
ZofBot Zoffix, They can only be passed by name, so it doesn't matter what order you pass them in: $formal = formalize($title, case=>'upper'); $formal = formalize($title, justify=>'left'); $formal = formalize($title, :justify<right>, :case<title>); See S02 for the correspondence bet
Zoffix timotimo: oh, apparently the requirement might be due to telemeh 19:29
At least that's what my Twitter DM tells me...
timotimo: for the Strawberry DLL on windows for latest Rakudo Star
timotimo huh? 19:30
what ;_;
why even ;_;
Zoffix .tell stmuk FWIW tag is missing for Star: twitter.com/hoelzro/status/859828762908778497 19:31
yoleaux Zoffix: I'll pass your message to stmuk.
timotimo i'll just go ahead and make telemeh off by default.
so you'll have to enable it at Configure time
anyway, didn't i merge telemeh after the release?
Zoffix No idea 19:32
But apparently a user did not need Strawberry for 2017.01 release and now they do and then I got a DM saying the DLL porereq might be due to telemeh 19:33
This is part of it yeah? Then yeah, it wasn't even part of the release: github.com/MoarVM/MoarVM/commit/13...15bfa49430 19:34
timotimo that's just a small part of it 19:35
the system itself has been introduced a buncha commits earlier
Geth rakudo: MasterDuke17++ created pull request #1075:
Fix rotate on empty list
19:36
Zoffix This one still shows "master" as the branch stuff thing, not 2017.04: github.com/MoarVM/MoarVM/commit/7e...cbb53472a9
timotimo didn't we have to build a non-release moarvm for rakudo stra?
rakudo straw %)
Zoffix Ohh. OK. :) 19:37
Right.
timotimo anyway, stmuk can build moar with --no-telemeh
and i switched telemeh off by default just now for newer versions of moarvm
Geth rakudo/nom: b5c14bd108 | (Daniel Green)++ | src/core/Rakudo/Internals.pm
Fix rotate on empty list

  `my @a = (); @a.rotate(1)` used to error with `Modulation by zero`
before, but now does nothing.
Passes `make m-spectest`.
19:38
rakudo/nom: f4cbdb64bc | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/Rakudo/Internals.pm
Merge pull request #1075 from MasterDuke17/fix_rotate_on_empty_list

Fix rotate on empty list
stmuk foo 20:40
yoleaux 19:31Z <Zoffix> stmuk: FWIW tag is missing for Star: twitter.com/hoelzro/status/859828762908778497
stmuk Zoffix: yes I need to tag after I add a simple .bat for windows install (with --no-telemeh!) 20:41
timotimo sorry about the telemeh disaster :\ 20:42
stmuk no worries .. at least it shows people are using it 20:44
and I like the idea of Strawberry Star
:D
timotimo it only shows people are using star %) 20:45
Zoffix gives timotimo a club membership card 21:25
We have lots of members! :)