[Tux] This is Rakudo version 2017.07-97-ga256c26d8 built on MoarVM version 2017.07-266-ged84a632 06:47
csv-ip5xs 2.705
test 12.616
test-t 4.362 - 4.371
csv-parser 12.909
lizmat Files=1217, Tests=67446, 256 wallclock secs (13.75 usr 5.01 sys + 1675.72 cusr 162.44 csys = 1856.92 CPU) 09:17
Geth rakudo/nom: 3e078d4d47 | (Timo Paulssen)++ | src/Perl6/Actions.nqp
space after import modulename shall not explode the compiler
10:09
stmuk hmm I suppose appveyor can be used as a Windows MSI build servic 11:13
assuming the free/OSS service allows it 11:14
Geth rakudo/nom: a7d2ad1db8 | (Elizabeth Mattijsen)++ | src/core/traits.pm
Make Attribute is default() functional
12:00
rakudo/nom: 148ba7f2e4 | (Elizabeth Mattijsen)++ | src/core/traits.pm
Use proper check for Scalarness of attribute
12:43
lizmat m: 42 12:51
camelia WARNINGS for <tmp>:?Useless use of constant integer 42 in sink context (line 1)?
lizmat m: class A { has $.a = 42 }; for ^100000 { my $a = A.new }; say now - INIT now 12:52
camelia 0.26820687?
lizmat m: class A { has $.a is default(42) }; for ^100000 { my $a = A.new }; say now - INIT now
camelia 0.20388547?
lizmat m: say 26820687 / 20388547
camelia 1.315478097?
lizmat not bad for a one line change :-) 12:53
jnthn++ for pointers
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make Attribute is default() functional' 12:55
travis-ci.org/rakudo/rakudo/builds/259338464 github.com/rakudo/rakudo/compare/3...d2ad1db850
buggable [travis build above] ? Did not recognize some failures. Check results manually.
lizmat appears to be a flapper :-( 12:57
Zoffix But the two aren't equivalent? 13:00
jnthn No, they ain't 13:01
the is default(...) form comes with the usual mass of caveats
Which aren't going to go away
my $a is default([])
For example, is one array shared between all the variables
Same will happen with attrs 13:02
Zoffix m: class A { has $.a = 42 }; A.new(:a(Nil)).a.say
camelia (Any)?
Zoffix m: class A { has $.a is default(42) }; A.new(:a(Nil)).a.say
camelia 42?
lizmat indeed, that is the difference
jnthn Also that :)
Also you can't refer to an earlier attribute with is default
lizmat which you could consider a feature, fwiw :-)
jnthn Well, it does what `is default` does
lizmat indeed 13:03
jnthn Which is good in that it should work on attributes
Geth rakudo/nom: c63c57e9a8 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
Use "is default" for IO::Handle atttributes
13:15
lizmat should help in file intensive operations
although the big problem really still is the number of named parameters on IO::Handle.open
Zoffix let's toss most of them in 6.d \o/ 13:16
jnthn heh 13:17
There's one more needed too, I think (:translate-nl) 13:18
Zoffix + one more (:chmod)
lizmat if we could only have a sig for "no named params" 13:19
jnthn where !%_ :) 13:20
lizmat jnthn: are you implying we have such a thing already ? 13:22
ah, using "where" 13:23
that will kill performance
although, in the case of IO::Handle.open, that may still be better :-) 13:24
hmmm
jnthn Did you measure it against the status quo? :)
Right :)
Zoffix lizmat: reading the code, the last commit has a bug in it, of sorts. If you set $fh.nl-in = Nil; it'll set the attribute to default, but that default won't be set in the decoder. I think the $nl-in in this piece needs to be replaced with $!nl-in on these two lines: github.com/rakudo/rakudo/blob/nom/...#L194-L195
lizmat Zoffix: agree 13:25
will do
Geth rakudo/nom: 08f705b9f7 | (Elizabeth Mattijsen)++ | src/core/IO/CatHandle.pm
Remove now superfluous assignment
13:27
rakudo/nom: d0419a0f2a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Remove superfluous assigments

