Zoffix Actually t/spec/S09-typed-arrays/hashes.t 00:02
stupid copy-paste....
Actually t/spec/S09-typed-arrays/hashes.t doesn't have a contradictory test. It was just passing for the wrong reason. All of the failing tests reuse %h, checking the failures don't create `a` key.... but that key already exists in %h prior to tests and the reason they were passing is because trying to do a failed assignment nulled the hash 00:03
So lizmat++ actually fixed an issue that wasn't being caught by bad tests.
Geth rakudo/nom: 61a65cee3d | (Zoffix Znet)++ | 2 files
Fix REPL printing a thrown-and-caught Exception

Fixes rt.perl.org/Ticket/Display.html?id...xn-1451692
00:05
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/02/28/...a-changin/ 00:50
cog_ lizmat++ 01:04
[Tux] This is Rakudo version 2017.02-120-g61a65cee3 built on MoarVM version 2017.02-9-gc5379702 07:14
csv-ip5xs 2.845
test 12.718
test-t 4.953 - 4.980
csv-parser 13.286
Geth roast: 1c24625e0a | (Jonathan Worthington)++ | S17-supply/supplier-preserving.t
Fix a race condition in S::P test.

The @closings array could end up pushed to from multiple threads, so very occasionally something would go rotten.
10:12
jnthn dogbert17: ^^ fixes one of the things you reported yesterday, hopefully :)
lizmat stackoverflow.com/questions/4250513...-processes 10:19
jnthn No
:)
Replacing $*OUT isn't changing STDOUT at the handle level either, it's just changing the object that we use 10:21
Could we fudge that somehow in the shell implementation? I guess, yes. 10:22
A bit like we do with %*ENV and $*CWD - we never call setenv/chdir, we just use it in the appropriate places. 10:24
But no, we haven't gone down the path of making $*OUT and $*ERR affect process spawning
lizmat nor do I think we can, because one could replace $*OUT with something that doesn't do anything with handles at the OS level 10:25
and how would you pass that on to a child process ?
jnthn Oh, you wouldn't
You'd have to pretend :err and :out were supplied 10:26
And write stuff to $*OUT and $*ERR as it comes in
I'm still not sure whether we should, however ;) 10:27
Geth nqp: 44a3fed66b | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MOAR_REVISION.
11:16
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...7-gec99d41
roast: 7996c41781 | (Elizabeth Mattijsen)++ | S09-typed-arrays/hashes.t
Adapt tests so we test something sensible

If a STORE on a Hash fails, it should leave the Has unchanged, not empty (basically what ae7bcf1b8e1fa612413d changed).
11:17
rakudo/nom: 26e6993bd8 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Bump to get latest MoarVM.

  * Fix CArray so that setting a type object in an element (for struct,
   pointer, and array members) will pass NULL, not some junk value
   (jnthn++)
  * Fix a very occasional deadlock when GC occurred exactly at the same
   time as the event loop worker thread was being spawned (jnthn++)
  * Fixes to :i by using foldcase semantics, not lowercase
   (MasterDuke17++)
  * Fix reporting of thread spawning errors when out of or low on memory
   or handles (timotimo++)
