AlexDaniel` japhb: more info? 00:01
lizmat Files=1227, Tests=75722, 314 wallclock secs (14.71 usr 4.97 sys + 2169.51 cusr 211.27 csys = 2400.46 CPU) 07:48
lizmat expects test-t to be very close to 3 07:49
AlexDaniel` lizmat: it is 3.093 07:57
lizmat AlexDaniel: is that number from after the hyper/race branch got merged ? 07:59
AlexDaniel` no 08:00
but I'm not expecting any positive change :)
lizmat I wasn't either, but running the benchmark on my own machine, indicated a positive effect 08:03
also make spectest dropped from 320 to 314 for me, even though there are more tests 08:04
samcv is hyper getting parallelized? 08:17
lizmat samcv: you mean >>. or the explicity .hyper ? 08:18
samcv either 08:19
i don't know what i don't know yet
only it relates to hyper/race
lizmat afaik, explicit .hyper and .race now parallellize properly
not sure about >>. 08:20
AlexDaniel` I hope not.
lizmat m: ^10 >>.&say
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed postfix call
at <tmp>:1
------> 3^10 >>.7ā5&say
lizmat m: ^10 >>.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing << or >>
at <tmp>:1
------> 3^10 >>.7ā5say
lizmat m: (^10)>>.say
camelia 0
1
2
3
4
5
6
7
8
9
lizmat m: (^100)>>.say
camelia 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
5ā€¦
lizmat hmmm
AlexDaniel` not that I don't want it, but there are lots of people who misuse Ā». So if we ever do it, not 3 days before the release 08:21
(to give me a chance to adjust the ecosystem for the change :) )
but yeah, this was only about .hyper and .race
or so I think
fwiw I don't understand something 08:22
m: <a b c d e>.hyper(:1batch, :5degree).map({ sleep 1; 42 }).say; say now - BEGIN now
camelia (42 42 42 42 42)
1.1536079
AlexDaniel` so that works, and is parallelized
m: for <a b c d e>.hyper(:1batch, :5degree) { sleep 1; 42 }; say now - BEGIN now
camelia WARNINGS for <tmp>:
5.0190818
Useless use of constant integer 42 in sink context (line 1)
AlexDaniel` but this isn't?
oh 08:23
lizmat m: say do for <a b c d e>.hyper(:1batch, :5degree) { sleep 1; 42 }; say now - BEGIN now 08:24
camelia (42 42 42 42 42)
5.0396871
lizmat hmmm
AlexDaniel` maybe ā€œforā€ is supposed to be sequential
c: 2017.09,HEAD say (for <a b c d e>.hyper(:1batch, :5degree) { sleep 1; 42 }); say now - BEGIN now 08:26
committable6 AlexDaniel`, Ā¦2017.09: Ā«()ā¤1.01321534Ā» Ā¦HEAD(f9c10c2): Ā«(42 42 42 42 42)ā¤5.0423326Ā»
AlexDaniel` c: 2017.09,HEAD say (for <a b c d e>.hyper(:1batch, :5degree) { sleep 1; 42 }); say now - BEGIN now
committable6 AlexDaniel`, Ā¦2017.09: Ā«()ā¤1.0146371Ā» Ā¦HEAD(f9c10c2): Ā«(42 42 42 42 42)ā¤5.039172Ā»
AlexDaniel` c: 2017.09 say (for <a b c d e>.hyper(:1batch, :5degree) { sleep 1; 42 }); say now - BEGIN now
committable6 AlexDaniel`, Ā¦2017.09: Ā«(42 42 42 42 42)ā¤1.0143836Ā»
AlexDaniel` ok there it is
so yeah, it works now, butā€¦ not really :)
gfldex I wonder if .hyper on a Seq that is not already cached should throw. 09:12
yoleaux 18 Oct 2017 08:59Z <jnthn> gfldex: Multiple .cache calls on the same Seq
jnthn Uh, no? 09:17
Otherwise then you can't do a hyper pipeline that doesn't keep all the values around 09:18
The problem wasn't the at we were doing .hyper on a non-cached Seq, it was that the same Seq was being used by two workers
AlexDaniel` jnthn: should ļ½¢for (ā€¦).hyper { ā€¦ }ļ½£ work as expected or not? 10:07
where ā€œexpectedā€ would be similar to how .hyper.map is working right now
jnthn Trouble is that I'm not sure I consider that expected 10:09
AlexDaniel` hm
jnthn See discussion on this channel yesterday or day before
AlexDaniel` (for others, it's around here: irclog.perlgeek.de/perl6-dev/2017-...i_15315306 ) 10:14
ā€œThe reason to draw the line with `for` is because typically, `for` is considered an imperative constructā€ 10:18
hmm, every time I attempted to use hyper/race I wanted to use ļ½¢forļ½£ 10:19
because normally it doesn't feel right to wrap your code block in map across several lines
jnthn AlexDaniel`: yeah, the idea is you'd write hyper for blah { }
AlexDaniel` oooohā€¦
jnthn So you can read the code and know the semantics of your for loop, without having to know exactly what blah returns 10:20
AlexDaniel` hyper for blah.hyper { }
ilmari hyper for mance { ... }
AlexDaniel` jnthn: I guess it makes sense 10:21
jnthn ilmari: Oh goodness, that's amazing :P
AlexDaniel` although I'm pretty we'll eventually have ā€œI use ļ½¢for @stuff.hyper {}ļ½£ and it does not hyper!ā€ in our FAQ :) 10:23
or wait, will it hyper non-hyper stuff automatically?
like ļ½¢hyper for @arr { }ļ½£ ?
ooh
jnthn Yes, hyper on the for loop means "I want the body of this for loop run in parallel" 10:24
ilmari jnthn: feel free to use it when blogging :)
jnthn AlexDaniel`: My worry is that somebody inside of their module refactors their code, so that it returns a HyperSeq instead of a Seq, and then somebody using that code does a for loop over it, and suddenly their code breaks in hard to understand ways because the for loop was, say, mutating stuff outside of the loop. 10:26
AlexDaniel` jnthn: right
jnthn: fwiw, ļ½¢hyper for ā€¦ {}ļ½£ is doing something else right now 10:28
I think it does (for ā€¦ {}).hyper
jnthn Yeah, that's on my todo list :) 10:29
For later today, or tomorrow
AlexDaniel` alright I'd better stop asking irrelevant questions and start working on the changelog or something
releasable6: status
releasable6 AlexDaniel`, Next release in 2 days and ā‰ˆ8 hours. 2 blockers. Changelog for this release was not started yet
AlexDaniel`, Details: gist.github.com/909db1db83587f6eea...5be35aad13
AlexDaniel` ah, okay let's test that first oneā€¦ 10:30
c: 2017.07,HEAD gist.githubusercontent.com/AlexDan...b8/test.p6
committable6 AlexDaniel`, Successfully fetched the code from the provided URL.
AlexDaniel`, gist.github.com/569f4cd48eb7e12e50...35d0d4d94e 10:31
AlexDaniel` \o/
jnthn: ohā€¦ while you're here, do you have anything against opening rakudo/issues on github? 10:33
.tell Zoffix lately you've been resolving pretty hard ļ½¢testneededļ½£ tickets, do you have any idea on what we can do with this one? RT #132269 10:35
yoleaux AlexDaniel`: I'll pass your message to Zoffix.
synopsebot RT#132269 [open]: rt.perl.org/Ticket/Display.html?id=132269 [EXOTICTEST][REGRESSION][BUG] JIT removing loop construct and confusing last() 10:36
Zoffix Don't have time to look at it right now 10:37
yoleaux 10:35Z <AlexDaniel`> Zoffix: lately you've been resolving pretty hard ļ½¢testneededļ½£ tickets, do you have any idea on what we can do with this one? RT #132269
jnthn AlexDaniel`: Been thinking about it, still a bit conflicted if having two issue trackers will be a better situation than now (I don't really want a migration of existing tickets) 10:46
Though in a sense we already have that with the fact we accept PRs 10:47
AlexDaniel` and also we have github issues for all other projects (nqp, moarvm)
dogbert2 m: .base: 16 for ^100000; say now - INIT now 11:14
camelia 0.2318178
dogbert2 m: .base: 16 for ^100000 .hyper; say now - INIT now
camelia 0.374095
stmuk_ hmm I'm considering removing panda from R* this release. Even although it's been warning about deprecation for 3 releases I suspect complaints are likely 11:15
dogbert2 should hyper be slower here?
AlexDaniel` dogbert2: not that it *should* be like this, but I'm not very surprised 11:17
ilmari m: ^100000.hyper.map: .base: 16 ; say now - INIT now 11:18
camelia Potential difficulties:
Precedence of ^ is looser than method call; please parenthesize
at <tmp>:1
------> 3^1000007ā5.hyper.map: .base: 16 ; say now - INIT n
WARNINGS for <tmp>:
Useless use of "^" in expression "^100000.hyā€¦
ilmari m: (^100000).hyper.map: .base: 16 ; say now - INIT now
camelia No such method 'base' for invocant of type 'Any'. Did you mean any of these?
Hash
hash
take

in block <unit> at <tmp> line 1
ilmari m: (^100000).hyper.map: *.base: 16 ; say now - INIT now 11:19
camelia 0.9164133
ilmari m: (^100000).map: *.base: 16 ; say now - INIT now
camelia 0.2553566
AlexDaniel` .base is not the slowest operation out there
dogbert2 AlexDaniel`: why are you not surprised? 11:24
AlexDaniel` dogbert2: well, in your snippet it took just 230ms to do the whole thing. It's unfortunate that hyper is slower, but it's not too surprising that it took a bit more to set things up for hyper. Consider something like this instead: 11:32
{ .base: 16 for ^100000 } for ^80 .hyper(:10batch, :4degree); say now - INIT now
.hyper in this case outperforms regular for by 1 second, which is not much at all
but it is faster at least
dogbert2 it's indeed faster, by a tiny amount 11:34
|Tux| This is Rakudo version 2017.09-457-gf9c10c214 built on MoarVM version 2017.09.1-608-ge051ee3c 11:35
csv-ip5xs 1.152 - 1.163
test 8.522 - 8.612
test-t 3.044 - 3.101
csv-parser 11.751 - 11.933
dogbert2 damn, we're so close to get below 3
AlexDaniel` the last graph is so linearly steady tux.nl/Talks/CSV6/speed4.html 11:37
lizmat grrr... there's no way to find out bottlenecks with .hyper / .race :-( 11:56
--profile just gives garbage :-(
jnthn Good job somebody's working on profiling :) 12:07
lizmat yeah, but that will be some time :-( 12:09
jnthn Note that `{ .base: 16 for ^100000 } for ^80 .hyper(:10batch, :4degree);` may be compiling into a parallel iteration and so not doing much good at all
Here, `for ^80 { .base: 16 for ^100000 }; say now - INIT now` is 14s, and `^80 .hyper(:10batch, :4degree).map: { .base: 16 for ^100000 }; say now - INIT now` is 4s 12:10
m: say 14.34 / 4.162 12:11
camelia 3.445459
jnthn So factor of 3.5 speedup
And on my 12-core box here, I can do `^80 .hyper(:10batch, :12degree).map: { .base: 16 for ^100000 }; say now - INIT now` in 2.99s 12:12
m: say 14.34 / 2.99
camelia 4.795987
jnthn Nearly factor of 5
Hopefully profiling improvements will take less than the approx 2 years it took for hyper/race to get fixed :P 12:13
lizmat for reference: ^80 .hyper(:10batch, :4degree).map: { .base: 16 for ^100000 }; say now - INIT now on my MBP is 3.35x faster than without hyper 12:17
but takes 1.17x more CPU
oddly enough, moving it to :8degree, the wallclock isn't reduced much (just msecs), but the CPU nearly doubles 12:19
jnthn How many cores do you have?
lizmat (where my MBP is quadcore) 12:20
TEST_JOBS is always 8 for me
jnthn Yeah, but there's a difference between mixed IO/CPU bound tests and totally CPU bound work
lizmat true
jnthn ooh, if you dont specify :degree at all, how does it do?
It should pick the number of workers that you have CPU cores 12:21
lizmat similar result to :4degree
jnthn ah, nice :) 12:22
lizmat still, if I use :8degree, my "top" shows it's running at 770% CPU 12:23
so it *is* using all 8 hyperthreaded cores
jnthn Yeah
I guess they can only give so much help 12:24
Or there's some other bottleneck somewhere
lizmat I wonder
jnthn is, for now, happy that it works at all :)
lizmat the sys time on :8degree is only 5x as much as with :4degree 12:25
jnthn++ # making it work at all :-)
jnthn I should go do $other-task for a bit, will see if I can get hyper/race keywords fixed up and maybe even a warning if you do for @foo.hyper { } 12:26
uh, in some hours after $other-task I mean :)
lizmat :-) 12:27
commute to NR.PM meeting& 13:05
dogbert2 test failure in t/spec/S32-io/io-handle.t, not ok 28 - opened filehandles get closed on exit automatically 13:33
ugexe timotimo: back on the topic of feeds - what advantage does passing the results through channels instead of as arguments (like map) have? when the receiving block has a heavy startup? 14:15
timotimo not sure. maybe the call graph will be a lot simpler? 14:16
ugexe theoretically of course
Zoffix dogbert2: what's the full output of the failure? 14:22
Oh, I think I forgot to amend that test last night 14:23
Geth roast: d7ab762162 | (Zoffix Znet)++ (committed using GitHub Web editor) | S32-io/io-handle.t
Use new arg name for buffer

