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 |