11:29
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....8-g44a3fed
2ad93cfa3d | (Jonathan Worthington)++ | 4 files
lizmat pulls, builds and tests 11:37
Geth roast: f42a931504 | (Elizabeth Mattijsen)++ | S05-modifier/ignorecase.t
Unfudge now passing tests
11:52
jnthn Figured you'd beat me to that :) 11:53
masak eats, shoots, and leaves :P 11:58
lizmat bamboo-shoots and leaves? 12:03
.oO( the food of pandas )
12:04
jnthn :) 12:08
lunch &
Zoffix lucasb: 6.d is not scheduled; the list of proposed changes is at github.com/perl6/specs/blob/master/v6d.pod 13:07
lucasb thanks Zoffix. I could add my ideas to specs/v6d.pod; but I'm sure they are controversial; so I prefer to say them here. If anybody likes them, then they can be added to v6d.pod 13:08
Proposed change #1: make native num defaults to 0.0 instead of NaN 13:09
m: say my num $
camelia NaN
lucasb Proposed change #2: make $() really mean the empty itemized list instead of the $/ thing 13:10
Zoffix I'll raise you: all of our "uninitialized numeric is zero" concept needs to be fixed; or tossed entirely, as I propsoe it.
m: say Num + 0 13:11
camelia Invocant requires an instance of type Num, but a type object was passed. Did you forget a .new?
in block <unit> at <tmp> line 1
Zoffix ^ broken
lucasb: what's the reasoning for the $() thing? Never once used it in my code to mean an itemized list. And I imagine its current meaning is much more useful, and would be even more useful if it checked definedness instead of truthiness 13:12
lucasb sorry, I didn't understand. Do you want Int+0, Num+0 to return 0 instead of failing? 13:13
Zoffix lucasb: Perl 5 has a thing where an `undef` is zero in numeric context and it issues a warning. We copied that. 13:15
m: say quietly +Num
camelia 0
Zoffix But not only do we have many numeric types, we also have an infinite number of `undef`s, so the concept doesn't really work. One of the issues is the Num + 0 example that should result in 0e0 + a warning 13:16
Zoffix greps logs
lucasb idk if it's relevant, but I was talking specifically about the *native* num, not Num.
native int already is initialized with 0 13:17
native types are never undefined
Zoffix Well, don't see the logs, but there many more examples of this brokeness, and I came to the conclusion that we should abandon this idea of treating an undefined numeric as a zero entirely. 13:18
lucasb: it's not so much initialized that it can't be anything else (other than some other valid int number). Whereas with `num` we can give it a non-numeric value, a NaN
There's no "uninitialized int"
lucasb: but why 0.0? 13:19
or rather 0e0
lizmat could this be related to TimToady's slang work? www.nntp.perl.org/group/perl.perl6....g3320.html
lucasb I can only think of 0e0 or NaN as the default value for native num. between these 2, I personaly prefer 0e0 13:21
Zoffix lucasb: but why?
lucasb I can't put into words, it just feels the right thing, sorry :) 13:22
Zoffix heh 13:23
lucasb Proposed change #3: get rid of the undefine() function and add .clear methods to Array and Hash 13:24
Zoffix NaN just feels right to me: no number was assigned to the num, so it doesn't have a number, or reworded, it has not-a-number
lucasb undefine() doesn't undefine array and hashes, it just clears them
Zoffix we have an undefine function? :o
lucasb m: my @a; undefine(@a); say @a.defined
camelia True
lucasb I wish there was @a.clear and %h.clear for this purpose
Zoffix is happy with = () 13:25
timotimo what, we have undefine()?
Zoffix Yeah, I'm surprised too
There's a whole bunch of tests for it too, although it's not documented. 13:26
lucasb I guess nobody uses it :)
an indicantion that it is a candidate to go away?
Zoffix lucasb: heh, well, the "nobody uses it" is based on two people, at least one of which doesn't use Perl 6... 13:27
lucasb: there are tests for it in the Perl 6 Specification, so it's not going away without a fight :)
lizmat it's actually in the speculation: S32-setting-library/Basics, line 60
lucasb I was half joking. undefine() for scalars makes sense. I just pointed its behavior with Array and Hash 13:28
lizmat actual implementation is just assiging Nil to whatever is being passed
timotimo right 13:29
lizmat actually, assign Empty to arrays and hashes
lucasb yes, assinging Nil/Empty/() to arrays and hahes *makes* sense. just the name "undefine" is a little off for arrays and hashes, because it can be confused with the definedness of the object, which concrete arrays and hashes are always defined 13:31
these 3 are the only changes that come to my mind, now. thanks everybody for listening :) 13:33
timotimo that's a good number 13:34
perl6 started with how many hundred changes that were suggested? ;) 13:35
lucasb 331, 311 rfcs or something :)
Zoffix lucasb: well, write them down
huggable: v6.d
huggable Zoffix, Proposed changes for Perl 6 v6.d: github.com/perl6/specs/blob/master/v6d.pod
Zoffix "Please only submit planned changes if you are willing to provide a patch to implement them." 13:36
lucasb oops, 361 rfcs to be exact
Zoffix lucasb: I can make the patches for you if you don't wish to do them yourself, but it'll be your job to argue for the change. (mention that fact in stakehodler part) 13:37
lucasb Zoffix: thanks!
jnthn back 13:38
lucasb I feel the ideas need to achieve a little consensus before adding them to v6d.pod, so let the ideas stay a little in the air in the following weeks, for people to talk about...
Zoffix will likely forget about this conversation by tomorrow :} 13:39
lucasb no problem, I always repeat N times my ideas, before I get a definite yes or no. so I'll bring this up other time :) 13:40
Zoffix lizmat: fwiw, perl6-debug-m doesn't even start for me. I get "Illegal option --nqp-lib" 13:41
But the error in the message does suggest the brain changes, indeed. 13:42
timotimo jnthn: i'm inclined to write up a response along "DIHWIDT" to bgill's RT #130886
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130886
timotimo though it surprises me a little that we don't get "inconsistent bind result" there
jnthn Ah, is that the side-effects in where clauses? 13:43
Zoffix doesn't get where the inconsistent bind is
jnthn But yeah, if you do side effects in your where clauses and something breaks, you get to keep all the pieces so far as I'm concerned. 13:44
Zoffix As I see it, the where clause can give different result for same input; there are no sideeffects
timotimo yup, the where clause pulls one value out of an iterator each time 13:45
there are side-effects, though
the iterator gets advanced
jnthn pull-one is a side-effect
timotimo i'll write something up
jnthn timotimo++
Zoffix m: multi foo($ where {$++ %% 5 ?? 1 !! 0}) { say "here" }; multi foo($) { say "ā™„
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"'
at <tmp>:1
------> 3}) { say "here" }; multi foo($) { say "ā™„7ā5<EOL>
expecting any of:
argument list
ā€¦
Zoffix m: multi foo($ where {$++ %% 5 ?? 1 !! 0}) { say "here" }; multi foo($) { say "ā™„" }; foo(42) xx 20
camelia here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
Zoffix m: multi foo($ where {$++ %% 2 ?? 1 !! 0}) { say "here" }; multi foo($) { say "ā™„" }; foo(42) xx 20 13:46
camelia here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
Zoffix m: multi foo($ where {$++ %% 2 ?? 1 !! 0}) { say "here" }; multi foo($) { say "ā™„" }; foo(42) for ^20 13:47
camelia here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
here
timotimo m: my $val; multi foo($ where {$val++ %% 2 ?? 1 !! 0}) { say "here" }; multi foo($) { say "ā™„" }; foo(42) for ^20 13:49
camelia Internal error: inconsistent bind result
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo replied to that bug 13:56
Geth rakudo/nom: 05add43243 | (Jonathan Worthington)++ | 2 files
Default to translating newlines in Proc::Async.

At least, for stdout and stderr. Still need to look into stdin.
[Coke] (irclog.perlgeek.de/perl6-dev/2017-..._14178991) - I think this is too strongly worded. Someone with a good idea may not end up implementing the idea; Certainly you can't complain if no one volunteers to do it on your behalf...
perlpilot agrees with [Coke] FWIW
(good morning btw :)
timotimo ohai perlpilot 13:57
Zoffix man, our default REPL is terrible, can't even move cursor around 14:05
timotimo if you don't have anything readline-like ... yeah 14:06
i'm glad we don't have a readline implementation in core, though
DrForr so am I :) :/ 14:08
timotimo you know how linenoise started, and how linenoise ended up being? :P
"bah, readline is like five million lines of code. it can't be that difficult to write a readline-like in a few hundred lines" 14:09
"oh, this doesn't work on all systems. oh, there's some edge cases here. ah, we have to support these kinds of system properties. oh, not all terminals behave the same way"
"how the fuck did we end up with six million lines of code?!?"
DrForr Those who do not understand terminals are doomed to reimplement them, and even worse. 14:10
Zoffix It has 6 million lines of code? :o
timotimo no it doesn't, that was pure hyperbole
it probably has less LoC than gnu readline 14:11
but still
people always be like "it can't be hard to make the cursor move around and have a bit of history" 14:12
and then they either end up with a broken/buggy/incomplete implementation, or they figure out that it can actually be hard
in short: fuck. this. shit.
jnthn Maybe the default repl should just start a web server and open your browser :P 14:13
perlpilot timotimo: remember that progress is made by the unreasonable man ;)
Zoffix m: sub foo { return ($^a, False) }; my ($a, $b) = foo Slip; dd [$a, $b]
camelia [Slip, Bool::False]
Zoffix wc
timotimo jnthn: actually, that sounds kinda nice
brrt anybody recall the antirez guy writing a text editor in 1kb 14:21
timotimo cool
brrt the good thing about that 1kb was that it was really easy to find bugs in :-)
Geth rakudo/nom: 0a2eef8fb0 | (Jonathan Worthington)++ | src/core/Str.pm
Add a :translate-nl option to Str.encode.

