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:00 reportable6 left 00:03 reportable6 joined, ChanServ sets mode: +v reportable6 00:18 vrurg left 00:19 vrurg joined 01:18 MasterDuke left
vrurg Damn gdb is totally broken on macos. :( 02:26
04:59 pamplemousse joined 06:00 reportable6 left 06:03 reportable6 joined 06:52 MasterDuke joined
MasterDuke vrurg: have you tried lldb? 06:53
06:54 [TuxCM] left 07:32 robertle left 07:33 pamplemousse left 07:54 robertle joined 08:05 |Tux| joined 08:09 vrurg left, vrurg joined 08:18 [TuxCM] joined
Geth problem-solving/path-to-raku: 6b444bd896 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Remove mention of "Velvet Divorce"
08:23
AlexDaniel lizmat: I guess one more reason to make sure the naming issue is resolved in weeks and not months or years: github.com/perl6/problem-solving/p...-521101106 09:11
vrurg: it affects your PR too ↑ (TL;DR can't have changes to the list of reviewers until naming thing is resolved) 09:13
kawaii, SmokeMachine, vrurg: if you have any concerns or feedback regarding the naming issue, feel free to leave a comment on the upcoming PR, I'll make sure these are heard. It's just that you won't be able to demand changes/reject officially 09:16
SmokeMachine AlexDaniel: what define what're major language changes and what aren't? 09:19
AlexDaniel SmokeMachine: good question
SmokeMachine will no one be allowed to enter until there are no issues on problem-solving? 09:20
AlexDaniel yeah, that's a very good point…
I guess if you have more than 100 comments on the issue, it's a major change :) 09:21
it's kinda clear than #81 is just special in its impact, I'm not sure if we should write out a rule for that specifically… 09:22
SmokeMachine so, if the PR for adding was created before the 100th comment it should be accepted? (I don't believe in it... just arguing...)
kawaii AlexDaniel: I'd rather not involve myself in any naming drama, whatever the majority of other community members decide is fine with me :) 09:23
SmokeMachine but, it #81 is special, should we be worried to opening a precedence?
AlexDaniel SmokeMachine: I guess it's a bit simpler. Right now it's simply “reviewers decide!”, and in this particular case there are objections, so we wait… 09:24
kawaii: thank you
SmokeMachine AlexDaniel: ok... I'm not asking to change anything...
AlexDaniel SmokeMachine: we haven't had anything like this before, so it's ok to question if it's going to work at all :) 09:28
09:31 |Tux| left 09:36 |Tux| joined 09:40 MasterDuke left 09:55 MasterDuke joined 10:15 [TuxCM] left 10:21 Kaiepi left, Kaiepi joined 10:29 MasterDuke left
Geth problem-solving/path-to-raku: 0b5402e1de | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
The P and 6 in Camelia are not an issue, but a tribute
10:37
problem-solving/path-to-raku: d71dc5cf60 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
s/.code/.raku/

As some classes already have a .code method, and this would be a collision.
10:39
lizmat $ perl6 t/spec/S32-io/socket-recv-vs-read.t 10:40
1..13
No such method 'recv' for invocant of type 'Any'
is this a local issue, or is this spectest indeed borked at this moment?
Geth rakudo: 6d8f4050c8 | (Elizabeth Mattijsen)++ | 13 files
s/die X::Foo.new/X::Foo.new.throw/

Inspired by 01b86fa8ab949de91c4 . Also use ternaries where possible.
Not sure about the performance aspects, but this decreases the setting.moarvm size by 2K, so that is already a win.
10:43
problem-solving/path-to-raku: bf7ab7839b | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Mention what to do with IRC channels
10:48
problem-solving/path-to-raku: e5c5d42930 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Mention channel forwarding
10:49
problem-solving/path-to-raku: 7d0aab8eed | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
"rakudo" should be the main executable
10:52
problem-solving/path-to-raku: a79dde05a3 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
.pod6 to become .rd
10:58
problem-solving/path-to-raku: 1ee09085fc | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Special attention to non-latin script countries

Specifically for the announcement of Raku
11:09
11:09 pamplemousse joined
timotimo cool, 2k off the setting size 11:22
i like that
Geth problem-solving/path-to-raku: 66daa4f1a6 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Open the door for .code
11:26
Guest37021 lizmat: t/spec/S32-io/socket-recv-vs-read.t works on my Linux Mint but fails on my RPi 4 running Buster 11:29
11:29 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 's/die X::Foo.new/X::Foo.new.throw/ 11:29
travis-ci.org/rakudo/rakudo/builds/571764413 github.com/rakudo/rakudo/compare/a...8f4050c876
11:29 travis-ci left
Guest37021 I believe that kaiepi might be looking into that 11:30
lizmat restarted the only failing build 11:32
FWIW, I've always disliked the "use" statement to be abused to indicate the language version of the compilation unit 11:35
the only reason for it working like that, is to allow for never implemented transparent Perl 5 support in Perl 6
I think this would be an excellent opportunity to introduce a more general approach 11:36
like adding a :ver and :lang parameters to the `unit` statement, and make the package name declaration optional 11:37
unit :ver<D> # equivalent to "use v6.d" 11:42
unit :lang<Perl5>:ver<30> # whenever we get direct support for Perl 5.30 11:43
unit :release<2019.07> # also allow reference to releases 11:50
masak +1, I think 11:51
|Tux| Rakudo version 2019.07.1-135-g6d8f4050c - MoarVM version 2019.07.1-74-g5b174f528
csv-ip5xs0.661 - 0.666
csv-ip5xs-204.987 - 4.994
csv-parser21.857 - 22.163
csv-test-xs-200.432 - 0.447
test6.883 - 6.891
test-t1.756 - 1.757
test-t --race0.777 - 0.849
test-t-2027.522 - 28.949
test-t-20 --race8.847 - 8.880
11:52
Geth problem-solving/path-to-raku: 8d86f071c9 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Mention versioning
11:56
problem-solving/path-to-raku: 3c0fee64d1 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Compilers are free to handle optional nameds in 'unit'
11:59
12:00 reportable6 left, reportable6 joined 12:03 lucasb joined
Kaiepi Guest37021, looking into what? i can't really see from all the geth and tux messages 12:03
lizmat Kaiepi: t/spec/S32-io/socket-recv-vs-read.t failing on MacOS 12:05
12:05 pmurias joined
Kaiepi that i can't actually fix... i don't own a mac 12:08
can you tell me what tests are failing? i might be able to work it out from there 12:09
it it takes too long to fix someone else may have to fix it since i can't have stuff outside of the scope of my grant interfering 12:10
lizmat Kaiepi: gist.github.com/lizmat/351d306c87f...b1b7e1c91b
Guest37021 Kaiepi: if I remember correctly (am at $work atm) it's the first test in the file 12:16
Kaiepi it is 12:17
that CATCH block worries me since it should be able to wait until a connection is ready to use before trying to use it 12:18
Geth problem-solving/path-to-raku: 7188f3974f | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Handwave about support for other languages as a compunit
12:19
Guest37021 I vaguely remember using strace on both system (the working one and the failing) one. If I remember correctly (probably not) I saw the flag PF_INET on the failing system but AF_INET on the working one. 12:20
Kaiepi PF_INET and AF_INET aliases iirc 12:21
i'd need to check if that's true or not
were you using any compiler release after i made socket families portable? 12:22
Guest37021 I distinctly remember seeing a 'connection refused' message as well
do you mean c-compiler release? 12:23
Kaiepi no, releases like v2019.07.1 and such
the c compiler probably has nothing to do with this 12:24
Guest37021 nope, not that I can remember but I do run the entire spectest suite on a regular basis 12:25
I can give it a whirl when I get home 12:28
SmokeMachine lizmat: that would also be true for class definition, for example? I mean: `unit :ver<D> class Bla:ver<1.0>;`?
lizmat SmokeMachine: yes, the bare :ver would apply to the language version, the other :ver to the version of the class 12:29
that would not be ambiguous, would it ? 12:30
Geth problem-solving/path-to-raku: 1c2ece9590 | (Elizabeth Mattijsen)++ | PATH-TO-RAKU.md
Mention effects on event naming
12:32
lizmat afk for a few hours& 12:41
pamplemousse vrurg: Just wanted to let you know that I'm still tracking down the reason the precomp stuff for R#3075 , I think I'm nearly there 12:43
synopsebot R#3075 [open]: github.com/rakudo/rakudo/issues/3075 [precompilation] Conflicting use statement does not produce an error, but fails dynamic compilation.
12:46 MasterDuke joined
Geth problem-solving/path-to-raku: e4461ed9f2 | (Aleks-Daniel Jakimenko-Aleksejev)++ | PATH-TO-RAKU.md
Simplify versioning
13:03
AlexDaniel lizmat: that's how I see it
vrurg pamplemousse: Thanks! 13:04
AlexDaniel lizmat: also, please move the document into solutions/language 13:06
Geth rakudo: 4927eae040 | (Paweł Murias)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
[js] Temporary workaround for a bug
13:10
rakudo: e95582dad7 | (Paweł Murias)++ | src/vm/js/CompUnit/Repository/NodeJs.pm6
[js] Use --> syntax instead of returns

Make the code look more like the rest of the setting
Kaiepi is using the bsd license compatible with the license we use? i won't be using any significant amounts of code, just a few lines that may fix that test failure from openbsd's man page for connect(2) 13:16
"bsd license" is too vague, i think they use the two-clause version it 13:19
vrurg Kaiepi: is openbsd on two-clause? I thought for years eveybody switched to three-clause. 13:35
Kaiepi i'll need to check, but some people still use two-clause 13:37
vrurg Kaiepi: in either case, as I remember from an old discussion, BSD is one way compatible always: as long as you reference the source of borrowed code it's ok to use it. 13:40
As long as you add a comment mentioning openbsd it should be fine. 13:41
Kaiepi mb, openbsd uses the berkeley license, but its clauses are specific to when you're contributing to openbsd 13:42
Guest37021, does it still throw if you change IO::Socket::INET.new(:host("$hostname:$port")) to IO::Socket::INET.connect($hostname, $port)? 13:52
er, fail
Guest37021 Kaiepi: will test that when I get home from $work 14:04
14:10 Ven`` joined
Guest37021 Kaiepi: if I make the above change on my working system I get - No such method 'recv' for invocant of type 'Any' 14:10
Kaiepi if you take out the catch block, what error shows up? 14:13
Guest37021 disregard my earlier statement, I didn't type in the change correctly 14:14
Kaiepi ah
Guest37021 I initially wrote IO::Socket::INET.new($hostname, $port);
but forgot to change .new to .connect 14:15
So the working system continues to work after the change. Will test on my RPi 4 when I get home.
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue Language versioning. github.com/perl6/problem-solving/issues/88 14:18
14:19 pmurias left 14:31 pmurias joined 14:41 robertle left 14:59 pmurias left 15:43 Ven`` left 15:59 toddr joined 16:15 robertle joined 16:30 chloekek joined 16:37 mst left, mst joined 16:44 mst left, mst joined 17:10 Xliff joined 17:18 chloekek left
Geth problem-solving/path-to-raku: 985934b855 | (Elizabeth Mattijsen)++ | 2 files
Move file to solutions/language
17:26
AlexDaniel lizmat: thanks! 17:29
lizmat yw :-)
AlexDaniel++ # guardian of the process 17:30
AlexDaniel lizmat: things are a bit out of control right now, so if I'm that then I'm not doing a great job :)
not in a bad way, actually, it's just that everything is moving a bit too fast 17:31
so there's a discussion about the docs and about versioning and in both people are kinda wandering around throwing different weird ideas… 17:32
lizmat fwiw, I'm more interested in momentum rather than speed
AlexDaniel: links ? 17:33
AlexDaniel the doc stuff is concentrated here: github.com/perl6/doc/pull/2951
lizmat looks more closely
AlexDaniel I thought this one will be really simple, but jmerelo wants a separate doc website for raku? uhhhh?? 17:34
and turns out .htaccess doesn't work, so it's currently not possible to set up redirects that we will need… and that's part of the infrastructure issue I think 17:35
and language versioning here github.com/perl6/problem-solving/issues/88
the point of my commit was to defer that issue, but now people are discussing it for real
and here three people think that “raku v1” is sensible: github.com/perl6/problem-solving/c...t-34683946 17:37
even though it is definitely not
timotimo i think the doc data is being delivered via a mojolicious app, so if you want redirects you have to be "in front of" the app, or change the app itself 17:46
on sena_kun's server i put redirects directly into the nginx config
17:57 toddr left 18:00 reportable6 left, TimToady left, reportable6 joined, TimToady joined
dogbert17 Kaiepi: here's strace output from running the first test from S32-io/socket-recv-vs-read.t on a RPi 4. Output from both 2019.07.1 and HEAD 18:00
gist.github.com/dogbert17/bbc5f032...3eac78d6ea 18:01
Geth problem-solving/path-to-raku: e35a5ac301 | (Elizabeth Mattijsen)++ | solutions/language/PATH-TO-RAKU.md
Add mention about NQP (Not Quite Peanuts)
18:35
AlexDaniel lizmat: hahaha 18:36
jdv79 yeah but what is peanuts then? 18:41
tobs Not Quite Pottery 18:42
jdv79 Potable?
Potent?
endless possibilities really 18:43
vrurg tobs: !!! 18:49
lizmat I was going for this meaning of peanuts: 3 (peanuts) informal a very small or inadequate sum of money: he pays peanuts. 18:54
Geth nqp: 68da2436ac | (David Warring)++ | 2 files
[examples/rubyish] - bring up-to-date with current NQP
lizmat tobs: FWIW, I also like Not Quite Pottery :-) 19:01
Kaiepi dogbert17, from what i'm reading it never binds a socket to localhost properly 19:02
the only sockets it binds are AF_NETLINK sockets, but that's a kernel thing 19:03
which is odd, it should be creating a socket as soon as you call .tap on IO::Socket::Async.listen
er, maybe it's as soon as you call .listen, i forget 19:04
tobs lizmat: it was a serious suggestion, but this is also such a small issue not worth building a bikeshed around imo, so I'm not commenting it to a commit or issue. Feel free to take it into consideration for the next version of the document. 19:06
Geth problem-solving/path-to-raku: 48793deddb | (Elizabeth Mattijsen)++ | solutions/language/PATH-TO-RAKU.md
Add Not Quite Pottery as a backronym for NQP
19:08
19:16 pmurias joined
robertle I am trying to abuse the perl compiler in various ways to understand a piece of code, e.g. for syntax highlighting. I am confused by why the match object returned does not have any children: 19:17
m: with nqp::getcomp('perl6').parse('say 3 + 4') { say .made.^name; say .list.elems; }
camelia 5===SORRY!5=== Error while compiling <tmp>
Could not find nqp::getcomp, did you forget 'use nqp;' ?
at <tmp>:1
------> 3with nqp::getcomp('perl6')7⏏5.parse('say 3 + 4') { say .made.^name; s
robertle nah, anyway: should the .list not have the children? 19:18
MasterDuke m: use nqp; with nqp::getcomp("perl6").parse("say 3 + 4") { say .made.^name; say .dump; } 19:21
camelia QAST::CompUnit
- statementlist: say 3 + 4
- statement: 1 matches
- EXPR: say 3 + 4
- args: 3 + 4
- arglist: 3 + 4
- EXPR: + 4
- 0: 3
- value: 3
- number: 3
robertle right, but I need the actual nodes not the textual representation. and I fail to find the definition of that .dump() as well...
I mean surely the match that produced the QAST::CompUnit will have submatches, right? 19:23
vrurg robertle: nqp/src/QAST
?
[Coke] AlexDaniel: if the redirects aren't working, I think the right thing is to fix them, not avoid them harder.
but I'm no longer that active on docs, so it's just my 2¢
lizmat fwiw, I think dogfooding the docs site using Cro would also be a good thing 19:24
but that's probably better for another tme
*time
robertle vrurg: not sure I understand the question. I can walk the QAST tree all right, but have convinced myself that it does not have enough information to highlight the source. perhaps I am mistaken there... so I am trying to get the match tree from the grammar that made the QAST tree
vrurg robertle: sorry, misunderstood the question. 19:26
robertle the reason I think the QAST is already too far processed to allow highlighting is this ugly snippet: gist.github.com/robertlemmen/52dd1...765072fb69
vrurg robertle: I think you need to turn off optimizer. 19:27
robertle you can see (in the output lines like '# 28-29' which parts of that tree have a node associated, which I think is the only place where I can get locations
AlexDaniel [Coke]: I totally agree 19:28
dogbert17 Kaiepi: I'm no socket expert but looking at last connection attempt made by both programs some differences jump out 19:32
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) = 11 # 2019.07.1 19:33
connect(11, {sa_family=AF_INET6, sin6_port=htons(5002), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 28) = 0
19:33 epony left
dogbert17 socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 11 # HEAD 19:33
connect(11, {sa_family=AF_INET, sin_port=htons(5002), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Connection refused)
Kaiepi yeah, i saw those 19:34
robertle vrurg: I guess you mean on .compile()? .parse() should not do that anyway, right? I think I have done that and it is interesting, needs more digging. But still the QAST does not seem to have location info on everything, e.g. the SVal nodes, which makes it hard to (ab)use for this. this is why I thought the .parse() should be easier 19:35
Kaiepi since the host used is localhost, it'll try both 127.0.0.1 and ::1 before giving up
dogbert17 I don't see AF_INET6 being tried on HEAD 19:36
vrurg robertle: You guessed it right. In your snipped you use .compile. Otherwise I have no more guesses. I'm not a QAST expert, but you're right: it's not the place to store detailed source information.
[Coke] lizmat: could happen at the same time - but we shouldn't make it a blocker.
robertle vrurg: I guessed that much, so I am trying to use .parse() to get the matches from the grammar instead. but the top-level does not appear to have any children... 19:39
vrurg robertle: did you try to introspect it? It likely to be a NQP::Cursor object, not Match. 19:42
timotimo cursor and match have been unified 19:43
robertle vrurg: actually .^name says it is a Perl6::Grammar itself which confused me a lot at the beginning, but someone here helpfully pointed out that this is expected 19:44
vrurg timotimo: Though I see not list method on Cursor.
robertle: it derives from HLL::Grammar, not Grammer from CORE 19:45
*Grammar
robertle yeah, I found that and did some digging in there, but don't get it
vrurg timotimo: BTW, it seems like I can't call functions using thread context from gdb command line? I tried MVM_print_string – it hangs. I guess there is a mutex somewhere? 19:46
timotimo what's MVM_pring_string?
print*
vrurg timotimo: from strings/ops.c 19:47
MVM_string_print, actually.
timotimo right
output does go through locking
just encode it to utf8, you'll get a char* 19:48
MVM_string_utf8_maybe_encode_C_string
that should do it
vrurg timotimo: Aha, was going that way, but forgot about the maybe_encode variant. Thanks! 19:49
Though I'm not yet sure which way is better: self-format and print or make stripped down simple structs and return them for gdb print? 19:51
Or have both and base self-format on simplified structs. 19:52
timotimo um 19:58
i'm not sure what the goal is
vrurg timotimo: dump complex things like MVMObject, MVMCompUnit, etc., in readable form. 20:01
For CompUnit it might be useful to dump symbols it contains... 20:02
timotimo you know, the debugserver kind of has stuff for that
it serializes to messagepack
but you can deserialize it again right away
in general, having the debugserver stuff available under gdb could be a nice thing in and of itself 20:04
though gdb doesn't accept commands while the program is running
vrurg I'll look at it. Since the source is our only book for Moar I need some well-readable data to follow what it does.
timotimo on the other hand there's a mode where individual threads can be stopped by gdb
rather than all-or-nothing
vrurg Let me see what I get out of it first. For now insepecting at a breakpoint would be good enough for me. 20:05
Thanks! Time for lunch anyway... :)
robertle MasterDuke: you earlier suggested .parse(..).dump(), do you have any idea where that .dump comes from? neither Perl6::Grammar nor the underlying HLL:Grammar does... How could i possibly find out? 20:23
MasterDuke it's somewhere in NQP
maybe src/QAST/Node.nqp:134 or src/QRegex/Cursor.nqp:100 20:24
robertle NQPMatchRole! thanks! 20:26
MasterDuke np
robertle oh dude, I am such a tool! of course they don't all have populated .list, some have populated .hash!!! 20:31
20:50 pmurias left 20:52 pmurias joined
Geth rakudo: 88dfe55c01 | (Elizabeth Mattijsen)++ | 11 files
Some more "die" removals, inspired by 01b86fa8ab949de9
21:11
AlexDaniel vrurg: an idea for the next language release: what do we do with all this AdHoc stuff? 21:38
lizmat AlexDaniel: ?? 21:39
you mean "die" statements in general ?
AlexDaniel lizmat: sometimes you want to catch some particular exception but it turns out that the one you need to catch is AdHoc, which can be anything 21:40
timotimo "adding more structured exceptions" was one of the first kinds of contributions i made back then 21:41
lizmat well... I guess it would be a nice project to replace all "die" statements with X::versions
AlexDaniel greppable6: X\:\:AdHoc 21:44
greppable6 AlexDaniel, 166 lines, 51 modules: gist.github.com/6627e132b1e07d6782...4750c79eef
22:03 Kaiepi left, Kaiepi joined 22:05 Kaiepi left, Kaiepi joined
vrurg AlexDaniel: I think you start it from a little wrong direction. Exceptions need some better structuring to be started with. Like, there is X::Comp role and X::Comp::Group which is not X::Comp. 22:12
AlexDaniel vrurg: not going to argue with that :)
vrurg I would also split Exceptions into a few smaller files. We can plan this (noted). And then wait for a hero to implement it. 22:14
Geth rakudo/Rat-Precision: 474dc0a5d4 | (Elizabeth Mattijsen)++ | src/core/Rat.pm6
Introduce the $*PRECISION variable

This dynamic variable indicates what should happen if a `Rat` is running out of range for its denominator.
  - when not explicitely set, downgrade to Num
  - when explicitely set to the `Num` type object, downgrade to Num
... (24 more lines)
22:15
rakudo: lizmat++ created pull request #3122:
Introduce the $*PRECISION variable
22:16
22:35 pamplemousse_ joined 22:39 pamplemousse left 22:43 dogbert17 left 22:55 MasterDuke left 22:59 MasterDuke joined 23:09 pmurias left 23:20 epony joined
vrurg AlexDaniel: I just realized that I cannot create projects in problem-solving yet. 23:30