dalek | ast: c57aa05 | (Zoffix Znet)++ | S32-num/base.t: Test edge cases in .base's $digits arg RT#125819: rt.perl.org/Ticket/Display.html?id=125819 |
01:00 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125819 | ||
dalek | kudo/nom: 31e466c | (Zoffix Znet)++ | src/core/Range.pm: Remove trailing whitespace |
02:26 | |
samcv | nice AlexDaniel | 02:29 | |
dalek | rakudo/nom: 334d134 | (Zoffix Znet)++ | src/core/Range.pm: | 02:35 | |
rakudo/nom: Fix Range.rand generating value equal to excluded endpoints | |||
rakudo/nom: | |||
rakudo/nom: Fixes RT#129104: rt.perl.org/Ticket/Display.html?id=129104 | |||
rakudo/nom: | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129104 | ||
dalek | rakudo/nom: The discussion in the ticket speculates this only affects Num ranges, | ||
rakudo/nom: however from the code I see other types are affected as well. For example | |||
rakudo/nom: using a Rat 1.00000000000001 has the same issue in lizmat's one liner. | |||
rakudo/nom: Reproducing with an Int is a bit harder due to much larger pool of | |||
rakudo/nom: possible random numbers, but sometime... somewhere... in a nuclear plant | |||
rakudo/nom: running on Perl 6, a .rand on Int range with endpoint exclusions will | |||
rakudo/nom: produce a value equal to the excluded endpoint. | |||
rakudo/nom: | |||
rakudo/nom: The problem is due to us checking generated value against zero and | |||
ugexe | Anyone able to give permissions on the advent calender? I'm going to bed soon and need to post Friday's advent post | 03:27 | |
never mind, timotimo took care of it afterall! | 03:28 | ||
[Tux] | This is Rakudo version 2016.11-252-g334d1344a built on MoarVM version 2016.11-60-g21abc2a1 | 07:36 | |
csv-ip5xs 3.164 | |||
test 14.281 | |||
test-t 6.164 | |||
csv-parser 15.141 | |||
lizmat | Files=1155, Tests=53927, 197 wallclock secs (11.01 usr 4.56 sys + 1167.93 cusr 125.37 csys = 1308.87 CPU) | 08:36 | |
dalek | p: ad00a7b | niner++ | tools/build/ (2 files): Use NQP_LIB_DIR instead of manually assembling a path This allows for changing the lib_dir in a centralized place, e.g. for installing libraries into /usr/lib64 instead of /usr/share. |
09:30 | |
ast: acd8f24 | samcv++ | S15-unicode-information/uniprop.t: uniprop: add tests for three more properties. Hangul_Syllable_Type, East_Asian_Width and Case_Folding |
10:27 | ||
p: 0dce14b | niner++ | / (5 files): Support Configure.pl --libdir=... Allows for installing architecture dependent libraries in /usr/lib64 for example. |
11:06 | ||
kudo/nom: 1661511 | niner++ | tools/build/Makefile- (2 files): Support NQP with non-standard libdir Allows for storing architecture dependant library files in /usr/lib64 |
11:08 | ||
nine | This got rid of the last patch and scary sed call in the openSUSE spec files. Packaging rakudo/nqp/moar is now a real piece of cake :) | 11:12 | |
Oh, I should bump NQP_VERSIOn | |||
jnthn | mmm...cake :) | 11:13 | |
nine++ | |||
dalek | kudo/nom: fe665fc | niner++ | tools/build/NQP_REVISION: Bump NQP for build system updates needed by commit 1661511bba5861bfee3258dd1d3a69696f9395a7 |
||
kudo/nom: 124a0d9 | (Zoffix Znet)++ | docs/ChangeLog: List sub MAIN Enum feature in ChangeLog Previous release excluded the feature, due to the indentified problem (Str $x cannot accept strings True/False; same with any other enums). We didn't come up with an alternate solution, but neither did any of our bleed users notice the issue. The problem can also be worked around with a Str() coercer, so I'm including the feature in December release. |
11:58 | ||
MasterDuke_ | jnthn: unless i'm crazy, -n doesn't currently support NEXT/LAST/etc | 13:14 | |
jnthn | o.O | 13:18 | |
Well... oops | |||
MasterDuke_ | yeah, given i've been messing around in that code recently i can try and add it | 13:19 | |
timotimo | we don't even have spec tests that test that? wow. | ||
MasterDuke_ | though i thought i'd better benchmark the change i just got working last evening, went from 1m50s to -ne '' a 13million line file before my changes to 2m50s after | 13:20 | |
yoleaux2 | 13:20Z <Zoffix> MasterDuke_: there's a ticket for LAST in -n: rt.perl.org/Ticket/Display.html?id...et-history | ||
jnthn | So it got...slower? | 13:21 | |
MasterDuke_ | so, yay for finally getting it working, boo for being much much slower | ||
yeah. turns out get() is very slow | |||
jnthn | Oh, you're calling get every time? | ||
Yeah, don't do that | |||
:) | |||
MasterDuke_ | $filehandle.get() is fast | ||
jnthn | Probably best will be to use the lines iterator | 13:22 | |
And pull-one from it and check you don't get back IterationEnd | |||
MasterDuke_ | i'm gonna benchmark a bunch of ways | 13:24 | |
but the minimal number of tests is kind of annoying, just makes it harder to know if i'm changing desired/expected behavior | 13:25 | ||
does S19 have much to say | |||
? | |||
jnthn: the current behaviour is lines(), but i was hoping for something faster. Perl 5 can -n over the same file much much faster | 13:31 | ||
.tell Zoffix thanks for the link, i'll see if i can do something about it | 13:44 | ||
yoleaux2 | MasterDuke_: I'll pass your message to Zoffix. | ||
|Tux| | This is Rakudo version 2016.11-252-g334d1344a built on MoarVM version 2016.11-60-g21abc2a1 | 15:42 | |
csv-ip5xs 3.082 | |||
test 13.311 | |||
test-t 6.053 | |||
csv-parser 13.830 | |||
[Coke] | ok, have an 85 line htmlify.p6 segfaulting when running in parallel mode... still golfing. | 16:23 | |
jnthn: Down to 40 lines; looks like it needs a gather/take, an await. It also currently has precompilation involved, which we might be able to get rid of; 40 lines at github.com/perl6/doc/blob/coke/bug...htmlify.p6 | 16:55 | ||
moar(84521,0x70000082e000) malloc: *** error for object 0x7fba12f37400: pointer being freed was not allocated | 17:03 | ||
*** set a breakpoint in malloc_error_break to debug | |||
jnthn | [Coke]: Thanks; bit tied up with advent post right now but will look later ;) | 19:22 | |
yoleaux2 | 15:21Z <Zoffix> jnthn: A friendly reminder: Rakudo's next release is tomorrow (Saturday) and we'll need a MoarVM release to use for it. | ||
[Coke] | jnthn: sure sure. advent first! | ||
... and a moarvm releaes. ;) | |||
*se | |||
down to 29 lines, btw. :) | |||
jnthn | The advent deadline is sooner, so concentrating on that first ;) | 19:23 | |
(I'm about 75% of the way through writing, though, so not too worried by now :)) | |||
MasterDuke_ | [Coke]: does it need the 'use nqp;'? | 19:26 | |
[Coke] | MasterDuke_: nope. I had removed all the nqp:: calls and forgot that. | 19:30 | |
just doing one more run without to make sure the failures are the same. | |||
actually, it does seem slightly happier without it | 19:33 | ||
um, yah, leaving it in. :| | 19:34 | ||
MasterDuke_ | funny (not in a good way) | 19:35 | |
dalek | kudo/nom: 4a16884 | samcv++ | docs/ChangeLog: Update changelog. |
20:11 | |
kudo/nom: 2a09e92 | (Zoffix Znet)++ | docs/ChangeLog: Merge pull request #958 from samcv/changelog-update Update changelog. |
|||
lizmat | m: m/./ # RT #130363 | 21:15 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130363 | ||
camelia | rakudo-moar 2a09e9: OUTPUT«No such method 'match' for invocant of type 'Any' in block <unit> at <tmp> line 1» | ||
jnthn | m: /./ | 21:20 | |
camelia | ( no output ) | ||
jnthn | I think that one calls out of sink | 21:21 | |
Quite why it doesn't also blow up in the same way I'm not sure | |||
m: say 1 if /./ | |||
camelia | ( no output ) | ||
jnthn | m: if /./ -> $x { dd $x } | ||
camelia | ( no output ) | ||
jnthn | m: unless /./ -> $x { dd $x } | 21:22 | |
camelia | rakudo-moar 2a09e9: OUTPUT«Regex $x = /./» | ||
jnthn | m: $_ = 'x'; say 1 if /./ | ||
camelia | rakudo-moar 2a09e9: OUTPUT«1» | ||
jnthn | m: my $_ = 'x'; if /./ -> $x { dd $x } | ||
camelia | rakudo-moar 2a09e9: OUTPUT«Potential difficulties: Redeclaration of symbol '$_' at <tmp>:1 ------> my $_⏏ = 'x'; if /./ -> $x { dd $x }Regex $x = /./» | ||
jnthn | m: $_ = 'x'; if /./ -> $x { dd $x } | ||
camelia | rakudo-moar 2a09e9: OUTPUT«Regex $x = /./» | ||
jnthn | m: $_ = 'x'; if /./ { say 1 } | 21:23 | |
camelia | rakudo-moar 2a09e9: OUTPUT«1» | ||
jnthn | So, quiet on Bool too | ||
(Don't see anything suspect in any of the above) | |||
Agree it's a weird inconsistency, anyway | |||
(between m and without it) | 21:24 | ||
lizmat | jnthn: I think the m// case assumes there will be named params | 21:28 | |
and that needs .match | |||
or is that a wrong assumption ? | |||
jnthn | Well, it could still generate .can('match') ?? .match(/./) !! ($/ = Nil) or so | 21:30 | |
(or something appropriate, that may not be exactly it) | 21:31 | ||
lizmat | jnthn: but what would be against just adding a Any:U: candidate for .match ? | 21:33 | |
that would just set $/ to Nil ? | 21:34 | ||
I mean, we have a candidate in Cool already | |||
jnthn | What does the one in Cool do? | 21:36 | |
lizmat | call self.Stringy.match | 21:37 | |
jnthn | Ah, that's reasonable | 21:39 | |
lizmat | jnthn: adding a Any:U: match candidate makes one spectest fail: | 21:40 | |
throws-like 'm/%var/', Exception, 'cannot interpolate hashes into regexes'; | |||
dalek | ast: 4d14891 | samcv++ | S15-unicode-information/uniprop.t: uniprop: add tests for Block and Jamo_Short_Name |
21:41 | |
lizmat | m: my %var; /%var/ # should this bomb? | ||
camelia | ( no output ) | ||
samcv | hopefully if i add ~3 tests per day, eventually there will be tests for all 124 properties :P | ||
lizmat | m: my %var; m/%var/ # then why do we expect this to bomb ? | 21:42 | |
camelia | rakudo-moar 2a09e9: OUTPUT«No such method 'match' for invocant of type 'Any' in block <unit> at <tmp> line 1» | ||
lucasb | sorry for intruding, plain /.../ creates a regex. do you want it to be a match operator? | ||
lizmat | lucasb: this is about the difference between /./ and m/./ | 21:43 | |
lucasb | I understand | ||
lizmat | # RT #130363 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130363 | ||
lizmat | they should act the same | ||
jnthn | samcv++ # getting our test coverage up :) | ||
lucasb | in boolean context /.../ acts like m/.../, but otherwise, it just creates a regex object, no? | ||
jnthn | lucasb: Also in sink context | ||
lizmat | I don't particularly care what it means | 21:44 | |
lucasb | they should act the same only in boolean context or also in sink context? | ||
jnthn | Phew, I think I finished my advent post | ||
lucasb | ah, ok | ||
lizmat | lucasb: they should be the same everywhere, as they should be semantically the same | ||
samcv | jnthn, may easier to do all the changes in unicode that need to happen in moarvm at the same time right? once we test for everything? | ||
since there's so many | |||
lizmat | regardless of context | ||
samcv | potentially we might not have yet | ||
nice RE the advent post jnthn | 21:45 | ||
lucasb | my $rx = rx/foo/; if $rx { say 'yes' } # should $rx in boolean context activates the matching behaviour or not? | ||
because, now, it does try to match against $_ | |||
instead of just asking "is this object truthy or falsey?" | 21:46 | ||
jnthn | samcv: Hard to say, but I think there's a range of issues raised by the tests that will need different things. | ||
samcv | yeah | ||
jnthn | samcv: I mean, "we're totally missing this property" might be as simple as "oh, just tweak ucd2c.pl to read the file in and call it done" | ||
samcv | and i still need to figure out the distinctions between cjkNumeric and the other numeric properties and the accounting numeric ones. hah | ||
yeah | 21:47 | ||
jnthn | But some of the other issues will likely be...harder :S | ||
lizmat | m: my %var; /%var/ # jnthn, is this supposed to throw ? | ||
camelia | ( no output ) | ||
jnthn | m: say Any ~~ /%var/ | ||
camelia | rakudo-moar 2a09e9: OUTPUT«===SORRY!=== Error while compiling <tmp>Variable '%var' is not declared. Did you mean '&VAR'?at <tmp>:1------> say Any ~~ /⏏%var/» | ||
jnthn | m: my %var; say Any ~~ /%var/ | 21:48 | |
camelia | rakudo-moar 2a09e9: OUTPUT«Use of uninitialized value of type Any in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1Nil» | ||
jnthn | I think it doesn't even make it into the regex | ||
And then the hash check is runtime | |||
lucasb | IMO, /%h/ shouldn't throw, otherwise double string interpolation "%h" would also have to throw | ||
jnthn | lucasb: Don't see how that follows | 21:49 | |
Regexes are a totally different language to strings | |||
Not even parsed by the same codepath | |||
lucasb | sorry, correct. I keep thinking with my Perl 5 head :( | ||
jnthn | :) | ||
I thought that interpolation of hashes was reserved | 21:50 | ||
lucasb | my $x = /foo/; # should this create a regex object or try to match against $_ ? | ||
jnthn | So it might be that we could whine about it at compile time | ||
Certainly a regex object there | |||
lizmat | well, yes, and there is a test in t/spec/S05-interpolation/regex-in-variable.t that now doesn't pass anymore | ||
if I make m/./ not die | |||
jnthn | Yeah, well, it was apparently passing for the wrong reason | 21:51 | |
But we might be able to make a right reason :) | |||
lizmat | so the test as such was bogus, because it ok'd it on m/./ throwing rather than %var | ||
anyways, going to keep this for post release | |||
feels a bit like a can of worms that I don't want exploding in a new release :-) | 21:52 | ||
jnthn | Yeah | 21:53 | |
Jsut checked STD; it doesn't do a parse-time detect on that | 21:54 | ||
m: my %var; /<%var>/ | |||
camelia | ( no output ) | ||
jnthn | m: my %var; 'a' ~~ /<%var>/ | ||
camelia | ( no output ) | ||
jnthn | o.O | ||
jnthn quickly closes the can again :) | 21:55 | ||
ugexe | m: say (1,2).map({ LAST { say "DONE" } })[2]; # is this a bug? | 22:00 | |
camelia | rakudo-moar 2a09e9: OUTPUT«DONEDONENil» | ||
ugexe | m: say (1..10).map({ LAST { say "DONE" } })[5]; # those were bad numbers to demonstrate | ||
camelia | rakudo-moar 2a09e9: OUTPUT«Nil» | ||
ugexe | m: say (1..10).map({ LAST { say "DONE" } })[10]; | 22:01 | |
camelia | rakudo-moar 2a09e9: OUTPUT«DONEDONENil» | ||
lizmat | ugexe: feels to me the DONE should be done once | ||
looks like it is trying top vivify element 11 a second time ? | |||
ugexe: please RT | 22:02 | ||
ugexe | ok. should it also have fire on [9] though? | ||
m: say (1..10).map({ LAST { say "DONE" } })[9]; | |||
camelia | rakudo-moar 2a09e9: OUTPUT«Nil» | ||
lizmat | ugexe: no, because it can only know to fire LAST if the iterator returns InteratioEnd | 22:18 | |
and it won't know until it actually has tried to pull it | |||
for index 10 | |||
m: say (^Inf).grep({last if $_ > 5; LAST say "foo"; True})[^20] | 22:51 | ||
camelia | rakudo-moar 2a09e9: OUTPUT«(0 1 2 3 4 5 Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)» | ||
lizmat | m: my $i = (^Inf).grep({last if $_ > 0; True}).iterator; dd $i.pull-one; dd $i.pull-one # RT #130365 | 22:53 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130365 | ||
camelia | rakudo-moar 2a09e9: OUTPUT«01» | ||
lizmat | ^^^ push-exactly is not the issue here | ||
jnthn is exhausted and will do the MoarVM release tomorrow morning when he wakes up :) | 23:10 | ||
lizmat | good night, jnthn | 23:11 | |
jnthn | 'night | 23:14 | |
lizmat has a fix for RT #130365, but it doesn't fix this: | 23:18 | ||
m: my $i = (^Inf).grep({last if $_ > 0; True}).iterator; dd $i.pull-one; dd $i.pull-one | |||
camelia | rakudo-moar 2a09e9: OUTPUT«01» | ||
lizmat | that should have been 0 IterationEnd | ||
gfldex | I may need some sleep before I can plug the ENODOC of LAST in a .map. I also need to complain here about that fact so I don't forget until tomorrow. | 23:40 | |
good night :) | |||
dalek | kudo/nom: 7021861 | lizmat++ | src/core/Any-iterable-methods.pm: Preliminary fix for RT #130365 Remove the optimization for non-phaser blocks, because they can have a "last" in them. This will make grep slower for the general case. Will try to restore the optimization and have it work properly after the 2016.12 release. Meanwhile, this also makes some hyper/race tests TODO tests pass. |
23:47 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130365 | ||
lizmat | and with that, I wish #perl6-dev a good night! | 23:49 |