If we're on Windows, this will replace \n with \r\n. At some point it would be nice to get VM-backed decoders to do this in a single pass, but that can wait until the larger upcoming encoding refactors.
14:28
lizmat jnthn: maybe make :$translate-nl = False default to Rakudo::Internals.IS-WIN ? 14:34
Geth rakudo/nom: 2973ccd5c7 | (Jonathan Worthington)++ | src/core/Proc/Async.pm
Make Proc::Async do newline translation on stdin.

So that print/put/say on Windows will transform \n to \r\n.
14:36
jnthn lizmat: No because of the patch I just pushed :) 14:37
Which uses it as the default for stdout/stderr too
d'oh, my :$enc = $!enc dupes something though 14:38
I was sure that was already the way it iwas
*was
Geth rakudo/nom: 779ef286f9 | (Jonathan Worthington)++ | src/core/Proc/Async.pm
Tweak object-level enc/translate-nl defaulting.

We don't need to do it twice for `enc`, and the previous appraoch to
  `translate-nl` being different from how we did it for `enc` was a bit
inconsistent, even if functionally equivalent.
14:53
nqp: 2780ed774a | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
Bump MOAR_REVISION.
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...8-g5f9d698
rakudo/nom: b4118a7375 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
Get latest MoarVM.

Exposes the newline translation functionality of VM-backed decoder, which Rakudo is now using.
14:55
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....9-g2780ed7
roast: 875cc112ea | (Jonathan Worthington)++ | S17-procasync/basic.t
Test to cover RT #130788.
14:56
roast: a5b0209812 | (Jonathan Worthington)++ | S17-procasync/basic.t
Remove .subst("\r\n", "\n").

