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