Native ints default to 0
nicq20 Hello! o/ 13:28
Zoffix \O\
nicq20 Do core types like Hash need to be defined in NQP? 13:32
timotimo interesting question 13:34
lizmat they're not defined in NQP, they get defined in the Rakudo metamodel bootstrap 13:36
jnthn To get a hash in NQP do nqp::hash() 13:37
nicq20 The reason I ask is because I think I have a (probably poor) working version of `Hash ~~ Hash` but written in regular p6.
jnthn That'd need to go into CORE.setting 13:38
Which is written in Perl 6 :)
So no NQP re-writing required :)
Geth rakudo/nom: 9f5686ec81 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
Make sure nl-in changes are passed to decoder

Spotted by Zoffix++
nicq20 Woo! \o/
Zoffix nicq20: what does it do?
nicq20 Really it just checks to see if each key exists, then checks that the value is eqv. 13:39
It's like 5 lines with the sig. 13:40
Zoffix nicq20: how come not just self eqv $got ?
From S03:
Hash Hash hash mapping equivalent $_ eqv X
Associative Hash force hash comparison $_.Hash eqv X
nicq20 That's a good point... 13:41
I think I did that because I thought eqv still uses `.perl`. 13:45
Zoffix s: &infix:<eqv>, \(%(:42a), %(:42a))
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/c63c...ap.pm#L423
Zoffix nicq20: it does what you described (checking key exists and eqv'ing the value) except it also takes shortcuts when the two objects are the same address or have different number of elements 13:46
m: .signature.say for &infix:<eqv>.candidates 13:48
camelia ($?)?(Any:U \a, Any:U \b)?(Any:D \a, Any:U \b)?(Any:U \a, Any:D \b)?(Any:D \a, Any:D \b)?(Iterable:D \a, Iterable:D \b)?(Stringy:D \a, Stringy:D \b)?(Numeric:D \a, Numeric:D \b)?(Blob:D \a, Blob:D \b)?(Str:D \a, Str:D \b)?(Capture:D \…
Zoffix tons of candidates that don't use .perl
nicq20 `eqv` it is then.
dogbert17 lizmat: where is RabidGravy, is he trying to stop Brexit by himself? 13:50
lizmat
.oO( that would be quite a Boom! :-)
dogbert17 he seemed quite invested in that particular question if memory serves 13:51
lizmat then more power to him!
Geth rakudo/nom: c8c5c7129f | (Elizabeth Mattijsen)++ | src/core/IO/Socket/INET.pm
Use is default in favour of BUILDALL base init
13:57
|Tux| This is Rakudo version 2017.07-104-g9f5686ec8 built on MoarVM version 2017.07-266-ged84a632 14:16
csv-ip5xs 2.481
test 12.380
test-t 4.140 - 4.201
csv-parser 12.610
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Use "is default" for IO::Handle atttributes'
travis-ci.org/rakudo/rakudo/builds/259362506 github.com/rakudo/rakudo/compare/1...3c57e9a823
|Tux| (after Liz' change to default attribute values)
Zoffix \o/ 14:20
lizmat++
Geth rakudo/nom: 40d5b27d52 | (Elizabeth Mattijsen)++ | src/core/IO/Socket.pm
Use is default instead of BUILDALL based init

In the same manner as IO::Handle.
14:26
Zoffix FWIW, in IO::Handle a Nil encoding means we're in binary mode; now in IO::Socket it means utf8. It doesn't look like it's doing anything with it when it's Nil, but still inconsistent. 14:43
Also, IO::Socket has $.encoding, and IO::Socket::INET does IO::Socket, but IO::Socket::Async doesn't do IO::Socket and has $.enc for the same purpose :/ 14:44
lizmat yeah, something for 6.d I'm afraid
Zoffix fears more like 6.e 14:45
jnthn I'd pondered just :enc(:$encoding) everywhere :)
IO::Socket::Async can't reasonably do IO::Scoket
Zoffix I see 14:46
jnthn The APIs are completely difference 14:47
The point of the IO::Socket role is for when IO::Socket::INET is joined by IO::Socket::Domain or so
Zoffix starts inconsistencies.txt 14:48
In case there'll be a point where they could be ironed out.
Geth rakudo/nom: fb5db59220 | (Elizabeth Mattijsen)++ | src/core/Duration.pm
Streamline Duration creation

  - set default using "is default"
  - shortcut new() by bypassing Mu.bless
  - makes it about 1.5x faster
14:56
Zoffix Logged 4 so far, off memory: temp.perl6.party/inconsistencies.txt 14:57
Geth rakudo: nicqrocks++ created pull request #1126:
Add `ACCEPTS` method to Hash for defined hashes.
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Remove now superfluous assignment' 15:01
travis-ci.org/rakudo/rakudo/builds/259367025 github.com/rakudo/rakudo/compare/c...f705b9f788
buggable [travis build above] ? Did not recognize some failures. Check results manually.
Zoffix make: *** [gen/moar/stage1/nqpmo.moarvm] Segmentation fault: 11 15:03
lizmat wow 15:05
timotimo Zoffix: did you see the latest moarvm commit?
Zoffix timotimo: why? 15:07
I'm just copy-pasting why travis failed.
That commit is over my head. 15:08
jnthn Apparently the one it was fixing was over mine too :)
timotimo oh, ok 15:09
how's about we teach travis how to do a "thread apply all bt full" when it finds a crash like that ...
Geth rakudo/nom: 413b71163b | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm
Use is default instead of BUILDALL based init
15:16
rakudo/nom: fbdbe6fb55 | (Elizabeth Mattijsen)++ | src/core/IO/Pipe.pm
Use is default instead of BUILDALL based init
15:28
Zoffix nicq20: how crummy is your crummy machine? 35m sounds like you forgot to set TEST_JOBS and you're running a 1-core spectest 15:29
Related: would be a good idea to default TEST_JOBS to, say, 8 instead of 1 15:30
ugexe i've often wished I could use a default in signatures, so something like `sub foo(:$a, :$b) { bar(:a, :$b) }; sub bar(:$a is default(1), :$b is default(True)) { say $a; say $b }; foo()` would print 1 and True instead of (Any)(Any) 15:31
lizmat ugexe: is next on my list
jnthn Huh, that's just = 15:32
ugexe otherwise Ive been having to do like sub foo(*%args [:$a, :$b]) { bar(|%args) }; bar(:$a, :$b) { say $a; say $b };
Zoffix lizmat: with that behaviour? :/
jnthn Also Nil defaulting is about assignment, but it's signature *binding*
ugexe m: sub foo(:$a, :$b) { bar(:$a, :$b) }; sub bar(:$a = 1, :$b = True) { say $a; say $b }; foo() 15:33
camelia (Any)?(Any)?
nicq20 2 core. I checked that var though, I had set it to 2 and forgot to revert it back to a higher number.
Oops.
jnthn The only place I think `is default` can apply on a parameter is when it's `is copy`
Zoffix ugexe: there was a proposal to add `(:$a //= 1, :$b //= True)` syntax that'd assign the default based on definedness.
ugexe that sounds like it would work too
Zoffix I was meant to make a module to test the feature, but I never managed to do it 15:34
By managed, I mean I never wrote anything, not that I had any challenges.
nicq20: ah, if it's 2 core then yeah, likely higher values won't do too much good. 15:35
nicq20 Zoffix: Spectest just finished at ~25 min.
Zoffix yikes.
And I was complaining about *stress* test running in 140 seconds instead of the usual 113 :) 15:36
nicq20 This is my work machine too. 15:37
ugexe jnthn: = doesn't work well if you want do do both 1) use a named argument in a function B) pass that named argument to another function that wants to set a default for that parameter 15:42
well, it works well. but there is no way around the boilerplate to do the //= bit Zoffix mentioned 15:44
Zoffix IMO all these changes from `=` to `is default` are introducing a bunch of inconsistencies. We're making a semantic change for the sake of performance. We now have different behaviours for when Nil is given to .new, vs. when it's passed as arguments. 15:45
jnthn ugexe: Yeah, I sometimes hit that. There's the destructuring approach you mentioned. 15:46
I don't think `is default` is the solution
`is default` is really a way of saying "what does this default to if unitialized or assinged to Nil"
And it's a property of a scalar container
But 99% of parameters don't involve one
lizmat Zoffix jnthn: want me to revert ? 15:47
jnthn I'm not passing judgement on using is default on attributes, just saying it's about useless on parameters 15:48
Zoffix e.g. Proc::Async.new: :enc(Nil) vs Proc::Async.Supply: :enc(Nil). Or even more dangerous: $.translate-nl as Nil that when passed in .new becomes True, but when passed into methods gets ignored. 15:49
lizmat FWIW, all is default changes where spectested before I pushed them 15:50
otherwise I wouldn't have pushed 15:51
Zoffix lizmat: I think it's introducing a lot of inconsistencies that will make it more difficult to learn the behaviour of code as there's a difference between instantiating/assigning to attribute and using some value for it in a method call (like .translate-nl and .enc). Do I want it reverted... no opinion, but I think we'll see these inconsistencies bite someone in the future. 15:52
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Remove superfluous assigments 15:53
travis-ci.org/rakudo/rakudo/builds/259367154 github.com/rakudo/rakudo/compare/0...419a0f2acf
buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0).
ugexe the only problem with the destructuring approach is it does not work for less basic functions where you might need to pass the same parameter to two functions which only share that single parameter (e.g. you want to destructure :$a, :$b, :$c into both %first [$a, :$b] and %second [:$b, :$c]) 15:54
Zoffix Especially with .enc/.encoding parameters. IO::Handle.new: :enc(Nil) means "binary mode". Proc::Async.new: :enc(Nil) means "utf8"
Zoffix & lunch 15:55
Geth rakudo/nom: a8016278cd | (Elizabeth Mattijsen)++ | 5 files
Revert potentially confusing "is default" changes

  See irclog.perlgeek.de/perl6-dev/2017-...i_14947645