Not required after latest fixes.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130788
Zoffix Wonder if github.com/perl6/roast/blob/master...l/stress.t really needs the randomness in it 15:01
I like running full stresstests, but that test's variance in runtimes is really annoying. Sometimes takes just 15 seconds, others 3-5 minutes :/
m: say 244/60 15:02
camelia 4.066667
Zoffix Well, 1-2 minutes.
Geth rakudo/nom: 7f9235c79d | (Zoffix Znet)++ | 2 files
Fix REPL thinking returned stuff is a thrown exception

With the current versionb, it's possible to trick REPL into thinking an exception was thrown when it really wasn't with code like:
say "hi"; use nqp; my $x = REPL.new(nqp::getcomp("perl6"), %).repl-eval(q|die "meow"|);
... (5 more lines)
15:10
roast: 5b965eb8ed | (Jonathan Worthington)++ | S17-channel/stress.t
Make a stress test a little less stressful.

The 2 minutes sometimes needed was a rather long time to wait, and this smaller example will either fail or flap on the bug.
jnthn git st 15:11
Zoffix Wooo \o/ jnthn++
jnthn oops
:)
masak .oO( git st was too much for me to type, so I'm using a ligature instead: git ļ¬† ) 15:35
perlpilot masak: why not "gst"? or ligature that too :) 15:37
Zoffix why not g
perlpilot not enough variation to get all of the git commands out of that one character. 15:38
Zoffix sure there is 15:39
perlpilot unless there are many unicode variations of g that I'm not aware of ...
Zoffix g
gg
gggg
etc
timotimo good game bro
Zoffix There are a few
perlpilot oh, but that messes with brevity
Zoffix ā“–šŸ…–ļ½‡š š–Œš’ˆš“°š•˜ššš—€š—“š™œš˜Øā’¢šŸ‡¬šŸ„¶šŸ…¶Ēµgļ»­ļ»­ļ»®Š‘įŠ—š”¤Ä”É¢Ē„gįµĘƒĘƒgg 15:40
timotimo %) 15:41
Zoffix m: "ā“– ļ½‡š š–Œš’ˆš“°š•˜ššš—€š—“š™œš˜Øā’¢ Ēµgļ»­ļ»­ļ»®Š‘įŠ—š”¤Ä”É¢Ē„gįµĘƒĘƒgg".comb.unique.elems
camelia ( no output )
Zoffix m: "ā“– ļ½‡š š–Œš’ˆš“°š•˜ššš—€š—“š™œš˜Øā’¢ Ēµgļ»­ļ»­ļ»®Š‘įŠ—š”¤Ä”É¢Ē„gįµĘƒĘƒgg".comb.unique.elems.say
camelia 26
Zoffix 26 commands!
lucasb "my $var does SomeRole" works. should "my $var does role {...}" work too? 15:54
jnthn No
The does trait expects a typename after it 15:55
lucasb well, 'my $x; $x does role {...}' works
jnthn Right, that's the does infix operator
lucasb ah, got it! thanks jnthn
difference between infix operator and an declaration 15:56
jnthn Note that my $x does Role is mixing into the container too
Whreas the does operator is talking about the value
Which makes a difference when it's a Scalar
IOninja ZOFVM: Files=1226, Tests=132924, 133 wallclock secs (22.01 usr 3.32 sys + 2402.17 cusr 312.99 csys = 2740.49 CPU) 16:36
Geth rakudo/nom: 76f71878da | (Zoffix Znet)++ | src/core/IO/Path.pm
[io grant] Do not cache IO::Path.e results

