Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:12 lizmat joined, p6bannerbot sets mode: +v lizmat 00:16 lizmat left 00:30 Slade3 joined 00:35 Slade3 left 02:04 dalek left 02:05 dalek joined, ChanServ sets mode: +v dalek, p6bannerbot sets mode: +v dalek 02:21 Ven` joined 02:22 p6bannerbot sets mode: +v Ven` 02:26 Ven` left 02:45 dalek left, [Tux] left 02:47 [Tux] joined 02:48 p6bannerbot sets mode: +v [Tux] 02:54 dalek joined, ChanServ sets mode: +v dalek 02:55 p6bannerbot sets mode: +v dalek 03:25 camelia left 03:27 nine left 03:32 MasterDuke left, camelia joined 03:33 nine joined, p6bannerbot sets mode: +v camelia 03:34 p6bannerbot sets mode: +v nine 03:55 lizmat joined, p6bannerbot sets mode: +v lizmat 03:59 lizmat left 04:57 Ven` joined 04:58 p6bannerbot sets mode: +v Ven` 05:02 Ven` left 06:14 AlexDaniel left 06:21 Hoolootwo joined 06:26 Hoolootwo left 07:51 ilogger2 joined 07:52 p6bannerbot sets mode: +v ilogger2 08:00 Ven` joined 08:01 p6bannerbot sets mode: +v Ven` 08:09 robertle joined, p6bannerbot sets mode: +v robertle 08:10 brrt joined, p6bannerbot sets mode: +v brrt 08:20 Kaypie joined 08:21 p6bannerbot sets mode: +v Kaypie 08:22 lizmat joined, p6bannerbot sets mode: +v lizmat 08:24 brrt left 08:26 brrt joined 08:27 p6bannerbot sets mode: +v brrt
|Tux| Rakudo version 2018.08-32-g3dd09be33 - MoarVM version 2018.08-25-gc114c1e67
csv-parser23.054 - 23.151
csv-test-xs-200.440 - 0.450
test9.336 - 9.346
test-t2.045 - 2.073
test-t --race0.871 - 0.875
test-t-2035.263 - 36.471
test-t-20 --race11.189 - 11.433
08:49
I do not have time to go into it, but this is worrysome: 08:50
$ perl6 -Ilib csv-ip5xs.pl < /tmp/hello.csv
Segmentation fault (core dumped)
And I got a mail from OSSEC: 08:51
Sep 5 10:26:21 tux kernel: traps: moar[9167] general protection ip:7fd3f07cbef6 sp:7fd3ef487860 error:0 in libmoar.so[7fd3f0555000+623000]traps:
lizmat segfault conformed # nine 08:52
09:45 brrt left 09:49 ExtraCrispy joined 09:50 p6bannerbot sets mode: +v ExtraCrispy, AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
lizmat thought of the day: use "use precompilation" in a script to have it precompiled using CU:R:FileSystem semantics 10:15
10:27 Ven` left
tbrowder__ g’day #perl-dev 10:29
i have a question on a grammar construct in rakudo Perl6/Grammar.nqp 10:30
what does this line do: “<pod_content=.pod_textcontent>**0..1”? 10:33
it creates an array, but does it create exactly two elements? does it duplicate the pod_textcontent? 10:34
Geth rakudo: 874ec00225 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm6
Make for IO::Handle.lines { } about 10% faster

By losing the // and using nqp::ops instead
10:44
11:04 pmurias joined 11:05 p6bannerbot sets mode: +v pmurias
Geth nqp/master: 5 commits pushed by (Paweł Murias)++ 11:05
timotimo tbrowder__: the . in front of pod_textcontent prevents it from being captured 11:08
tbrowder__ ok, that’s right, and pod_content takes on the data from pod_textcontent? 11:10
timotimo yep, <pod_content=.pod_textcontent> is basically the same as $<pod_content>=<.pod_textcontent> 11:11
tbrowder__ what really confuses me is that pod_textcontent looks like it can take from 0 to inf number of text lines—i don’t see anything that stops it while in its block 11:13
timotimo it requires the lines to start with the right amount of spaces 11:15
so any line with fewer spaces will endi t 11:16
hm, that's not quite right i think, hold on.
tbrowder__ unless (the lightbulb may be turning on), the difference between abbrev and paragraph blocks (which can only have one para) and delimited blocks which can have more than one para...
hm, the 1 in 0..1 is a little fuzzy... 11:18
timotimo probably a holdover from when ? and ** 0..1 were changed to their current behaviour
with regards to returning Nil vs the value or returning an empty array or an array with the value in it
tbrowder__ good thought! 11:19
i’ll try replacing 0..1 with a ? 11:20
11:20 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci NQP build failed. Paweł Murias '[js] Change to non-deprecated method of Buffer construction' 11:20
travis-ci.org/perl6/nqp/builds/424738550 github.com/perl6/nqp/compare/8846e...8a6d330881
11:20 travis-ci left
tbrowder__ timotimo: thanks so much—it helps to 11:20
talk to someone who is so thoughtful 11:21
timotimo oh, thank you for that compliment :)
11:24 Ven` joined 11:25 p6bannerbot sets mode: +v Ven`
lizmat .ask jnthn do you have any thoughts on expanding the Encoding::Decoder role to include something like "consume-line-chars-chomp" which in its default implementation would call "consume-line-chars(:chomp)" ? 11:25
yoleaux lizmat: I'll pass your message to jnthn.
Geth rakudo: d198c1b732 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm6
Make my @a = IO::Handle.lines about 10% faster

Lose the // in the loop.
11:26
11:28 Ven` left
pmurias lizmat: what would be the benefit of that? reduce the overhead of a named parameter? 11:40
lizmat yeah, but I just figured out that it doesn't gain much, if anything 11:41
timotimo no, more like "if the decoder can do it cheaply, skip the newline directly rather than chopping off after reading"
lizmat timotimo: the thing is that nqp::decodertakeline(self, $chomp, $eof); still takes the parameters
it would only make sense if there were nqp versions of that without chomping / eof behaviour
11:42 brrt joined
lizmat .tell jnthn scratch that last question 11:42
yoleaux lizmat: I'll pass your message to jnthn.
11:42 p6bannerbot sets mode: +v brrt
brrt i think the new irc log site is down :-( 11:44
timotimo yup
11:44 Ven` joined
brrt 😢 11:44
11:44 p6bannerbot sets mode: +v Ven`
brrt needs a terminal emulator that has emoji substitution 11:45
lizmat m: say "😢".uninames 12:01
camelia (CRYING FACE)
lizmat .u 😢 12:02
yoleaux U+1F622 CRYING FACE [So] (😢)
lizmat I guess thats shorter :-)
Geth nqp: 8dd59c4451 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java
[jvm] Make nqp::expmod handle negative exponents
12:03
12:10 pmurias left 12:14 pmurias joined 12:15 p6bannerbot sets mode: +v pmurias 12:33 ggoebel joined 12:34 p6bannerbot sets mode: +v ggoebel
nine lizmat: "use precompilation;" for scripts wouldn't make much sense, since to get at the information that we should look for a precomp file, we'd have to parse the script. 12:45
lizmat not necessarily: if the script loader would look for a compiled version and execute that 12:46
nine lizmat: nevertheless, I've looked into precompiling scripts from time to time. It's certainly possible, but also a bit involved, since the perl6 program's structure very much expects to compile something
lizmat the "use precompilation" would then be responsible for making the precomp version
nine lizmat: but why have that pragma then in the first place? If we can precompile scripts, we ought to do it always. 12:47
lizmat whenever the loader notices the script has changed, it would drop the precomp version
that's also a point
nine OTOH if you want to precompile the script's code, just shove it into a module and "use" that.
pmurias nine: re running scripts without rakudo I played with that for rakudo.js
lizmat nine: well, that still feels like a workaround 12:48
pmurias s/played/got it to work/
nine: the biggest thing that was needed was putting a fake compiler into nqp::getcomp('perl6') 12:49
timotimo hack.p6c.org/~timo/perl6-dev_log.html - brrt and friends 12:50
pmurias nine: plus setting up %*COMPILING, loading up Perl6::World and setting up @END_PHASERS 12:51
nine pmurias: that's quite interesting! 12:52
pmurias nine: file that does the required hacks github.com/perl6/parcel-plugin-nqp...l6Asset.js 12:54
timotimo: thanks 12:59
timotimo pmurias: also moarvm_log and perl6_log
Geth rakudo: 1905838c10 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm6
Make IO::Path.lines about 10% faster

  - put the close logic into the iterator classes
  - remove need for nested iterators (except when asking for limit)
  - remove a .lines candidate
  - since only one client of PIOIterator role, merge into class