Old one emits deprecation warnings, causing test to fail
Zoffix dogbert2: ^ that might fix the issue
actually that test is crap and doesn't cover our current behaviour 14:24
|6h fix text to do a dummy initial print, so tested stuff is actually buffered: github.com/perl6/roast/commit/d7ab762162 14:25
ZofBot Zoffix, Will remind you on 2017-10-19T16:25:41.440087-04:00 about fix text to do a dummy initial print, so tested stuff is actually buffered: github.com/perl6/roast/commit/d7ab762162
Zoffix ZofBot: botsnack
ZofBot Zoffix, And him- wondrous him! miracle of men!- him did you leave- Second to none, unseconded by you- To look upon the hideous god of war In disadvantage, to abide a field Where nothing but the sound of Hotspur's name Did seem defensible
pmurias AppVeyor seems to be showing build failures :( 14:26
Zoffix pmurias: for which project? 14:27
pmurias nqp
Zoffix Is it even setup right? I get "Specify a project or solution file. The directory does not contain a project or solution file." when I try to view the failures 14:28
pmurias tyil: I'm pretty sure go being less powerfull than Perl 6 is a design goal and from their point of view a benefit :) 14:29
Zoffix I don't see any .appveyor.yml, or whatever it's called, files in nqp
timotimo that job is more or less done by moar's appveyor 14:30
because moar has no tests of its own it runs the nqp test suite for every commit
of course that means we don't test nqp-j, and not every nqp commit
pmurias should get round to setting up travis for nqp-js 14:35
tyil pmurias: ;) 14:36
japhb AlexDaniel: HTTP::UserAgent failed the testing phase under zef install with a new Rakudo build right after Zoffix bumped MoarVM; it produced a multi-page backtrace which includes a lot of info that I'd have to scrub to even gist. Were you able to install it on a local build? 14:53
Zoffix I didn't try. 15:36
(don't have a recent-enough build around right now)
japhb: just re-did travis build for WWW that has HTTP::UA as prereq and it built and passed: travis-ci.org/zoffixznet/perl6-WWW 16:08
Wonder why "Result: PASS" string gets messed up so offen and part of it is printed on the NEXT line 16:09
ugexe i was just going to ask that 16:13
jnthn I've seen that happen on Travis occasionally
Never had it happen in any other case
Zoffix japhb: actually NETWORK_TESTING wasn't set never mind. Gonna try again with it set
Zoffix is reminded to write a blog about Test::When to encourage people to use all the same env vars for this stuff 16:14
jnthn Hurrah, think I've got `hyper for @foo { }` and `race for @foo { }` working, fixed `lazy for @foo { }` along the way, and a plain for @foo { } will never give you threading surprises. 16:18
|Tux| busy porting perl5' Text::CSV_XS new formula handling to perl6' Text::CSV ...
github.com/Tux/Text-CSV_XS/blob/ma...a_handling 16:19
timotimo formula handling; turns Text-CSV into a spreadsheet program? :)
|Tux| no. read those docs: they are safety measurements after reading georgemauer.net/2017/10/07/csv-injection.html 16:20
timotimo oh, ok 16:23
ilmari |Tux|: I'm not sure I like the silent ignoring of unknown values, for something that's supposed to be a safety feature 16:24
|Tux| perl6 will die with error 1500
ilmari $csv->formula('coark') # oops
|Tux| and your feedback is just a fraction of a century too late
ilmari uh, this is a new feature...
jnthn omg test failures...
|Tux| yep, but it had many day of reviews and feedback and I released an hour ago 16:25
timotimo damn, something relying on improper behaviour?
|Tux| is willing to make "coark" fatal in perl5 too
ilmari Ā«All other values will give a warning and then fallback to diag.Ā» - okay, at least it's not _silent_
but I'd rather have an exception 16:26
|Tux| noted
$ p6 -MText::CSV -e'my $c =Text::CSV.new(formula => "dei");' 16:27
PRM - Invalid/unsupported argument(s)
ilmari [Tux]: now I remember where I got the idea that the delimiter had to be a single one-byte character: postgres' COPY command has that restriction 16:37
s/remember/realise/ # was just reading the manual 16:38
|Tux| perl5.perl6 translation error in brain: 5 Ā«my @d; for (@data) { $x->foo ($_); push @d, $x->bar; }Ā» 16:40
japhb |Tux|: Are you asking for a translation? 16:41
|Tux| I started with Ā«@d = @data.map($x.foo(*);$x.bar)Ā»
ugexe in zef if I change a `whenever $proc.stdout { $.stdout.emit($_.chomp) }` to `whenever $proc.stdout { my $o = $_.chomp; $.stdout.emit($g) }` the "PAS\nS" thing stops happening
|Tux| japhb, more like the "most elegant way in p6 to do thatĀ» 16:42
japhb my @d = @data.map: { $x.foo($_); $x.bar }
|Tux| Drat :) I had something close to that, but in that attempt I forgot the braces. Thanks! 16:44
dogbert17 Zoffix: t/spec/S32-io/io-handle.t works now. Thanks
japhb No problem, |Tux| . :-)
ugexe .bar with $x.foo(*)
japhb ugexe: I don't think the result of $x.foo is used.
ugexe ah yeah
japhb In particular, it doesn't replace $_
|Tux| it isn't
ugexe .foo(*) && .bar with $x isn't quite as nice 16:45
ugexe or maybe `and .bar`
Geth rakudo/nom: cf1673d9c2 | (Jonathan Worthington)++ | 5 files
Clear up `for` and `hyper|race|lazy for` semantics