Fixes RT#130889: rt.perl.org/Ticket/Display.html?id=130889
The problem in the ticket is due to IO::Path not setting $!e when write happens on a write-mode opened non-existent file. However, even if that were fixed, we're still open to issues where the file's existence changes on the filesystem, so we can't really cache that.
16:43
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130889
roast: 908348eef1 | (Zoffix Znet)++ | S32-io/io-path.t
Test IO::Path.e detects changes on filesystem

RT#130889: rt.perl.org/Ticket/Display.html?id=130889 Rakudo fix: github.com/rakudo/rakudo/commit/76f71878da
16:44
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130889
IOninja RT#130887 "method is public, so .perl.EVAL ought to be round-tripping the data that it exposes, however that's stored" 17:01
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130887
IOninja Doubt we can do that without setting the private attributes, which aren't preserved in .perl.EVAL roundtrip
ugexe I'm surprised to see IO::Path.e caching go away (but glad). Seemed important last time I was getting stung by it 17:45
IOninja ugexe: why surprised?
ugexe I got the impression it was important for performance reasons from when I would comment on how I didn't like it 17:46
IOninja Ah.
IOninja braces for lizmat's wrath then 17:47
ugexe ~1 year ago though
IOninja I removed it 'cause it's so obviously wrong to me; and I figured there'd be deoptimization, but I didn't even measure it
ugexe however if you do get rid of it that means you can get rid of instances of `"$!some_IO_Path".IO` (cache busting technique) 17:48
IOninja waits for [Tux] to drop the news of new perf mark
star: with "/tmp/foo".IO { .e.say; .spurt("foo"); .e.say; .unlink; .e.say } 17:57
camelia True
'/tmp/foo' is a directory, cannot do '.open' on a directory
in block <unit> at <tmp> line 1