13:00
timotimo cool 13:01
lizmat cycling&& 13:02
13:12 pmurias left 13:18 pmurias joined 13:19 p6bannerbot sets mode: +v pmurias 13:27 AlexDaniel left
[Coke] lizmat++ # continuous improvements 13:32
13:36 Ven` left 13:47 Ven` joined 13:48 p6bannerbot sets mode: +v Ven` 13:55 pmurias left 13:56 pmurias joined 13:57 p6bannerbot sets mode: +v pmurias, pmurias left 13:59 pyrimidine joined 14:00 p6bannerbot sets mode: +v pyrimidine 14:02 pmurias joined 14:03 p6bannerbot sets mode: +v pmurias 14:07 lizmat left
Geth nqp: c734c8c646 | (Paweł Murias)++ | 3 files
[js] Suport .HOW.name on lowlevel NQP string to fix --target=ast in rakudo.js
14:07
nqp: 5cf777b137 | (Paweł Murias)++ | src/vm/js/bin/run_tests.pl
[js] Don't run failing tests
14:08 pmurias left 14:19 pmurias joined 14:20 p6bannerbot sets mode: +v pmurias
japhb Anyone know if we lost colabti permanently or just temporarily? 14:24
14:27 pmurias left, pmurias joined 14:28 p6bannerbot sets mode: +v pmurias
timotimo dunno; did you see my replacement irclog for backlogging purposes? 14:28
14:39 brrt left 14:45 pmurias left 14:47 pmurias joined, p6bannerbot sets mode: +v pmurias
jnthn . 15:08
yoleaux 11:25Z <lizmat> jnthn: do you have any thoughts on expanding the Encoding::Decoder role to include something like "consume-line-chars-chomp" which in its default implementation would call "consume-line-chars(:chomp)" ?
11:42Z <lizmat> jnthn: scratch that last question
jnthn .tell lizmat Scratched, but the answer would be that I don't see the point :) 15:10
yoleaux jnthn: I'll pass your message to lizmat.
japhb timotimo: Yeah, saw it, but not having the parts and joins faded, collapsed, or removed makes it very hard for me to follow. The signal gets lost in the noise. 15:27
15:27 Kaypie is now known as Kaiepi
japhb (These days the same could be said for everything p6bannerbot does) 15:27
15:32 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 15:33 Ven` left 15:42 Ven` joined 15:43 p6bannerbot sets mode: +v Ven` 15:47 robertle left
timotimo i should be able to grep them out 16:04
16:06 brrt joined
timotimo ... how do i grep for tab characters ... 16:07
16:07 p6bannerbot sets mode: +v brrt
geekosaur control-v, tab 16:07
timotimo thanks!
ah, not in fish
geekosaur can't help. aside maybe from grep -P and then sue \t
use 16:08
timotimo i can go outside of the quotes and put \t
japhb: refresh, these lines are now gone :) 16:10
16:45 Ven` left 16:48 robertle joined, p6bannerbot sets mode: +v robertle 16:49 fake_space_whale joined, Kaiepi left, p6bannerbot sets mode: +v fake_space_whale 16:57 Kaiepi joined 16:58 p6bannerbot sets mode: +v Kaiepi 17:14 lizmat joined 17:15 p6bannerbot sets mode: +v lizmat 17:31 brrt left 18:19 stmuk_ joined 18:20 p6bannerbot sets mode: +v stmuk_
lizmat another thought of the day: are the spesh / optimizer threads running during setting compilation? if so, does that make sense ? 18:51
yoleaux 15:10Z <jnthn> lizmat: Scratched, but the answer would be that I don't see the point :)
timotimo they are, and yeah, of course it makes sense, since the parser and compiler are also perl6 code that gets optimized 19:19
lizmat: ^ 19:20
lizmat do we have prove that it makes sense ? 19:21
timotimo turning off spesh also turns off the jit
i recently posted on #perl6 what times i get for core setting compilation with and without jit 19:22
Geth rakudo: 92951168bd | (Elizabeth Mattijsen)++ | 2 files
Extract Str.words(:autoderef) and streamline it

The runtime post-processing of quoted words used a special candidate of Str.words. By giving the method its own name, it is no longer part of the MMD of Str.words *and* we can remove a named parameter to the call. The inside of the method could also be streamlined a bit so that we have a lot less boxing going on.
timotimo i should perhaps try without spesh as well
lizmat inquiring minds need to know :-) 19:23
timotimo 98.72user 0.55system 1:39.58elapsed 99%CPU (0avgtext+0avgdata 1375660maxresident)k 19:27
78.10user 0.58system 1:17.65elapsed 101%CPU (0avgtext+0avgdata 1387728maxresident)k 19:29
the second one is jit off, spesh on, the first one is jit off spesh off
75.37user 0.66system 1:13.77elapsed 103%CPU (0avgtext+0avgdata 1417380maxresident)k 19:30
that is spesh on jit on 19:31
to me that says either "turning the jit off can save a nice amount of memory during core setting compilation without costing much time", or "we should see what the jit could do better in core setting compilation in particular" 19:33
but spesh is definitely worth it 19:34
20:16 pmurias left 20:18 pmurias joined
lizmat feels to me that we could switch off JIT for core compilation as memory usage for core setting compilation *is* a problem on small machines 20:18
20:19 p6bannerbot sets mode: +v pmurias
pmurias lizmat: offering a switch could be a sensible option 20:20
in Perl6::Optimizer do we assume QAST nodes aren't used shared in multiple places? 20:27
we seem to be editing them a lot inplace
(and intersection of two optimizations is causing a bug on js/jvm backends) 20:28
lizmat timotimo might know 20:31
Geth rakudo: ae739adf3a | (Elizabeth Mattijsen)++ | 2 files
Obscurize words-autoderef a bit
20:44
21:05 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 21:07 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
timotimo sometimes we edit them in-place so that both subtrees of a QAST::Want get optimized even though we only descend into one of the two 21:11
pmurias timotimo: so the bug is that when we are optimizing $var += ... 21:15
timotimo: $var is used twice
timotimo ah, yeah, perhaps it should be bound to a local first 21:16
pmurias the problem is that when we have nqp::assign_i($var, $var + ...) lexicalref is turned into lexical when optimizing $var + ... 21:17
timotimo oh, right
pmurias timotimo: it could be fixed with a nqp::clone on one of the QAST::Vars
timotimo that's bad
pmurias timotimo: the fix or the problem?
timotimo the problem 21:19
and the situation
but a good catch
pmurias I'll spectest the fix and commit it tommorow ;) 21:20
21:43 pmurias left 21:44 pyrimidi_ joined, p6bannerbot sets mode: +v pyrimidi_
japhb timotimo: Thanks for the cleaner irclog view! :-) 21:54
timotimo \o/
22:11 pyrimid__ joined, pyrimidi_ left
Geth rakudo: 07089e89e8 | (Elizabeth Mattijsen)++ | src/core/Str.pm6
Make Str.chop(N) about 5x as fast

First check for bigint ness, then use native int logic only
22:11
22:11 p6bannerbot sets mode: +v pyrimid__
timotimo oh wow 22:12
lizmat and that concludes my hacking for today
good night!
timotimo gnite lizmat 22:13
22:26 robertle left 22:45 pyrimid__ left 23:18 pyrimidi_ joined 23:19 p6bannerbot sets mode: +v pyrimidi_