samcv | moritz, is it ok to combine the deliverable section with the Description section? gist.github.com/samcv/ca70c21c7306...220c986b47 | 01:32 | |
for the grant | |||
i think i'm going to change the research section to make it more clean that at minimum that documenting our support is a goal related to all the other deliverables, not as in, oh i'm going to spend time on purpose on research? idk | 01:35 | ||
the research is in the process of doing other deliverables | |||
Geth | kudo: MasterDuke17++ created pull request #992: Make groups in <before> and <after> non-capturing |
04:28 | |
kudo/nom: e7c1d515ab | (Samantha McVey)++ | src/Perl6/Actions.nqp On MoarVM deprecate four Unicode 1 names with "\c[…]" This is in preparation for changes to MoarVM in which case only canonical Alias Names will work for \c. For now we will deprecate and allow them to still work, but warn the user and recommend alternatives which are canonical Alias Names. |
04:31 | ||
moritz | samcv: yes, I think you can take some freedom with the structuring | 07:03 | |
samcv | cool | ||
lizmat | Files=1164, Tests=56527, 197 wallclock secs (11.65 usr 4.55 sys + 1187.82 cusr 118.70 csys = 1322.72 CPU) | 10:03 | |
samcv: re deprecation, Rakudo has a deprecation mechanism that is accessible in nqp with $*W.DEPRECATED() | 10:05 | ||
samcv | so what does one do to deprecate a feature? | ||
using said thing | |||
lizmat | github.com/rakudo/rakudo/blob/nom/....nqp#L1041 | 10:06 | |
it's been a while since I've used it myself | |||
the actual deprecation handler lives in src/core/Deprecations.pm | 10:07 | ||
samcv | m: $*W.DEPRECATED().say | ||
camelia | rakudo-moar e7c1d5: OUTPUT«Dynamic variable $*W not found in block <unit> at <tmp> line 1Actually thrown at: in any at gen/moar/Metamodel.nqp line 3072 in block <unit> at <tmp> line 1» | ||
lizmat | github.com/rakudo/rakudo/blob/nom/...ions.pm#L4 # some docs | ||
samcv | how do i use it though | 10:08 | |
i did see some of that code but I had no clue how to use it | |||
lizmat | yeah, all example uses of it have been removed before 6.c :-) | ||
samcv | hah | 10:09 | |
using this interface will pretty strongly warn somebody right | |||
lizmat | m: sub a() { DEPRECATED("foo") }; a | ||
camelia | ( no output ) | ||
lizmat | ah,,, | ||
hmmm... | |||
m: sub a() { DEPRECATED("foo") }; a; END Deprecation.report | 10:10 | ||
camelia | ( no output ) | ||
lizmat | m: sub a() { DEPRECATED("foo") }; a; END say Deprecation.report | ||
camelia | rakudo-moar e7c1d5: OUTPUT«Saw 1 occurrence of deprecated code.================================================================================Sub a (from GLOBAL) seen at: <tmp>, line 1Please use foo instead.-----------------------------------------------------------…» | ||
lizmat | normally, the deprecation report is shown when the program exits | ||
apparently camelia isn't showing the output of END blocks from core | 10:11 | ||
or it's running with RAKUDO_NO_DEPRECATIONS :-) | |||
m: sub a() { DEPRECATED("foo") }; a for ^5; END say Deprecation.report | 10:12 | ||
camelia | rakudo-moar e7c1d5: OUTPUT«Saw 1 occurrence of deprecated code.================================================================================Sub a (from GLOBAL) seen at: <tmp>, line 1Please use foo instead.-----------------------------------------------------------…» | ||
samcv | i don't get any warning unless i add say Deprecation.report | ||
lizmat | m: sub a() { DEPRECATED("foo") }; a; a; a; a; a; END say Deprecation.report | ||
camelia | rakudo-moar e7c1d5: OUTPUT«Saw 1 occurrence of deprecated code.================================================================================Sub a (from GLOBAL) seen at: <tmp>, line 1Please use foo instead.-----------------------------------------------------------…» | ||
samcv | does it have to say it at the end of execution though? | 10:13 | |
lizmat | well, that was the idea of the deprecation warnings: it shouldn't interfere with normal execution in any way | 10:14 | |
so it will show the output only when the program exits | |||
samcv | hm well i kind of want it to. i mean | ||
hm | |||
want people to change their stuff. but idk it can be however. i don't think too many people are using it. just want them to see it | |||
idk we CURSOR.warn in other cases | 10:15 | ||
lizmat | ok, are we ever going to stop support for unicode 1 names ? | ||
samcv | where the user did something that could be ambiguous | ||
yes | |||
they are not in roast anymore | |||
lizmat | then we need to deprecate and tell when | ||
samcv | in 6.c-errata or in master | ||
lizmat | samcv: if you want, I could have a go at it ? | 10:16 | |
samcv | sure :) | 10:17 | |
this is the commit that deprecated it github.com/rakudo/rakudo/commit/e7...d18cce88ed | |||
it still works now and doesn't trigger it because my PR for moarvm hasn't been updated | |||
er hasn't been pulled | |||
lizmat | ok, then I'll wait for jnthn to do that, and after that I'll have a look at using DEPRECATED ok ? | 10:18 | |
samcv | ok. that's fine | ||
lizmat | sub a() { DEPRECATED("foo",:what<bar>) }; a # documented is DEPRECATED trait | ||
samcv | i was going to implement the warning system in MoarVM but | ||
there was no good way to do that | |||
jnthn | Yeah, MoarVM is the wrong place to do it :) | ||
samcv | hi jnthn o/ | 10:19 | |
jnthn | Will get to the PRs shortly...got some other bits to deal with this morning :) | ||
samcv | kk | ||
lizmat, also in the PR space is broken/fixed again ;P | |||
lizmat | samcv++ | ||
:-) | |||
samcv | not on purpose | ||
lizmat | still ++ :-) | 10:20 | |
samcv | heh | ||
it should stay todo'd though | |||
lizmat | it wouldn't have fixed it by itself | ||
samcv | i don't really like breaking things but at least this breaking actually sort of fixes something | ||
Geth | kudo/nom: e472fadb34 | MasterDuke17++ | src/Perl6/Grammar.nqp Make groups in <before> and <after> non-capturing |
10:40 | |
kudo/nom: 0c5a587d36 | lizmat++ | src/Perl6/Grammar.nqp Merge pull request #992 from MasterDuke17/make_groups_in_befores_and_afters_non-capturing_in_Grammar Make groups in <before> and <after> non-capturing |
|||
lizmat | m: dd 1,*,3 Z~ <a b c> # sorta expected this to give "1a","1b","3c" | 10:51 | |
camelia | rakudo-moar 0c5a58: OUTPUT«("1a", "1b", "1c").Seq» | ||
lizmat | jnthn TimToady ^^^ opinions ? | 10:52 | |
brokenchicken | m: dd 1,**,3 Z~ <a b c> | 11:14 | |
camelia | rakudo-moar 0c5a58: OUTPUT«("1a", "HyperWhatever<77594896>b", "3c").Seq» | ||
lizmat | yeah :-) | 11:20 | |
not sure what a HyperWhatever means there | |||
should probably just die ? | |||
m: say HyperWhatever ~~ Whatever | 11:21 | ||
camelia | rakudo-moar 0c5a58: OUTPUT«sub (*@_) { #`(Sub|51502488) ... }» | ||
lizmat | m: use nqp; say nqp::istype(HyperWhatever,Whatever) | ||
camelia | rakudo-moar 0c5a58: OUTPUT«0» | ||
lizmat | hmmm... shouldn't that be 1 ? | ||
brokenchicken | no idea | 11:27 | |
oh, there I have some idea... the HyperWhatever in the grammar gets turned into HYPERWHATEVER sub that handles the stuff around it. | 11:28 | ||
I'd guess the above is the hyperway to check if something is a Whatever | 11:29 | ||
m: say HyperWhatever ~~ Whatever, 1, 3, *, 6 | |||
camelia | rakudo-moar 0c5a58: OUTPUT«sub (*@_) { #`(Sub|52465320) ... }13*6» | ||
brokenchicken | m: say (HyperWhatever ~~ Whatever, 1, 3, *, 6) | ||
camelia | rakudo-moar 0c5a58: OUTPUT«(sub (*@_) { #`(Sub|65832328) ... } 1 3 * 6)» | ||
brokenchicken | m: say (HyperWhatever ~~ Whatever)(1, 3, *, 6) | ||
camelia | rakudo-moar 0c5a58: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in block <unit> at <tmp> line 1» | ||
brokenchicken shrugs | |||
the sub in the output is the HYPERHWATEVER: github.com/rakudo/rakudo/blob/nom/...ver.pm#L15 | 11:33 | ||
Geth | kudo/nom: 471f4ba74d | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.WhateverIterator to Iterator.Whatever - also make it continue if there's something else after a Whatever - this changes the output of dd 1,*,3 Z~ <a b c> from ("1a", "1b", "1c").Seq to ("1a", "1b", "3c").Seq - aka, make Whatever "slurpy" only if encountered as the last value Does not cause any spectest failure. |
11:36 | |
jnthn | Just glancing at the relevant code before lunch, I think I'll be able to fix that //=, ||= etc. thread safety issue *and* make them faster along the way :) | 11:56 | |
Will see if I can get to it this afty | 11:57 | ||
lizmat | that would be cool! | ||
Geth | kudo/nom: 5014019788 | (Elizabeth Mattijsen)++ | 3 files Make Iterator.Whatever take an iterator To bring the API more in line with the other special purpose iterators. |
12:21 | |
lizmat | m: dd (*,) >>~<< (1,2) # hmmmm | 12:25 | |
camelia | rakudo-moar 471f4b: OUTPUT«MVMArray: Index out of bounds in block <unit> at <tmp> line 1» | ||
lizmat | guess I'll fix that along the way | ||
samcv | lizmat, it's merged if you want to try making the deprecation thing work | 13:30 | |
i gotta head to bed. night all! | |||
lizmat | night! | ||
jnthn | 'night, samcv++ | 13:31 | |
samcv | see you all on the flip-side | ||
jnthn | m: say 'side'.flip | ||
camelia | rakudo-moar 501401: OUTPUT«edis» | ||
samcv | heh | ||
m: say flip 'side | 13:33 | ||
camelia | rakudo-moar 501401: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in single quotes; couldn't find final "'" at <tmp>:1------> 3say flip 'side7⏏5<EOL> expecting any of: argument list single quotes te…» | ||
samcv | m: say flip 'side' | ||
camelia | rakudo-moar 501401: OUTPUT«edis» | ||
Geth | kudo/nom: 4570238de7 | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.DwimIterator to Iterator.DWIM Also document the functionality of it. Tried to make 1,2,*,4,5 also work, but that interferes with <<op>>, as then it cannot see anymore if both iterators exhaust at the same time, so (1,2,*) <<~>> (3,4,*) would generate (13,24,24) instead of (13,24) |
13:46 | |
lizmat | jnthn: ok to bump Moar / NQP ? | 13:48 | |
jnthn | lizmat: Hold on a moment | 13:49 | |
lizmat | oki :-) | ||
jnthn | lizmat: Will merge one more PR memontarily | ||
lizmat | oki | ||
jnthn | Well, probably | 13:50 | |
Just doing a tad more testing | |||
lizmat | sure, no problem, no pressure :-) | ||
Geth | kudo/nom: fbce9580da | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.IterateNextNFromIterator to Iterator.NextNValues |
14:05 | |
kudo/nom: 2d027109a7 | (Elizabeth Mattijsen)++ | 4 files Migrate Internals.IterateLastNFromIterator to Iterator.LastNValues |
14:15 | ||
kudo/nom: 44dc45a4f3 | (Elizabeth Mattijsen)++ | 4 files Migrate Internals.LastFromIterator to Iterator.LastValue |
14:25 | ||
kudo/nom: 8852f7573a | (Elizabeth Mattijsen)++ | 2 files Migrate Internals.IterateFromIterators to Iterator.FromIndexes Turns out this iterator was originally developed for the .match refactor, and is currently not being used. Since its functionality for e.g. handling array slices could be handy, I've kept it around. |
14:43 | ||
kudo/nom: b54834dca3 | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.IterateMonotonicFromIterators to Iterator.MonotonicIndexes |
15:01 | ||
kudo/nom: 9994c09699 | (Elizabeth Mattijsen)++ | 4 files Migrate Internals.ReifiedListIterator to Iterator.ReifiedList |
15:15 | ||
jnthn | lizmat: Merged moar PRs :) | 15:55 | |
m: ub foo() { my $b = False; my $c //= do { $b = True }; $b }; await do for ^4 { start for ^1000 { die unless foo } } | 16:00 | ||
camelia | rakudo-moar 9994c0: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unexpected block in infix position (missing statement control word before the expression?)at <tmp>:1------> 3ub foo()7⏏5 { my $b = False; my $c //= do { $b = Tr expecting any of: …» | ||
jnthn | m: sub foo() { my $b = False; my $c //= do { $b = True }; $b }; await do for ^4 { start for ^1000 { die unless foo } } | ||
camelia | rakudo-moar 9994c0: OUTPUT«Tried to get the result of a broken Promise in block <unit> at <tmp> line 1Original exception: Died in code at <tmp> line 1» | ||
jnthn spectests a fox for that | 16:19 | ||
...uh, a fix | |||
A fox would be cuter perhaps | 16:20 | ||
DrForr submits a fax. | 16:21 | ||
jnthn | Won't be submitting anything to github for a bit, it seems | 16:28 | |
timotimo | yeah, seems down | 16:29 | |
brokenchicken | Angry unicorn time | ||
timotimo | time to send patches via emails | 16:30 | |
perlpilot | must be some kind of "rolling blackout" thing for their servers as I was able to access github just fine while you guys were talking about the unicorn. | ||
jnthn | Anyway, it passed | ||
perlpilot | (but I got the unicorn earlier) | 16:31 | |
jnthn | Will push when it works :) | ||
And of course, now Travis gets all sad because the clone fails | 16:35 | ||
timotimo | yup | ||
brokenchicken | ... and now buggable will leak memory parsing travis bot results! | 16:36 | |
... and that will eventually kill the server with all the bots! | |||
The Butterfly Effect? :) | |||
timotimo | good thing *able are crash-only software (i think?) | ||
brokenchicken | One failed build of Perl 6 ruins everything :PO | ||
jnthn | brokenchicken: Did buggable use recent Moar fwiw? That had some memory management improvements... | 16:37 | |
brokenchicken | Don't think so. The perl6 in use there is 2016.12-250-g9052427 | 16:38 | |
m: say $*PERL.version | |||
camelia | rakudo-moar 9994c0: OUTPUT«v6.c» | ||
brokenchicken | m: say $*PERL.compiler.version | ||
camelia | rakudo-moar 9994c0: OUTPUT«v2016.12.297.g.9994.c.09» | ||
brokenchicken | 47 commits behind head. | ||
timotimo | multiple of those will have been NQP and MoarVM version bumps | ||
jnthn | ooh, push worked :) | 16:41 | |
timotimo | "GitHub Isn't Down You Just Got Fired And We Didn't Know How To Tell You" | ||
Geth | kudo/nom: d1c2e76498 | (Jonathan Worthington)++ | src/Perl6/Actions.nqp Improve compilation of ||=, //=, and &&=. So they don't need a thunk, the taking of which messed up scopes and could cause threading issues. This also improves performance, since it eliminates an invocation. |
||
ast: e797f92551 | (Jonathan Worthington)++ | S17-promise/start.t Tests to cover threads bug with //=, ||=, &&=. |
16:42 | ||
brokenchicken | \o/ | ||
jnthn | You had to have something like //= do { ... } to get bitten by it, fwiw | 16:43 | |
Which IO::Handle.open does | |||
lizmat is back | 16:49 | ||
jnthn: did you up Moar / NQP ? | 16:50 | ||
jnthn | Ne | ||
lizmat | so is it a good time to do it? | ||
jnthn | Sure, go ahead :) | ||
lizmat | oki, I will | ||
Geth | p: 1d4f071453 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION Bump Moar to get the latest goodies / fixes |
16:52 | |
jnthn not having much look getting spectest6 to explode anymore... | 16:55 | ||
*luck | 16:56 | ||
The //= fix seems to have massively helped the instability in my $dayjob code on Windows though | |||
brokenchicken fires up the VM to try it out there | |||
TimToady | fyi uniqueifying fate numbers works fine for protos; alts will be a bit harder because C code | ||
next major step is to figure out how best to pass subfates to subrules... | 16:58 | ||
jnthn | Hmm | ||
Yeah, that's the part that always struck me as tricky :) | |||
TimToady | well, making the NFA runner produce subfates is probably the real next step :) | ||
but I think I'll go with linear for simplicity, and just filter out the fates that aren't in "my" range at this level | 16:59 | ||
might complicate the sorting in the runner though | |||
one could conceivably pass subfates through the cursor, but then you have to make sure they aren't seen by callees that shouldn't see them | 17:00 | ||
so I lean towards a hidden param at this juncture | |||
jnthn | Hmm | 17:01 | |
Hidden param is a leak risk, mind | |||
TimToady | how so, if you doctor the signatures to correspond? | ||
brokenchicken | Stage parse : 50.821 \o/ \o/ so fast | ||
TimToady | brokenchicken: hope to make that faster by what I'm doing now | 17:02 | |
brokenchicken | \o/ \o/ TimToady++ | ||
jnthn | token foo(|c) { } # would we have to doctor the capture too? | ||
My gut feeling - which may be off - is that the cursor approach might be easier to make robust | 17:03 | ||
TimToady | could well be | ||
Geth | ast: 1a930c7aac | (Elizabeth Mattijsen)++ | 3 files Unfudge now passing tests |
||
TimToady | we just have to be sure to remove it from the cursor when it's no longer valid, I suppose | ||
travis-ci | Rakudo build errored. Elizabeth Mattijsen 'Migrate Internals.IterateFromIterators to Iterator.FromIndexes | ||
travis-ci.org/rakudo/rakudo/builds/191652818 github.com/rakudo/rakudo/compare/4...52f7573a2f | |||
brokenchicken | huh buggable's ded | 17:04 | |
TimToady | in any case, to begin with, we'll probably enable it only for subrules that start reparsing at the same position as the superrule | ||
brokenchicken | "connection reset by peer" | ||
TimToady | and I guess the sub-NFA will actually be carrying the info about the valid range of fates for that level, so maybe it'll just work out if the NFA looks at the cursor and says, 'yep, I can use that to bypass my next run' | 17:06 | |
brokenchicken | (removed) | ||
oops | |||
lizmat | .oO( that evens out :-) |
||
brokenchicken | travis-ci.org/rakudo/rakudo/builds/191652818 | ||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | ||
brokenchicken | buggable: you're useless! | 17:07 | |
TimToady | and then it'll also pass through levels of non-alt subrules down to the alt that needs the info, without having to doctor every single method sig | ||
brokenchicken | the failures due to github stuff tho | ||
jnthn | TimToady: Sounds promising. | 17:08 | |
TimToady | so yeah, cursor seems cursorily better | ||
jnthn | :) | ||
One of the things I've learend the hard way in Perl 6 impl is that with the amount of introspection we have available, cheating/faking will almost always get you caught by a cunning user. :) | 17:09 | ||
TimToady | nodnod, keep having to relearn that lesson :) | ||
Geth | kudo/nom: 25615c73c0 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION Bump NQP for the latest MoarVM/NQP goodies |
17:19 | |
kudo/nom: ce65691fc5 | (Elizabeth Mattijsen)++ | 5 files Migrate Internals.IntRangeIterator to Iterator.IntRange |
17:20 | ||
brokenchicken | 2 stresstest6 runs without any crashes! | 17:21 | |
brokenchicken rebuilds from head and tries more | |||
jnthn | I was getting very occasional one in full collects | 17:26 | |
But when I turn on more debugging support it goes away :/ | |||
brokenchicken | third run a charm: gist.github.com/zoffixznet/38421cb...2344047a16 | 17:30 | |
lizmat | :-( | ||
different from before, though | |||
by the looks of it | |||
brokenchicken | yeah | 17:31 | |
jnthn | New one | ||
Oh, same nwc10 found overnight | |||
Probably was there all along, but the one we already nailed was more common | |||
Geth | kudo/nom: 032040439d | (Elizabeth Mattijsen)++ | 2 files Migrate Internals.ShapeIndexIterator to Iterator.ShapeIndex And add some documentation on the fly |
17:34 | |
jnthn | dinner & | 17:38 | |
Geth | kudo/nom: 66a3aa5cc6 | (Elizabeth Mattijsen)++ | 6 files Migrated Internals.IterateKeyValueFromIterator to Iterator.KeyValue |
17:48 | |
kudo/nom: f57ba8af8e | (Elizabeth Mattijsen)++ | 6 files Migrate Internals.IteratePairFromIterator to Iterator.Pair |
18:02 | ||
samcv | morning o/ | 18:05 | |
brokenchicken | \o | ||
lizmat | samcv: morning :-) | ||
Geth | kudo/nom: aba04b1ac4 | (Elizabeth Mattijsen)++ | 6 files Migrate Internals.IterateAntiPairFromIterator to Iterator.AntiPair |
18:07 | |
lizmat | samcv: nwc10 had some interesting findings on #moarvm just now | 18:08 | |
paste.scsys.co.uk/540698 | |||
samcv | just saw that. will take a look when i'm properly awake | ||
lizmat | cool :-) | ||
brokenchicken | stresstest6 feels much more stable now. Before: 3 crashes, 1 success; Now: 2 succcess, 1 crash, 2 successes. | 18:14 | |
brokenchicken tries it out on a 32-core VM | |||
the above were results for a 24-core one with RAKUDO_MAX_THREADS=100 | 18:15 | ||
.oO( try RAKUDO_MAX_THREADS=1000 :o ) |
|||
oh and my default jobs is 28 or something, | 18:16 | ||
brokenchicken kicks it up a notch | 18:17 | ||
RAKUDO_MAX_THREADS=1000 TEST_JOBS=1000 HARNESS_TYPE=6 make stresstest | 18:18 | ||
[Coke] | if the number is that high, aren't you tripping over yourself to get at the 24 cores? | ||
Geth | kudo/nom: fe891c0b0c | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.OneValueIterator to Iterator.OneValue |
||
[Coke] | seems like your timings would be slightly better at maybe 50 instead of 1000 | ||
brokenchicken | Segmentation fault after 16 seconds :( | ||
[Coke] | (/me obv. has not tested this theory) | ||
brokenchicken | [Coke]: no idea. | 18:19 | |
Well, I normally use 100 | |||
For 1000 the goal is to crash not to go fast :) | |||
hm, seems to be doing something now, but no files are shown in the output; just that last line with numbers keeps updating itself | 18:21 | ||
Load average: 28.17 13.79 5.45 | 18:23 | ||
really slow; doesn't seem to be the best weay to do it | 18:25 | ||
Geth | kudo/nom: 1dc34d8471 | (Elizabeth Mattijsen)++ | 3 files Migrate Internals.UnendingValueIterator to Iterator.UnendingValue |
||
kudo/nom: 6868ce8a3f | (Elizabeth Mattijsen)++ | 4 files Migrate Internals.ZipIterables*Iterator to Iterator.ZipIterables* |
18:38 | ||
kudo/nom: 232641155e | (Elizabeth Mattijsen)++ | 4 files Migrate Internals.RollerIterator to Iterator.Roller Add some documentation, and convert List.roll(*) as well. |
18:58 | ||
lizmat | which concludes migrating iterators from Rakudo::Internals | ||
afk& | |||
brokenchicken | \o/ | 18:59 | |
[Coke] | lizmat: danke. | 19:00 | |
brokenchicken | m: say "à".match: :ignoremark, /<[aeuoi]>/ | 19:24 | |
camelia | rakudo-moar 232641: OUTPUT«Nil» | ||
brokenchicken | m: say "à" ~~ m:ignoremark/<[aeuoi]>/ | ||
camelia | rakudo-moar 232641: OUTPUT«「à」» | ||
brokenchicken | s: "à", 'match', \(:ignoremark, /<[aeuoi]>/) | 19:25 | |
SourceBaby | brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/2326...r.pm#L1040 | ||
timotimo | we can't have ignoremark outside of the match i believe | ||
brokenchicken | Why not? | 19:26 | |
What's it calling then? I thought it used match. | |||
S/// does | |||
m: say "à".subst: :ignoremark, /<[aeuoi]>/, 'z' | 19:27 | ||
camelia | rakudo-moar 232641: OUTPUT«à» | ||
brokenchicken | m: my $v = "à"; $v ~~ s:ignoremark/<[aeuoi]>/z/; say $v | 19:28 | |
camelia | rakudo-moar 232641: OUTPUT«z» | ||
brokenchicken | m: say S:ignoremark/<[aeuoi]>/z/ given "à" | ||
camelia | rakudo-moar 232641: OUTPUT«z» | ||
brokenchicken | m: my $v = "à"; $v.subst-mutate: :ignoremark, /<[aeuoi]>/, 'z'; say $v | 19:29 | |
camelia | rakudo-moar 232641: OUTPUT«à» | ||
travis-ci | Rakudo build passed. Jonathan Worthington 'Improve compilation of ||=, //=, and &&=. | 19:42 | |
travis-ci.org/rakudo/rakudo/builds/191684455 github.com/rakudo/rakudo/compare/9...c2e7649884 | |||
DrForr | m: my $x = set <1 2 3>; say $x<3> and $x<4> | 19:55 | |
camelia | rakudo-moar 232641: OUTPUT«True» | ||
brokenchicken | :o | 19:56 | |
m: my $x = set <1 2 3>; say $x<4> | |||
camelia | rakudo-moar 232641: OUTPUT«False» | ||
brokenchicken | wtf | ||
aahh | |||
lol | |||
Precedense :) | |||
m: my $x = set <1 2 3>; say $x<3> && $x<4> | |||
camelia | rakudo-moar 232641: OUTPUT«False» | ||
DrForr | D'oh .. | ||
my $x = set <1 2 3>; given $x.elems { when 3 { say "yes" if $x<1> && $x<2> } } say "no" | 19:59 | ||
m: my $x = set <1 2 3>; given $x.elems { when 3 { say "yes" if $x<1> && $x<2> } } say "no" | |||
camelia | rakudo-moar 232641: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Strange text after block (missing semicolon or comma?)at <tmp>:1------> 3when 3 { say "yes" if $x<1> && $x<2> } }7⏏5 say "no"» | ||
DrForr | m: my $x = set <1 2 3>; given $x.elems { when 3 { say "yes" if $x<1> && $x<2> } }; say "no" | ||
camelia | rakudo-moar 232641: OUTPUT«yesno» | ||
DrForr | Must be doing something else wrong. /me skritches head. | 20:00 | |
brokenchicken | You can use `and` in that `if` | 20:01 | |
Seems to work fine? What part is wrong? | 20:02 | ||
the `say "no"` needs to be inside the same block as `when` if you expected when to shortcurcuit it | |||
DrForr | It is, and it is in the paste. | 20:03 | |
Before I go on I should update to latest, just to be sure. | |||
brokenchicken | hm? it's not. | 20:04 | |
m: my $x = set <1 2 3>; given $x.elems { when 3 { say "yes" if $x<1> and $x<2> } }; say "no" | |||
camelia | rakudo-moar 232641: OUTPUT«yesno» | ||
brokenchicken | m: my $x = set <1 2 3>; given $x.elems { when 3 { say "yes" if $x<1> and $x<2> }; say "no" } | 20:05 | |
camelia | rakudo-moar 232641: OUTPUT«yes» | ||
brokenchicken | m: my $x = set <1 2 3>; given $x { when 3 { say "yes" if $x<1> and $x<2> }; say "no" } | ||
camelia | rakudo-moar 232641: OUTPUT«yes» | ||
brokenchicken | m: my $x = set <1 2 3>; given $x { when 3 { say "yes" if $x<1 2> == 2 }; say "no" } | ||
camelia | rakudo-moar 232641: OUTPUT«yes» | ||
DrForr | Oh, the 'no' bit. That was because I'm actualy doing a return in my real ode, I wasn't expecting the 'no' to appear in my actual code but I added it in to the paste for no good reason. | 20:06 | |
I'm solving a puzzle that I decided to use set arithmetic on, and ran across what appears to be a bug, not sure yet tho. | 20:07 | ||
brokenchicken | cool \o/ | 20:08 | |
DrForr | I really should button up here-docs, but I decided I needed a break. | 20:09 | |
gist.github.com/anonymous/9a7b76d5...1671b3e426 | 20:20 | ||
IT's a dead-simple puzzle but I'm doing a brute-force state graph just so that I can bum it down later. | 20:22 | ||
brokenchicken | :o lots o code | ||
brokenchicken will look in ~3 hours | |||
DrForr | No worries. | ||
When you get the time all you need to do is stick debgging around the 'when 3' clause. | 20:24 | ||
jnthn | :ignorematch has to be inside the regex or on the regex language construct, because it affects how we compile the regex. Same as with :ignorecase | 20:26 | |
brokenchicken | Ah. Thanks. | ||
m: say "à".match: /:ignoremark <[aeuoi]>/ | 20:27 | ||
camelia | rakudo-moar 232641: OUTPUT«「à」» | ||
brokenchicken | \o/ | ||
jnthn | If we're silently ignoring them when passed to .match or so, then it might be more friendly to warn | 20:28 | |
brokenchicken | jnthn: I ran 20 stresstest6 on my 32-core VM. Here are the results, if they're helpful in any way: gist.github.com/zoffixznet/bf2d93c...fdaaceaa40 | 20:30 | |
TEST_JOBS=1263 <-- there are 1263 .t files in roast | |||
jnthn | Hm, all 3 of those crashes are the same backtrace, it seems? | 20:31 | |
brokenchicken | looks like it, yeah | 20:32 | |
jnthn | Will do some digging when I get chance :) | ||
Seems we're getting closer at least | 20:33 | ||
brokenchicken | \o/ | ||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Bump NQP for the latest MoarVM/NQP goodies' | 21:00 | |
travis-ci.org/rakudo/rakudo/builds/191697711 github.com/rakudo/rakudo/compare/d...615c73c054 | |||
samcv | m: say "\c[BOM]" | 21:12 | |
camelia | rakudo-moar 232641: OUTPUT«» | ||
samcv | nice alias names ;) | ||
m: "test\c[NBSP]test" | |||
camelia | rakudo-moar 232641: OUTPUT«WARNINGS for <tmp>:Useless use of constant string "test test" in sink context (line 1)» | ||
samcv | m: say "test\c[NBSP]test" | ||
camelia | rakudo-moar 232641: OUTPUT«test test» | ||
samcv | m: say "test\c[BELL]" | 21:13 | |
camelia | rakudo-moar 232641: OUTPUT«test🔔» | ||
samcv | sweet! | ||
DrForr | Someone set us up \c[BOM]? | 21:14 | |
samcv | DrForr, I added unicode alias names. see my commit github.com/MoarVM/MoarVM/commit/81...49264335bf | ||
should be useful for your book | |||
full list of aliases are here if you are curious ftp://ftp.unicode.org/Public/UCD/latest/ucd/NameAliases.txt | 21:15 | ||
so \c works for unicode sequences, alias names or unicode names (not unicode 1 names though) | |||
brokenchicken | DrForr is writing a book too? | 21:16 | |
samcv | oh who was it | ||
that was writing the book | |||
brokenchicken | moritz and briandfoy | ||
samcv | ah ok | ||
brokenchicken | and anton shitov | ||
samcv | what's briandfoy's irc name? or is he not? | ||
brokenchicken | and I forget the fourth one | 21:17 | |
He rarely shows up and I think it's briandfoy | |||
samcv | ah ok | ||
brokenchicken, on RT how do I search and include the body text of an RT? | |||
brokenchicken | You can't; it's not enabled | ||
samcv | aww :( | 21:18 | |
brokenchicken | I was planning to add that to perl6.fail but got bored | ||
(hence the search box saying NIY) | |||
I have a script at home that can search full text with a regex tho | 21:19 | ||
(and I'll be home in ~40m) | |||
samcv | nice! that would be awesome | ||
buggable, UNI | |||
buggable, [UNI] | 21:20 | ||
buggable, help | |||
buggable | samcv, tags | tag SOMETAG | eco | eco Some search term | speed | ||
samcv | buggable, tag UNI | ||
buggable | samcv, There are 28 tickets tagged with UNI; See perl6.fail/t/UNI for details | ||
brokenchicken | Ah, I have a gist of it: gist.github.com/zoffixznet/a3790dd...b23e3caefd | ||
samcv | oh brokenchicken can you fix uhm | ||
[UNI] \c[BELL] returns the U+0007 control code not U+1F514 BELL | |||
it detects BELL as a tag | |||
or should I just change the title | 21:21 | ||
brokenchicken | huggable rt full search :is: Use regex for RT full text search: gist.github.com/zoffixznet/a3790dd...b23e3caefd | ||
huggable, rt full search :is: Use regex for RT full text search: gist.github.com/zoffixznet/a3790dd...b23e3caefd | |||
huggable | brokenchicken, Added rt full search as Use regex for RT full text search: gist.github.com/zoffixznet/a3790dd...b23e3caefd | ||
Geth | ast: 14383fd540 | (Samantha McVey)++ | S02-literals/char-by-name.t Todo test for jvm, which got unfudged (only fixed on MoarVM) |
21:23 | |
brokenchicken | I think I'll revert it to just consider stuff in the front of title as tags.... too many false positives | ||
samcv | well it is in the front of the title? | 21:24 | |
buggable, tags | |||
buggable | samcv, Total: 1469; BUG: 988; UNTAGGED: 313; LTA: 141; NYI: 96; RFC: 61; CONC: 53; JVM: 53; REGEX: 46; SEGV: 31; PERF: 28; UNI: 28; NATIVECALL: 22; REGRESSION: 21; @LARRY: 20; POD: 20; TODO: 18; IO: 16; TESTNEEDED: 15; PRECOMP: 13; BUILD: 11; OO: 11; TESTCOMMITTED: 10; STAR: 8; BOOTSTRAP: 6; OPTIMIZER: 6; GLR: 5; MATH: 4; OSX: 4; REPL: 3; WEIRD: 3; RT: 2; SPESH: 2; WINDOWS: 2; BELL: | ||
samcv | is Geth dead? | 21:25 | |
I pushed to roast | |||
brokenchicken | and it reported | ||
samcv | oh i'm blind | 21:26 | |
i need more caffeine | |||
brokenchicken | it wouldn't take it cause it got \c in front of it, but I'm not in the mood for hacking on Perl 5 this weekend so... BELL is a tag for now | 21:29 | |
patches welcome; it's zoffixznet/R6 | |||
samcv | kk | ||
brokenchicken | and it'd be lib/something something RT REST Client or something | 21:30 | |
DrForr: so.. 1 2 | 3 4 | 22:14 | ||
testing 1 2 failed | |||
That should NOT say failed? | |||
Geth | kudo/nom: bcc113cfb0 | (Elizabeth Mattijsen)++ | 2 files Migrate combinations(n,k) logic to Iterator.Combinations By making it an iterator, we should be able to mix/match that logic easier into other parts of the core. Also document it a bot more. |
22:15 | |
brokenchicken | I guess it would be easier if I knew what this game was about :P | 22:16 | |
geekosaur | talk about unfortunate typos... is "bot" supposed to be "bit" or "lot"? or somewhere in between? | 22:17 | |
brokenchicken | :P | ||
DrForr: "# Any move with {1,2} as an element should be legal, yet there are no legal moves." There's no such check here tho: gist.github.com/anonymous/9a7b76d5...xt-L60-L62 | 22:19 | ||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Migrate Internals.IntRangeIterator to Iterator.IntRange' | 22:20 | |
travis-ci.org/rakudo/rakudo/builds/191698102 github.com/rakudo/rakudo/compare/2...65691fc5d1 | |||
Geth | kudo/nom: 0ffce7d056 | (Elizabeth Mattijsen)++ | 2 files Allow Iterator.Combinations to return an IterationBuffer This should make use of the iterator more efficient in other cases. There was no discernible efficiency loss for combinations(). |
23:05 |