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.
jnthn vrurg: Ah, I see. 00:04
Yeah, that makes sense. 00:05
I'd probably do it by a different meta-object...I mean, GrammarHOW is very tiny :)
A v6.e GrammarHOW too, configured with the correct version of the parent, is probably a way to go 00:06
vrurg Metamodel is not language-dependent, actually.
jnthn Trying to figure out "which Grammar" in DefaultParent feels fragile
It ain't, but OTOH I think %*HOW is initially populated from CORE.setting 00:07
And so can be versioned that way
vrurg Not really. A compunit always have a core attached. So, one can always find what's needed.
jnthn I forget precisely how it happens, perhaps an EXPORTHOW
vrurg EXPORTHOW, yes.
jnthn Could even declare the new GrammarHOW in the CORE.e.setting 00:08
vrurg There is something with how it's what made me doubt if it worth touching.
jnthn Then it effectively is versioned :)
vrurg But, anyway, if the code works, it would probably worth making an op of it. There will be more and more situations when one would need to find a symbol from client's lexical. 00:09
jnthn Maybe it can be figured out down in the metamodel, I'm just not sure I'd do it that way. It "feels" wrong somehow.
vrurg OTOH, I don't feel like multiplying HOWs is a good idea for as long as we don't really need it. 00:11
jnthn Dunno, I'd much sooner have a new metaclass for new metabehavior. 00:17
Time to sleep o/ 00:18
vrurg o/ 00:19
timotimo gn jn
Geth roast: ZhongnianTao++ created pull request #569:
Add test for GB18030 encoding
00:57
01:16 MasterDuke left 01:28 lucasb left
vrurg m: class Foo { has int $.a; }; use nqp; my $f = Foo.new; nqp::bindattr($f, Foo, q<$!a>, 42); say $f.a 02:27
camelia 0
vrurg class Foo { has int $.a; }; use nqp; my $f := Foo.new; nqp::bindattr($f, Foo, q<$!a>, 42); say $f.a
m: class Foo { has int $.a; }; use nqp; my $f := Foo.new; nqp::bindattr($f, Foo, q<$!a>, 42); say $f.a
camelia P6opaque: representation mismatch when storing value (of type Int) to attribute (of type int)
in block <unit> at <tmp> line 1
02:28
vrurg ^ anybody with ideas as to why is it happening?
m: class Foo { has int $.a; }; use nqp; my $f := Foo.new; nqp::bindattr($f, Foo, q<$!a>, nqp::unbox_i(42)); say $f.a
camelia P6opaque: representation mismatch when storing value (of type Int) to attribute (of type int)
in block <unit> at <tmp> line 1
02:42 evalable6 left 02:47 evalable6 joined
nine AlexDaniel: please don't assume that just because someone's logged onto a channel, they will actually see all the messages. I certainly don't. 03:22
tellable6 2019-08-21T10:22:21Z #perl6-dev <tbrowder> nine ^^^ THANKS!
AlexDaniel nine: so-o-oā€¦ you want me to implement automatic .tell if the person didn't talk for a few hours? 03:23
I can do that
to clarify, the discussion was about this behavior: 03:24
MasterDuke: hello world! Just testing the bot
tellable6 AlexDaniel, I'll pass your message to MasterDuke
AlexDaniel which currently only works if the person is not on the channel
you can still use .tell 03:25
to pass messages even to those who are still online
nine AlexDaniel: the old bot didn't try to be smart at all and just delivered the message. That sometimes led to some superfluous deliveries, but it was absolutely reliable. 03:29
AlexDaniel nine: this bot is even more reliable because it won't let you pass to non-existent nicknames 03:32
.tell ninez hello
tellable6 AlexDaniel, I haven't seen ninez around, did you mean nine?
nine Just because someone talked within the last few hours doesn't actually tell you if they are still there. The last message could very well be a "good night" followed by a busy day at work with loads of backlog
AlexDaniel yeah, you're right, so I guess there's no way to implement that 03:33
nine I guess there are a few specific cases where you can be reasonably sure. Like the .tell being followed by an answer of the addressed person on the same channel with no other messages in between (and not too much time or disconnects). At least if the telling person is being addressed in the response 03:35
AlexDaniel nine: that works, yeah 03:38
but that's not related to automatic .tell 03:39
03:47 evalable6 left 03:51 evalable6 joined
Geth nqp: 051cbec2bc | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/MultiCacheInstance.java
[JVM] Factor out some duplicated code
05:05
roast: 3301d4f1c7 | usev6++ | 3 files
[JVM] Unfudge some passing tests
05:54
|Tux| Rakudo version 2019.07.1-193-g71646ead9 - MoarVM version 2019.07.1-118-g3e715b424
csv-ip5xs0.661 - 0.668
csv-ip5xs-204.911 - 5.415
csv-parser20.732 - 20.819
csv-test-xs-200.432 - 0.441
test6.350 - 7.056
test-t1.694 - 1.754
test-t --race0.773 - 0.778
test-t-2028.323 - 28.704
test-t-20 --race8.884 - 9.146
08:37
10:46 Xliff joined 12:10 robertle joined 12:12 lucasb joined 15:12 a3f left 15:19 a3f joined 16:42 MasterDuke joined 16:44 robertle left 16:51 pamplemousse joined 17:50 robertle joined 19:01 pamplemousse left 19:02 pamplemousse joined 19:13 Kaiepi left, Kaiepi joined
Geth roast: 1f7877acf8 | ZhongnianTao++ | 4 files
Add test for GB18030 encoding
19:22
roast: a5f03b1ae0 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 4 files
Merge pull request #569 from ZhongnianTao/master

