Zoffix | Something's off :/ looks like instead of smartmatching against the thunk it evals it and uses its value to then smartmatch against or something? | 00:00 | |
I'm surprised I didn't notice this warning when I first added filters to geth :| | |||
c: 2017.03 my @COMMIT-FILTERS where .all ~~ Callable && .all.name = sub foo ($) {} | 00:01 | ||
committable6 | Zoffix, ¦2017.03: «Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/x3JlIj9m08 line 1» | ||
Zoffix | c: 2017.03 my @COMMIT-FILTERS where .all ~~ Callable && .all.name; @COMMIT-FILTERS = sub foo ($) {} | ||
committable6 | Zoffix, ¦2017.03: «Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/O_Hh5z8K1u line 1» | ||
Geth | geth: e6b2acd527 | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6 Reword where clause to avoid bug(?) irclog.perlgeek.de/perl6-dev/2017-...i_14511369 |
00:03 | |
geth: ebaae3093f | (Zoffix Znet)++ | start Enable logging of output to file |
00:04 | ||
Zoffix | ... I thought it would be much more complicated to make it log stuff :| | ||
timotimo | :D | 00:05 | |
you don't have to supply any filename? | |||
Zoffix | no :) | 00:06 | |
. | 01:47 | ||
Well, this was a fun 1hr45m | |||
I fixed the where "bug" I mentioned above (RT#131239) and when I was done, I realized it's not a bug at all :} | |||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131239 | ||
Zoffix | At least now I know more about how where blocks are codegenned | ||
m: "/tmp/fooz".IO.spurt: "abc\nde\nfg\nz"; for "/tmp/fooz".IO.open { dd $_ } | 02:02 | ||
camelia | "abc" "de" "fg" "z" |
||
Zoffix | That's kinda surprising behaviour IMO, so I want to revert the adding of IO::Handle.iterator in github.com/rakudo/rakudo/commit/9d...3307471ce6 | 02:03 | |
Make it a private method or something | |||
Is nqp::concat() constant time and memory? Does it make the ropes stuff? | 02:45 | ||
As in, if I have 200MB $x and 1-char $y and I nqp::concat($x, "\n"); or concat $y... Will it still end up using 200MB/1-char and run for the same amount of time? | 02:47 | ||
m: use nqp; my $x = nqp::indexingoptimized("a" x 1000000); my $now = now; for ^1000_000 { $ = nqp::concat($x, "\n") }; say now - $now | 02:49 | ||
camelia | 0.63214277 | ||
Zoffix | m: use nqp; my $x = nqp::indexingoptimized("a" x 1); my $now = now; for ^1000_000 { $ = nqp::concat($x, "\n") }; say now - $now | ||
camelia | 0.642955 | ||
Zoffix | Based on this, I'll assume it's constant time... (did some memory tests locally, seems not to use more RAM than just strings alone) | ||
japhb | Zoffix: I think you'd notice a sudden change in runtime if you attempted to do certain operations on it that would imply rope-flattening. But otherwise yeah, I believe it does ropify things like 'x' | 02:56 | |
Zoffix | japhb: what sort of change? | 03:07 | |
MasterDuke_ | Zoffix: it looks like the MoarMV function operates on strands: src/strings/ops.c:444 | 03:14 | |
Geth | rakudo/nom: 50429b13a1 | (Zoffix Znet)++ | src/core/IO/Handle.pm [io grant] Make IO::Handle.put($x) about 5%-35% faster 1-char is about 35% faster and it goes down to 5% at 100_000 chars. At that point, I'm hitting some sort of system bottleneck; if I bench new method first, it ends up being 2x faster, if I bench old method first, it ends up being 2x faster... |
03:15 | |
Zoffix | ^ that's why I was asking. I'm just gonna stab in the dark and assume that works fine with very large strings... | 03:16 | |
MasterDuke_ | well, concat will complain if the resulting string would be longer than strings are allowed to be | 03:17 | |
Zoffix | Which is what? | 03:18 | |
MasterDuke_ | so if x is the max string size, it now can't be put'ted | ||
2**32 graphemes i think | |||
Zoffix | wtf | ||
m: say 2**32 / 1024/1024 | |||
camelia | 4096 | ||
Zoffix | So 4GB at least? | 03:19 | |
$ ./perl6 -e 'use nqp; my $x = ""; for ^1000 { $x = nqp::concat($x, nqp::indexingoptimized("x" x 1073741824)) }; dd $x.chars' | 03:21 | ||
Can't concatenate strings, required number of graphemes 4294967296 > max allowed of 4294967295 | |||
m: 4294967295.log(2).dd | 03:22 | ||
camelia | No such method 'dd' for invocant of type 'Num' in block <unit> at <tmp> line 1 |
||
Zoffix | m: dd 4294967295.log(2) | ||
camelia | 31.9999999996641e0 | ||
Zoffix | yup | ||
MasterDuke_ | yeah. `MVMuint32 num_graphs;` | ||
Zoffix | Is that an artificial limit? | ||
4GB feels paltry for a 100-year language | 03:23 | ||
MasterDuke_ | i don't like it either, i think i created an RT about it a while ago but it was rejected | ||
i don't know how hard it would be to make that an MVMuint64. there is some code that assumes it's 32bits (like that error you just triggered) | 03:24 | ||
hm, maybe i never filed a ticket, just chatted about it | 03:26 | ||
Zoffix | I see in &say we have $str = nqp::concat($str,nqp::unbox_s(.gist)) for @args; | 03:27 | |
I guess I can do the same in IO::Handle.say, limits be damnged | 03:28 | ||
MasterDuke_ | m: my $a = "a" x 2**30; my $b = $a x 2**30; say($a, $b) | 03:30 | |
camelia | Can't repeat string, required number of graphemes 1152921504606846976 > max allowed of 4294967295 in block <unit> at <tmp> line 1 |
||
Zoffix leaves IO::Handle.say alone | 03:31 | ||
MasterDuke_ | i'd call that LTA | 03:32 | |
Zoffix | What exactly? | ||
MasterDuke_ | that i can't say to valid strings. i'm not explicitly concatenating them... | 03:33 | |
Zoffix | That's not a real program though. | 03:34 | |
MasterDuke_ | i didn't say it was a release blocker | ||
Zoffix | m: my $a = "a" x 2**30; my $b = $a x 2**30; say($a xx 1000) | 03:37 | |
camelia | Can't repeat string, required number of graphemes 1152921504606846976 > max allowed of 4294967295 in block <unit> at <tmp> line 1 |
||
Zoffix | m: my $a = "a" x 2**30; my $b = $a x 2**30; say($a xx 1000000) | ||
camelia | Can't repeat string, required number of graphemes 1152921504606846976 > max allowed of 4294967295 in block <unit> at <tmp> line 1 |
||
Zoffix | m: dd 1152921504606846976.log: 2 | ||
camelia | 60e0 | ||
Zoffix | Ah, right | ||
MasterDuke_ | it's a MVMuint64 | 03:38 | |
fyi to anyone and everyone, github.com/rakudo/rakudo/pull/1073 has been updated with a typed exception | 03:42 | ||
Geth | rakudo/nom: 204ea59b45 | (Zoffix Znet)++ | src/core/io_operators.pm [io grant] Make &say(**@args) 70%− faster - Measured with $*OUT set to a file handle opened for file writing - 70% faster for 2-arg calls and boost gets smaller the more args we have, with 12-arg version being 35% faster |
03:53 | |
rakudo/nom: 6d7fc8e694 | (Zoffix Znet)++ | src/core/io_operators.pm [io grant] Make &put(**@args) up to 70% faster - Measured with $*OUT set to a file handle opened for file writing - 70% faster for 2-arg calls and boost gets smaller the more args we have |
04:07 | ||
Zoffix | .tell nine Inline::Perl5's install is busted: gist.github.com/zoffixznet/487bcec...38b1294528 At first glance, looks like some files are missing from `provides` META section. Like these ones: github.com/niner/Inline-Perl5/comm...1b2c965fd2 | 04:20 | |
yoleaux | Zoffix: I'll pass your message to nine. | ||
Zoffix | .tell lizmat looks like Weekly-worthy material: szabgab.com/blog-engine-in-perl6.html | 04:22 | |
yoleaux | Zoffix: I'll pass your message to lizmat. | ||
Geth | rakudo/nom: 76af536715 | (Zoffix Znet)++ | src/core/IO/Handle.pm [io grant] Make 1-arg IO::Handle.say up to 2x faster - Speedup is lower the bigger the thing to write is - Was gonna use this method to simplify 1-arg &say and make it a hair faster, but there's a (possibly wrongish) test blocking such a change. |
05:34 | |
Zoffix | :/ | 05:41 | |
Removing IO::Handle.iterator busts a lot of tests it seems | |||
Ah, it's github.com/rakudo/rakudo/commit/6b...c35de163f8 | 05:46 | ||
.ask lizmat how come we have IO::Handle.iterator? It makes stuff like `for $handle { … }` and `$handle.map` auto-magically iterate over lines from the handle. IMO that's too surprising and I want to remove it. Is there a reason to keep .iterator that I don't know of? | 05:48 | ||
yoleaux | Zoffix: I'll pass your message to lizmat. | ||
Geth | roast: 1ed18b4319 | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Add test for .perl.EVAL roundtrip with combiners RT#126935: rt.perl.org/Ticket/Display.html?id=126935 |
05:59 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126935 | ||
Zoffix | I now have RSI thanks to Shadow Warrior 2 game -_- | 06:01 | |
Guess I should stop hacking for a bit and... take a nap | |||
[Tux] | This is Rakudo version 2017.04.3-132-g76af53671 built on MoarVM version 2017.04-44-gf0db8822 | 06:21 | |
csv-ip5xs 3.216 | |||
test 13.546 | |||
test-t 4.616 - 4.669 | |||
csv-parser 13.682 | |||
Zoffix now has now lost bearings on what bench numbers are good :/ | 06:22 | ||
[Tux] | this is the new timing with test-t *not* using Slang::Tuxic. The first tests showed 4.436 | ||
Zoffix: 4.616 is the runtime in seconds to parse 10000 lines of CSV, so the lower the better | 06:23 | ||
perl5 + Text::CSV_XS uses a mere 0.033 seconds | |||
Zoffix | Yeah, but a day ago it was around 5.2 today's changes might've made it 5.1 or 5.3, but due to the using Slang::Tuxic change I've no idea what the new numbers mean | 06:24 | |
Why was it removed anyway? Isn't it just a bench script and isn't used for any other purpose? | 06:25 | ||
it being "use Slang::Tuxic" in test-t | |||
[Tux] | ah: Text::CSV uses Slang::Tuxic, but that is precompiled. The calling script is not precompiled, and lizmat and timotime decided it was "cleaner" to test Text::CSV without the overhead of Slang::Tuxic in the calling script, as they expect most users won't use it | 06:26 | |
Zoffix | ok | ||
[Tux] | as a slang in the calling script causes about .5 seconds overhead, they wanted it out | ||
Zoffix | buggable: speed | 06:27 | |
buggable | Zoffix, ▅▅▄▅▄▅█▆▄▄▅▅▅▅▅▅▆▅▅█▅▇▆▆▆▆▇▆▅▅▆▅▄▄▅▅▅█▆▆▅▆▇▇▅↓↓↓↓▁ data for 2017-04-12–2017-05-01; range: 4.400s–5.479s; 11% faster | ||
Zoffix | heh | ||
[Tux] still thinks this is unfair :) | |||
samcv | faster? | 06:30 | |
reading | |||
oh interesting | 06:31 | ||
Zoffix | ZOFFLOP: t/spec/S11-modules/nested.t | 06:42 | |
Geth | rakudo/nom: 134efd8393 | (Zoffix Znet)++ | src/core/IO/Path.pm [io grant] Fix .perl for IO::Path and subclasses Fixes RT#131185: rt.perl.org/Ticket/Display.html?id=131185 - Coercer doesn't take any named args; use .new() instead - Always include $!CWD. Fixes failure to roundtrip Win32 paths that start with a slash - Use right type for subclasses. Given them their own .perl, since they don't need to include $!SPEC |
06:53 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131185 | ||
roast: 704210c519 | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Test we can roundtrip IO::Path.perl RT#131185: rt.perl.org/Ticket/Display.html?id=131185 Rakudo fix: github.com/rakudo/rakudo/commit/134efd8393 |
06:54 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131185 | ||
Geth | rakudo/nom: 69320e7fa8 | (Zoffix Znet)++ | src/core/IO/Path.pm [io grant] Fix .IO on :U of IO::Path subclasses Since IO::Path.IO is for :D, we end up in Cool:U multi that gives IO::Path and not a subclass. |
07:01 | |
roast: 2689eb1e87 | (Zoffix Znet)++ | S32-io/io-path.t [io grant] Test .IO on :U of IO::Path subclasses Rakudo fix: github.com/rakudo/rakudo/commit/69320e7fa8 |
|||
nine | I've just read through the comments on the RPerl grant proposal. Kinda depressing read. | 07:44 | |
yoleaux | 30 Apr 2017 21:04Z <japhb> nine: With a Rakudo built from scratch a few minutes ago, I am unable to install Inline::Perl5 using zef, despite tests passing. Error: ===> Install [FAIL] for Inline::Perl5:ver('0.26'):auth('github:niner'): ===SORRY!=== Could not find Inline::Language::ObjectKeeper at line 4 in: ... | ||
04:20Z <Zoffix> nine: Inline::Perl5's install is busted: gist.github.com/zoffixznet/487bcec...38b1294528 At first glance, looks like some files are missing from `provides` META section. Like these ones: github.com/niner/Inline-Perl5/comm...1b2c965fd2 | |||
lizmat | Files=1192, Tests=56874, 210 wallclock secs (12.28 usr 4.85 sys + 1230.62 cusr 124.90 csys = 1372.65 CPU) | 07:47 | |
yoleaux | 04:22Z <Zoffix> lizmat: looks like Weekly-worthy material: szabgab.com/blog-engine-in-perl6.html | ||
05:48Z <Zoffix> lizmat: how come we have IO::Handle.iterator? It makes stuff like `for $handle { … }` and `$handle.map` auto-magically iterate over lines from the handle. IMO that's too surprising and I want to remove it. Is there a reason to keep .iterator that I don't know of? | |||
lizmat | m: dd Seq.new(42.iterator) | 07:49 | |
camelia | (42,).Seq | ||
lizmat | Zoffix: if IO::Handle doesn't have an iterator method, it will just create an iterator with one element in it | ||
Zoffix | lizmat: is that bad? | 07:50 | |
Automatically turning up with a Seq of lines has the automagical feel of Perl 5 to it... | 07:51 | ||
lizmat | well, then there's the thing about automatically closing it when the iterator exhausts | 07:52 | |
the commit message states it made things 10% faster | 07:53 | ||
Zoffix | lizmat: I don't think that's related to adding an IO::Handle.iterator, but rather using an iterator to power IO::Handle.lines | ||
s/method iterator/method !LINES-ITERATOR/; would still have the same perf boost, wouldn't it? | |||
lizmat | probably because it can bypass .get if it knows it is =:= IO::Handle | ||
Zoffix: perhaps, you're in charge in that area now :-) | 07:54 | ||
Zoffix | OK | ||
nine | Looking at that Inline::Perl5 failure, it's a good thing that I have not declared a new version. Doesn't help at all though since our installers don't care about declared versions and just install git master :/ | 07:57 | |
samcv | who runs the hack.p6c.org server? i need somebody to install fuse for me | 08:18 | |
so this appimage will actually be created which has every single nonfailing module in it :D | |||
at least theoretically it should. no reason it shouldn't | |||
Zoffix | how to install | 08:19 | |
samcv | debian? | ||
Zoffix | Yeah | 08:20 | |
jesse | |||
samcv | i think it's just called fuse | ||
Zoffix | samcv: done. I think | 08:23 | |
samcv | ok it probably works. will find out when it finishes trying to install all modules again | 08:24 | |
since i started it a few mins ago and it clears the files | |||
Geth | nqp/master: 4 commits pushed by (Pawel Murias)++
|
09:46 | |
dogbert17 | lizmat: are you around? | 10:08 | |
check this out | |||
m: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; $i++; $set{$i} = True; $i--; $set{$i} = True; dd $set; # Heh ? | 10:09 | ||
camelia | SetHash $set = SetHash.new(1001,1001) | ||
Geth | rakudo/nom: 3829488f14 | (Stefan Seifert)++ | 2 files Speed up module loading a bit by persisting source checksum There's no need for calculating the checksum of an installed source file over and over, when it can change only on installation. So instead, we calculate it at install time and record it in the short-name lookup file where we already store the name of the source file. With this change, we no longer read any source file when loading an installed module (dependencies were already covered). |
11:01 | |
lizmat | dogbert17: care to rakudobug it ? | 11:02 | |
m: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; $i++; dd $set # the actual problem | 11:05 | ||
camelia | SetHash $set = SetHash.new(1002) | ||
lizmat | m: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | ||
camelia | SetHash $set = SetHash.new(1001) SetHash $set = SetHash.new(1002) |
||
dogbert17 | lizmat: I'll rakudobug it, give me a few minutes :) | 11:09 | |
lizmat | dogbert17: I've got a fix already | ||
so, whatever you feel ok with | |||
dogbert17 | what would be a good title | 11:11 | |
you're quicl as lightning :) | 11:12 | ||
*quick | |||
lizmat | well, I happened to be working a lot in that area recently, so I had a pretty good idea of where to look | 11:13 | |
dogbert17 | any title suggestion? | 11:14 | |
lizmat | eh... SetHash retains container rather than object | ||
dogbert17 | mail sent to rakudobug ... let's hope it shows up | 11:16 | |
that part is a bit like hit and miss | 11:17 | ||
lizmat | spectest is ok | 11:18 | |
will wait with commit until we have an RT id | |||
dogbert17 | cool, do you think the SetHash was the only type affected? | 11:19 | |
yay, RT #131240 | 11:24 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131240 | ||
Geth | rakudo/nom: 551b8a69e0 | (Elizabeth Mattijsen)++ | src/core/SetHash.pm Fix for RT #131240, dogbert17++ |
11:28 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131240 | ||
lizmat | dogbert17: yeah, think it was the only type affected | 11:37 | |
dogbert17 | cool, do we need a test? | ||
lizmat | in any case, I'm reworking some Bag/Mix internals at the moment | ||
I replied to the RT mail with the message "tests needed " :-) | |||
dogbert17 | I guess that the example could be turned into a test quite easily, I could do that if you tell me in what file to put it :) | 11:38 | |
lizmat | ls t/spec/*/sethash*.t | 11:39 | |
t/spec/S02-types/sethash.t | |||
dogbert17 | will fix | ||
lizmat | dogbert17++ | ||
dogbert17 | lizmat: does this look ok ? gist.github.com/dogbert17/1641b0e6...efe09067ed | 11:55 | |
lizmat | well, that's also testing .pick | 11:56 | |
dogbert17 | well I need to get the key somehow | 11:57 | |
if I change the last line to 'is-deeply $set, SetHash.new(1001), "SetHash retains object, not container";' | 12:01 | ||
lizmat | ok $set{1001} | 12:03 | |
should do the trick I think | |||
Geth | roast: dogbert17++ created pull request #264: Test for RT 131240 - SetHash retains object, not container |
12:07 | |
roast: 0e018d48b5 | (Jan-Olof Hendig)++ | S02-types/sethash.t Test for RT 131240 - SetHash retains object, not container |
12:08 | ||
roast: 8d17fbdda0 | lizmat++ (committed using GitHub Web editor) | S02-types/sethash.t Merge pull request #264 from dogbert17/rt-131240 Test for RT 131240 - SetHash retains object, not container |
|||
dogbert17 | lizmat: bug is now marked as resolved :) | 12:12 | |
lizmat | thanks! | ||
dogbert17 | the code I had, which uncovered the problem, now works again | 12:13 | |
lizmat | cool, afaics it wasn't a recent breakage, or was it ? | 12:14 | |
dogbert17 | well, it seemed to work in 2016-12 at least, perhaps AlexDaniel can figure out when the breakage occured | 12:15 | |
AlexDaniel | hello | 12:16 | |
dogbert17 | hi | ||
AlexDaniel | e: gist.githubusercontent.com/dogbert...6/test.pl6 | ||
lizmat | star: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | ||
evalable6 | AlexDaniel, Successfully fetched the code from the provided URL. | ||
camelia | SetHash $set = SetHash.new(1001) SetHash $set = SetHash.new(1001) |
||
evalable6 | (exit code 1) 04===SORRY!04=== Error while compiling /tmp/eGFgxgrPmT Undeclared routine: is used at line 7 |
||
dogbert17 | hmm | 12:17 | |
AlexDaniel | bisect: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | ||
bisectable6 | AlexDaniel, On both starting points (old=2015.12 new=551b8a6) the exit code is 0 and the output is identical as well | ||
AlexDaniel, Output on both points: «SetHash $set = SetHash.new(1001)SetHash $set = SetHash.new(1001)» | |||
AlexDaniel | right, it's broken in 2017.04.3 | 12:18 | |
bisect: new=2017.04.3 my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.12 new=2017.04.3) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/3766b2535b4a6c5e80...06f0dc9451 | |||
AlexDaniel, (2017-04-07) github.com/rakudo/rakudo/commit/a4...a9bfdaf6a2 | |||
AlexDaniel | and then it was fixed again I guess? | ||
bisect: old=2017.04.3 my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2017.04.3 new=551b8a6) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/26346613cb371e893f...f5bb6ccd0f | |||
AlexDaniel, (2017-05-01) github.com/rakudo/rakudo/commit/55...cc6881a7d6 | |||
AlexDaniel | dogbert17: but that's not what you were asking, right? :) | 12:19 | |
dogbert17 | Well, the code seemed to work in 2016-12 (which I have) but not earlier today so we're interested in when the breakage occured | 12:20 | |
AlexDaniel | c: a4b30dc7d14a56b^,a4b30dc7d14a56b my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | 12:22 | |
committable6 | AlexDaniel, ¦a4b30dc7d14a56b^: «SetHash $set = SetHash.new(1001)SetHash $set = SetHash.new(1001)» ¦a4b30dc: «SetHash $set = SetHash.new(1001)SetHash $set = SetHash.new(1002)» | ||
AlexDaniel | dogbert17: you mean this? ↑ | ||
Geth | rakudo/nom: 451a238070 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm Make Baggy.EXISTS-KEY about 8% faster Not much, but for such essential functionality worthwhile. |
||
dogbert17 | yeah | 12:23 | |
m: my SetHash $set = SetHash.new; my $i = 1001; $set{$i} = True; dd $set; $i++; dd $set # more clearly | 12:24 | ||
camelia | SetHash $set = SetHash.new(1001) SetHash $set = SetHash.new(1001) |
||
dogbert17 | so it was the commit on April 7th? | 12:26 | |
btw, can you amend/update a pull request which has already been merged? | 12:27 | ||
there is a moronic typo in the PR I sent, i.e. in the code comment I wrote 130240 instead of 131240 | 12:29 | ||
AlexDaniel | dogbert17: yes, you will have to force pushe it | 12:31 | |
push* | |||
but it's ok if it's in your own fork | |||
pmurias | can I rerun travis tests for a MoarVM PR? I fixed the nqp tests that where failing? | 12:35 | |
Geth | star: c5a440681d | (Steve Mynott)++ | docs/announce/2017.04.md Doc MoarVM version correctly. Add https. |
12:36 | |
star: 4b74d71e6b | (Steve Mynott)++ | modules/doc bump doc |
12:42 | ||
[Coke] | I think you can re-run any set of travis tests if you're looking at the results. | 12:46 | |
timotimo | dogbert17: if the PR has already been merged, you'll update the UI on github and maybe it'll re-open it, but it won't change what's in the master branch | 12:48 | |
Geth | star: a05b933581 | (Steve Mynott)++ | README bump Star version in README and stress JVM build is experimental |
12:51 | |
rakudo/nom: eb1ce4142f | (Elizabeth Mattijsen)++ | 2 files Scrape off the tiniest bit on Hash.EXISTS-KEY Around 1%, but again, maybe worthwhile for many applications. |
13:10 | ||
lizmat | argh, what is the URL for test-t data again ? | 13:20 | |
looking at the improvement made in 2016 | |||
*for | 13:21 | ||
timotimo | huggable: csv | 13:23 | |
huggable | timotimo, github.com/Tux/CSV (see `bench csv` for how to run bench) | ||
timotimo | no | ||
buggable: csv | |||
buggable: speed | |||
buggable | timotimo, ▅▅▄▅▄▅█▆▄▄▅▅▅▅▅▅▆▅▅█▅▇▆▆▆▆▇▆▅▅▆▅▄▄▅▅▅█▆▆▅▆▇▇▅↓↓↓↓▁ data for 2017-04-12–2017-05-01; range: 4.400s–5.479s; 11% faster | ||
timotimo | huggable: speed | ||
huggable | timotimo, tux.nl/Talks/CSV6/speed4.html | ||
timotimo | there it is | ||
lizmat | whee | 13:24 | |
AlexDaniel | timotimo: so… what caused it? | 13:36 | |
lizmat | AlexDaniel: removing 'use Slang::Tuxic' from the test script | 13:37 | |
as we want to test Text::CSV for "normal" users (as in the ones that don't have Tux's coding preferences) | 13:38 | ||
timotimo | what caused what? | 13:39 | |
lizmat | I felt we could/should make test-t.pl be generic Perl 6 code without Slang::Tuxic | ||
timotimo | oh, that | ||
Zoffix | AlexDaniel: the "11% faster" are really "5% slower"; we just removed a specialty module most users wouldn't be using, so that the numbers compared to other benches are more fair | ||
And my best guess for why slower is we fixed bugs in string/regex/IO stuff | 13:40 | ||
lizmat | m: say now - BEGIN now; sub prefix:<!>(\a) { a } | 13:42 | |
camelia | 0.0149347 | ||
lizmat | m: say now - BEGIN now; sub postfix:<!>(\a) { a } # rewrite grammar | ||
camelia | 0.28631672 | ||
lizmat | m: my $b = <a b c>.BagHash; $_ = -1 for $b.values; dd $b # yikes | 13:55 | |
camelia | BagHash $b = ("b"=>-1,"a"=>-1,"c"=>-1).BagHash | ||
lizmat | m: my $b = <a b c>.BagHash; $_ = 0 for $b.values; dd $b # yikes | ||
camelia | BagHash $b = ("b"=>0,"a"=>0,"c"=>0).BagHash | ||
lizmat is looking at that | |||
Geth | rakudo/nom: 1192a03baa | (Zoffix Znet)++ | src/core/IO/ArgFiles.pm Revert "Fix crash on ^D to $*IN when reading with IO::ArgFiles" This reverts commit 4b8fd4a4f9c57ca60bf63d2cdb09a450f62d0142. |
14:06 | |
rakudo/nom: 7a45cba45a | (Zoffix Znet)++ | src/core/IO/ArgFiles.pm Revert "Wean IO::ArgFiles away from IO::Handle.lines(:close)" This reverts commit 6be395e310104f91f06fc6424a175dc35de163f8. |
|||
rakudo/nom: eb8d006e64 | (Zoffix Znet)++ | src/core/IO/Handle.pm [io grant] Make IO::Handle.iterator a private lines iterator Fixes unwanted automagical behaviour of for $fh { ... } looping over the .lines from the handle instead of the handle itself. Discussion: irclog.perlgeek.de/perl6-dev/2017-...i_14512345 Previous two revert commits are part of the work in this commit and are just reverting IO::ArgFiles back to using .lines instead of no-longer-available .iterator method. It was done mostly because `:close` arg on IO::Handle.lines was going away, but it stayewd. |
|||
roast: 40353f13ef | (Zoffix Znet)++ | S32-io/io-handle.t [io grant] Test for IO::Handle:D { ... } loops over handle ...and not its .lines. Rakudo fix: github.com/rakudo/rakudo/commit/eb8d006e64 |
|||
Zoffix | Perl developer survey is out: blog.builtinperl.com/post/perl-deve...s---part-1 | 14:25 | |
Only 16% of survey answerers are new (within last 5 years) Perl 5 programmers | |||
There's no real useful data for Perl 6 tho. Was just 1 question about "trying Perl 6" and from "what other langs you use" 4% of responders that use more than just Perl 5 listed Perl 6 as other lang | 14:27 | ||
MasterDuke_ | well, 46% have tried Perl 6, that's good | 14:32 | |
Zoffix | Even the "trying Perl 6" data is bad actually... It doesn't specify any time periods. "Yeah, I tried Perl 6 10 years ago. It was unfinished and sucked" | ||
Zoffix wants a Cat | 14:48 | ||
m: "/tmp/foo2".IO.spurt: "abc\ndefg\nhij"; my $*DEFAULT-READ-ELEMS = 1; dd "/tmp/foo2".IO.open.comb: /\S+/ | |||
camelia | ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j").Seq | ||
Zoffix | m: "/tmp/foo2".IO.spurt: "abc\ndefg\nhij"; my $*DEFAULT-READ-ELEMS = 2; dd "/tmp/foo2".IO.open.comb: /\S+/ | ||
camelia | ("ab", "c", "de", "fg", "h", "ij").Seq | ||
Zoffix | The same bug exists with IO::Handle.split as well. The boundary between reads screws stuff up. | 14:49 | |
lizmat | hmmm... | 14:50 | |
yeah, a Cat would be nice | 14:51 | ||
please rakudobug :-) | |||
Zoffix | The Cat? | 14:52 | |
lizmat | yeah, that too, it's been loooong overdue :-) | ||
Zoffix | I was gonna fix the .comb/.split stuff as part of the grant | 14:53 | |
Well, the original issue is not all the features of Str.split/(and I think .comb) are implemented | 14:54 | ||
lizmat | well, there's always .slurp.split :-) | 14:56 | |
Geth | rakudo/nom: 5ec8a4644e | (Elizabeth Mattijsen)++ | src/core/Baggy.pm Streamline Baggy.AT-KEY/DELETE-KEY a bit |
14:57 | |
Zoffix tries a hand at making a Cat | 15:10 | ||
1 female cat. Check: i.imgur.com/sNOLIvn.jpg | |||
.... wonder what else I'll need. | |||
timotimo | is that your cat? | 15:11 | |
Zoffix | Yeah | ||
timotimo | cool pattern | ||
Zoffix | Yup. Got a black heart on her right shoulder: i.imgur.com/I0sEZk7.jpg | 15:14 | |
ZofBot: black heart of doom from killer cat! | |||
ZofBot | Zoffix, Files=1192, Tests=56874, 210 wallclock secs (12.28 usr 4.85 sys + 1230.62 cusr 124.90 csys = 1372.65 CPU) | ||
AlexDaniel | amazing answer | 15:24 | |
Zoffix | baaah | 15:27 | |
The gist/put not using .Str/.gist on Str types is already affecting Cat :| | |||
'cause I figure it should be an Str and be able to be used anywhere a Str can be used | |||
timotimo | Cat must be a subtype of Str? | ||
Zoffix | Not must, but it's just a lazy Str... not making it a subclass is silly | 15:28 | |
jnthn | Cat should be Stringy, but not Str | ||
Zoffix | Ah, OK | ||
jnthn | (That's the reason we added the Stringy role) | 15:29 | |
(Or at least, so far as I remember :)) | |||
Zoffix | :) | ||
jnthn | I think gist/put on Str should be able to assume they have a Str they can just unbox | 15:30 | |
If somebody writes a subclass that isn't OK with that, then I call Liskov. :) | |||
Zoffix | They can just add more candidates to handle their subclass, I think. | ||
jnthn | That also :) | ||
stmuk_ | rakudo.org/2017/05/01/announce-raku...e-2017-04/ | 15:35 | |
Zoffix | wooo \o/ | ||
stmuk_++ | |||
stmuk_ | nice cat | 15:36 | |
BTW | |||
MasterDuke_ | stmuk_++, but minor typo 'In particular This release' | 15:37 | |
stmuk_ | grrr | ||
fixed on the website anyway! | 15:38 | ||
Zoffix | stmuk_: FWIW, there was another upgrade notice for lexical require: rakudo.org/2017/03/18/lexical-requi...rade-info/ | 15:39 | |
(to go with the 3 IO ones you listed) | |||
stmuk_ | goo.gl/eFaSXg | 15:40 | |
Zoffix | So... where do I go to get papers on lazy string stuff? | 15:44 | |
uuu github.com/papers-we-love/papers-we-love | |||
MasterDuke_ | m: say q| '$a' | ~~ m/<<'$a'>>/ | 15:46 | |
camelia | False | ||
MasterDuke_ | m: say q| 'a' | ~~ m/<<'a'>>/ | 15:47 | |
camelia | 「a」 | ||
Zoffix | That's correct output. | ||
timotimo | stmuk_++ | 15:48 | |
MasterDuke_ | huh. how's that? | ||
Zoffix | `'` and `$` do not have a << boundary between them, so there's no match. The single quotes in the regex just quote the string, they're not the literal quotes | ||
MasterDuke_ | yeah, i'm just using them in the regex to quote the literal, i don't want to match them | ||
Zoffix | The << is a boundary between \W and \w, not \s and \S | 15:49 | |
MasterDuke_ | oh, right | ||
Zoffix | s/, not//; # wouldn't have matched anyway due to quotes | 15:50 | |
s/, not.+//; # wouldn't have matched anyway due to quotes | |||
|Tux| | This is Rakudo version 2017.04.3-142-g5ec8a4644 built on MoarVM version 2017.04-44-gf0db8822 | 15:51 | |
csv-ip5xs 2.977 | |||
test 12.963 | |||
test-t 4.376 - 4.381 | |||
csv-parser 12.538 | |||
Geth | rakudo/nom: 1f80dba186 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm Oops, forgot vi hint for new R:Q file |
16:17 | |
Zoffix | ZofBot: Finite-State Reduplication in One-Level Prosodic Morphology | 16:41 | |
ZofBot | Zoffix, Note, though, that if you remap a section of "buf32" memory to be "buf8", you'll have to multiply all your positions by 4 | ||
Zoffix | noted. | 16:42 | |
lizmat | wish we could have ANI semantics for Perl 6 www.ybrikman.com/writing/2014/04/09...that-will/ | 17:08 | |
Zoffix | "The unusual syntax is tough to parse, and the language seems dead".... or maybe not :P | 17:10 | |
lizmat | well, that's basically how I envisioned true multiprocessing | 17:13 | |
a long time ago | |||
let the system figure out what can be done in parallel :-) | |||
Zoffix | :) | 17:14 | |
The "Dependent types" section is kinda like our subsets, if you remove the "compile time" prereq, since some values aren't known at compile time... | |||
m: -> UInt {}(-1); say "runtime" | 17:15 | ||
camelia | Constraint type check failed in binding to parameter '<anon>'; expected UInt but got Int (-1) in block <unit> at <tmp> line 1 |
||
MasterDuke_ | yeah, thought that too | ||
Zoffix | m: say "runtime"; -> UInt {}(-1); | ||
camelia | runtime Constraint type check failed in binding to parameter '<anon>'; expected UInt but got Int (-1) in block <unit> at <tmp> line 1 |
||
Zoffix | yeah | ||
m: say "runtime"; BEGIN -> UInt {}(-1); | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> An exception occurred while evaluating a BEGIN at <tmp>:1 Exception details: Constraint type check failed in binding to parameter '<anon>'; expected UInt but got Int (-1) in code at <tmp> li… |
||
Zoffix | hehe | ||
"The sentence is_string characterizes valid string models and is defined as is_string def = ∀x, y, z.(∨a∈ΣLa(x))∧∧a6=b∈Σ(La(x) → ¬Lb(x))∧(S(x, y)∧S(x, z) → y = z)∧(first(x)∧first(y) → x = y). It is easy to see that a structure satisfying is_string property uniquely characterizes a string" | 17:37 | ||
I think I'm done hunting for CS papers and will just wing it :P | |||
timotimo | :D :D | 17:38 | |
lizmat | hehe | 17:41 | |
Geth | rakudo/nom: c1bd844e27 | (Elizabeth Mattijsen)++ | 2 files Fix for RT #131241 This actually also allows for: for $b.values { $_ = 0; # remove from BagHash $_ = 42; # reinstate } ... (6 more lines) |
||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131241 | ||
MasterDuke_ | fyi to anyone and everyone, github.com/rakudo/rakudo/pull/1073 has been updated with a typed exception and some adapted tests from roast. if/when this is merged i'll change the roast tests to just look for the correct type of Exception | 17:45 | |
Geth | rakudo/nom: 0e0ac2fb8c | (Elizabeth Mattijsen)++ | src/core/MixHash.pm Oops, fix a copy-pasto For MixHashes we accept any HLL numeric value that is not 0. |
17:51 | |
rakudo/nom: 7 commits pushed by MasterDuke17++, (Daniel Green)++, lizmat++
|
|||
lizmat | MasterDuke_++ | 17:52 | |
MasterDuke_ | lizmat++, thanks | 17:54 | |
TimToady finally back to civilization, but now has an infestation of grandkids :) | 18:06 | ||
Zoffix | :O | ||
:o | |||
lizmat | .oO( takes a while to build an infestation of those :) |
18:23 | |
m: my $b = <a b c>.BagHash; .value = -1 for $b.pairs; dd $b # RT #131241 goes deeper :-( | 18:24 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131241 | ||
camelia | BagHash $b = ("b"=>-1,"a"=>-1,"c"=>-1).BagHash | ||
lizmat | m: my $b = <a b c>.BagHash; for $b.kv -> \k, \v { v = -1 }; dd $b # much deeper :-( | 18:25 | |
camelia | BagHash $b = ("b"=>-1,"a"=>-1,"c"=>-1).BagHash | ||
lizmat | but that will be for tomorrow | 18:29 | |
dinner& | 18:53 | ||
Zoffix | Looks like The Curse of 2017.04 Releases is still alive and is now affecting Rakudo Star releases :P twitter.com/mike_sanderson/status/...4922962944 | 19:13 | |
lizmat | *sigh* so should I mention the Rakudo Star release in the P6W or not ? | 19:37 | |
Zoffix | lizmat: mention it and say there's a problem and people should keep an eye on updated version? | 19:39 | |
lizmat | so does it prevent users to use R* on Windows completely, or just when they want to install in a non-standard location ? | ||
TimToady | perl6.bat starts: @ "C:\Users\steve\temp\rakudo-star-2017.04\install\bin\moar" | 19:40 | |
which is already a bit non-standandard :) | 19:41 | ||
TimToady likes "non-standardard" | |||
sort of self-descriptive... | |||
lizmat | ah, ok, so basically useless for Win users atm | 19:42 | |
Zoffix | Or... we could launch a marketing campaign: Personalized Rakudo Star distribution. "Share a Perl 6 with... `steve`": s-media-cache-ak0.pinimg.com/origi...45d007.jpg | 19:43 | |
lizmat | :-) | 19:44 | |
timotimo | you are our star | 19:48 | |
Zoffix | :) | 19:49 | |
AlexDaniel | “There are 399,502 people in the U.S. with the first name Steve.“ | 19:59 | |
timotimo | that's a nice little user base right there | 20:08 | |
Zoffix | m: dd <42.1>.Numeric.^name | 20:19 | |
camelia | "Rat" | ||
Zoffix | Seems if we make allomorphs do an empty role, say `NumericStr`, we can reduce the number of candidates and fix the ambiguity thing too | 20:20 | |
m: say ([X] <Int Num Rational Complex> xx 2).combinations(2).elems | 20:22 | ||
camelia | 120 | ||
Zoffix | m: $ = <42> cmp <1.2> | 20:23 | |
camelia | Ambiguous call to 'infix:<cmp>'; these signatures all match: :(Int:D \a, Rational:D \b) :(Str:D \a, Str:D \b --> Order:D) in block <unit> at <tmp> line 1 |
||
Zoffix | m: $ = <42> eqv <1.2> | ||
camelia | Ambiguous call to 'infix:<eqv>'; these signatures all match: :(Numeric:D \a, Numeric:D \b) :(Str:D \a, Str:D \b) in block <unit> at <tmp> line 1 |
||
Zoffix | That ambiguity thing I mean ^ | ||
And those aren't really the right candidates | |||
`is default` isn't working for me :/ gist.github.com/zoffixznet/93493f6...120d2e5c77 | 20:45 | ||
Full diff: gist.github.com/zoffixznet/f29917b...68271f192d | 20:48 | ||
Ah, I'm blind. The rational candidate also has is default on it -_- | 20:50 | ||
is there `is default is default`? If two ambiguious candidates, use the one with two defaults | |||
m: multi infix:<foo> (Str:D, Str:D) is default {}; multi infix:<foo> (Int:D, Int:D) is default {}; <1> foo <2> | 20:53 | ||
camelia | Ambiguous call to 'infix:<foo>'; these signatures all match: :(Str:D $, Str:D $) :(Int:D $, Int:D $) in block <unit> at <tmp> line 1 |
||
Zoffix | Like, I need for it to pick up the `Int` candidate. | ||
But Str candidate still needs is default :/ | 20:54 | ||
Ah | 20:58 | ||
m: dd ([X] <Num Int Rat Complex> xx 2).elems | |||
camelia | 16 | ||
Zoffix | There's only 16 candidates. My math that gave me 120 was wrong :) | ||
m: dd IntStr.new(42, 'x') eqv <42> | 21:13 | ||
camelia | Bool::True | ||
samcv | is defaulter | 21:16 | |
heh. | |||
Zoffix | :) | ||
samcv | then we will have defaultest | ||
for the most default of the defaults | 21:17 | ||
geekosaur | defaultererester | 21:19 | |
samcv | or is default(3) | ||
i mean would it be possible to give them numbers? | |||
Zoffix | uuhhh... a bunch of failures in roast :/ wonder how many are due to my change | ||
Zoffix reset --hard's and recompiles | |||
teh failures: gist.github.com/zoffixznet/1b8e250...24d6e525db | 21:20 | ||
lizmat | the baghash/mixhash ones are mine | 21:23 | |
when I tried to fix those, I realized that my fix for RT #131241 was incomplete | |||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131241 | ||
lizmat | so I didn't fix it yet | 21:24 | |
will do so now | |||
Zoffix | And the signature/misc are likely due to the exceptions PR that went in; and t/spec/S17-promise/nonblocking-await.t just flopped | 21:25 | |
ZOFFLOP: t/spec/S17-promise/nonblocking-await.t | 21:26 | ||
Geth | roast: 233717633d | (Elizabeth Mattijsen)++ | 2 files Fix tests broken by fix to RT #131241 |
||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131241 | ||
Geth | rakudo/nom: e5870c11df | (Zoffix Znet)++ | src/core/allomorphs.pm Add `eqv` and `cmp` candidates for mixed allomorphs Otherwise we get "Ambiguous call" error. The `===` op does not appear to need similar treatment. Bug find: irclog.perlgeek.de/perl6/2017-05-01#i_14514985 |
21:43 | |
roast: ab8d175f01 | (Zoffix Znet)++ | S02-literals/allomorphic.t Test mixed allomorphs can be `eqv`ed and `cmp`ed Bug find: irclog.perlgeek.de/perl6/2017-05-01#i_14514985 Rakudo fix: github.com/rakudo/rakudo/commit/e5870c11df |
21:44 | ||
Zoffix | samcv: ^ that fixed the bug you had | ||
samcv | yay :) | 21:45 | |
Zoffix | Oh, forgot to mention on the commit message: this also fixes `eqv` for allomorphs; it was incorrectly using `||` instead of `&&` and so IntStr.new(42, "x") was `eqv` IntStr.new(72, "x") | 21:46 | |
Geth | roast: c442a072c4 | (Zoffix Znet)++ | S02-literals/allomorphic.t Test manually-made allomorphs `eqv` right Using both Numeric and Str parts. Rakudo fix: github.com/rakudo/rakudo/commit/e5870c11df |
21:52 | |
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/05/01/...tarbright/ | 22:38 | |
timotimo | lizmat: you missed the opportunity to write "fixed various issues first with orelse and then with andthen" :P | 22:42 | |
lizmat | so WHAT :-) | 22:44 | |
m: say "sphere" if not so WHAT pi | 22:51 | ||
camelia | sphere | ||
Zoffix | lizmat++ good weekly. And good rocket video :P | ||
lizmat | yeah, that was cool, wasn't it? | ||
Zoffix | Yeah, very futuristic | ||
lizmat | good night, #perl6-dev! | 22:58 | |
timotimo | gnite lizmat | ||
lizmat++ # weekly | |||
Zoffix | night | 23:02 | |
samcv | argh my travi still failing due to URI not passing tests | 23:46 | |
write string requires an object with REPR MVMOSHandle (got Scalar with REPR P6opaque) | |||
does not look that great travis-ci.org/samcv/keira-perl6-ir...2055#L1487 | 23:47 | ||
anybody know if this is a bug that was introduced? |