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 Kaiepi left 00:28 Kaiepi joined 00:29 p6bannerbot sets mode: +v Kaiepi 00:46 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 01:15 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 01:32 Kaiepi left 01:33 Kaiepi joined 01:34 p6bannerbot sets mode: +v Kaiepi 01:40 j3nnn1 left 02:13 ufobat_ joined 02:14 p6bannerbot sets mode: +v ufobat_ 02:17 ufobat left 03:01 Kaiepi left 03:02 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi 03:19 Kaiepi left, Kaiepi joined 03:20 p6bannerbot sets mode: +v Kaiepi 03:54 fake_space_whale left 04:00 MasterDuke left 04:49 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 05:17 fake_space_whale left 05:39 Kaiepi left, Kaiepi joined 05:40 p6bannerbot sets mode: +v Kaiepi
nine AlexDaniel: the long name is the full name like Inline::Perl5:version<0.35>:auth<github:niner> 06:18
06:25 robertle joined, p6bannerbot sets mode: +v robertle 06:57 cognominal-p6 left
AlexDaniel nine: so I only have to update that file whenever I update zef? 07:11
AlexDaniel is very confused
( context colabti.org/irclogger/irclogger_log...10-21#l135 )
nine AlexDaniel: no, you definitely do not touch installed files. Perl 6 explicitly requires installed distributions to be immutable. A long name must refer to one and only one version of a dist's code. 07:13
AlexDaniel nine: ok now it feels like we're talking about something different 07:14
nine: I'm trying to resolve this: github.com/perl6/Blin/issues/2
`zef --help` gives a path to the configuration file
if I shouldn't touch it, then what can I do? 07:15
nine AlexDaniel: --config-path=[path] Load a specific Zef config file 07:16
AlexDaniel ahhh, hmm 07:17
rightā€¦ well, that totally makes sense
nine: d'oh! Hehā€¦ thank you! 07:18
nine Glad I could help! 07:19
07:23 cognominal-p6 joined 07:24 p6bannerbot sets mode: +v cognominal-p6 07:41 ufobat_ is now known as ufobat 07:45 cognominal-p6 left, cognominal-p6 joined 07:46 p6bannerbot sets mode: +v cognominal-p6 07:49 cognominal-p6 left 07:51 cognominal-p6 joined, cognominal-p6 left 07:52 cognominal-p6 joined, p6bannerbot sets mode: +v cognominal-p6 08:16 lizmat left 08:32 lizmat joined, p6bannerbot sets mode: +v lizmat 08:34 yoleaux left 08:39 AlexDaniel left
nine timotimo++ # the profiler is indespensable in getting nqp-mbc merge worthy. 08:48
Btw timotimo, answering my own question: the way to avoid the uint -> num -> int -> uint dance I mentioned yesterday feels kina obvious in hind sight: use unbox_u explicitly! NQP just can't know that the $register object boxes an uint already and has to be conservative. 08:51
timotimo nine: that's great to hear! feel free to guide me with feature requests :) 09:34
nine It's odd. I feel like I finally understand (register) type handling in NQP. And that's after spending a month working on the code that's actually implementing it. And the finding is: it's quite primitive! Which also makes it simple and easy to influence. 09:50
timotimo ah, i guess that makes sense
nine The only thing to keep in mind is, that NQP only knows the types of locals, lexicals and op results. It cannot look into objects or methods. 09:51
timotimo i've touched the optimizer part of nqp for making the amount of num arithmetic decrease
nine I dare say this also explains why it's so difficult to change NQP's default to int. You'd have to adapt all code paths that may actually need to be able to handle nums. 09:52
timotimo: there's a message from the profiler about passing a file name to service.p6. But it doesn't state how to actually do this. It's not obvious to a non-cro-user 09:56
timotimo on my end it's just perl6 -I lib -I ../moar-heapanalyzer/ service.p6 /tmp/magicbox.sql but that's because i develop it 09:57
but you're right
a sub MAIN would be appropriate
nine I run the profiler with "cro run ." (as told by the README). I'm not even sure how that involves a service.p6 :) 09:58
timotimo hah, that's still the readme from the tutorial repo %) 10:14
10:15 cognominal-p6 left 10:22 donaldh joined 10:23 p6bannerbot sets mode: +v donaldh, cognominal-p6 joined 10:24 p6bannerbot sets mode: +v cognominal-p6 10:30 yoleaux joined, p6bannerbot sets mode: +v yoleaux 10:35 Kaiepi left, Kaiepi joined 10:36 p6bannerbot sets mode: +v Kaiepi 10:42 cognominal-p6 left, cognominal-p6 joined 10:43 p6bannerbot sets mode: +v cognominal-p6 11:05 Kaiepi left 11:06 PufferBot left 11:08 Kaiepi joined 11:09 p6bannerbot sets mode: +v Kaiepi 11:15 Zoffix left 11:32 lizmat left 11:35 lizmat joined, p6bannerbot sets mode: +v lizmat 12:09 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 12:22 cognominal-p6 left
timotimo who wants to investigate why Channel's send method has this code: nqp::if( 12:30
$!closed,
which compiles into an attrref instead of attr
so it allocates a nativeref every time it's called
lizmat timotimo: isn't that how all int attributes work ? 12:39
and the reason they're slow to use in some situations ? 12:40
timotimo: in any case, there's nothing special about Channel's $!closed in that way
use nqp; class A { has int $!a; method a() { $!a ?? 42 !! 666 } } # shows the same 12:41
timotimo man, that'd be worth something 12:47
fixing that, i mean
AFK, though
lizmat timotimo: are you implying that it should only ever allocate 1 attributeref, or that it shouldn't allocate any at all? 12:53
12:54 MasterDuke joined 12:55 p6bannerbot sets mode: +v MasterDuke
MasterDuke nine: if youā€™re interested, github.com/MasterDuke17/nqp/tree/d...ead_of_num is my WIP branch to change NQP to use int instead of num 12:55
I havenā€™t rebased recently, but it built and passed ā€˜make m-testā€™ 12:56
However, the corresponding Rakudo branch doesnā€™t yet build 12:57
If you have any comments/suggestions they would be much appreciated
timotimo: btw, thereā€™s a request for some more info to your answer here stackoverflow.com/questions/528303...-in-perl-6 12:59
SmokeMachine: also, maybe you could comment about your recent fixes here stackoverflow.com/questions/528616...-for-perl6 13:05
13:07 MasterDuke_ joined
SmokeMachine Iā€™ll try when I come home... but my problem is my English... 13:07
MasterDuke: ā˜ļø
13:07 p6bannerbot sets mode: +v MasterDuke_ 13:08 MasterDuke_ left 13:09 MasterDuke_ joined 13:10 brrt joined, p6bannerbot sets mode: +v MasterDuke_, p6bannerbot sets mode: +v brrt, MasterDuke_ left, MasterDuke left 13:24 Kaiepi left 13:25 Kaiepi joined 13:26 p6bannerbot sets mode: +v Kaiepi
timotimo lizmat: i don't see a need for it to use attributeref at all there. on top of that, it's using bool_I on the object, which is not only doing unneccessarily indirect lookup of the attribute itself, but probably also doesn't boolify the result very efficiently 14:11
tbh, i'm not quite sure how it's using sp_bool_I on the result of attrref_i anyway?! 14:12
lizmat well, I just tried to replace attributeref by attribute in Actions (line 3365), and that breaks the setting
my turn to be afk&
timotimo i need to investigate more closely. 14:13
oh, i was mistaken, the bool_I must be from something else 14:14
14:18 Ven` joined 14:19 p6bannerbot sets mode: +v Ven`
Geth rakudo/gh-2320-placeholder-method-error: 4 commits pushed by (Rob Hoelz)++ 14:55
timotimo it's hoelzro! \o/ 14:56
Geth rakudo: hoelzro++ created pull request #2415:
Fix placeholder method error
14:58
hoelzro o/ 14:59
that looked like a fun fix to make =)
14:59 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias m: multi y(int $x is rw) { say('good') }; y(my int $x = 42); 15:00
yoleaux 22 Oct 2018 19:46Z <AlexDaniel> pmurias: just wondering, what was the reason to remove --encoding? The commit message doesn't explain why github.com/rakudo/rakudo/commit/bea08ec6
camelia Cannot resolve caller y(Int); none of these signatures match:
(int $x is rw)
in block <unit> at <tmp> line 1
yoleaux 22 Oct 2018 20:30Z <AlexDaniel> pmurias: ah ok, nevermind: colabti.org/irclogger/irclogger_log...10-22#l144
22 Oct 2018 20:31Z <AlexDaniel> pmurias: how would you like JS backend to be announced in the changelog? Feel free to write as little or as much as you want here: github.com/rakudo/rakudo/wiki/ChangeLog-Draft
pmurias ^^ is this a bug?
15:00 fake_space_whale joined 15:01 p6bannerbot sets mode: +v fake_space_whale
AlexDaniel m: multi y(int $x) { say $x }; y(42) 15:02
camelia Cannot resolve caller y(Int); none of these signatures match:
(int $x)
in block <unit> at <tmp> line 1
AlexDaniel m: sub y(int $x) { say $x }; y(42)
camelia 42
AlexDaniel what about this?
m: sub y(int $x is rw) { say(ā€˜goodā€™) }; y(my int $x = 42); 15:03
camelia Expected a modifiable native int argument for '$x'
in sub y at <tmp> line 1
in block <unit> at <tmp> line 1
15:04 brrt left
AlexDaniel pmurias: IMO not a bug, 42 is what gets passed 15:04
but why sub works and multi doesn't, that I don't know
pmurias m: multi y(int $x is rw) { 'works at compile time' }; say y(my int $x = 42); 15:06
camelia works at compile time
pmurias AlexDaniel: how it works depends on what's in the sub
AlexDaniel o_o
pmurias because the optimizer uses different rules 15:07
15:17 cognominal-p6 joined 15:18 p6bannerbot sets mode: +v cognominal-p6 15:19 j3nnn1 joined, p6bannerbot sets mode: +v j3nnn1 15:22 Kaiepi left 15:25 Kaiepi joined 15:26 donaldh left, p6bannerbot sets mode: +v Kaiepi
Geth rakudo: lizmat self-assigned Signatures does not shows Coercion types when gisted. github.com/rakudo/rakudo/issues/2416
0243275def | (Elizabeth Mattijsen)++ | src/core/Parameter.pm6