Add test for GB18030 encoding
19:27 Ven``_ joined 19:43 pamplemousse left 19:44 Ven``_ left 19:45 Ven``_ joined
vrurg I'm considering renaming directory core into core.c to conform with two other cores. Are there any objections to this? 19:47
AlexDaniel lizmat: that GB18030 roast merge was a bit too early, moarvm pull request is not merged yet 19:51
tellable6 AlexDaniel, I'll pass your message to lizmat
AlexDaniel vrurg: not really 19:52
vrurg AlexDaniel: it's actually gonna be more than that. I'm opening a problem solving on this.
AlexDaniel tellable6: jnthn please do something about this: github.com/perl6/problem-solving/pull/87 19:53
tellable6 AlexDaniel, I'll pass your message to jnthn
Geth problem-solving: AlexDaniel assigned to jnthn Issue Reconsider Rakudo build structure github.com/perl6/problem-solving/issues/94
AlexDaniel assigned to jnthn Issue Support for custom knowhows isn't generic enough github.com/perl6/problem-solving/issues/90

Add one more template
If this looks alright, I'll add one for every label.
19:54
AlexDaniel tellable6: jnthn correct me if I'm wrong, but to me it looks like vrurg is stumbling upon problems, files them as tickets, figures out what needs to be changed, and changes stuff 19:55
tellable6 AlexDaniel, I'll pass your message to jnthn
AlexDaniel tellable6: jnthn so if they're able to drive the development by themselves, why not set them as a responsible dev for both `language` and `rakudo`, right next to you? 19:57
tellable6 AlexDaniel, I'll pass your message to jnthn
AlexDaniel hmmm 20:06
vrurg AlexDaniel: I just realized you gave me permissions on problem-solving. Strangely, I got no notification from github on this. 20:07
AlexDaniel vrurg: I think that happened through `core` team 20:08
vrurg: when I locked the threads, I gave write permissions to the core team so that actual devs can leave comments 20:09
I guess it doesn't notify in that case?
vrurg AlexDaniel: possibly, I have a feeling that I wasn't able to set labels pretty much recently.
AlexDaniel vrurg: we should set up issue templates 20:10
vrurg Ah, ok. Then this is what happened.
AlexDaniel then labeling will happen automatically
vrurg For well-designed templates it is necessary to analyse what tickets we have, what are the most common subjects they have. 20:11
AlexDaniel one template per label will do for now 20:12
vrurg Like, it makes no sense for a template for the build process because mine is probably gonna be a single one for a long time.
I'm off for lunch. Will try to think out something useful. 20:14
AlexDaniel vrurg: don't, it's much more straightforward :) 20:15
problem-solving: 8e2376159a | (Aleks-Daniel Jakimenko-Aleksejev)++ | .github/ISSUE_TEMPLATE/issue-template-language.md
Fix template name
20:16
problem-solving: 1d70626aa9 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 8 files
Add issue templates for every label
20:29
AlexDaniel vrurg: at least now I won't need to assign people: github.com/perl6/problem-solving/i...new/choose 20:30
damn I can't find my comment on the Raku PR 20:53
x)
ha, I won't need to rename github.com/AlexDaniel/raku-golf-cheatsheet 21:09
Ven``_ jnthn: I got a version of COMPILING:: working, but for now that means sacrificing compile-time "undeclared variable $x" 21:18
jnthn Ven``_: hm, curious...though how come? :) 21:19
tellable6 2019-08-23T19:53:54Z #perl6-dev <AlexDaniel> jnthn please do something about this: github.com/perl6/problem-solving/pull/87
2019-08-23T19:55:59Z #perl6-dev <AlexDaniel> jnthn correct me if I'm wrong, but to me it looks like vrurg is stumbling upon problems, files them as tickets, figures out what needs to be changed, and changes stuff
2019-08-23T19:57:17Z #perl6-dev <AlexDaniel> jnthn so if they're able to drive the development by themselves, why not set them as a responsible dev for both `language` and `rakudo`, right next to you?
Ven``_ jnthn: if the macro does COMPILING::<$x> = 4;, we don't actually run this code until we're running the whole, so we'd already have error'd out parsing the rest of the file. 21:20
s/whole/whole file/
(also, "if the macro's quasi code contains") 21:21
jnthn Ven``_: The macro does that, or that appears in a quasi?
Ven``_ jnthn: gist.github.com/vendethiel/9792ef3...4efa5bfb23
jnthn Hm, I'd figured the COMPILING would be "erased" at quasi interpolation time...
And then check done then
masak that seems right to me
I'd expect the real thing to be closer to `my COMPILING::x = 10;` 21:22
that is, a declaration in the mainline
Ven``_ so the COMPILING access itself can't access anything in its own phase?
only from the outer macro?
masak "outer macro"? it's accessing the macro's caller 21:23
Ven``_ well, the macro itself, not the quasi that COMPILING inhabits
masak "COMPILING" refers to "the code we were compiling as the macro was detected and called"
aka "the mainline" 21:24
jnthn AlexDaniel: I'll get to that, but really want to look over and give my feedback on #89 first
AlexDaniel OK
that's also important, yes :)
Ven``_ masak: not what I mean
masak .oO( you're in a maze of twisty little differences in meaning, all alike ) 21:25
Ven``_ masak: gist.github.com/vendethiel/b83e27c...7dd447519b first one ok, second one not ok? 21:26
jnthn AlexDaniel: Though maybe I can put some initial thoughts on 87 sooner than that :)
masak Ven``_: correct. $f is not visible in the hole.
Ven``_ is there a way to intercept every single OO call in a module after my module is imported? :D
masak: so we'd preprocess COMPILING::<>s, and hoists the names right before the macro invocation itself? 21:27
masak Ven``_: my tentative conclusion is that method calls and macros do not mix very well
Ven``_ masak: oh, it's not for macros
I'd like a... lexical-er OO "thing" for an experiment.
masak Ven``_: unknown. but `COMPILING::x` would do the right thing with `x` in the mainline, is the thing
Ven``_ seems like hoisting would allow for that, then 21:28
.oO( When you have a tree-walker, every problem looks like an AST )
masak Ven``_: jnthn is free to disagree with me, but the "selling point" of methods calls is that they are late-bound, not lexical
Ven``_ how dareth a perl developer tell another perl developers how things ought to be? :-)
masak hehe 21:29
you can call a method call lexical all you want. don't make it so
still*
Ven``_ I just want to insert code around it.
not actually disrupt normal OO flow 21:30
masak: should COMPILING unwind its whole lexical pads chain?
jnthn masak: I think a module that wants to, for example, enforce stronger compile-time checking of method calls should be possible to write. :) More generally, I think modules whose contribution to the language is "I process what I'm imported into afterwards" is probably generally useful. 21:31
There's many things that I don't mind being possible to write, even if I'd be happy without them. :) 21:32
Ven``_ I wonder how precompilation and side-effects inside macros interact. 21:34
masak could you be more specific? 21:35
jnthn Don't think macros bring anything new in that sense, given we already have BEGIN and friends
Ven``_ true, fair
jnthn bbiab 21:41
21:56 epony left 22:03 Ven``_ left 22:28 sortiz joined 22:34 bloatable6 left 22:36 Ven`` joined 22:40 Ven`` left 22:55 epony joined