TimToady | .tell lizmat It makes very little sense to me to do >>+<< lazily, since hypers are eager (unlike Z), and the common case will be that the lengths will match, because why try otherwise? And surely eager can be more efficient... | 00:06 | |
yoleaux2 | TimToady: I'll pass your message to lizmat. | ||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Put the new Zop handling live for 13x improvement | 00:44 | |
travis-ci.org/rakudo/rakudo/builds/190745233 github.com/rakudo/rakudo/compare/8...6d4b3a581b | |||
samcv | nice | 00:45 | |
gfldex | jnthn: running bigpage went from 44s to 28s. Whatever you did, do more of the same. :) | 00:50 | |
timotimo | *nice* | 01:00 | |
samcv | \o/ awesome | 01:03 | |
timotimo | gfldex: did you also measure what happened when samcv put in the new highlighter | ||
gfldex | bigpage doesnt use that | ||
timotimo | oh, OK | 01:04 | |
does it do no highlighting or does it use Inline::Python? | |||
samcv | it just does no highlighting | ||
there's no Inline::Python anymore | |||
timotimo | mhm | 01:05 | |
samcv | seems i missed a bunch of atom-language-perl6 tickets. gonna fix then now | 01:27 | |
i think i'm going to add a .editorconfig to nqp and rakudo | 01:45 | ||
it's a file editor agnostic way of specifying things like indentation and line endings | |||
editorconfig.org/ | |||
the atom plugin is actually super nice. it will even warn you when another plugin is interfering with applying the correct settings | 01:46 | ||
MasterDukeLaptop | .ask jnthn do you mind taking a look at github.com/perl6/nqp/pull/340? many thanks | 03:43 | |
yoleaux2 | MasterDukeLaptop: I'll pass your message to jnthn. | ||
MasterDukeLaptop | .ask timotimo do you mind taking a look at github.com/perl6/nqp/pull/340? many thanks | ||
yoleaux2 | MasterDukeLaptop: I'll pass your message to timotimo. | ||
timotimo | it worries me that there's no invalidation for that cache anywhere | 03:45 | |
yoleaux2 | 03:43Z <MasterDukeLaptop> timotimo: do you mind taking a look at github.com/perl6/nqp/pull/340? many thanks | ||
MasterDukeLaptop | what would cause it to need invalidation? | 03:52 | |
timotimo: ^^^ | 04:00 | ||
timotimo | i'm not sure | 04:09 | |
i don't really know what the exact lifetime of the NFA object is, i'm not sure if it should survive serialization into Grammar.moarvm, for example | |||
have you tried if it's possible to use nqp::findmethod instead of find_method? | 04:10 | ||
MasterDukeLaptop | ah, you mentioned that before, but no, i haven't yet | 04:16 | |
is it pretty similar? | |||
the expensive call is: $meth := $cursor.HOW.find_method($cursor, $name, :no_trace(1)); | 04:20 | ||
nqp::findmethod takes an $obj and a $method | 04:21 | ||
i guess i'll try $cursor and $name as the $obj and $method | |||
timotimo | yeah | 04:34 | |
MasterDukeLaptop | so that passes `make m-test` and is ~6s faster than my add_method_cache branch | 04:40 | |
seeing what a rakudo spectest looks like now | |||
hmm, but i did just build a moar with all jnthn++ | 04:41 | ||
's changes... | |||
before i just had the work_lifetime branch checked out | 04:42 | ||
so not sure those times are directly comparable | 04:43 | ||
and of course would the cache+change to nqp op be even better... | 04:44 | ||
timotimo | ? | 04:52 | |
MasterDukeLaptop | looks like it passes a spectest | 04:54 | |
yep | |||
timotimo | honestly, i'd prefer only the nqp op, rather than adding a custom cache here. but that's just because i don't know enough about everything going on there | 04:55 | |
MasterDukeLaptop | well, i think i'd agree that my cache implementation is not the best possible solution | 04:56 | |
timotimo | can you do an apples-to-apples measurement for just changing to use the nqp op? | 04:57 | |
MasterDukeLaptop | but it seems like something is non-optimal (given that my cache does make things better) and i'm not sure what the best possible solution s | 04:58 | |
*is | |||
yeah, doing that now | |||
on the laptop on battery, so stuff is a good bit slower though... | |||
timotimo | oh damn | 04:59 | |
can you try to do it on whateverable's server? power management can really screw up timings | |||
MasterDukeLaptop | this is nearly finished, but i'll see about switching. but >10s swings seems like it would be outside the noise of power management (given that everything else is equal) | 05:01 | |
timotimo | if you have a sufficient N, then yeah, sure. | 05:02 | |
MasterDukeLaptop | just re-ran on my branch, now trying branch+plus nqp op | 05:09 | |
these numbers are obviously not perfect, but it looks like 59.6s for stock NQP, 44.5s for my branch, 40.3s for stock NQP+change to nqp:: op, and 42s for stock NQP+change to nqp:: op | 05:22 | ||
i | 05:25 | ||
'm off to bed now, but i'll try getting numbers while on AC | 05:26 | ||
timotimo | i *think* you typod something there? | 05:27 | |
the 40s and 42s numbers seem to be for the same thing? | 05:28 | ||
MasterDukeLaptop | timotimo++ right, 42s was my branch+nqp op | 05:30 | |
and now truly off to bed | |||
timotimo | wait so | ||
your branch made it a tiny bit slowre | |||
Geth | ast: d3b084f2db | usev6++ | 2 files Fudge tests for JVM |
06:14 | |
[Tux] | This is Rakudo version 2016.12-272-g9a11eacdb built on MoarVM version 2016.12-100-gf9e14e9c | 06:54 | |
csv-ip5xs 3.188 | |||
test 13.323 | |||
test-t 5.296 | |||
csv-parser 14.764 | |||
samcv | hi [Tux] o/ | 06:56 | |
u: null | 07:12 | ||
unicodable6 | samcv, U+0000 NULL [Cc] (control character) | ||
samcv, U+2400 SYMBOL FOR NULL [So] (␀) | |||
samcv, U+1D159 MUSICAL SYMBOL NULL NOTEHEAD [So] (𝅙) | |||
arnsholt | [Tux]: Do I remember correctly when I think I've seen a CSV file of historical timings for your benchmark? | 08:22 | |
[Tux] | yes | 08:24 | |
arnsholt | What's the address? | 08:25 | |
[Tux] | tux.nl/Talks/CSV6/speed4.html - the link is "Timing log" | 08:29 | |
lizmat | Files=1164, Tests=56526, 199 wallclock secs (11.84 usr 4.76 sys + 1204.93 cusr 118.17 csys = 1339.70 CPU) | 08:31 | |
yoleaux2 | 00:06Z <TimToady> lizmat: It makes very little sense to me to do >>+<< lazily, since hypers are eager (unlike Z), and the common case will be that the lengths will match, because why try otherwise? And surely eager can be more efficient... | ||
arnsholt | [Tux]: No similar log for the other timings (like csv-ip5xs)? | 08:33 | |
lizmat | .tell TimToady one would expect this to be lazy, no? .say for "fileA".IO.lines >>~<< "fileB".IO.lines | 08:38 | |
yoleaux2 | lizmat: I'll pass your message to TimToady. | ||
lizmat | .tell TimToady or something like: ("fileA".IO.lines >>~<< "fileB".IO.lines).head(5) ??? | 08:40 | |
yoleaux2 | lizmat: I'll pass your message to TimToady. | ||
[Tux] | arnsholt, nope, but you can scan the IRC log | ||
diakopter | [Tux]: since the changes have been so dramatic over time, can you make a logarithmic graph edition of those? | 08:41 | |
[Tux] | don't the zoom'd versions not satisfy that quest? | 08:42 | |
diakopter | a bit, yes | ||
arnsholt | [Tux]: I could, but that's more work than I have time for right now (should probably be doing $work stuff instead =) | 08:43 | |
[Tux] | www.xs4all.nl/~hmbrand/csv-ip5xs.log | 08:45 | |
arnsholt | Oh, cheers! | 08:49 | |
lizmat | www.reddit.com/r/perl6/comments/5n...up_regular # Where can I start looking to speed up regular expressions in Rakudo/NQP/MoarVM? | 08:51 | |
any takers ? | |||
Geth | p: 0c249e7236 | (Samantha McVey)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java Fix RT #117683 on JVM \c[LINE FEED] \c[CARRIAGE RETURN] Also fixes \c[NEXT LINE] as well. |
||
kudo/nom: 5ba982a27e | (Samantha McVey)++ | tools/build/NQP_REVISION Bump NQP to pull in fix for RT #117683 github.com/perl6/nqp/commit/0c249e7236 |
08:55 | ||
samcv | anybody know what file in nqp to add nqp::getstrfromname in | 08:58 | |
moarvm will have its own op, but other backends need a sub. so putting it in the jvm and js sections would not be correct | 08:59 | ||
arnsholt | samcv: Wait, on MoarVM there will be an nqp::op but on the other backends it'll be a subroutine? Isn't that a bit odd? | 09:08 | |
samcv | well i mean unless you know some way to make it so that i don't have to add it to the jvm and js sections both | 09:10 | |
unless that would be preferred. it's not a very long function | |||
so I could def do that | |||
arnsholt | I think if there'll be an op on one backend, it should be an op in all backends | 09:18 | |
Unless it's something VM-specific, like JVM interop of course | |||
samcv | yeah it's not | ||
ok | 09:19 | ||
arnsholt | But yeah, you can probably just not implement it as well =) | ||
samcv | not sure how to program an op | ||
arnsholt | It's pretty easy on JVM at least (which is where I've done it) | ||
samcv | gist.github.com/f385f19111df9ad282...6d3610fc6f | 09:20 | |
well this is what it is | |||
i don't know how to add an op though… | |||
arnsholt | It's pretty easy! | ||
The implementation itself is just Java code | |||
Then you add a mapping between nqp::op name and Java method backing that op (somewhere, can't remember off-hand, but I'll find it) | 09:21 | ||
The trickiest bit is figuring out where in the 7000 lines of Ops.java to put the code, TBH =) | 09:22 | ||
samcv | hm i don't know java though :( | ||
arnsholt | Oh, right! | ||
In that case, I can just give you the implementation | 09:23 | ||
samcv | ok :D | ||
arnsholt | If you know Perl 6, Java is a breeze =) | ||
samcv | though tbh eventually let's say we have 10 backends. what are we going to do | 09:24 | |
not add an op for all 9 other backends that don't have moar's feature. i would think then having it as a sub for the other ones would be fine | |||
Geth | kudo/nom: 0f149dea15 | (Elizabeth Mattijsen)++ | 3 files Abstract iterator selection logic into R:I.ZipIterablesOpIterator DRY, right? |
09:25 | |
arnsholt | samcv: I've added a comment to your gist | 09:36 | |
samcv | cool, thanks | 09:37 | |
arnsholt | HTH | 09:38 | |
I try to take advantage of small things like this to ease more people into doing more things with the internals stuff | 09:39 | ||
(Like any good dealer }:) | |||
samcv | heh | ||
arnsholt | timotimo: IIRC you've done a bit of work on the NFA stuff. Could you sanity-check my comment on the Reddit post lizmat linked? | 09:40 | |
samcv | nqp-jvm: say 'test' | 09:41 | |
camelia | nqp-jvm: OUTPUT«Error occurred during initialization of VMCould not allocate metaspace: 1073741824 bytes» | ||
samcv | not sure why this ishappening. sadly it doesn't tell me the revision it's using >:( | ||
travis-ci | Rakudo build failed. Samantha McVey 'Bump NQP to pull in fix for RT #117683 | 09:44 | |
travis-ci.org/rakudo/rakudo/builds/190884857 github.com/rakudo/rakudo/compare/9...a982a27e01 | |||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | ||
jnthn | gfldex: (bigpage) Wow, that's a nice result. :) | 10:05 | |
yoleaux2 | 03:43Z <MasterDukeLaptop> jnthn: do you mind taking a look at github.com/perl6/nqp/pull/340? many thanks | ||
samcv | hi jnthn morning | ||
jnthn | morning o/ | ||
DrForr | Local mornin'. | 10:07 | |
jnthn | lizmat: I've always had hypers as eager, fwiw | 10:08 | |
lizmat: And Z as being the lazy thing | 10:09 | ||
Since hypers visit structure and parallelize... | |||
...and reproduce the structure that came in. | |||
lizmat | jnthn: so you're saying, don't ("fileA".IO.lines >>~<< "fileB".IO.lines).head(5) | 10:10 | |
but do ("fileA".IO.lines Z~"fileB".IO.lines).head(5) if you want lazy | |||
jnthn | Right | ||
That's why we have the both :) | |||
lizmat | well, TIMTOWTDI :-) | 10:11 | |
jnthn | So you can opt in to parallel vs. lazy processing. | ||
lizmat | ok | ||
jnthn | It's just like how .hyper and .race are forms of eager that happen to also paralelize | ||
*ll | |||
lizmat | ack | 10:12 | |
jnthn | m: PROCESS::<&chdir>('src') | 10:14 | |
camelia | rakudo-moar 0f149d: OUTPUT«Failed to change the working directory to 'src': chdir failed: Unknown system error 2 in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1 in block <unit> at <tmp> line 1» | ||
jnthn | m: PROCESS::<&chdir>('..') | ||
camelia | rakudo-moar 0f149d: OUTPUT«Failed to change the working directory to '..': Cannot modify an immutable IO::Path in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1 in block <unit> at <tmp> line 1» | ||
jnthn | Any idea why that explodes with "Cannot modify an immutable IO::Path"? | 10:15 | |
jnthn ran into this in $dayjob code yesterday | |||
Temporarily hacked it to nqp::chdir | |||
chdir won't work as I really need to OS-level chdir which is what PROCESS::chdir is meant to do. | |||
(Because a NativeCall library I'm calling relies on it...though I filed an issue about making it not need this too) | 10:16 | ||
travis-ci | Rakudo build failed. Elizabeth Mattijsen 'Abstract iterator selection logic into R:I.ZipIterablesOpIterator | 10:21 | |
travis-ci.org/rakudo/rakudo/builds/190891716 github.com/rakudo/rakudo/compare/5...149dea15e9 | |||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | ||
gfldex | jnthn: it's not surprising tho. Bigpage is basicly one multi that is happily calling itself while moving strings around. | 10:59 | |
jnthn | Does it do a lot of closures, ooc? | 11:01 | |
gfldex | let me check | ||
jnthn | It's a pretty dramatic win... | ||
Does it do I/O also? | |||
gfldex | it does IO and that part is still not thread save (*hint* *hint*) | 11:04 | |
github.com/perl6/perl6-pod-to-bigp...e.pm6#L214 | |||
the business end is about 200 lines long if you want to take a look | |||
jnthn | Ohh...does it delegate to the Perl 6 parser for Pod parsing? I guess yes | 11:05 | |
gfldex | it does | 11:06 | |
and that part is cached | |||
it's loading precomp modules (kind of) | |||
jnthn | Hm, OK :) | ||
gfldex | with a cold cache it takes 2m45s to run | ||
jnthn | .tell MasterDukeLaptop left a comment; hope that helps :) | 11:19 | |
yoleaux2 | jnthn: I'll pass your message to MasterDukeLaptop. | ||
brokenchdir | m: $*CWD = 'x' | 11:48 | |
camelia | rakudo-moar 0f149d: OUTPUT«Cannot modify an immutable IO::Path in block <unit> at <tmp> line 1» | ||
brokenchdir | a wild guess is somewhere we do $*CWD := IO::Path.new..... | ||
hm, don't see a place | 11:51 | ||
m: use nqp; dd nqp::iscont($*CWD) | |||
camelia | rakudo-moar 0f149d: OUTPUT«0» | ||
lizmat | m: my $*CWD = 'x' | 11:52 | |
camelia | ( no output ) | ||
brokenchdir | lizmat: so it's supposed to be immutable? | 11:55 | |
lizmat | *CWD is supposed to be only changed with chdir() | ||
hence its immutabllity | |||
brokenchdir | I guess mistery solved then :) | 11:56 | |
'cause PROCESS::<&chdir> doesn't follow that rule: github.com/rakudo/rakudo/blob/0f14...rs.pm#L148 | |||
jnthn: ^ | |||
arnsholt | [Tux]: imgur.com/a/vwa4i # Development of csv-ip5xs relative to test-t | 13:07 | |
Looks like something happened in/to Inline::Perl5 about a year ago, but it's starting to creep back to 1 again | 13:08 | ||
mst | arnsholt: "creep back to 1" ? | 13:13 | |
ilmari | mst: look at the graph | 13:15 | |
itw as about 0.8, then jumped up to 2.2, but is creeping back down | |||
mst | ah | 13:17 | |
arnsholt | The numbers compared being running Text::CSV::XS (IIRC) via Inline::Perl5 and [Tux]'s pure Perl 6 Text::CSV | 13:18 | |
|Tux| | perl5 Text::CSV_XS + Inline::Perl5 | 13:19 | |
arnsholt | Right, right. Almost got it =) | 13:23 | |
jnthn | lizmat, brokenchicken: I'm still confused though. It seems that both PROCESS::<&chdir> and chdir are assigning to $*CWD | 13:56 | |
But one of them explodes doing so and the other doesn't | 13:57 | ||
lizmat | jnthn: am doing some $otherwork atm, will look tonight | ||
brokenchicken doesn't know why... | |||
jnthn | Sure, no hurry | ||
Geth | kudo/nom: 563d117694 | (Zoffix Znet)++ | src/core/io_operators.pm Remove chdir canary No longer needed: irclog.perlgeek.de/perl6-dev/2016-...i_13810892 |
14:22 | |
jnthn | ooh, my need to use chdir at all has probably just gone away: github.com/frithnanth/perl6-Archiv...e/issues/4 :) | 14:34 | |
But still, guess it's nice to fix PROCESS::chdir still :) | |||
MasterDukeLaptop | jnthn: i just tried using nqp::findmethod() only if not traced, rakudo built fine, but `make install` died with `Cannot find method 'traced' on object of type Perl6::Metamodel::GrammarHOW` | 14:48 | |
yoleaux2 | 11:19Z <jnthn> MasterDukeLaptop: left a comment; hope that helps :) | ||
MasterDukeLaptop | `in block <unit> at tools/build/install-core-dist.pl line 27` | 14:49 | |
jnthn | Perhaps need an nqp::can($cursor.HOW, 'traced') also | 14:50 | |
MasterDukeLaptop | yep, gonna add that now | 14:51 | |
i assume if it can't 'traced' i can use the nqp op? | 14:53 | ||
jnthn | aye | 14:59 | |
MasterDukeLaptop | ah, that works and provides about the same speedup | 15:03 | |
i'll submit a new PR once it passes a spectest | 15:07 | ||
jnthn | \o/ | 15:10 | |
timotimo | arnsholt: your answer was good, i put some extra stuff in about the optimizer | 15:20 | |
MasterDukeLaptop | spectest passed | ||
arnsholt | timotimo: Cheers! | 15:21 | |
travis-ci | Rakudo build passed. Zoffix Znet 'Remove chdir canary | 15:23 | |
travis-ci.org/rakudo/rakudo/builds/190968362 github.com/rakudo/rakudo/compare/0...3d117694dd | |||
Geth | p: MasterDuke17++ created pull request #341: Use nqp::findmethod instead of *.HOW.find_method |
15:30 | |
MasterDukeLaptop | Geth++, was just about to paste the link here myself | 15:37 | |
jnthn | spectest6 update: fixed the known issue in MoarVM that could affect it. So there's now one way less for it to break. Unfortunately, the way it usually does is still present. I'm looking into it, but it's slow going to reproduce it. | 16:38 | |
brokenchicken | \o/ | 16:47 | |
jnthn | Darm, I think it's about to hit my first run without triggering the bug, when I'm looking for the bug :P | 16:49 | |
brokenchicken | :P | ||
timotimo | %) | ||
fantastic | 16:50 | ||
jnthn | Not really | ||
Since the bug is doubtless still there | |||
timotimo | yeah, it's the not-fun kind of fantastic | ||
Geth | p: de709396b6 | MasterDuke17++ | src/QRegex/NFA.nqp Use nqp::findmethod instead of *.HOW.find_method If the meta-object is not being traced we can use the much faster NQP op. This reduces the time needed to compile a script that just defines 50 custom operators from ~60s to ~40s. |
16:53 | |
p: ac431ced05 | (Jonathan Worthington)++ | src/QRegex/NFA.nqp Merge pull request #341 from MasterDuke17/use_nqp_findmethod_in_QRegex-NFA_when_possible Use nqp::findmethod instead of *.HOW.find_method |
|||
timotimo | cool | 16:54 | |
jnthn | Think I have a lead on the spectest6 issue | 18:02 | |
(The end-entries/made one) | |||
brokenchicken | \o/ | ||
samcv | u: bell | 18:19 | |
unicodable6 | samcv, U+0007 BELL [Cc] (control character) | ||
samcv, U+237E BELL SYMBOL [So] (⍾) | |||
samcv, gist.github.com/57e7834fb21df6cefe...d4d7e17dce | |||
Geth | ast: 1b84a47dbc | (Samantha McVey)++ | S02-literals/char-by-name.t Add test that \c[BELL] returns 🔔 not U+0007 RT #130542 rt.perl.org/Ticket/Display.html?id=130542 |
18:32 | |
samcv | brokenchicken, where is the code for Geth? | 18:33 | |
also what have you done to notviki | 18:34 | ||
[Coke] | I mean, brokenchicken is still not viki. | ||
brokenchicken | Geth: source | 18:35 | |
Geth | brokenchicken, Source at github.com/zoffixznet/geth To add repo, add an 'application/json' webhook on GitHub pointing it to geth.perl6.party/?chan=#perl6 | ||
brokenchicken | samcv: ^ | ||
samcv | what happened to the bold text? also you can use my IRC::TextColor module if you want for bolding/coloring things | 18:36 | |
brokenchicken | I am using it. | ||
The channel is +c is what happened. | 18:37 | ||
samcv | oh ok | ||
brokenchicken | Someone with op privs could -c it | ||
samcv | making that a public module was def a good idea | ||
brokenchicken | I didn't really like its interface TBH | 18:38 | |
samcv | how can it be improved? | ||
open to suggestions but I wasn't sure what its interface should be in the 1st place :\ | 18:39 | ||
brokenchicken | Basically the main issue is the text I'm outputting is already being made up from all sorts of bits and pieces and the last thing I want is length function names and args adding more noise. So the first thing I did is shortened the routine name with constant &Δ = &irc-style-text; and the second thing I'd do to shorten the footprint of the function call is use, say :bold instead of :style<bold> and :red, | 18:41 | |
instead of :color<red> and :bgred instead of :bgcolor<red> etc. | |||
*lengthy | |||
samcv | ah ok | 18:42 | |
brokenchicken | irc-style-text(:color<red>, :style<bold>, blah blah blah) vs ircstyle(:red, :bold, blah blah blah) | 18:43 | |
This is what it currently looks like: github.com/zoffixznet/geth/blob/ma...m6#L67-L81 | |||
samcv | brokenchicken, can i have arbitrary named arguments or do i need to put them all in the sig? | 18:45 | |
i will make an ircstyle sub which allows shortened versions | 18:46 | ||
brokenchicken | You could slurp them as *%args and then poke in that hash; die on conflicts (e.g. :red, :blue are passed at the same time) or unknown names (:rainbowcolour) and the rest is the same I think | 18:47 | |
samcv | thanks :) | 18:48 | |
Geth | kudo/nom: 3d86286842 | (Jonathan Worthington)++ | src/core/Mu.pm Tweak dispatch:<hyper> to avoid a bug, speed up. There's currently a code-gen bug in `"{$foo}"`, which affects multi- threaded programs. Unfortunately, the obvious fix for it regresses a spectest. In the meantime, we can avoid it in `>>.foo`. This is a positive change anyway: it's cheaper to simply interpolate a variable, and pulling the `Str` coercion up to the signature will avoid that being done multiple times if a non-string is interpolated as the method name. The `made` and `end-entries` methods are both called in TAP::Harness with the `>>.foo` syntax, which led to this discovery. |
18:55 | |
brokenchicken | m: my %styles = <bold italic>.antipairs; my %colours = <red green>.antipairs; sub ircs (*%args) { if %args.keys ∖ %styles.keys ∖ %colours.keys -> $wrong { die "Unknown argument $wrong passed"; }; my @color = keys %args.keys ∩ %colours.keys; dd @color; @color > 1 and die "Can't specify more than one colour; you gave @color[]"; my @styles = keys %args.keys ∩ %styles.keys; dd "Styling with @color[] | 18:56 | |
camelia | rakudo-moar 563d11: OUTPUT«===SORRY!=== Error while compiling <tmp>Unable to parse expression in double quotes; couldn't find final '"' at <tmp>:1------> %styles.keys; dd "Styling with @color[]⏏<EOL>» | ||
brokenchicken | and @styles[]"; }; ircs :bold :red; ircs :red :blue; | ||
:( | |||
m: my %styles = <bold italic>.antipairs; my %colours = <red green>.antipairs; sub ircs (*%args) {if %args.keys ∖ %styles.keys ∖ %colours.keys -> $wrong { die "bad: $wrong";}; my @color = keys %args.keys ∩ %colours.keys; dd @color; @color > 1 and die "too many color @color[]"; my @styles = keys %args.keys ∩ %styles.keys; dd "using @color[] and @styles[]";}; ircs :bold :red; | 18:58 | ||
camelia | rakudo-moar 563d11: OUTPUT«Array @color = ["red"]"using red and bold"» | ||
brokenchicken | m: my %styles = <bold italic>.antipairs; my %colours = <red green>.antipairs; sub ircs (*%args) {if %args.keys ∖ %styles.keys ∖ %colours.keys -> $wrong { die "bad: $wrong";}; my @color = keys %args.keys ∩ %colours.keys; dd @color; @color > 1 and die "too many color @color[]"; my @styles = keys %args.keys ∩ %styles.keys; dd "using @color[] and @styles[]";}; ircs :bold :blue; | ||
camelia | rakudo-moar 563d11: OUTPUT«bad: blue in sub ircs at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
brokenchicken | yey set ops | ||
lizmat | jnthn: will start a HARNESS_TYPE=6 make spectest right away | 19:00 | |
jnthn | lizmat: OK. I'm running with a MoarVM branch that wasn't merged yet also | 19:02 | |
Still seeing some flakiness | 19:03 | ||
But never seen the made/end-entries | |||
So seems we're past that one at least | |||
Time to go cook dal :) bbl | |||
timotimo | .o( man, what is his dal? ) | 19:47 | |
i have no idea why that there is a bug and why that commit fixes anything %) | 19:48 | ||
lizmat | en.wikipedia.org/wiki/Dal | ||
lizmat loves Dal | 19:49 | ||
timotimo | was just a bad pun | 19:50 | |
lizmat | ah, ok :-) | 19:54 | |
jnthn: 3 consecutive runs without problems :-) | 19:55 | ||
Geth | kudo/nom: ba8a2846c0 | (Elizabeth Mattijsen)++ | src/core/Mu.pm Also adapt two other cases of 3d86286842 Well, presumably, couldn't hurt :-) |
19:56 | |
p/master: 4 commits pushed by samcv++ | 20:09 | ||
b2gills | samcv: You removed the 「$<integer>」 from the !moar codepath | 20:12 | |
samcv | github.com/perl6/nqp/compare/d21b1...d3b25aR214 | 20:13 | |
looks like it's there to me | |||
spectest pass as well | 20:14 | ||
b2gills | lines 206 and 207 | ||
brokenchicken | samcv: this one: github.com/perl6/nqp/blob/master/s...s.nqp#L207 | 20:15 | |
looks like stuff's missing before "??" | 20:16 | ||
samcv | ah. ok | ||
[Coke] | m: say ( ?? 3 !! 4); | ||
camelia | rakudo-moar ba8a28: OUTPUT«===SORRY!=== Error while compiling <tmp>Expected a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use a space like ? ?)at <tmp>:1------> say ( ??⏏ 3 !! 4);» | ||
[Coke] | m: my $a := ?? 3 !! 4; | 20:17 | |
camelia | rakudo-moar ba8a28: OUTPUT«===SORRY!=== Error while compiling <tmp>Expected a term, but found either infix ?? or redundant prefix ? (to suppress this message, please use a space like ? ?)at <tmp>:1------> my $a := ??⏏ 3 !! 4;» | ||
[Coke] | nqp-j: my $a := ?? 3 !! 4; | ||
lizmat | make: *** [m-spectest6] Segmentation fault: 11 # jnthn :-( | ||
Geth | p: 7b6fff991e | (Samantha McVey)++ | src/HLL/Actions.nqp Add missing <integer> from section in Actcions.nqp for !moar Accidently removed in 31b2b51eae5b9a7ea8dc3c1043544714e0809fd8 |
20:19 | |
samcv | there we go. that also pasess nqp test if i reverse the !moar and moar sections | 20:20 | |
brokenchicken | \o/ | 20:21 | |
samcv | otherwise should be fine and i can bump NQP in rakudo? | ||
brokenchicken has no comments... this stuff's is not what I currently know about. | 20:23 | ||
lizmat | samcv: lemme see if a bump works out ok here :-) | 20:24 | |
samcv | kk. i know it does for rakudo.moar at least | ||
hopefully it is all "\c[woman gesturing OK]" | 20:28 | ||
:P | |||
lizmat | t/spec/S05-mass/properties-general.rakudo.moar # failed 1 test | 20:29 | |
samcv | yeah that happened before | ||
lizmat | (still running) | ||
samcv: test 602 | 20:30 | ||
samcv | from that file? | ||
yeah | |||
lizmat | yup "space chars" | 20:31 | |
#130483 | |||
RT #130483 | |||
samcv | ye | ||
i *knew* i opened an RT for it | |||
lizmat | hmmm... seems we lost synopsebot ? | ||
samcv | even though i couldn't find it searching rt for <:space> | 20:32 | |
does it not search the body text? | |||
lizmat | m: dd " " ~~ /<:space>+/ | 20:34 | |
camelia | rakudo-moar ba8a28: OUTPUT«Match.new(ast => Any, list => (), hash => Map.new(()), orig => " ", to => 8, from => 0)» | ||
lizmat | $ 6 'dd " " ~~ /<:space>+/' | ||
Nil | |||
samcv: that's a regression, I'm afraid | |||
Geth | ast: 9729f3849c | (Samantha McVey)++ | S05-mass/properties-general.t Todo failing test RT #130483 rt.perl.org/Ticket/Display.html?id=130483 \#130483: [UNI] Regex Unicode properties check values before checking property names |
||
samcv | no that failed before | ||
lizmat | it doesn't fail before bumping NQP ? | ||
samcv | before the most recent change | ||
you sure? well. it's sort of a regression | 20:35 | ||
but also sort of not | |||
read the RT rt.perl.org/Ticket/Display.html?id=130483 | |||
lizmat | camelia is not bumped yet | ||
m: say " " ~~ /<:space>+/ | 20:36 | ||
camelia | rakudo-moar ba8a28: OUTPUT«「 」» | ||
samcv | well then maybe it broke before the other time i changed the unicode database | ||
well. the bug is in nqp not moarvm | |||
lizmat | well, but that sorta implies we can't bump nqp :-( | ||
samcv | m: use nqp; say nqp::unipropcode('space') == nqp::unipropcode('White_Space') | ||
camelia | rakudo-moar ba8a28: OUTPUT«False» | ||
samcv | it's broken | ||
right now | |||
i mean <:space> doesn't work but that's not moarvm's fault | 20:37 | ||
and we've bumped it before with <:space> failing | |||
<ws> works fine. so does \s etc. | 20:38 | ||
but <:space> is matching the LF property | |||
use nqp; say nqp::unipropcode('space') == nqp::unipropcode('LF') | |||
m: use nqp; say nqp::unipropcode('space') == nqp::unipropcode('LF') | |||
camelia | rakudo-moar ba8a28: OUTPUT«True» | ||
lizmat | camelia is currently at HEAD | ||
samcv | yeah | ||
lizmat | and there it works | ||
samcv | well it also doesn't work | ||
lizmat | I bump NQP, and it doesn't work anymore | ||
b2gills | it works for the wrong reason | ||
samcv | because 'space' resolves to 'LF' | ||
lizmat | as a rakudo user, that's all I see | ||
samcv | so it should be broken then? | 20:39 | |
lizmat | b2gills: so the test is wrong ? | ||
samcv | see bisect from a while ago lizmat gist.github.com/Whateverable/50acf...9f144a106f | ||
it works because it's checking the LF property. and it checks property values before names | 20:40 | ||
Geth | kudo/nom: c99fbc6793 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION Bump NQP to get latest NQP/Moar improvements This makes one spectest fail, see: irclog.perlgeek.de/perl6-dev/2017-...i_13902378 |
20:41 | |
samcv | i mean if people want me to break it again before the next rakudo release i could do it. but that seems wrong to break moarvm on purpose | 20:42 | |
but it's basically checking if the 'space' property has the value 'space'. it doesn't. it's a bool property | |||
lizmat | ok, well, we've bumped and the test is fudged | 20:43 | |
samcv | here is the code github.com/perl6/nqp/blob/master/s....nqp#L1439 | 20:46 | |
that is causing the problem atm | |||
yay jnth just merged another PR. can make more roast tests after bumping nqp and moar again heh | 20:49 | ||
jnthn | lizmat: Hmm...interseting that it works reliably for you now | 20:51 | |
lizmat | well, apart from 1 segfault :-( | ||
samcv | m: say "\c[woman gesturing OK]" | ||
camelia | rakudo-moar c99fbc: OUTPUT«🙆♀️» | ||
samcv | \o/ | ||
really awesome | 20:52 | ||
timotimo | neat. (except my terminal shows only the woman symbol after an empty space) | ||
samcv | yeah mine too | ||
oh i don't have a space though | |||
well i don't see one. there's a ZWJ in there tho | |||
jnthn | lizmat: Oh, OK. | ||
lizmat: Then "me too" | |||
geekosaur | I got a block [0 1 F/6 4 6] | ||
(which is expected for this version of my client) | |||
lizmat | samcv: I see a woman with hands above her head, is that OK? | ||
samcv | yes | ||
jnthn | lizmat: Except I get the SEGV really often now | 20:53 | |
lizmat | then it works on OSX | ||
timotimo | really often? :o | ||
lizmat | eh,. macOS | ||
jnthn | Yeah, nearly every spectest6 run | ||
lizmat | hmmm... | ||
jnthn | It's happening in the same place | ||
I'm on a branch, will try off that | |||
But it happens when it runs into a corrupt Int when doing a full GC collection | |||
And I suspect spectest6 does full collections more often | 20:54 | ||
After matches perged earlier this week | |||
wtf | |||
patches merged | |||
timotimo | ah, because of those huge buffers | ||
jnthn | Yeah | ||
lizmat | spooner is everywhere | ||
jnthn | It also likely uses less memory :) | ||
samcv | m: say "\c[woman construction worker]" ~ "\c[PERSONAL COMPUTER]" | ||
camelia | rakudo-moar c99fbc: OUTPUT«👷♀️💻» | ||
samcv | jnthn, if we are segv it is best to do with as little memory as possible | 20:55 | |
jnthn | Indeed :) | ||
samcv | though one could argue after SEGV we use 0 memory | ||
jnthn | ;) | ||
Anyway, I don't think it's a regression, just an unhidden | |||
samcv | memory reduction cut across the board 100x! | ||
timotimo | that's what we get for employing a 100x programmer | 20:56 | |
jnthn | It's also always an Int that's corrupted | ||
Think I've used up my debugging energies for today, though. | 20:57 | ||
timotimo | were you able to figure out in what way it gets corrupted? pointer points off in a random direction? | 21:01 | |
jnthn | timotimo: Not really, just that it ends up in a state where it's interpreted as a bigint but the digits pointer is junk and so is the size etc. | ||
timotimo | ugh. okay! | 21:02 | |
Geth | p: 10fa80827a | (Samantha McVey)++ | tools/build/MOAR_REVISION Bump MoarVM Fix RT #117683 \c[LINE FEED] \c[CARRIAGE RETURN] Also fixes \c[NEXT LINE] and \c[FORM FEED] as well. MoarVM/MoarVM@ef734fc8d7abaf687c5108f06c181f1bd6333634 |
||
timotimo | so, build moar/master, try "make spectest6", wait for segfault? | ||
jnthn | Yeah | ||
Well, do it in gdb | |||
But don't use perl6-gdb-m otherwise you end up running all the spectests with that | 21:03 | ||
And then things get crazy confused :) | |||
And then get bt | |||
timotimo | maybe i can get it to spit out a core file for me | ||
jnthn | If the bt points to gc_cleanup of P6bigint or similar then it matches | ||
Geth | p/master: 9 commits pushed by pmurias++
|
21:05 | |
kudo/nom: 644cd342d7 | (Samantha McVey)++ | tools/build/NQP_REVISION Bump MoarVM Fix RT #117683 \c[LINE FEED] \c[CARRIAGE RETURN] Also fixes \c[NEXT LINE] and \c[FORM FEED] as well. MoarVM/MoarVM@ef734fc8d7abaf687c5108f06c181f1bd6333634 |
|||
samcv | mst, do you have ops in #perl6-dev? | 21:06 | |
i forget who does | |||
mst | samcv: what do you need? | ||
samcv | remove -c | 21:07 | |
so Geth can use bold | |||
brokenchicken | +1 | ||
timotimo | mst has all the ops everywhere | ||
(+1 on -c) | |||
samcv | also how do i get a fancy perl6 hostmask ;) | 21:12 | |
always good to get exciting things to tweet about twitter.com/samcv6/status/819290726919872512 | |||
moritz always happy for Perl 6 news to retweet as @perl6org :-) | 21:13 | ||
brokenchicken | yey | 21:16 | |
Geth | ast/6.c-errata: 3eb86fd12c | (Samantha McVey)++ | 2 files Replace Unicode 1 names with Alias Names in \c[…] As per discussion with @TimToady irclog.perlgeek.de/perl6-dev/2017-...i_13888858 |
21:17 | |
timotimo | hooray | ||
moritz | what a bold move! | ||
samcv | we all know THIS IS HOW TO TYPE IN BOLD | 21:18 | |
moritz | equal rights for bots and humans! | ||
samcv | heh | ||
moritz nearly wrote "butts" instead of "bots" above | |||
timotimo | :P | ||
mst | it's ok, if it actually annoys me I'll turn filtering on on my clients | 21:19 | |
timotimo | it took me a moment to notice that i actually did get kicked, that it wasn't just a fancy /me or something | ||
'til now i had no idea how my client would display getting kicked | 21:20 | ||
because i'm so nice | |||
samcv | looks like ignoremark doesn't work for emoji | 21:22 | |
m: say "\c[PREGNANT WOMAN, ZERO WIDTH JOINER, MALE SIGN]" | 21:23 | ||
camelia | rakudo-moar 644cd3: OUTPUT«🤰♂» | ||
samcv | heh | ||
tho pretty sure that makes sense not to have gendered emoji | 21:24 | ||
moritz | samcv: you've opened a can of ... smilies there :-) | ||
Geth | ast: 23c7461aa5 | (Samantha McVey)++ | 2 files Replace Unicode 1 names with Alias Names in \c[…] As per discussion with @TimToady irclog.perlgeek.de/perl6-dev/2017-...i_13888858 Remove fudged test for rakudo since it has been fixed on JVM and MoarVM |
21:35 | |
ast: 6902a3e69a | (Samantha McVey)++ | S02-literals/char-by-name.t Fix test plan for S02-literals/char-by-name.t |
21:36 | ||
ast: 0993df4a30 | (Samantha McVey)++ | S02-literals/char-by-name.t Add test for \c and Emoji Sequences skip the test for JVM though. |
21:41 | ||
kudo/nom: 8f3476d5d4 | (Elizabeth Mattijsen)++ | src/core/List.pm Streamline List.from-iterator about 10% Mainly possible because it doesn't need to call reification-target, because Array has its own .from-iterator. |
21:45 | ||
lizmat | and with that I wish #perl6-dev a good night | 21:46 | |
samcv | night o/ | ||
brokenchicken | night | 22:03 | |
m: use Test; is ' ' ~~ /<:space>+/, ' ', 'space chars'; | 22:17 | ||
camelia | rakudo-moar 8f3476: OUTPUT«not ok 1 - space chars# Failed test 'space chars'# at <tmp> line 1# expected: ' '# got: (Nil)» | ||
brokenchicken | star: use Test; is ' ' ~~ /<:space>+/, ' ', 'space chars'; | ||
camelia | star-m 2016.10: OUTPUT«not ok 1 - space chars# Failed test 'space chars'# at <tmp> line 1# expected: " "# got: Match.new(ast => Any, list => (), hash => Map.new(()), orig => " ", to => 16, from => 0)» | ||
brokenchicken | .oO( how was it ever passing... ) |
||
star: use Test; is ' ' ~~ /<:space>+/, ' ', 'space chars'; | 22:18 | ||
camelia | star-m 2016.10: OUTPUT«not ok 1 - space chars# Failed test 'space chars'# at <tmp> line 1# expected: " "# got: Match.new(ast => Any, list => (), hash => Map.new(()), orig => " ", to => 8, from => 0)» | ||
brokenchicken | poorly-written test. should've used proper "\t" or whatever the actual whitespace up in there is :( | 22:19 | |
star: use Test; is "\t \t" ~~ /<:space>+/, ' ', 'space chars'; | 22:20 | ||
camelia | star-m 2016.10: OUTPUT«ok 1 - space chars» | ||
brokenchicken | m: use Test; is "\t \t" ~~ /<:space>+/, ' ', 'space chars'; | ||
camelia | rakudo-moar 8f3476: OUTPUT«not ok 1 - space chars# Failed test 'space chars'# at <tmp> line 1# expected: ' '# got: (Nil)» | ||
brokenchicken | there we go. | ||
NeuralAnomaly: status | |||
NeuralAnomaly | brokenchicken, [✘] Next release will be in 1 week and 2 days. Since last release, there are 81 new still-open tickets (1 unreviewed and 0 blockers) and 258 unreviewed commits. See perl6.fail/release/stats for details | ||
brokenchicken | So we're fudging that test in 6.c-errata, right? | 22:21 | |
Geth | ast: 4808c1f90f | (Zoffix Znet)++ | S05-mass/properties-general.t Make test more clear No functional change. Simple change tabs in string to "\t" chars to make it more obvious what's in that string. |
22:23 | |
brokenchicken is off for the night | |||
.ask samcv would you mind fudging the /<:space>+/ test in S05-mass/properties-general.t in 6.c-errata? I vaguely recall you explaining it was passing earlier for the wrong reason; I figure you'd be able to write a better commit message than me. | 22:40 | ||
yoleaux2 | brokenchicken: I'll pass your message to samcv. | ||
samcv | brokenchicken, is the commit message from github.com/perl6/roast/commit/9729f3849 fine | 22:47 | |
yoleaux2 | 22:40Z <brokenchicken> samcv: would you mind fudging the /<:space>+/ test in S05-mass/properties-general.t in 6.c-errata? I vaguely recall you explaining it was passing earlier for the wrong reason; I figure you'd be able to write a better commit message than me. | ||
Geth | ast/6.c-errata: b6ffcf6347 | (Zoffix Znet)++ | S05-mass/properties-general.t Fudge test that was passing for the wrong reason. See RT#130483 rt.perl.org/Ticket/Display.html?id=130483 for full explanation (Also: make it more clear what it's supposed to be testing by changing literal tabs to "\t") |
22:51 | |
brokenchicken | samcv++ thanks |