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:20 lizmat left 00:26 lizmat joined, p6bannerbot sets mode: +v lizmat 02:07 stmuk joined 02:08 p6bannerbot sets mode: +v stmuk 02:09 stmuk_ left 02:24 jimi|ansible joined 02:25 jimi|ansible left 02:26 da5idRl joined 02:27 da5idRl left 02:50 ufobat_ joined 02:51 p6bannerbot sets mode: +v ufobat_ 02:54 ufobat left 03:14 datasundae___ joined, datasundae___ left 04:19 Ven` joined, p6bannerbot sets mode: +v Ven` 04:23 Ven` left 04:34 Ven` joined 04:35 p6bannerbot sets mode: +v Ven` 04:39 Ven` left 04:44 robertle_ joined 04:45 p6bannerbot sets mode: +v robertle_ 04:52 robertle left, gfldex_ left, x[LGWs4x4i]uG2N0 left 04:57 gfldex_ joined, x[LGWs4x4i]uG2N0 joined, niven.freenode.net sets mode: +vv gfldex_ x[LGWs4x4i]uG2N0, p6bannerbot sets mode: +v gfldex_, p6bannerbot sets mode: +v x[LGWs4x4i]uG2N0 05:43 AlexDaniel left 05:56 fake_space_whale left 06:45 benchable6 left 06:46 AlexDaniel joined 06:47 p6bannerbot sets mode: +v AlexDaniel 06:50 AlexDaniel left 07:36 benchable6 joined 07:37 p6bannerbot sets mode: +v benchable6 07:41 sonneqO joined 07:42 sonneqO left 07:44 AlexDaniel joined 07:45 p6bannerbot sets mode: +v AlexDaniel
AlexDaniel squashable6: status 07:45
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in ≈2 hours (2018-10-06 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
07:48 reportable6 left, shareable6 left, committable6 left, reportable6 joined, bisectable6 joined, shareable6 joined, undersightable6 left, committable6 joined, ChanServ sets mode: +v committable6, evalable6 left, undersightable6 joined, ChanServ sets mode: +v undersightable6, releasable6 joined, evalable6 joined 07:49 p6bannerbot sets mode: +v reportable6, p6bannerbot sets mode: +v bisectable6, p6bannerbot sets mode: +v shareable6, p6bannerbot sets mode: +v committable6, p6bannerbot sets mode: +v undersightable6, p6bannerbot sets mode: +v releasable6, p6bannerbot sets mode: +v evalable6 07:55 cognominal-p6 left 07:59 robertle_ left 08:01 robertle joined 08:02 p6bannerbot sets mode: +v robertle 08:15 robertle left 08:16 [TuxCM] joined 08:17 p6bannerbot sets mode: +v [TuxCM] 08:21 robertle joined, p6bannerbot sets mode: +v robertle 08:28 robertle left 08:37 robertle joined 08:38 p6bannerbot sets mode: +v robertle 08:48 MasterDuke left 08:51 dalek left 09:00 bonestorm joined 09:01 p6bannerbot sets mode: +v bonestorm 09:03 bonestorm left 09:33 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias jnthn: what would the process for mergin in the js backend be? 09:33
yoleaux 4 Oct 2018 21:17Z <Zoffix> pmurias: that's my understanding yes. --encoding tells the compiler what encoding to use when parsing code to run (source files, EVAL, and I'm guessing `-e` too). But I'm no expert on this. This is just going off the speculations. I forget which one it was by IIRC it got something there
pmurias .tell Zoffix it's not used for -e, only for the source files that are passed *directly* on the command line 09:35
yoleaux pmurias: I'll pass your message to Zoffix.
pmurias .tell Zoffix do you object to be making EVAL on Blob stop using --encoding?
yoleaux pmurias: I'll pass your message to Zoffix.
09:38 ivank joined, madsushi joined 09:39 p6bannerbot sets mode: +v ivank, p6bannerbot sets mode: +v madsushi 09:40 ivank left 09:41 pmurias left
lizmat Files=1255, Tests=75814, 339 wallclock secs (15.52 usr 5.45 sys + 2369.61 cusr 253.42 csys = 2644.00 CPU) 09:41
09:42 pmurias joined, p6bannerbot sets mode: +v pmurias, AlexDaniel left 09:43 madsushi left
jnthn pmurias: There's no formal process really; you're the second person to ever do this (the other 2 times it was me). But basically, make sure it doesn't break existing backends, and then state intent to do it and make sure there's no objections (or at least, try and get +1s from a few key people). 09:44
[TuxCM] Rakudo version 2018.09-72-g687a3cbb0 - MoarVM version 2018.09-123-g0191bd9cf
csv-ip5xs0.906 - 0.929
csv-ip5xs-207.393 - 7.552
csv-parser21.372 - 21.922
csv-test-xs-200.439 - 0.458
test8.148 - 8.604
test-t1.716 - 1.810
test-t --race0.810 - 0.815
test-t-2029.955 - 30.758
test-t-20 --race10.940 - 11.000
(note that the system has been very busy *before* the test, so it might have been warmer than usual) 09:45
[TuxCM] had to dig into perl5 smoke failures. Found, explained, and fixed
pmurias jnthn: do you think it would make sense to merge the changes outside of src/vm/js and that aren't ifdef'ed separately?
jnthn pmurias: No, I'd probably bring it all in with one merge 09:58
10:40 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 10:53 brrt joined, p6bannerbot sets mode: +v brrt 10:54 AndreasKLE joined 10:55 AlexDaniel joined, p6bannerbot sets mode: +v AndreasKLE, p6bannerbot sets mode: +v AlexDaniel 10:56 AndreasKLE left 10:59 Geth left 11:01 creeschGJ joined, p6bannerbot sets mode: +v creeschGJ 11:04 creeschGJ left 11:14 brrt left 11:22 magnushgV joined 11:23 magnushgV left
tbrowder__ hi, folks 11:24
pmurias tbrowder__: hi 11:26
tbrowder__ moritz: do you have an opinion on my use of grammar assertion?
moritz tbrowder__: why should I have an opinion about that?
yoleaux 4 Oct 2018 21:57Z <tbrowder__> moritz: assuming i get the ~~ correct, is the assertion part correct?
tbrowder__ pmurias: hi, are 11:27
moritz usage of assertions isn't really a contentious topic
or did I miss something?
the more interesting question is: does it work?
tbrowder__ moritz: does that part look like correct usage?
moritz yes
tbrowder__ it may not be contentious but i haven’t seen much documented about it 11:28
i just wanted an expert’s eyes on it before i start running with it. thanks! 11:29
pmurias tbrowder__: ? 11:30
11:31 [TuxCM] left
tbrowder__ er, sorry, finger fumble. do i see a big move with js in the works? 11:31
11:44 brrt joined 11:45 p6bannerbot sets mode: +v brrt 11:46 zdzichu joined 11:47 p6bannerbot sets mode: +v zdzichu 11:48 zdzichu left
pmurias tbrowder__: I want to merge it into master, I'm also working on (REPLish thing) perl6.github.io/6pad so that you can try rakudo.js without installing it 11:59
tbrowder__ great! 12:00
12:02 [TuxCM] joined, p6bannerbot sets mode: +v [TuxCM]
pmurias the current goal is to get it to the "early adopters toy" stage 12:03
lizmat jnthn: are the CX:: classes an implementation detail or not? 12:06
pmurias lizmat: roast has tests for CX:: classes 12:07
lizmat ack, so I guess we should document them then 12:09
12:09 stmuk_ joined 12:10 p6bannerbot sets mode: +v stmuk_
jnthn No, they're user-facing 12:11
Otherwise you can't write a CONTROL block to just handle CX::Warn, for example
12:11 stmuk left
pmurias jnthn: do you have an opinion on what --encoding should do? 12:12
12:12 pmurias left
jnthn Go away? :) 12:12
lizmat +1
12:12 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias jnthn: currently it changes the behavior of eval(Blob) and the way files on the command line are parsed 12:13
12:13 stmuk joined 12:14 p6bannerbot sets mode: +v stmuk, brrt left
jnthn I expected the latter, the former is...well, a bit action at a distance-y 12:14
12:15 brrt joined
pmurias jnthn: I'll remove the the eval(Blob) behavior 12:15
12:15 p6bannerbot sets mode: +v brrt 12:16 stmuk_ left
tbrowder__ jnthn: if in rakudo nqp i create some dynamic vars to hold values during object contruction, is that an acceptable practice? 12:30
as an example, having direct access to pod config key/value pairs would be very helpful. as it is, they get wrapped into colon pairs and then later they have to be painfully unpacked. 12:34
it would be kind of like message passing 12:35
12:37 pmurias left, pmurias joined, p6bannerbot sets mode: +v pmurias 12:40 [TuxCM] left
jnthn tbrowder__: It's normally cleaner to do that via the .ast mechanism and actions, but if that's not possible then yes, it's also an option to do it that way 12:57
timotimo another option is to declare a dynamic variable further out and put data into that
tbrowder__ further out meaning at the top like the LANG vars and such? 13:06
timotimo yeah, but not as far as LANG 13:07
well, not necessarily at least
tbrowder__ also, ref ast, where could that be influenced. i’ve tried hunting back to HLL and back but haven’t yet found what ast actually means in rakudo nqp land 13:08
timotimo ast is an attribute on match objects
so you can literally just $/.ast = "hi" anywhere in the regex or action method 13:09
and stuff like $<submatch>.ast as well
tbrowder__ so i can use make to save stuff on the match as in p6 land?
timotimo i believe so 13:10
tbrowder__ ok, all that is.
is very helpful! thnx jnthn and timotimo 13:11
timotimo NP 13:12
13:17 brrt left
lizmat afk& 13:36
pmurias github.com/rakudo/rakudo/pull/2342 - Pull request to merge in the js backend 13:41
I'll happily adress any question/suggestion/etc. in regards to the pull request ;) 13:43
13:44 Te3-BloodyIronPX joined 13:45 p6bannerbot sets mode: +v Te3-BloodyIronPX
tyil pmurias+++ 13:47
13:48 Te3-BloodyIronPX left 14:19 [TuxCM] joined 14:20 p6bannerbot sets mode: +v [TuxCM]
tbrowder__ another question on rakudo nqp for experts here: can a “compile_time_value” be unpacked? is that the same as unboxing? or is the object just a string in a well-known format? 14:21
jnthn If you're compiling Perl 6 code, then it'll just be a Perl 6 object
tbrowder__ ok, si 14:38
jnthn And if it's something primitive like a Str then you can nqp::unbox_s(...) that in NQP
tbrowder__ ok, so you test if its a Str, and then unbox it 14:40
jnthn Yeah 14:41
nqp::istype($the_thing.compile_time_value, $*W.find_symbol(['Str'])) or some such
tbrowder__ one more: in rakudo nqp, is the ast attribute always a scalar? if not, do we use nqp::istype on it for more unpacking? 14:43
by scalar i meant int num or string 14:45
jnthn The .ast type will typically be a QAST node
There's some exceptions here and there, I guess
tbrowder__ aha! maybe the keys to the kingdom, thanks! 14:46
14:48 escimoOB joined 14:49 p6bannerbot sets mode: +v escimoOB
tbrowder__ to me what’s missing in zoffix’s tutorials is how to deal with qast nodes programmatically inside grammar and actions. it’s not obvious when stuff gets magically made into qast. 14:50
jnthn: i have used the latest scribus to take your nqp course slides and turned them into us letter pages with two slides per page. 14:51
would you approve letting me put the two sessions somewhere on perl6 site? 14:52
14:53 escimoOB left
jnthn tbrowder__: Or submit a PR to github.com/edumentab/rakudo-and-nq...e/gh-pages with it and then they're with the other PDFs o the course 14:53
tbrowder__ ok, will do 14:55
15:13 pmurias left 15:15 pmurias joined, p6bannerbot sets mode: +v pmurias 15:17 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix tbrowder__: it's missing because there is no magic to turn anything into QAST. It's the same .make call you use in regular Perl 6 grammars that is given a QAST::Node object you construct yourself. 15:18
yoleaux 09:35Z <pmurias> Zoffix: it's not used for -e, only for the source files that are passed *directly* on the command line
09:35Z <pmurias> Zoffix: do you object to be making EVAL on Blob stop using --encoding?
Zoffix .tell pmurias what's the point of removing it? If you have source in one encoding, why would you want an evaled blob always be in some other encoding instead of using what you're already using? 15:19
yoleaux Zoffix: I'll pass your message to pmurias.
Zoffix .tell pmurias or put differently: why have EVAL(Blob) then? May as well get rid of it, if it's not affected by encoding 15:21
yoleaux Zoffix: I'll pass your message to pmurias.
pmurias Zoffix: EVAL(Blob) might make sense for languages other then Perl 6 15:25
yoleaux 15:19Z <Zoffix> pmurias: what's the point of removing it? If you have source in one encoding, why would you want an evaled blob always be in some other encoding instead of using what you're already using?
15:21Z <Zoffix> pmurias: or put differently: why have EVAL(Blob) then? May as well get rid of it, if it's not affected by encoding
pmurias Zoffix: the --encoding is the encoding of the source file I'm passing to rakudo 15:26
I don't see why I would want to decode the Blob that way
we will parse the Blob as Rakudo handles a regular file it loads 15:27
Zoffix pmurias: it's doing that right now.
pmurias: if you remove --encoding handling, you won't any longer handle that blob as rakudo handles a regular file it loads.
pmurias does 'use' handle encoding 15:28
15:28 fake_space_whale joined
Zoffix I'd expect it to. 15:28
pmurias it doesn't
Zoffix Then it's broken.
pmurias that depends what we want it do to 15:29
15:29 p6bannerbot sets mode: +v fake_space_whale
Zoffix I want to write my code in encoding other than UTF-8 and have the program work correctly. 15:29
pmurias should modules from CPAN break if you use --encoding? 15:30
Zoffix So far, I've understood your argument that that should only work for a single file I'm giving on the command line and not for the binary data I'm evaling. And you're making your case by saying that's the way it should be because my modules aren't being parsed with correct encoding either
pmurias I view the option as parse *only* the files on the command line with that encoding
Zoffix pmurias: that'd be already precompiled. 15:31
pmurias not as some evil global switch
Zoffix pmurias: but what makes the files on command line (bin/app.p6) more special than a module (lib/Foo.pm6)?
Why is one treated specially but not the other?
jnthn fwiw, what I asked was whether there's any point to the --encoding=... option at all
e.g. I was proposing complete removal, rather than suggesting selective removal of bits of what it does 15:32
tbrowder__ Zoffix: is there a method somewhere to interpret a QAST object into nqp code, or at least to interpret it enough to rewrite it with new or added info?
Zoffix Yeah, complete removal sounds good.
pmurias removing it altogether seems fine to me
Zoffix tbrowder__: "to interpret a QAST object into nqp code" I don't understand what you mean by that 15:33
jnthn I'm not sure why we'd want to let people write Perl 6 source in something other than UTF-8.
Zoffix tbrowder__: QAST nodes are just regular objects: github.com/perl6/nqp/tree/master/src/QAST
pmurias jnthn: the interactive mode respects --encoding 15:34
jnthn Interactive mode might make more sense for it
Though not sure right off
pmurias got to go &
tbrowder__ ok, i mean some class that can let the user get programmatic access to the QAST object. let me look at the link you just sent... 15:35
Zoffix tbrowder__: some of them can be treated as lists to iterate over positional children and some have "properties" you can access with a method call. my $qast := QAST::Op.new(:op<callmethod>, :name<say>, QAST::WVal.new(:value(42)) <-- $qast[0] gives you that QAST::WVal; $qast.op gives you string "callmethod"; $qast.name gives you string "say"
m: use QAST:from<NQP>; BEGIN $*W.compile_time_evaluate: $, QAST::Op.new: :op<call>, :name<&say>, QAST::SVal.new: :value<meows> 15:36
camelia meows
Zoffix And in Grammar/Actions you'd .make that QAST::whatever and then access it elsewhere with .ast (or .made) call
tbrowder__ ok, that’s a good pointer, thanks so much! 15:37
Zoffix And you can call .dump method to dump a QAST tree to see what's in it
m: use QAST:from<NQP>; say QAST::Op.new(:op<call>, :name<&say>, QAST::SVal.new: :value<meows>).dump
camelia - QAST::Op(call &say)
- QAST::SVal(meows)
15:42 Zoffix left 15:48 lukropAT joined 15:49 p6bannerbot sets mode: +v lukropAT 15:50 lukropAT left 16:21 stmuk_ joined 16:22 p6bannerbot sets mode: +v stmuk_ 16:24 stmuk left 16:26 TimToady left, TimToady joined, barjavel.freenode.net sets mode: +v TimToady, p6bannerbot sets mode: +v TimToady 16:31 patrickb joined 16:32 p6bannerbot sets mode: +v patrickb 16:34 firezep joined 16:35 p6bannerbot sets mode: +v firezep 16:36 firezep left, robertle left 16:39 ggoebel joined 16:40 p6bannerbot sets mode: +v ggoebel 17:32 newnixhg joined 17:33 newnixhg left 18:05 Kaiepi left, [TuxCM] left 18:07 Kaiepi joined 18:08 p6bannerbot sets mode: +v Kaiepi
samcv docs.perl6.org doesn't seem to have updated based on my changes 8 hours ago 18:38
timotimo huh, there haven't been any logs in /build-log since 2018-07-24 18:39
19:02 synopsebot left, SourceBaby_ left, p6lert left, dalek joined, ChanServ sets mode: +v dalek, Geth joined, ChanServ sets mode: +v Geth, p6lert joined, synopsebot joined, ChanServ sets mode: +v synopsebot 19:03 p6bannerbot sets mode: +v dalek, p6bannerbot sets mode: +v Geth, p6bannerbot sets mode: +v p6lert, p6bannerbot sets mode: +v synopsebot 19:23 lizmat left 19:27 lizmat joined, p6bannerbot sets mode: +v lizmat
Geth rakudo/js: e31a480be1 | (Paweł Murias)++ | lib/Test.pm6
Stop using unneeded 'use MONKEY-SEE-NO-EVAL'
19:31
pmurias lizmat: thanks for the review, I answered all the questions
19:32 pmurias left 19:33 pmurias joined, p6bannerbot sets mode: +v pmurias 19:53 pmurias left 19:57 pmurias joined, p6bannerbot sets mode: +v pmurias 20:00 Kaiepi left 20:01 Kaiepi joined 20:02 p6bannerbot sets mode: +v Kaiepi 20:06 pmurias left 20:07 pmurias joined, p6bannerbot sets mode: +v pmurias 20:09 pmurias left 20:39 dct left 22:20 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 22:22 patrickb left
Geth rakudo/js: 2ba1cff822 | (Paweł Murias)++ | src/Perl6/Grammar.nqp
Revert "[js] Add a workaround for known nqp bug. Works on moarvm for some reason I haven't fully investigated yet."

This reverts commit b956e062a73834dd80f246d0e2f5377e405b3883.
22:31
rakudo/js: 512dbe6e54 | (Paweł Murias)++ | src/vm/js/perl6-runtime/package.json
[js] Use https:// instead of https:// in urls
22:33
22:35 Ven`` joined 22:36 p6bannerbot sets mode: +v Ven``, Ven`` left 22:49 tronikOM joined, tronikOM left 23:30 meepmeep22bC joined 23:35 meepmeep22bC left