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.
AlexDaniel any chance of a golf? :) 00:01
japhb AlexDaniel: OK, previous rev got much farther, it passed testing of IO::Path::ChildSecure, but died later in the install sequence at another module I usually never have problems with: 00:07
===> Testing: Pod::To::HTML:ver<0.3.22> 00:08
# Failed test at t/060-table.t line 92
# Looks like you failed 1 test of 4
AlexDaniel Pod::To::HTML? why are you installing it?
so what's going on exactly? 00:09
japhb AlexDaniel: Checking ....
Appears to be a dependency of a dependency, checking which one 00:10
App::Mi6 -> Pod::To::Markdown -> Pod::To::HTML 00:12
AlexDaniel so I should be testing App::Mi6, right? 00:15
japhb AlexDaniel: yeah
00:16 lizmat left
japhb Generally I find cro and App::Mi6 to have "interesting" dependency trees, in that they catch compiler regressions ... which is part of why I attempt to install them always in my rebuild script, before marking a new build as "safe to put in PATH" 00:17
The last totally clean rebuild I've managed was 2018.09 (the actually release), but I've been AFK a lot since then, so I would not be surprised if I just got unlucky with builds. Still, it feels like the failure modes post-2018.09 have been more variable and more common than I'm used to. 00:20
AlexDaniel japhb: can you file a ticket? 00:21
japhb AlexDaniel: Against Rakudo, I'm guessing? 00:22
AlexDaniel yeah
japhb wonders how to frame the problem 00:23
AlexDaniel ā€œon 2018.09 I was able to install X Y Z, on HEAD(ā€¦) these modules failā€ 00:24
japhb I build a couple dozen modules, the list hasn't changed in quite a while, and now I can't get through the entire list on any rev I've tried. But the failing module changes from rev to rev, so it's not like "this is the one that you can use as a canary and know your fix is correct" 00:25
japhb is trying to avoid a ticket that he himself would close as unactionable
AlexDaniel this can't be closed, it's a blocker 00:26
until we figure out what's wrong exactly
japhb AlexDaniel: What's the state of full-ecosystem toasting? Does that only happen during pre-release? Are those modules installed in any sort of sequence, or independently each on a fresh Rakudo tree? Are any of the modules considered automatic hard blockers at this point if they won't install cleanly? 00:29
AlexDaniel: OK, fair enough.
AlexDaniel japhb: oh that's a lot of questions. Yes I test the whole ecosystem before the release. Previously it was done with Toaster, this release hopefully with a new tool. Toaster attempts to install them independently (sort of), new tool installs every module just once (unless it fails, then there are more attempts and bisection). Any module that used to work on the previous release and doesn't work on HEAD is a blocker unless there's some 00:31
good reasoning why it should be that way
japhb: by the way, App::Mi6 is installed cleanly on HEAD with all of its dependencies 00:32
and IO::Path::ChildSecure still bisects to 3b453c575de14efd3abfa4f49c82a059ddccc3cd, I did many runs and the result is always the same 00:33
so on 3b453c575^ it was installable and starting with 3b453c575 it no longer is
but maybe the whole 3b453c575 revision is busted, I'm not sure 00:34
japhb: feel free to ask more :) 00:35
japhb Yeah, I'm wondering if I should write myself a ratchet that tries to keep moving forward on "safe revs", trying every single one and tracking them.
AlexDaniel no need, my tool tests HEAD and previous release, if there's any need it bisects 00:36
I mean if there's any issue with any module
it also does multiple runs to deflap some modules, and stuff like that
so testing every single one is a waste of COā‚‚ I think :) 00:37
but hey, I can't be telling people not to write tools
so go for it if you feel like
japhb AlexDaniel: No, I meant, so that every time I report a similar problem, I can always report "... and this is the latest rev that managed to install *all* my modules" 00:38
AlexDaniel japhb: IMO that's a bit LTA as some problems are sometimes introduced and then fixed, so last revision when all modules were installable can potentially be a waste of time when trying to figure out what went wrong exactly 00:40
japhb: BUT if you made a ticket like that, I'd be able to give you the result from bisectable for every failing module 00:41
in like, a few minutes
so it's very useful and LTA at the same time :)
japhb: and then, my new tool is vaporware, cuzā€¦ eh uhā€¦ just becauseā€¦ time I guess 00:42
it does generate pretty graphs though: gist.github.com/AlexDaniel/d7b789e...6dadd9a3ad :) 00:43
heh, which way the arrows should goā€¦ For dependencies, sure, but I'm more interested in error propagation, so I might as well flip them 00:45
japhb OK, submitted. It stills feel like a crappy bug report, but hopefully it will help. 00:55
R#2345
synopsebot R#2345 [open]: github.com/rakudo/rakudo/issues/2345 Post-2018.09 module install failures
Kaiepi i think S32-io/IO-Socket-Async might need a little reworking 00:57
japhb Is there a git command for "next rev after A along branch B"?
Kaiepi it's an awful fragile test
geekosaur japhb, not directly, because git doesnt' really think that way. goig backwards is trivial, forward is harder because "branch" is more of a structure users impose on its more free-form structure 00:58
(in particular, there can be multiple paths from a given HEAD back to a particular commit if there have been "octopus merges") 01:01
japhb geekosaur: nodnod. I was thinking of doing something like `git rev-list B ^A |tail -1`, but that falls prey to merging in an ancient branch, as for example just happened with the js merge 01:03
geekosaur yep
AlexDaniel octopus merges! That's exactly what I wanted to read about right now :)
japhb In some sense, I want to only see the commits that moved the branch tip, so maybe git ref-log? 01:04
japhb goes to RTFM
geekosaur as long as it still exists, sure 01:06
(reflog gets gc-d periodically)
(not to mention that it can leave you wondering fi the correct reading is ref-log or re-flog) 01:07
japhb Heh 01:11
AlexDaniel hehe lkml.iu.edu/hypermail/linux/kernel/...01926.html 01:13
japhb Oooh, `git rev-list --oneline --reverse --ancestry-path 2018.09..master` gives a promising list ... --ancestry-path might be the thing that DWIMs. 01:15
AlexDaniel committable: 2018.09,HEAD gist.github.com/AlexDaniel/46dc4ea...8b340c8f44
committable6 AlexDaniel, Using file ā€œfoo.p6ā€ as a main file, other files are placed in ā€œsandbox/ā€
AlexDaniel, gist.github.com/20c7cfdd261ef519e5...346d83b522
AlexDaniel bisect: old=2018.09 gist.github.com/AlexDaniel/46dc4ea...8b340c8f44
bisectable6 AlexDaniel, Using file ā€œfoo.p6ā€ as a main file, other files are placed in ā€œsandbox/ā€ 01:16
AlexDaniel, Bisecting by exit code (old=2018.09 new=8bb34ff). Old exit code: 0
AlexDaniel, bisect log: gist.github.com/a883f01d0bc3ffb143...f0438a6b89
AlexDaniel, (2018-08-13) github.com/rakudo/rakudo/commit/25...2180057028
AlexDaniel ā€¦ merge commit?
c: 1a95d05,d8d51d0 gist.github.com/AlexDaniel/46dc4ea...8b340c8f44 01:17
committable6 AlexDaniel, Using file ā€œfoo.p6ā€ as a main file, other files are placed in ā€œsandbox/ā€
AlexDaniel, Ā¦1a95d05,d8d51d0: Ā«Ā»
AlexDaniel both parents are fine
c: 2558ffa9be gist.github.com/AlexDaniel/46dc4ea...8b340c8f44
committable6 AlexDaniel, Using file ā€œfoo.p6ā€ as a main file, other files are placed in ā€œsandbox/ā€
AlexDaniel, gist.github.com/55f7a618c9a2d190fa...9cb8927a2e
AlexDaniel busted after the merge o_O 01:18
Geth roast: 77f67b5b02 | (Zoffix Znet)++ | 2 files
[v6.d REVIEW] Appendicize Range.new with wrong args