15:56
Zoffix waits for [Tux]'s tomorrow's bench numbers before feeling bad :} 15:59
|Tux| want a run now?
lizmat I deston't think my changes will show up in test-t 16:01
there aren't that many handles opened
Zoffix buggable: speed 4 16:04
buggable Zoffix, ???? data for 2017-07-31–2017-07-31; range: 4.140s–4.371s; 6% faster
Zoffix I thought that was result of is default..
lizmat yeah, that looks about right 16:10
Zoffix actually, I lied. IO::Handle.new: :enc(Nil) means utf8 too, but IO::Handle.new.encoding = Nil means utf8 :/ 16:13
I mean: actually, I lied. IO::Handle.new: :enc(Nil) means utf8 too, but IO::Handle.new.encoding = Nil means binary :/
Geth rakudo/nom: 45ca084e7c | (Nic Q)++ | src/core/Map.pm
Add `ACCEPTS` method to Map to compare Maps.
16:16
rakudo/nom: 6e001867f2 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/Map.pm
Merge pull request #1126 from nicqrocks/nom

Add `ACCEPTS` method to Hash for defined hashes.
Zoffix lizmat: 6% for something without many handles sounds like a lot. 16:17
Now I feel bad :)
I'm gonna revert it back. 'cause taking a closer look at the affected attributes, looks like I'm mostly talking shit. IO::Handle :enc(Nil) doesn't mean bin; IO::H.chomp takes a Nil, but doesn't work with it in later code (.e.g. from .lines), nl-out don't take it, ; IO::Pipe $!eof/$!closed are private attrs, and Proc::Async/IO::Socket .enc/.encoding attributes aren't `is rw` so they don't got the "Nil is 16:45
binary" meaning as in IO::Handle. That leaves Proc::Async.translate-nl, but it's not even documented (and not tested?) for methods and if you think of it, passing Nil to methods kinda does work as a "default"; the default being whatever $!translate-nl is
AlexWithFootgun GitHub: “Major service outage” 16:46
Zoffix ZOFVM: Files=1267, Tests=144378, 131 wallclock secs (21.28 usr 3.93 sys + 2601.97 cusr 247.95 csys = 2875.13 CPU) 16:48
ZOFFLOP: t/spec/S11-modules/require.t
ZOFFLOP: t/spec/S11-modules/nested.t
Geth rakudo/nom: 7fdbb49ccc | (Zoffix Znet)++ | 5 files
Revert "Revert potentially confusing "is default" changes"