A plain `for` loop will now always mean serial execution, to avoid surprises (for example, in `for some-module-code() { }` it is far preferable to know that the module code can't suddenly cause the `for` loop's body to run on different threads by changing its return type!) The `hyper for foo() { }` and `race for foo() { }` constructs will run the loop body in parallel under the `hyper` or `race` paradigm (these
  are identical in sink context). Finally, `lazy for @foo { }` is fixed
to actually lazily execute the loop body when data is needed; this was broken before now.
16:46
Zoffix .foo(*) just calls .foo with Whatever. It doesn't close over it
japhb ugexe: That assumes the result of .foo is trueish
|Tux| ugexe, using the with has type check issues 16:48
Type check failed in binding to parameter '$buffer'; expected Str but got Whatever (*)
Zoffix ugexe: `$.stdout.emit($g)` <-- $g is meant to be $o there?
ugexe Zoffix: yeah, but I just got a \n with that code too 16:49
jnthn I'll write tests for those tomorrow :)
.in 15 hours write tests for `lazy/hyper/race for foo() { }` 16:50
yoleaux jnthn: Sorry, I don't understand your duration. Try using units: 1h30m, 1d, etc.
Zoffix ugexe: perhaps a rouge "\n" getting sent on stderr at the same time as .stdout sents stuff? I forget if it's possible to make them overlap like that by just doing printing to STDERR/STDOUT from diff threads or something
jnthn .in 15h write tests for `lazy/hyper/race for foo() { }`
yoleaux jnthn: I'll remind you on 20 Oct 2017 07:50Z
jnthn bbl o/ 16:51
Zoffix \o\
ugexe Zoffix: yeah thats possible, but nothing over the last month of commits really sticks out to me yet
Zoffix timotimo: was gonna say but forgot. Looks like it's only the separate .meta file PAUSE generates has the CPAN URL; the META inside the dist is still pristine and contains GithUb's source: modules.perl6.org/dist/JSON::Fast:...6.json#L21 16:52
Dunno how reliable would it be to assume that's the repo url
timotimo that's a 404 for me? 16:53
Zoffix ugexe: I think it started happening when buffering was merged. I remember AlexDaniel noticing the "PASS" stuff around that time
timotimo: oh shi.... I think I nukerized the website 16:54
|Tux| I can CATCH die. can I also catch warn?
Zoffix db got only 500 modules in it
|Tux|: CONTROL
|Tux| reads docs ... 16:55
lizmat m: CONTROL { dd $_ }; warn "foo"
camelia CX::Warn.new(message => "foo")
MoarVM panic: Trying to unwind over wrong handler
lizmat oooohh
Zoffix m: CONTROL { when CX::Warn { "got a warning: $_"; resume } }; warn 'meow'; say 42
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
resume used at line 1. Did you mean 'rename', 'reduce'?
Zoffix m: CONTROL { when CX::Warn { "got a warning: $_"; .resume } }; warn 'meow'; say 42
camelia WARNINGS for <tmp>:
42
Useless use of "got a warning: $_" in expression "got a warning: $_" in sink context (line 1)
Zoffix hehe meta warning
m: CONTROL { when CX::Warn { say "got a warning: $_"; .resume } }; warn 'meow'; say 42
camelia got a warning: meow
42
Zoffix |Tux|: ^
|Tux| overwhelming :) 16:56
Zoffix |Tux|: why tho? If you want to just silence warnings, you can use `quietly`
m: quietly { warn 'meow'; say 42 } 16:57
camelia 42
Zoffix Oh wait, I forgot that I destroyed modules site :P
|Tux| no, in my test I want to check if the intended warning was indeed issued
Zoffix We should build backup dbs, like once a day, so if nukerage happens we can just plug on in 16:58
Zoffix uses one from beginnign of october, if it still works
Actually my change was only to the web app... Wonder what nuked it 17:01
The log shows building 933 dists and then at the end it removes 337s it deemed removed: modules.perl6.org/update.log 17:07
ĀÆ\_(惄)_/ĀÆ don't see anything wrong with code. Perhaps it got upset that I pulled to repo while it was building, but I neither see why it'd affect it nor had any issues when I done so in the past. 17:14
Running a new build job right now. Gonna see if it fails or not
Zoffix &
timotimo: URL now works BTW: modules.perl6.org/dist/JSON::Fast:...6.json#L21
japhb: full testsuite ran this time and HTTP::UA passed all tests on HEAD: travis-ci.org/zoffixznet/perl6-WWW#L1597-L1627 17:23
japhb Zoffix: Will start a fresh from scratch rebuild now and see how it goes 17:29
Zoffix m: for ^4 .race(:batch) { sleep 1 }; say now - INIT now 17:30
camelia 4.00939985
Zoffix m: for $ = ^4 .race(:batch) { sleep 1 }; say now - INIT now
camelia 1.004317454
Zoffix Wonder if there's a real-life code that'd suffer from this; a for loop becoming hyper just 'cause it got a contend hyper seq 17:31
(or race*)
*conted
m: my $stuff = (1, 2, 3); for $stuff { .^name.say; sleep 1 }; say now - INIT now 17:33
camelia List
1.0020388
Zoffix 'cause here the semantics is just to use List as an item, but with Hyper/RaceSeq, semantics is call .map on them 17:34
s: ^4 .hyper, 'item', \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/cf16...ble.pm#L17
Zoffix ah, k, looks like just an omission with an easy fix 17:36
timotimo good catch 17:38
jnthn m: for $ = ^4 .race(:batch) { say .perl } 17:59
camelia RaceSeq.new(configuration => HyperConfiguration.new(batch => 1, degree => 4))
jnthn It's not doing a race at all
It's doing a single iteration with the item
So I think it's fine? 18:00
dinner, bbs
Zoffix jnthn: yeah, I misread the results 18:01
(in that case it goes through Any.map anyway and gets rehypered 18:02
)
timotimo so, should we have a Promise:U candidate for keep and break or methods like "already-kept" and "already-broken"? 18:05
IMO Promise:U candidates would be nicely consistent
Zoffix modules site build finished without issuesā€¦ no idea why it lost half the modules today :/ 18:08
perlpilot timotimo: what would Promise:U candidates for keep/break return? 18:10
timotimo a promise that has already been kept or broken
so you don't have to my $foo = Promise.new; $foo.keep(1); return $foo 18:11
|Tux| Done! Text::CSV in sync with Text::CSV_XS (and ilmari, they both throw an exception) 18:19
will re-release the perl5 version later
lizmat [Tux]++ 18:25
jnthn timotimo: I think Promise.kept(value) and Promise.broken(Str|Exception) would be nicest 18:33
I'd rather not have .keep and .break on an accidentally undefined Promise do something other than complain
AlexDaniel` hah, ā€œ??ā€ :) news.ycombinator.com/item?id=15507311 18:38
Zoffix The 6lang/slang thing kinda flopped 18:39
People got pissed, confused, or didn't like it
pissed as in angry, not as in drunk
AlexDaniel` the only angriness I saw was about pronouncing it as ā€œslangā€ 18:41
but I didn't really try to follow the reactions 18:42
well, and also about inverted 6 as in dlang :) 18:44
Zoffix AlexDaniel`: this to me read as quite pissed: irclog.perlgeek.de/perl6/2017-09-29#i_15233781 18:45
Double-loud, coming from a core dev :)
AlexDaniel`: yeah, the inverted 6 thing didn't help either :)
ugexe the PAS\nS thing is zef. it doesn't use .lines when tapping proc output, so buffer changes would expose this 18:54
AlexDaniel` Zoffix: the pissed part there comes because of us jumping back and forth like idiotsā€¦ that said, the ā€œconsensusā€ part has to be defined first for me to take it seriously 18:55
PR disaster is what we have now, I see no way to make it worse tbh
[Coke] ... hold my beer
AlexDaniel` by ā€œnowā€ I mean that there was no change after ā€œrakudoā€ or ā€œ6langā€ proposals in that sense 18:56
[Coke] 18:56 < AlexDaniel`> by ā€œnowā€ I mean that there was no change after ā€œrakudoā€ or
... weird. mis clicked twic to get that, oops
Zoffix sees no PR disasters 19:15
In fact, recently I see just wins. Unless it's observational bias. 19:17
Geth rakudo/nom: f980cdafe4 | (Elizabeth Mattijsen)++ | src/core/Promise.pm
Make creating a Promise a bit cheaper

  - is default is compile time, as opposed to BUILD init which is runtime
19:28
Zoffix In fact, started this day with seeing someone with 13100 followers tweet about Perl6: twitter.com/francesc/status/920359302728245249
ZofBot: the PR is in the eye of the beholder
ZofBot Zoffix, Enter from hunting Who is this?- my niece, that flies away so fast? Cousin, a word: where is your husband? If do dream, would all my wealth would wake me! If do wake, some planet strike me down, That may slumber an eternal sleep! Speak, gentle niece
AlexDaniel` ā€œ#Perlā€ ā€œ6ā€ 19:39
yeah right
Zoffix Wow. Way to find a negative in a very positive situation 19:40
.hug AlexDaniel`
huggable hugs AlexDaniel`
AlexDaniel` Zoffix: sorry :)
Geth nqp: tbrowder++ created pull request #375:
start new doc for built-ins; fix typo
19:58
tbrowder i just submitted an npq doc PR #305 which i will merge after travis shows a good build; however, appveyor already shows a failure which i do not know how to fix. can anyone help? 20:11
s/305/375/
s/npq/nqp/ (argh!! stupid computer) 20:12
moritz looks like a problem with the CI setup, not with your commits 20:14
lizmat decommute& 20:17
Geth nqp: c21a423ca2 | (Tom Browder)++ | 2 files
start new doc for built-ins; fix typo
20:20
nqp: 5bbb229aa4 | (Tom Browder)++ | docs/built-ins.md
fix format
nqp: e79c4f9833 | (Tom Browder)++ (committed using GitHub Web editor) | 2 files
Merge pull request #375 from tbrowder/built-ins

start new doc for built-ins; fix typo
timotimo jnthn: a very sensible objection 20:26
huh. we .break() a promise by breaking its vow with just False, eh? 20:29
Geth rakudo/promise_constructors_kept_broken: 270e7c8a72 | (Timo Paulssen)++ | src/core/Promise.pm
Promise.kept and .broken constructors for kept/broken promises

can be super useful to have short-hand for sometimes.
20:35
timotimo ^- later on this could be rewritten to immediately call bless or something, and even skip the condvar/lock entirely 20:36
jnthn False? Hmm 20:38
timotimo it doesn't look like it's tested in roast, though
jnthn m: my $p = Promise.new; $p.break(False); await $p
camelia An operation first awaited:
in block <unit> at <tmp> line 1

Died with the exception:
False
in block <unit> at <tmp> line 1
jnthn I think that's weird, probably "Died" would be better 20:39
m: die
camelia Died
in block <unit> at <tmp> line 1
timotimo yeah
jnthn So it matches that
Or some such
timotimo i'll implement that and also add tests for everything
jnthn Oh
We should add a Str candidate too
So you can Promise.broken("eggs")
Otherwise, looks fine enough; we can optimize it later :) 20:40
timotimo you mean if you pass a string it'll have Broken status but won't die?
despite the argument being called "exception" it can just as well be a Str
perl6 -e 'my Promise $foo .= broken("eggs"); say await $foo' - gives [...] Died with the exception: eggs 20:41
it's the rv!break that actually wraps it in an X::AdHoc if it's not an Exception yet 20:42
jnthn Oh, duh, I somehow read a type constraint where there is none :) 20:45
OK, then the patch is fine
timotimo++
timotimo yay 20:46
Geth rakudo/nom: 270e7c8a72 | (Timo Paulssen)++ | src/core/Promise.pm
Promise.kept and .broken constructors for kept/broken promises

can be super useful to have short-hand for sometimes.
21:00
rakudo/nom: ee3f0f4fb8 | (Timo Paulssen)++ | src/core/Promise.pm
"Died" shall be default for breaking promises

to mirror what die without arguments does.
roast: 6eb5a91c98 | (Timo Paulssen)++ | S17-promise/basic.t
test default values for Promise.keep and .break

  (they are True and "Died" respectively)
21:01
roast: 878d5d1ca6 | (Timo Paulssen)++ | S17-promise/basic.t
test Promise.kept and Promise.broken constructors
Zoffix Some in-buffer tests might need extra love on Windows. Unsure how the new-line translation will mess with buffered .get tests yet. 21:20
What chars other than \n guarantee no more combiners will be further up? 21:50
timotimo all ascii control characters 21:51
except for \r
Zoffix m: "\0".uninprop.say 21:52
camelia No such method 'uninprop' for invocant of type 'Str'. Did you mean any of these?
uniprop
uniprops

in block <unit> at <tmp> line 1
Zoffix m: "\0".uniprop.say
camelia Cc
timotimo .o( muninprop )
Zoffix hm, t/02-rakudo/repl.t hangs for me 22:01
m: "it is <my others'>.pick() changes".say
camelia it is <my others'>.pick() changes
Zoffix m: "it is @(<my others'>).pick() changes".say 22:02
camelia it is my changes
Zoffix :(
timotimo ;(
Zoffix definitely me :) Have a gazillion spectest failures :) 22:20
hm.. "Out of range: attempted to read 0 bytes from filehandle" 22:21
ah
Geth nqp: f4f1a78881 | (Tom Browder)++ (committed using GitHub Web editor) | docs/built-ins.md
completely spell arg
22:59
Zoffix finally fixed the issue :) 23:18
That was a tasty 1h bowl of spaghetti :)
(io_operators creates handles by binding all the attributes, so had to stick new attrs there too) 23:19
oh, ha, #Diwali is trending :) 23:20
Geth rakudo/nom: 5cd7c72878 | (Zoffix Znet)++ | src/core/io_operators.pm
Remove trailing whitespace
23:36
rakudo/nom: 1e5d6f0d4e | (Zoffix Znet)++ | 2 files
Implement knob to weak IO::Handle input buffer
roast: 167e3eff25 | (Zoffix Znet)++ | S32-io/in-buffering.t
Test IO::Handle in-buffer

Rakudo impl: github.com/rakudo/rakudo/commit/1e5d6f0d4e
23:38
rakudo/nom: dd50d0f02e | (Zoffix Znet)++ | t/spectest.data
Add buffering test files to list of files to run
23:40
nqp: 5bc5ead3f5 | (Tom Browder)++ (committed using GitHub Web editor) | src/core/Regex.nqp
make descrip arg name correct
23:49