Actually thrown at:
in any at gen/moar/m-Metamodel.nqp line 3096
in block <unit> at <tmp> line 1
IOninja star: with "/tmp/foozzz".IO { .e.say; .spurt("foo"); .e.say; .unlink; .e.say }
camelia False
True
True
ugexe maybe `method e(--> Bool) { $!e = %*ENV<RAKUDO_IO_PATH_CACHE> && defined $!e ?? $!e !! Rakudo::Internals.FILETEST-E($.abspath) }` 17:58
IOninja ^ another bug due to (now removed) .e caching. That's two just involving Perl 6; but IMO it should consider filesystem operations too, so caching it seems like a very bad idea.
ewww env vars
|Tux| This is Rakudo version 2017.02-129-g76f71878d built on MoarVM version 2017.02-20-g773711e1 18:00
csv-ip5xs 2.828
test 12.534
test-t 4.996 - 5.138
csv-parser 12.890
IOninja m: say $*PERL.compiler.version
camelia v2017.02.129.g.76.f.7187
IOninja buggable: speed 18:01
buggable IOninja, ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ˆā–ˆā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā– data for 2017-01-29ā€“2017-02-28; range: 4.788sā€“999.999s
IOninja lulzwat
m: say (4.996 - 5.138)/2 - (4.800 - 4.827)/2 18:02
camelia -0.0575
IOninja So it's now... faster?
Too much variance to tell for sure, but I don't see anything groundbreakingly slow due to .e cache removal :) 18:03
And I'll tweak it more once the IO plan gets ratified.
ugexe i would look at build times, or things that have to do a large number of file accesses
IOninja mhm
star: my $p = "/tmp/foo".IO; for ^1000_000 { $ = $p.e }; say now - INIT now 18:04
camelia 1.78135584
IOninja m: my $p = "/tmp/foo".IO; for ^1000_000 { $ = $p.e }; say now - INIT now
camelia 3.29775591
IOninja m: say 3.3/1.78 18:05
camelia 1.853933
lizmat IOninja: no worries :-)
IOninja *phew* :)
ugexe star: my $p = "/tmp/foo".IO; for ^1000_000 { $ = $p.mkdir }; say now - INIT now 18:07
camelia 6.554999 18:08
ugexe m: my $p = "/tmp/foo".IO; for ^1000_000 { $ = $p.mkdir }; say now - INIT now
camelia 5.7469882
ugexe faster for that
IOninja cool
buggable: speed 18:14
buggable IOninja, ā–ƒā–…ā–„ā–ƒā–‚ā–‚ā–ƒā–‚ā–‚ā–ā–ƒā–ƒā–„ā–„ā–ƒā–ƒā–ƒā–ƒā–„ā–„ā–‚ā–ƒā–ƒā–†ā–ƒā–„ā–„ā–„ā–ƒā–‚ā–ˆā–‚ā–‡ā–‚ā–ā–ƒā–ā–ā–‚ā–ā–ā–ƒā–ƒā–…ā–ƒā–‚ā–ƒā–„ data for 2017-01-29ā€“2017-02-28; range: 4.788sā€“5.607s
japhb IOninja: FWIW, the general problem is that the stat(2) system call is both very common and very slow. The perl 5 solution to this was that every filesystem test defaulted to doing a fresh stat() for correctness, but it would also keep a copy of the most recently gathered stat buffer around, and you could explicitly indicate you wanted a filesystem test to operate on the cached stat buffer rather than do a fresh stat(). 18:25
This made a huge difference when doing multiple tests on the same directory entry -- the difference for tree walkers was rather extreme. 18:26
It also allowed you to explicitly take a stat() at a given point in time and make use of that data, without worrying that someone would change the filesystem out from under you while you were working on it. 18:27
*working with that point-in-time stat() snapshot
IOninja note 18:29
*noted
Will address it in IO Action Plan 18:30
lizmat IOninja: in Perl 6 something like _ would be rather racy :-) 18:37
timotimo _? 18:39
IOninja the last stated filehandle in Perl 5
timotimo oh
IOninja when you do stat tests on it it uses cached results 18:40
geekosaur yeh. neat but not at all concurrent
(which means I avoided it in p5 even without threads; with experience, some things just smell like a disaster waiting to happen) 18:41
lizmat yeah, that really was from a single process single CPU world :-) 18:50
geekosaur even that has concurrency if you yield a green thread at each I/O action 18:52
(concurrent != parallel)
not that p5 ever supported that, of course 18:53
IOninja Need more eyes on github.com/rakudo/rakudo/pull/1020 19:13
(that's the one to remove the error for my @a = @a, @a stuff) 19:18
perlpilot IOninja: I don't know how much brain you want connected to the eyes, but it looked good to me. :) 19:19
lizmat wonders how hard it would be to make nqp::backtrace return an IterationBuffer instead of an nqp::list 19:20
IOninja perlpilot: so you're OK with removing 6.c-errata tests that PR breaks?
perlpilot that or fixing them if they're trying to test something useful and it's just the X::Whatever name that's problematic 19:22
(I don't know if the X::Syntax::Variable::Initializer was invented for the thing this reverts or not)
If it was, then yes, remove them.
IOninja It was. 19:23
OK
lizmat reality check: Array.STORE is supposed to be eager, no ?
if so, we could probably do the same trick I did with %h = %a, %h
timotimo "mostly eager", no?
i.e. eager until it encounters a lazy?
IOninja m: my @a = lazy 1...Inf; say @a[^10]
camelia (1 2 3 4 5 6 7 8 9 10)
lizmat ah, yeah that :-(
IOninja Dunno if that calls it...
lizmat yeah, it does 19:24
hmmmm
IOninja m: my @a = 1ā€¦Inf; say @a[^10]
camelia (1 2 3 4 5 6 7 8 9 10)
TimToady lizmat: yes, that nntp you linked indicates a new rakudo with an old nqp that doesn't provide setlang 19:26
so not really a slang problem, but a missing dep problem 19:28
Geth rakudo/nom: 6c873b9c93 | (Zoffix Znet)++ | t/02-rakudo/repl.t
Add ticket number to a set of tests
IOninja ZOFVM: Files=1226, Tests=132926, 137 wallclock secs (22.71 usr 3.58 sys + 2511.66 cusr 333.40 csys = 2871.35 CPU) 19:29
stresstest is really fast now after jnthn++'s change to that test file :D
TimToady finds it a bit odd to be on the opposite side of the world from europe, timing wise... 19:30
there aren't many p6 people in the middle of the pacific ocean...
lizmat good top of the morn, TimToady :-) 19:31
TimToady jnthn: to change stdout in place, presumably we'd do a reopen on PROCESS::OUT, not $*OUT, since it belongs to the whole process 19:33
Geth rakudo/nom: cd47e2a806 | (Zoffix Znet)++ | src/core/REPL.pm
Remove needless type constraint

Variables are already Mus
19:36
rakudo/nom: 0f37dd38e0 | (Zoffix Znet)++ | t/02-rakudo/repl.t
Test Nil line return in REPL ends up as Nil in output

RT#130874: rt.perl.org/Ticket/Display.html?id=130874 Rakudo fix: github.com/rakudo/rakudo/commit/a274bdd122
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130874
rakudo/nom: 7966dad5e9 | (Elizabeth Mattijsen)++ | src/core/CallFrame.pm
Make callframe() about 20% faster

  - lose the "level" attribute, it is only needed to initialize
  - make annotations an nqp::hash
  - adapt accessors accordingly
19:37
[Coke] .ask zoffix aren't variables Any, not Mu by default? 19:40
IOninja: oh, you re-renamed.
m: my $output; say $output.WHAT; 19:41
camelia (Any)
IOninja [Coke]: parameters are. Variables and attributes are Mu type contraints. 19:42
[Coke]: the (Any) above is the default `is default` value
m: my $x = Mu;
camelia ( no output )
IOninja m: my Any $x = Mu 19:43
camelia Type check failed in assignment to $x; expected Any but got Mu (Mu)
in block <unit> at <tmp> line 1
IOninja m: my $x is default(Mu); say $x.WHAT
camelia (Mu)
IOninja m: my $x; $x.VAR.of.say
camelia (Mu)
Geth roast: c7bf3a0aa4 | (Zoffix Znet)++ | S32-list/sort.t
Test .sort on reified empty array does not crash

RT#130866: rt.perl.org/Ticket/Display.html?id=130866 Rakudo fix: github.com/rakudo/rakudo/commit/75e070fdea
19:46
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130866
Geth roast/6.c-errata: 2c76bfa77e | (Zoffix Znet)++ | S09-typed-arrays/hashes.t
Fix broken test in S09-typed-arrays/hashes.t

The test mistakenly tests `a` key that already exists in %h prior to type-check tests being run. The key that is being auto-vivified in is `z`, not `a`, so change test to test for `z`'s auto-vivification.
The only reason this test was passing in the past is because failed ... (9 more lines)
20:00
IOninja s/array/hash/
lizmat oops, I should have done that :-( 20:05
Geth roast: 3cd5126000 | (Zoffix Znet)++ | S09-typed-arrays/hashes.t
Test self-referential (in top-level) hash asignment

RT#130870: rt.perl.org/Ticket/Display.html?id=130870 Rakudo fix: github.com/rakudo/rakudo/commit/ae7bcf1b8e1fa6
20:11
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130870
Geth roast: af2d786d40 | (Zoffix Znet)++ | S17-supply/syntax.t
Test `next` in `whenever`

Rakudo implementation:
  github.com/rakudo/rakudo/commit/f9...7bfce12794
RT#130601: rt.perl.org/Ticket/Display.html?id=130601
20:43
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130601
lizmat shouldn't List.reverse return a Seq rather than a List ? 21:12
moritz lizmat: there's not much point in making that lazy, since you have to reify the original list anyway to be able to reverse 21:37
lizmat no, not true, if we have an iterator that takes the reified list but traverses it in the opposite direction, we wouldn't need to copy it 21:38
currently, .reverse creates a reversed reified list and returns that
if it were to return a Seq, that wouldn't be needed 21:39
and it would then only create the reversed reified when really needed
and not in a case such as for @a.reverse { }
moritz you have to be careful with lazy Array.reverse, so that changes to the array aren't reflected in a lazy .reverse 21:40
lizmat the Array.iterator.push-all creates new containers afaik 21:41
so that would be covered
IOninja Would it be possible for me to get a commit bit to rakudo/star? Gonna give #78 a go when I get home. 21:47
lizmat jnthn TimToady opinions about having List.reverse return a Seq rather than a List ? speculation mentions returning an Iterable, which maps to Seq post-GLR if I remember correctly 22:00
jnthn TimToady it would prevent unnecessary copying of a reified list in many cases
jnthn TimToady like for @a.reverse { }
jnthn lizmat: Umm...I'm too tired to think straight any more, but it would be a breaking change potentially; my @a := @b.reverse; for example 22:02
But it's arguably better as Seq
jnthn goes to rest :) 22:03
lizmat there are a few spectests that break, but they check for Listiness specifically
good night, jnthn
jnthn 'night
[Coke] IOninja: I don't appear to have access to grant you access to star. 22:11
IOninja: tag jnthn, masak, moritz, perlpilot, pmichaud 22:12
IOninja *tag* 22:15
lizmat good night, #perl6-dev! 22:29
IOninja night
MasterDuke timotimo: aside from the not-written-yet spesh bisect tool, what would you suggest as the next step to troubleshoot that spesh/EVAL/div bug that i/Zoffix found? 23:16