Orig: github.com/perl6/roast/commit/6ac1f272f
02:28
Kaiepi is there a way to only update rakudo files that have been changed instead of having to rebuild the entire package? 03:08
MasterDuke Kaiepi: usually not. if you're talking about the .pm6 files that make it up, most of them are concatenated together and then compiled as one giant file because it's faster 03:13
i think the ext ops and some stuff can be re-built independently, but i don't know exactly what (i just rebuild everything when i make a change) 03:14
Kaiepi damn 03:16
03:49 MasterDuke left 05:15 ufobat_ joined, p6bannerbot sets mode: +v ufobat_
Kaiepi perl6 -Mnqp <file> is a godsend for catching some errors before running make on rakudo 05:23
why in the absolute fuck does ListenSocket keep thinking $socket-host and $socket-port are undefined Promises when they're clearly defined in SocketListenerTappable? hastebin.com/uladicerez.rb 05:46
05:46 AlexDani` joined 05:47 p6bannerbot sets mode: +v AlexDani` 05:51 AlexDaniel left 06:07 brrt joined 06:08 p6bannerbot sets mode: +v brrt
japhb .tell AlexDaniel` I've got a decent draft of my ratchet-rakudo script running. I'm going to leave it looping overnight, and see how far it gets. 06:11
yoleaux japhb: I'll pass your message to AlexDaniel`.
06:12 fake_space_whale left 06:44 patrickb joined, p6bannerbot sets mode: +v patrickb 07:04 brrt left 07:35 Kaiepi left 07:39 Kaiepi joined 07:40 p6bannerbot sets mode: +v Kaiepi 08:26 Ven` joined 08:27 p6bannerbot sets mode: +v Ven` 08:39 Ven` left 08:40 Ven` joined 08:41 p6bannerbot sets mode: +v Ven` 08:46 lizmat joined, p6bannerbot sets mode: +v lizmat
Geth nqp: f58e37bee3 | tison++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncFileHandle.java
[jvm] code clean
08:48
08:50 pmurias left, pmurias joined, p6bannerbot sets mode: +v pmurias
lizmat m: my $a; my $b; 42 ?? $a !! $b = 666; dd $a, $b # TIL 09:04
camelia Int $a = 666
Any $b = Any
jnthn First class Scalar strikes again :) 09:21
yoleaux 7 Oct 2018 23:29Z <timotimo> jnthn: i'm not sure i understand "there's still lots more to be had. which is a good job, since ..."; like, the "a good job" part?
jnthn .tell timotimo www.collinsdictionary.com/dictiona...a-good-job 09:22
yoleaux jnthn: I'll pass your message to timotimo.
09:38 robertle joined 09:39 p6bannerbot sets mode: +v robertle
lizmat reportable6: 2018-10-01T00:00:00Z 2018-10-08T00:00:00Z 09:39
reportable6 lizmat, Couldn't find a snapshot for 2018-10-08T00:00:00Z (try ļ½¢listļ½£ command to see what's available).
lizmat reportable6: list 09:40
reportable6 lizmat, gist.github.com/06ab1033709d833620...1bf62b7894
lizmat notable6: weekly 09:41
notable6 lizmat, 8 notes: gist.github.com/482b148bce9008812b...615ae39a7f
lizmat idea: how about using the "use precompilation" in scripts to indicate the user wants the script to be precompiled ? 09:48
|Tux| Rakudo version 2018.09-371-g8bb34ff07 - MoarVM version 2018.09-124-g588873f7a
csv-ip5xs0.914 - 0.971
csv-ip5xs-207.585 - 7.615
csv-parser21.560 - 21.652
csv-test-xs-200.429 - 0.430
test7.947 - 8.027
test-t1.699 - 1.726
test-t --race0.811 - 0.816
test-t-2029.673 - 29.695
test-t-20 --race10.733 - 11.258
10:00
10:39 pmurias left 10:40 pmurias joined, p6bannerbot sets mode: +v pmurias 10:43 pmurias left 10:45 pmurias joined, p6bannerbot sets mode: +v pmurias
lizmat Files=1255, Tests=75814, 340 wallclock secs (15.77 usr 5.32 sys + 2375.93 cusr 245.55 csys = 2642.57 CPU) 10:53
tbrowder__ hi, folks 10:56
nine lizmat: we would only know that we should have been loading the precompiled version when we are already compiling the script ;) 10:57
tbrowder__ need some advice again ref pod in rakudo nqp grammar
lizmat nine: true, but once encountered, we could save a precomped version, or not? 10:58
and at script startup, we could see if there is a precomped version, whether the SHA matches, and then run that ? 10:59
nine If we can precompile scripts and load them at startup, why would we ever not want to do that?
lizmat because sometimes you're just working with a throwaway script? 11:00
and only when you're sure you about it, add the "use precompilationn
"?
tbrowder__ situation is i need to extract some info from pod_configuration about presence or absence of a specific key/value that affects whether to take one content grammar alternation or not.
nine Sounds like a lot of work just to save a couple of kilobytes for precompiled files. It also requires users to actually know about this rather obscure pragma 11:01
lizmat so why don't we just precompile all of our scripts right now ? 11:02
is it just a matter of NYI ?
nine pretty much
tbrowder__ it seems i can stringify pod_configuration reliably so i can call a function to extract info into a hash i then read in the grammar.
nine It's not entirely straight forward as the assumption that we will compile something runs rather deep in rakudo. But there's nothing against it in principle 11:03
Geth roast: f11042b937 | (Elizabeth Mattijsen)++ | S11-modules/export.t
Unfudge now passing tests
nine tbrowder__: so no more advice necessary? 11:04
tbrowder__ i can see successful info flow through the hash generation but the passed hash seems to lose the data. the hash is passed as a return
from the sub. maybe i should pass the hash around as an arg instead? 11:05
or i could, inside grammar, define a special var to carry that info in pod_configuration match 11:07
problem with 2nd op is the weeds of coloncircumfix grammar 11:09
thoughts please? i will attempt using hash as sub arg but wonder why hash return wouldnā€™t work 11:10
btw, iā€™m using %h instead of $h and wonder how that affects things 11:11
lizmat that should only make a difference if you're iterating over it, no ? 11:13
11:13 pmurias left
tbrowder__ i do iterate over it in debugging, but %h seems to work fine in nqp examples on perl6/nqp 11:15
11:15 pmurias joined, p6bannerbot sets mode: +v pmurias
lizmat yeah, I'm not 100% sure of the semantics in nqp 11:15
tbrowder__ unless someone has a better idea, iā€™m going to try using hash in sub args. thnx for ā€œlisteningā€! 11:17
lizmat yw :-) 11:20
11:24 brrt joined 11:25 p6bannerbot sets mode: +v brrt 11:43 epony left 11:49 ZzZombo joined, p6bannerbot sets mode: +v ZzZombo
Geth rakudo: 688cbac1ef | (Elizabeth Mattijsen)++ | src/core/IO/Spec.pm6
Initialize lookup at setting compile time, instead of each startup
11:59
rakudo: 92735770f1 | (Elizabeth Mattijsen)++ | src/core/Exception.pm6
Initialize Perl 5 var lookup at setting compile time

And not at every startup
12:05 pmurias left 12:11 pmurias joined, p6bannerbot sets mode: +v pmurias
tbrowder__ just another thought: the hash may munged due to an error of odd number of elements, sounds like good rabbit to chase... 12:12
12:26 epony joined, p6bannerbot sets mode: +v epony 12:29 fake_space_whale joined 12:30 p6bannerbot sets mode: +v fake_space_whale 12:45 epony left
lizmat .ask jnthn the difference between my $a := 42 and my \a = 42 appears to be one less QAST::Var(lexical $a :decl(var)) 12:47
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .ask jnthn is that something to pursue in the core setting, to get rid of those QAST::Var's ?
yoleaux lizmat: I'll pass your message to jnthn.
lizmat bisectable6: my %h := Hash[Int].new; %h<a> = "b" 13:12
bisectable6 lizmat, On both starting points (old=2015.12 new=9273577) the exit code is 0 and the output is identical as well
lizmat, Output on both points: Ā«Ā»
lizmat m: my %h := Hash[Int].new; %h<a> = "b" 13:13
camelia ( no output )
13:13 AlexDani` is now known as AlexDaniel
lizmat hmmm this appears to have been broken like forever :-( 13:13
m: my Int %h; %h<a> = "b" # expected output 13:14
camelia Type check failed in assignment to %h; expected Int but got Str ("b")
in block <unit> at <tmp> line 1
AlexDaniel reportable6: ehhhh you're hanging again? 13:18
reportable6 AlexDaniel, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Reportable
13:18 reportable6 left, reportable6 joined
AlexDaniel last one on 2018-10-07T06:00:00Z ā€¦ almost 13:19
13:19 p6bannerbot sets mode: +v reportable6
AlexDaniel that will do I think 13:19
reportable6: 2018-10-01T00:00:00Z 2018-10-07T06:00:00Z
reportable6 AlexDaniel, OK, working on it! This may take up to 40 seconds
AlexDaniel, gist.github.com/5cac3a9e6fc01e2ea4...772f43a7ff 13:20
AlexDaniel lizmat: that one is close enough ā†‘ 13:21
just 18 hours off, and changes during these 18 hours will be shown in the next one 13:22
lizmat AlexDaniel++ :-) 13:25
13:28 epony joined, p6bannerbot sets mode: +v epony 13:39 pmurias left 13:40 pmurias joined, p6bannerbot sets mode: +v pmurias
brrt maybe we should have an attribute on nativecall to mark calls blocking or nonblocking 14:01
jnthn brrt: why, ooc? 14:03
Skip the "mark blocked for GC" thing?
brrt indeed
that might be a nice optimization
timotimo if you know it's a very fast function?
brrt right
or an async one
i'd prefer the default to be blocking, still 14:04
timotimo well, since it's about when it returns on the C level, there's no difference between very fast and async :)
brrt :-)
jnthn Yeah, I think going on statistics for that is pushing our luck :)
Probably a trait is right
And yes, current, safer, semantics as the default, and opt in to the speedier thing when you know it's safe
brrt I'm imagining a future postmortem saying 14:05
timotimo what would be non-safe? wouldn't it just block other threads until the function is done?
brrt 'the engineer who added the 'nonblocking' a attribute had only run a benchmark on his local machine'
that could be fairly bad though 14:06
timotimo surely it'd be a DIHWIDT thing
brrt DIHWIDT?
timotimo doctor, it hurts when i do that
brrt haha, yes
but the default should probably be to have people not do that 14:07
timotimo right, that's a good default IMO 14:08
japhb AlexDaniel: So my ratchet-rakudo script is still trucking along. The last successful build of Rakudo and all my modules was 2018.09-24-g75cf8be72 and it's currently working on 2018.09-60-gcc2fcc9af . 14:15
AlexDaniel japhb: yeah, well, js branch merge is the problem
so I don't know how well these revisions represent things
but we will see 14:16
14:32 Ven` left
patrickb I think it hasn't been linked here: blogs.perl.org/users/pawel_murias/2...iling.html 14:34
timotimo yay 14:35
14:38 pmurias left 14:39 Ven` joined, pmurias joined, p6bannerbot sets mode: +v pmurias 14:40 p6bannerbot sets mode: +v Ven`
AlexDaniel pmurias++ # awesome 14:41
lizmat m: sub a(--> Mu) { }; dd a # intriguing error 14:51
camelia Nil
jnthn How so?
Mu is a type check, Nil is the default value of an empty sub, and Nil ~~ Mu 14:52
lizmat ah, duh... :-) 14:53
pmurias hmm, should rakudo.js be required to support int64?
I could emulate int64 with BigInts but the problem is that if I treat js as a 32bit backend, add_i etc. will be 32bit 14:56
Kaiepi can someone take a look at github.com/perl6/nqp/pull/505/comm...a4342213b9 ? i'm not very experienced with java and i'm not sure if there's a better way of implementing the new op 15:02
15:03 brrt left 15:05 Ven` left 15:06 SyrupThinker joined 15:07 p6bannerbot sets mode: +v SyrupThinker
SyrupThinker Hi. I found a simple bug in rakudo and have a one char fix for it. Should I open a GitHub report or just provide it here? 15:09
Kaiepi make a pullreq 15:10
timotimo i mean, it'd surely be fine to find someone who'd immediately commit it for you if you don't want to go through the song and dance
pmurias Kaiepi: why are use using this.attribute instead of attribute 15:11
?
SyrupThinker That was more my reasoning, because it really is one char
Kaiepi i don't need to?
i thought i did since i'm used to javascript
timotimo you can turn it into a shell one-liner that edits the file with sed or ed, "git add"s it, git commit -m's it with a nice message and GIT_AUTHOR set ... :) 15:13
SyrupThinker Alright :)
diakopter just say the diff :)
what's the character 15:14
SyrupThinker Nah, that was so nice I'll do the PR. Its 2 -> 3
diakopter oooooo off by 1ish
15:16 pmurias left 15:17 pmurias joined, p6bannerbot sets mode: +v pmurias 15:22 Ven` joined, pmurias_ joined, p6bannerbot sets mode: +v pmurias_ 15:23 p6bannerbot sets mode: +v Ven`, pmurias left 15:24 epony left 15:29 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 15:30 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 15:32 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 15:41 ExtraCrispy left 15:43 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 15:45 patrickb left
pmurias_ Kaiepi: Foo(Bar attribute) {this.attribute = attribute;} is commonly used in constructors but when you don't need this. usually 15:49
Kaiepi oh 15:50
16:02 pmurias_ is now known as pmurias
pmurias jnthn: do you think adding nqp::add_i64, etc. and a new value for nqp::objprimspec for int64 a sane plan to emulate 64bit ints on 32bit backends? 16:03
s/a/is a/
16:03 robertle left
jnthn Hmm...not especially, the assumption had been that calculations would be done at full width 16:04
Though if native full width is 32-bit I guess that's trickier...
Wonder if add_i on such platforms can infer it from considering the argument types 16:05
Geth rakudo: SyrupThinker++ created pull request #2350:
Use the correct ContainerDescriptor for Shaped3Array
pmurias jnthn: well if we add two 32bit ints we might want a 64bit result :/ 16:12
AlexDaniel SyrupThinker: can you also PR some tests in roast? github.com/perl6/roast/
pmurias my int $x; my int $y; my int64 $a = $x + $y; 16:13
jnthn: ^^ like this
AlexDaniel timotimo: I disagree, btw. Going through song and dance is a better idea because it unsures we'll end up with a test in roast 16:17
creating a ticket first never hurts
ensures* 16:18
pmurias jnthn: nqp::objprimspec would stay the same on 64bit backends, the plan is that if I stopped the int multis from getting choosen for int64 on the js backend I could add my own js specific int64 multis 16:19
jnthn pmurias: We don't actually dispatch by native integer size, though :)
16:19 brrt joined
AlexDaniel 6c: my @a[1;1;1]; 16:20
pmurias jnthn: yep, that's why int64s won't be considered native integers on the js backend
committable6 AlexDaniel, Ā¦6c (33 commits): Ā«Ā»
16:20 p6bannerbot sets mode: +v brrt
AlexDaniel SyrupThinker: ā†‘ by the way, it doesn't fail? 16:20
pmurias jnthn: that would be the change the primspec for them part
jnthn: so conceptually the would be considered "unnaturally spacious integer like things" 16:23
jnthn pmurias: I don't quite see how it'd work, but feel free to experiment a bit of course.
(It's probably possible.)
pmurias seems a bit crazy but I don't have anything saner in mind
jnthn How bad is to treat "don't have int64" as a JS backend limitation? 16:24
pmurias not sure, there are a tons of other much more important things in terms of stuff that users will want
jnthn (I agree making int 32-bit on JS is the sensible thing) 16:25
Yeah, given we have bigint support, it doesn't feel like the most pressing thing
Though -Ofun of course :)
Well, except to me it doesn't sound like a fun problem at all :D 16:26
pmurias I'm mostly tackling that right now because that's one of the few remaining things that I had in my list of things that need to pass in the grant proposal :/
jnthn Ah
pmurias (it wasn't explicitly written in but one of the tests in that category tests postfix:<++> on int64) 16:28
bbl& 16:29
SyrupThinker AlexDaniel: I have run the tests and it passed 16:33
AlexDaniel SyrupThinker: yes, but I'm talking about *new* tests for that issue 16:34
SyrupThinker Oh, I misunderstood the question. I didn't have a font for the arrow. 16:40
6c: my @a[1;1;1]; say @a; 16:44
committable6 SyrupThinker, gist.github.com/c8622301f6c06806df...2b85c4d846 16:45
SyrupThinker AlexDaniel: ^ 16:46
AlexDaniel I see 16:47
I think this would be the right file for the test: github.com/perl6/roast/blob/master...al_array.t 16:48
by the way 16:49
bisect: my @a[1;1;1]; say @a;
bisectable6 AlexDaniel, Bisecting by exit code (old=2015.12 new=9273577). Old exit code: 0
AlexDaniel just out of curiosity
bisectable6 AlexDaniel, bisect log: gist.github.com/5a58bf44515d3457e6...408cbccd21
AlexDaniel, (2018-07-09) github.com/rakudo/rakudo/commit/52...108c3fa57d
AlexDaniel c: 52f1b89df7^,52f1b89df7 my @a[1;1;1]; say @a; 16:50
committable6 AlexDaniel, Ā¦52f1b89df7^: Ā«[[[(Any)]]]ā¤Ā» Ā¦52f1b89: Ā«Too many positionals passed; expected 5 arguments but got 6ā¤ in block <unit> at /tmp/sIrM7zr8qv line 1ā¤ā¤ Ā«exit code = 1Ā»Ā»
AlexDaniel not exactly the one, but doesn't matter 16:53
Geth rakudo: 9acbf00041 | (Elizabeth Mattijsen)++ | 2 files
Make sure that Hash[Int].new gets the correct descriptor

According to a bisect, this issue has existed since at least Christmas. The problem was that Hash.new would do nothing about a descriptor. Before the scalar refactor, that meant that the descriptor was nqp::null. After that refactor, it has a default descriptor, but still not the right thing. Apparently, when you say "my Int %h", the correct descriptor is codegenned ... (6 more lines)
17:10
lizmat will add tests after dinner&
17:11 Ven` left
SyrupThinker AlexDaniel: There is a block that is currently skipped. 17:12
One of the tests still fails.
Should I just unskip it?
17:12 patrickb joined 17:13 p6bannerbot sets mode: +v patrickb
AlexDaniel SyrupThinker: oh! Nice find. So the first block seems to be working now. `is(@md.elems, 4, ā€¦` test indeed fails, but I think it's wrong 17:15
SyrupThinker: so yes, you can unskip the first skip and fix that last test
SyrupThinker: also I've sent you an invite to perl6 org on github, you can accept it here: github.com/orgs/perl6 17:16
SyrupThinker: so that you have more access to do things :)
if you wish, of course. PRs are fine too 17:18
SyrupThinker Cool thanks. You thinks its wrong, would I check the apocalypses or something to figure that one out?
AlexDaniel we can cheat 17:19
m: my @md[2;2]; say @md.elems
camelia 2
AlexDaniel jnthn: ^ is it right?
SyrupThinker: anyway, change it to 2 for now. We had this behavior since 2015.11, may as well test it 17:33
SyrupThinker github.com/perl6/roast/blob/f11042...#L149-L159
Should I throw this one out on the way is that as a trait still planned? 17:34
*or*
AlexDaniel SyrupThinker: I'd leave it, you can also file some tickets (e.g. on github.com/rakudo/rakudo/issues ) to clarify the fate of these tests 17:35
though you can file them in roast too github.com/perl6/roast/
17:43 epony joined, p6bannerbot sets mode: +v epony
patrickb Hi everyone! 18:02
Is there a way to retrieve the current file (aka $?FILE) dynamically?
timotimo patrickb: try callframe(0) or 1 perhaps? 18:04
patrickb I'm especially interested in doing this in ModuleLoader.pm6 18:05
timotimo: Giving it a try...
18:07 brrt left
patrickb timotimo: Nope, they are also compile time. :-( 18:10
timotimo i'm not entirely sure what the difference would be
patrickb when you move the file (including .precomp) it'll still return the old file path 18:11
it's compiled into the precomp file
I'm still looking into the relocatable p6 thing.
And I'm in search for a way to determine the installation path at runtime. 18:12
timotimo oh
yeah, i'm not sure there's a way to get that unless you're changing ModuleLoader itself to store it away somewhere 18:13
patrickb But storing it away doesn't help. I need the actual path at runtime. 18:14
My first idea was to add an op to the backends that returns that path (Determined by looking at the executable path). But that requires the backend to know where the frontends are installed relative to itself. 18:15
So now I think it'll be better to let nqp and rakudo determine their install locations themselves. 18:16
So I need a reliable way to determine the path of a file in the installation dir. 18:17
timotimo a hairy problem for sure 18:20
i'll be afk for a bit
patrickb Is it possible there currently is no reliable way to do that atm?
So one would need to implement it first?
btw $?FILE and callframe(0).file currently both return the full path. 18:21
And they seem to be compile time. That makes rakudo builds non reproducible. Is that on purpose? 18:22
Ugh. loads of roast tests depend on $?FILE being a full path. :-( 18:32
Am I missing the point here or does $?FILE prevent perl6 to be relocatable? (Since $?FILE is by definition compile time and "use lib $?FILE.IO...." seems to be an often used pattern there is no easy way out.) 18:38
lizmat patrickb: I think it's really hysterical raisins 18:39
and it *should* be fixed, adaik 18:40
*afaik
m: my Int %h; %h<a> := "b"; dd %h # should this be allowed or not ?
camelia Hash[Int] %h = (my Int % = :a("b"))
lizmat jnthn moritz masak ^^
patrickb lizmat: What do you mean with "hysterical raisins"? 18:41
lizmat historical reasons 18:42
patrickb OK.
lizmat aka it just went that way because relocatability was not on enough people's radar
patrickb :-(
lizmat or simply deemed not important enough (yet)
this is also complicated by the fact that Perl 6 doesn't have the concept of a "current working dir" at the OS level 18:43
patrickb lizmat: Might it be possible there actually currently is no way to determine the current files path at runtime? 18:45
lizmat you mean, as a script?
m: dd $*EXECUTABLE 18:47
camelia IO::Path.new("./rakudo-m-inst/bin/perl6-m", :SPEC(IO::Spec::Unix), :CWD("/home/camelia"))
patrickb Something that lets me deduce where perl6 is installed at runtime. ;-)
lizmat m: dd $*PROGRAM
camelia IO::Path.new("<tmp>", :SPEC(IO::Spec::Unix), :CWD("/home/camelia"))
lizmat patrickb: you probably want $*PROGRAM or $*PROGRAM-NAME 18:49
patrickb lizmat: I'm testing a little 18:52
$*EXECUTABLE depends on the moar --execname parameter. That could actually work... 18:54
18:55 ggoebel left
jnthn AlexDaniel: Yes, .elems gives you the first dimension 19:05
(By design)
lizmat: We tend to enforce that on binding 19:06
lizmat: I'd guess there's no BIND-KEY in the TypedHash role
lizmat yeah, that's what I thought
there is
it's just not getting called
lizmat investigates further 19:07
jnthn Hm, odd
19:07 ggoebel joined
lizmat yeah 19:07
19:08 p6bannerbot sets mode: +v ggoebel
Geth rakudo: 39086fedab | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Hash.of/name/default/dynamic can only be called on instances

And since a Hash nowadays *always* has a descriptor, we can remove the check for that.
19:09
lizmat jnthn: BIND-KEY in Hash is a multi, and the role mixes in an only 19:10
I guess that's the source of the problem
aha, it *is* missing for the Hash[Int] case 19:12
19:15 MasterDuke left
patrickb lizmat: $*EXECUTABLE is currently populated by $0 in the startup script. That's basically whatever the user called the script with. Symlinks already make it break. 19:25
lizmat :-( 19:27
patrickb is looking in roast whether that is specced... 19:28
19:28 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 19:29 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
patrickb I guess $*EXECUTABLE should stay the way it is. I see its usefulness. 19:31
Which means $*EXECUTABLE is also off my list.
MasterDuke patrickb: would it make sense to create a new variable? 19:32
patrickb I dunno. Maybe.
MasterDuke pmurias: i saw you did a bunch of truffle work a little while ago, what's the next thing that needs working on? 19:34
patrickb As far as I can see the frontend currently has no way to retrieve a files location reliably. $*EXECUTABLE also fails. Any more ideas?
patrickb suspects there won't be any
19:35 AlexDaniel left
patrickb So I'd need to create some mechanism to help with this. 19:35
19:35 AlexDaniel joined 19:36 p6bannerbot sets mode: +v AlexDaniel
patrickb A $*FILE as the runtime sibling to $?FILE should work. 19:36
Next question: What should that return in a lib that has been precompiled? And what should it return in a whatever.moarvm file that was called directly? 19:37
My intuition is: precomp should be completely transparent, thus in the first case it should return the libs source file. The second case should return the path of the whatever.moarvm file. 19:38
nine: I think you might have an opinion on the above. I'd like to hear it. 19:39
(If $*FILE actually happens, one could think about getting rid of $?FILE, but that's a different story) 19:41
MasterDuke patrickb: i'd recommend asking ugexe also, seems like something he might also have an opinion on
patrickb ugexe: I think you might have an opinion on the above. I'd like to hear it. 19:42
nine patrickb: precomp files are sort of relocatable. At least when they are stored in one of the named repositories (perl, vendor, site, home). Then paths should be stored relative to that repo. 19:50
patrickb nine: What do you think about a $*FILE variable that returns the current files path? 19:51
19:52 pmurias left
patrickb I'm not sure this idea is in general compatible with the way modules are handled in p6. 19:52
nine FWIW I use "use lib $*PROGRAM.parent.child('lib')" and the like in my scripts 19:53
patrickb I think to remember the module loading system is designed to allow modules to come from all sorts of sources (zip file, stream, whatever). What should $*FILE return in such a case?
nine So what's the use case you're aiming at? 19:54
patrickb I'm in search of a way to make perl6 itself relocatable.
So I need a way for rakudo (and nqp) to determine their install locations at runtime.
lizmat m: my Int %h{Any} = a => Nil; # jnthn, we agree that this *should* work, right ? 19:55
camelia Type check failed in binding to parameter 'x'; expected Int but got Nil (Nil)
in block <unit> at <tmp> line 1
nine How do other scripting languages solve this? 19:57
patrickb Good question. 19:58
19:58 pmurias joined, p6bannerbot sets mode: +v pmurias
patrickb has a look at python 19:59
nine: FWIW my first idea was to add an op to moar that returns the install path and determine that based on the moar executable location. But that's assuming that moar knows where the frontends are installed. Thus I started looking into how the frontends could determine their install location themself. 20:00
MasterDuke lizmat: isn't that error kind of LTA either way? why does it mention some random parameter? 20:01
Geth roast: SyrupThinker++ created pull request #483:
Shaped array test improvements
pmurias MasterDuke: the bit more complex thing that comes to my mind (but more interesting) is to deserialize the P6opaque repr data
lizmat MasterDuke: indeed, that's what I'm trying to MMA (make more awesome)
pmurias MasterDuke: also the composing thing that would create the object shape 20:02
MasterDuke lizmat++
pmurias MasterDuke: www.graalvm.org/truffle/javadoc/co...ayout.html and www.graalvm.org/truffle/javadoc/co...bject.html contain most of the info for the support truffle provides for objects 20:03
Geth rakudo: ea71041424 | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Make sure we also typecheck on Hash[Int].new<a> := "b"
20:04
rakudo: 560e94ef25 | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Make binding on a typed Hash a bit more awesome

Since we are typechecking on the 2nd parameter of BIND-KEY, the name of the parameter leaks out. Change the name to make it less obvious that it is actually the name of a parameter
nine Does NQP support class stubs?
MasterDuke pmurias: hm, sounds not blindingly simple
lizmat nqp: class Foo { }
camelia ( no output )
lizmat nine ^^^ 20:05
pmurias MasterDuke: something simpler would be nqp::for
MasterDuke: something still simpler would be nqp::isstr ;)
MasterDuke: that would be the hard/medium/easy tasks :) 20:06
MasterDuke pmurias++
nine nqp: class Foo { }; sub foo(Foo $f) { }; class Foo { has $!foo; }; foo(Foo.new)
camelia Lexical 'Foo' already declared
at gen/moar/stage2/QAST.nqp:4842 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/QAST.moarvm:register_lexical)
from gen/moar/stage2/QAST.nqp:4823 (/home/camelia/rakudo-m-inst-2/share/nqp/lib/QAST.moarvm:add_lexical)
from ā€¦
Geth roast: 28301d7c5d | (Elizabeth Mattijsen)++ | 2 files
Add tests for R#2348
20:07
synopsebot R#2348 [open]: github.com/rakudo/rakudo/issues/2348 The type constraint on Hash[Type] doesn't work
pmurias MasterDuke: I plan to return to the truffle backends but I want to still finish up some things on the js backend 20:08
MasterDuke pmurias: btw, i noticed that add_simple_op (or one of the similar functions) takes its arguments in different orders across the different backends
i may try to make them consistent
pmurias: no worries, i also have several irons all in the fire and just work on whatever one strikes my fancy at the moment 20:09
pmurias MasterDuke: truffle and js have the same order 20:10
longer term the js backend needs some drastic performance improvements but I need to think over how they will look and hype myself up 20:11
timotimo nine: i think we have .sibling(a) instead of .parent.child(a) 20:12
MasterDuke pmurias: i might also be thinking of map_classlib_core_op for the JVM backend 20:18
20:18 pmurias left 20:24 pmurias joined, p6bannerbot sets mode: +v pmurias
CIAvash lizmat: thanks for the quick fix 20:32
lizmat CIAvash: took a little figuring out what the problem was and how to best fix it :-)
Geth roast: d395f0dc63 | (Valentin Anger)++ | S02-types/multi_dimensional_array.t
Enable the 'real multi-dimensional arrays' tests

The .elems test has been updated in accordance to the discussion in
  github.com/rakudo/rakudo/issues/2351
20:42
roast: 95f608298b | (Valentin Anger)++ | S02-types/multi_dimensional_array.t
Add a test for 1 to n dimensional shaped arrays

Considering the bugs:
  github.com/rakudo/rakudo/pull/2350
  github.com/rakudo/rakudo/issues/2352
there need to be tests that are done for higher dimensions than what is usually used to make sure that these cases are also supported.
roast: df1cabbc8a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | S02-types/multi_dimensional_array.t
Merge pull request #483 from SyrupThinker/shaped_array_test_improvements

Shaped array test improvements
rakudo: f61ba41a28 | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Allow Nil to be assigned to object Hashes

  - don't let the typecheck on ASSIGN-KEY do the work
  - let the actual assignment do the type check for better diagnostics
  - also allows Nil to be assigned
  - also assignment of existing key 20% faster
20:49
rakudo: a2e78ec8eb | (Valentin Anger)++ | src/core/Shaped3Array.pm6
Use the correct ContainerDescriptor for Shaped3Array
21:08
rakudo: a6b43a5ea2 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | src/core/Shaped3Array.pm6
Merge pull request #2350 from SyrupThinker/master

Use the correct ContainerDescriptor for Shaped3Array
rakudo: 605bcb391f | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Allow assignment of Nil to type constrained hashes

Also simplify the code, making it a few percent faster as well.
21:13
21:13 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build canceled. Aleks-Daniel Jakimenko-Aleksejev 'Merge pull request #2350 from SyrupThinker/master 21:13
travis-ci.org/rakudo/rakudo/builds/438841795 github.com/rakudo/rakudo/compare/f...b43a5ea25a
21:13 travis-ci left
buggable [travis build above] ā˜  Did not recognize some failures. Check results manually. 21:13
Geth roast: e8a337b257 | (Elizabeth Mattijsen)++ | S11-modules/export.t
Revert "Unfudge now passing tests"

This reverts commit f11042b93790302a3c1d792168546bd66b0204bb.
Alas, it is a flapper :-(
21:17
roast: 6742124fbf | (Elizabeth Mattijsen)++ | S12-introspection/WHAT.t
Unfudge now passing tests

Apparently R#2348 fixed these
synopsebot R#2348 [closed]: github.com/rakudo/rakudo/issues/2348 The type constraint on Hash[Type] doesn't work
21:23 patrickb left 21:45 pmurias left
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/10/08/...ed-the-js/ 21:47
21:47 pmurias joined, p6bannerbot sets mode: +v pmurias
Geth rakudo: 7e86d4e30b | (Elizabeth Mattijsen)++ | src/core/Hash.pm6
Allow Nil as value in initialization of object hash
21:59
22:01 Ven` joined 22:02 p6bannerbot sets mode: +v Ven`
[Coke] has an error building the js backend. 22:06
22:06 Ven` left
[Coke] gist.github.com/coke/5aed40ab09957...91103b4238 22:08
22:08 ExtraCrispy left, ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy
[Coke] opened github.com/rakudo/rakudo/issues/2353 to track 22:17
jnthn lizmat: (Nil) yeah, we should, alas :) 22:20
22:35 jsimonet left 22:44 jsimonet joined 22:45 p6bannerbot sets mode: +v jsimonet
jnthn lizmat: "wit regards to" *with 22:45
22:48 Ven` joined 22:49 p6bannerbot sets mode: +v Ven`
jnthn lizmat++ # weekly 22:51
22:53 Ven` left
japhb OK, my ratchet-rakudo loop completed. Last passing revision was: 75cf8be723b6e48710d24e553fdff48978f49329 pass # 2018.09-24-g75cf8be72 22:55
Every revision it tested after that one FAILed.
AlexDaniel japhb: ok, now, what's the failing module on that revision? 22:58
japhb AlexDaniel: Thankfully I saved all the build logs, lemme check. :-)
22:59 jsimonet left
japhb (I assume you mean the first one that FAILed) 22:59
43919c6b84e91e7b7da4444167bb5f72d6bc2e5f FAIL # 2018.09-25-g43919c6b8
===> Testing: Cro::HTTP:ver<0.7.6.1> 23:00
# Failed test 'Concurrent client works'
# at t/http-client.t line 462
# expected: '5'
# got: '0'
# Looks like you failed 1 test of 76
AlexDaniel japhb: I mean modules that are failing on that rakudo revision 23:01
so that Cro thing, is it flapping or not?
japhb No modules fail on 2018.09-24-g75cf8be72, that's the last one that succeeded all the way through.
Checking flapping 23:02
23:06 jsimonet joined 23:07 p6bannerbot sets mode: +v jsimonet
japhb That error was consistent from 2018.09-25 to 2018.09-66, with the exception of 2018.09-53 which has a Nativecall failure, then has Unicode errors from 2018.09-67 through 2018.09-72, then there's a big gap for the js merge at -352, which fails to even build moar through -357, then unicode errors again from -358 through -366, then a small gap, then IO::Path::ChildSecure errors from -370 to -373 (the last 23:12
one built)
23:36 travis-ci joined, p6bannerbot sets mode: +v travis-ci
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Allow Nil as value in initialization of object hash' 23:36
travis-ci.org/rakudo/rakudo/builds/438862850 github.com/rakudo/rakudo/compare/6...86d4e30bdd
23:36 travis-ci left