This reverts commit a8016278cd1cb8836f49e52de0f9bf6cf3982404.
On closer examination of affected attributes, it seems Nil don't usually work anyway, so the potential confusion is a lot lesser, and the perf gain of ~6% on our canary bench justifies it.
  irclog.perlgeek.de/perl6-dev/2017-...i_14947791
roast: cbb7302388 | (Zoffix Znet)++ | S03-smartmatch/hash-hash.t
Unfudge now-passing tests

Fixed by github.com/rakudo/rakudo/commit/6e001867f2
16:49
Zoffix a clue for the above floopers. The roast repo file shows an uncommited change in packages/RT128156/Needed.pm6 from `class Needed {};` to `class Needed { method version() { 2 } }` so whatever changes it either dies before changing back or maybe that's why the tests are failing 16:51
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=128156
Zoffix .tell lizmat I put the `is default` revert back in 'cause at least half of my original concerns turned out to be invalid. 16:53
yoleaux Zoffix: I'll pass your message to lizmat.
Zoffix &
lizmat . 17:06
yoleaux 16:53Z <Zoffix> lizmat: I put the `is default` revert back in 'cause at least half of my original concerns turned out to be invalid.
lizmat Zoffix: ok, fine by me :-) 17:07
fwiw, I think it's a feature being able to pass Nil to get the default
without having to know what the default is
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Use is default in favour of BUILDALL base init' 17:29
travis-ci.org/rakudo/rakudo/builds/259378198 github.com/rakudo/rakudo/compare/9...c5c7129f55
lizmat hmnmm... what to think of this test: 17:46
ok (\@a eqv \@a), "eqv on array references (1)";
the problems in my view: 17:47
1. array references, WTF ?
2. it's not checking for True, it's checking for thruthiness
unsurprisingly, these tests date from 2008 17:48
b2gills Hmm what do *I* think of that test? … .oO( **EXTERMINATE** ) 18:04
lizmat hopes moritz has some thoughts, being the original author of said tests :-) 18:06
moritz if we have capture equvialence tests somewhere else, sure 18:23
lizmat moritz: well, the comments state that they are array reference tests :-)
that'd be a bit confusing, no ?
moritz lizmat: it is; but a comment is easily adjusted, no?
lizmat true 18:24
I was more thinking of a treatment like I've done in t/spec/S03-operators/set_subset.t 18:25
would that be ok with you, moritz?
moritz lizmat: I claim no ownership 18:27
lizmat ok, consider it up for demolition and rebuild :-)
but after I've written this week's Perl 6 Weekly
moritz in other news: pbs.twimg.com/media/DGFWOCjXkAApImR.jpg 18:28
lizmat whee! 18:29
lizmat is still waiting for hers :-(
moritz there's got to be at least some perks to writing this stuff :-) 18:30
Zoffix moritz++ 18:31
[Coke] the shrink wrap makes it look like a ring is under the plastic. ;) 18:37
congrats!
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Use is default instead of BUILDALL based init' 19:42
travis-ci.org/rakudo/rakudo/builds/259410970 github.com/rakudo/rakudo/compare/f...3b71163bee
ugexe what is the empty folder github.com/rakudo/rakudo/tree/nom/dynext needed for? 19:57
moritz ugexe: that's where rakudo's .o and .so files go 19:59
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Use is default instead of BUILDALL based init' 20:27
travis-ci.org/rakudo/rakudo/builds/259415233 github.com/rakudo/rakudo/compare/4...dbe6fb550f
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/07/31/...r-smaller/ 21:22
Geth 6.d-prep: 2cc614bde4 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
List deprecation of .flatmap in 6.d
21:40
Zoffix moritz: is "Mark Powers" someone you know? 21:54
They sent me a "review copy of Perl 6 Fundamentals" in a PDF I don't really wanna open :P
And there's a leanpub's version from 28ths. Are leanpub's versions still current? 21:56
Oh, Mark is asking for Amazon review. Wouldn't it show that I didn't buy it? Can you even review without buying? 22:07
OK, I opened their PDF. Book looks sweet. Too bad there ain't no code formatting. I guess that's so they could run it B&W and save some money? 22:10
travis-ci Rakudo build failed. Zoffix Znet 'Merge pull request #1126 from nicqrocks/nom
travis-ci.org/rakudo/rakudo/builds/259433563 github.com/rakudo/rakudo/compare/a...001867f215
buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0).
Zoffix I've no idea what my amazon login is so, I gave up with the review stuff :) 22:13
"This item has not been released yet and is not eligible to be reviewed" 22:16
I've no idea idea what I'm doing.
travis-ci Rakudo build failed. Zoffix Znet 'Revert "Revert potentially confusing "is default" changes" 23:04
travis-ci.org/rakudo/rakudo/builds/259441532 github.com/rakudo/rakudo/compare/6...dbb49ccc4b
buggable [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (0), or failed make test (1). Across all jobs, only t/04-nativecall/12-sizeof.t test file failed.
lizmat hmmm... do we have a value that will always return False when compared with eqv ? 23:17
geekosaur m: say (0/0) eqv (0/0) 23:21
camelia False?
lizmat hmmm... :-) 23:22
geekosaur or maybe not 23:23
m: my $a = (0/0); say $a eqv $a
camelia True?
lizmat meh
m: dd NaN eqv NaN
camelia Bool::True?
timotimo i've started reading my review copy of perl6 FUNdamentals but i've gotta go sleep 23:31
it's looking real good so far, though
moritz++
also, someone has to write a little pamphlet "Perl 6 Pundamentals" 23:32
maybe we can get Warry Lall to write a fun little foreword
lizmat woreford you mean ?
timotimo Of Course! 23:33
m: say "larry wall".trans(["r", "l"] => ["l", "r"])
camelia rally warr?
timotimo warr, huh, what is it good for?
lizmat uh! 23:34
timotimo nothing!
say it again y'all
hmpf. the cat is occupying a good 3/5ths of the bed again 23:35
AlexDaniel O_O what kind of a cat is that
timotimo well, the problem is less with the cat 23:36
you see, she's positioned herself quite close to the center
stretched out quite a bit
and when i get too close she tends to jump and run away
AlexDaniel ok, the problem is with the bed then? Should be bigger? 23:37
statisfiable6: bed size 23:39
statisfiable6 AlexDaniel, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Statisfiable
AlexDaniel statisfiable6: libmoar0
statisfiable6 AlexDaniel, OK! Working on it…
timotimo haha 23:40
it's already a rather wide bed. before i moved in here i considered going for a smaller bed because my room is also smaller
statisfiable6 AlexDaniel, gist.github.com/80bac571cfb9db0e3c...dfeac11674
timotimo but i decided against buying a new bedframe + lath floor (??) + mattress 23:41
AlexDaniel hm it's nice to have these graph but nobody really needs them :) 23:42
geekosaur bed sizing: a human requires 2x their body size, a dog 3x, a cat 9x :p 23:43
timotimo i'll look at the graph again the next time we do something to make moar noticably smaller
geekosaur: that seems accurate
now she's looking at me and making some freaky noises 23:44
AlexDaniel sooo… humans are significantly more efficient?
timotimo nah, they just don't have standards
AlexDaniel
.oO( then why would we need bigger toilets )
23:45
timotimo a cat knows she's worth a full king-sized bed
anyway, this being #perl6-dev, that's rather off-topic :)