So we can introspect the type we should coerce to. Also adapt Parameter.perl to take the coerce_type into account.
Fixes R#2416
15:30
15:39 robertle left 15:41 cognominal-p6 left 15:51 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix Does precompilation happen on multiple threads? 15:51
nine no 15:52
Zoffix I don't get how I get this output: gist.github.com/zoffixznet/8a46fb7...4a211beb87
1 printf + conditional with another printf in each branch. Yeah, I get one print of first printf in the output, followed by double print of one of the printf inside the conditional, using different values :S 15:53
MVM_6model_parametric_parameterize.1: FOUND [(null)]
MVM_6model_parametric_parameterize.1: FOUND [Array[Mu]]
That one. How could it print side by side like that, without a "MVM_6model_parametric_parameterize.1: trying to find for ā€¦" in between?
nine Maybe the spesh thread?
Zoffix Still same output with `MVM_SPESH_DISABLE=1`. And it's very consistent too. It's always two consequtive "FOUND" messages in the same order. 15:54
and same with `MVM_SPESH_BLOCKING=1` set 15:55
nine You could add a MVM_dump_backtrace(tc) there to get the Perl 6 backtrace
Zoffix cool
synopsebot R#2416 [open]: github.com/rakudo/rakudo/issues/2416 Signatures does not shows Coercion types when gisted.
lizmat this seems to break some tests in t/spec/S06-currying/positional.t that apparently do not expect the coerce_type to appear 15:58
imo the tests are broken
16:03 fake_space_whale left 16:07 brrt joined 16:08 p6bannerbot sets mode: +v brrt 16:12 pmurias left 16:13 pmurias joined, p6bannerbot sets mode: +v pmurias 16:14 pmurias left 16:19 pmurias joined, p6bannerbot sets mode: +v pmurias 16:22 Ven` left 16:33 Ven` joined 16:34 p6bannerbot sets mode: +v Ven` 16:37 denix13 joined, p6bannerbot sets mode: +v denix13 16:38 Ven` left 16:45 pmurias left 16:46 denix13 left 16:47 pmurias joined, p6bannerbot sets mode: +v pmurias 16:52 Zoffix left 16:54 cognominal-p6 joined 16:55 p6bannerbot sets mode: +v cognominal-p6 17:07 cognominal-p6 left, cognominal-p6 joined 17:08 p6bannerbot sets mode: +v cognominal-p6 17:17 robertle joined 17:18 p6bannerbot sets mode: +v robertle 17:21 lizmat left 17:37 cognominal-p6 left 17:51 brrt left 17:52 pmurias left 17:57 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias masak: there is a difference between compile-time (when a modules is compiled) and (load time when it's loaded while compiling something that usesit) 18:01
* uses it
masak: I don't remember the context of the discussion 18:03
masak: but there are at least three phases: 1) compiling the module itself 2) loading the module from disk and having it affect the compilation of something else 3) actuall runtime 18:05
masak: all 3 of them can be separated by time and space 18:06
18:23 Kaiepi left, Kaiepi joined 18:24 p6bannerbot sets mode: +v Kaiepi 19:12 Ven` joined, p6bannerbot sets mode: +v Ven` 19:16 Ven` left
masak pmurias: thank you for the clarification. that makes sense, and it seems to not be in conflict with what I just discovered about modules. 19:17
19:20 brrt joined 19:21 p6bannerbot sets mode: +v brrt 19:34 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Geth rakudo/gh-2320-placeholder-method-error: 27558ef28f | (Rob Hoelz)++ | src/Perl6/Actions.nqp
Use node instead of ast for placeholder AST name

  Zoffix suggested this is more consistent with the Rakudo codebase
19:43
rakudo/gh-2320-placeholder-method-error: c1bb351224 | (Rob Hoelz)++ | t/05-messages/03-errors.t
Add test for GH #2320
19:47 leont joined, p6bannerbot sets mode: +v leont, AlexDaniel left 19:48 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 20:02 shareable6 left, shareable6 joined 20:03 p6bannerbot sets mode: +v shareable6, Kaiepi left 20:05 Kaiepi joined 20:06 p6bannerbot sets mode: +v Kaiepi 20:12 ggoebel joined 20:13 p6bannerbot sets mode: +v ggoebel 20:33 cognominal-p6 joined 20:34 p6bannerbot sets mode: +v cognominal-p6 20:35 ggoebel left 20:42 cognominal-p6 left, cognominal-p6 joined 20:43 p6bannerbot sets mode: +v cognominal-p6 20:48 robertle left 20:50 ggoebel joined 20:51 p6bannerbot sets mode: +v ggoebel 20:52 ZofBot left 20:57 shareable6 left, reportable6 left, committable6 left, releasable6 left, bisectable6 left, committable6 joined, reportable6 joined, ChanServ sets mode: +v committable6, ChanServ sets mode: +v reportable6, shareable6 joined, ChanServ sets mode: +v shareable6, releasable6 joined, ChanServ sets mode: +v releasable6, greppable6 left, bisectable6 joined, ChanServ sets mode: +v bisectable6, notable6 left, greppable6 joined, ChanServ sets mode: +v greppable6, notable6 joined 20:58 p6bannerbot sets mode: +v committable6, p6bannerbot sets mode: +v reportable6, p6bannerbot sets mode: +v shareable6, cognominal-p6 left, p6bannerbot sets mode: +v releasable6, p6bannerbot sets mode: +v bisectable6, p6bannerbot sets mode: +v greppable6, p6bannerbot sets mode: +v notable6
AlexDaniel ===> Searching for: sake 21:02
free(): invalid next size (fast)
hmmmmm
21:02 cognominal-p6 joined
AlexDaniel I wonder if we already had that instability previously 21:02
21:03 p6bannerbot sets mode: +v cognominal-p6
AlexDaniel that happened to just one module 21:04
21:07 cognominal-p6 left, cognominal-p6 joined 21:08 p6bannerbot sets mode: +v cognominal-p6 21:16 pmurias left 21:36 brrt left 22:06 Ven` joined 22:07 p6bannerbot sets mode: +v Ven` 22:10 Ven` left 22:41 dct joined, p6bannerbot sets mode: +v dct 22:46 Ven` joined, p6bannerbot sets mode: +v Ven` 22:48 fake_space_whale joined 22:49 p6bannerbot sets mode: +v fake_space_whale 22:51 Ven` left 22:52 cognominal-p6 left 23:37 dct left 23:46 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 23:47 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke