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.
vrurg timotimo: only have what is enough for nqp.moarvm to be loaded and run. 00:01
*ran
timotimo throw out all of nativecall and the reprs it has
nqp doesn't use native refs either i think
not sure how much you can save that way
vrurg That's not a big deal to spare some space. After all, who would be worried about downloading 5-10MB? The main point is anyway to have a place to fetch it for a wide range of OSes and hardware architechtures. 00:02
That'd be a task to build 'em all and keep up to date and available 24/7. 00:03
timotimo our stage0 blobs have made the nqp repo rather bloaty, in my opinion
patrickb83 moar stage0 ~3mb, jvm stage0 ~1mb 00:05
timotimo but we rebootstrapped so often :( 00:06
before moar and jvm there were also a bunch of parrot stage0s
patrickb83 True. Every rebootstrap, githistorysize++
vrurg timotimo: BTW, as you're still here. :) Can you tell me how to get the outer of a QAST::Block? ctxouter doesn't like it. ;) 00:08
timotimo at the point you have a Context, you usually don't have any QAST any more
i may be misunderstanding the question
vrurg That's reverse situation. A loaded setting is set as the outer to $*UNIT_OUTER which is a QAST::Block. 00:09
timotimo qast nodes don't have a pointer to what contains them 00:10
not in general, anyway
vrurg I'm trying to find out why find_symbol doesn't find new symbols defined in CORE.e which are not defined in CORE.
timotimo have you ever tried the moar debug remote thingie? 00:11
patrickb83 But I think using Lua isn't such a bad idea actually. It's yet-another-language™, true. But I'm not sure what makes the build process more complex, having and supporting a minimoar or having a build system in a different language... 00:12
vrurg timotimo: Nah. I'm mad about command line debuggers. My hope is that Comma will work for me at some point.
Until then I'm stuck with debug prints. :)
timotimo "mad about command line debuggers"? that sounds like you like them, rather than hate them
patrickb83 Off to bed for real now. o/ 00:13
vrurg Pardon my English... Hate them, for sure.
patrickb83: o/
00:13 patrickb83 left
vrurg Anyway... World.load_setting sets up a fixup with nqp::forceouterctx($*UNIT_OUTER, $setting). 00:14
So, somehow I must be able to pull it back with ctxouter. 00:15
00:35 squashable6 left
vrurg afk. o/ 00:37
00:40 squashable6 joined, ChanServ sets mode: +v squashable6 01:01 pamplemousse left 01:58 Kaiepi left 01:59 Kaiepi joined 02:05 Kaiepi left, Kaiepi joined 03:42 evalable6 left, squashable6 left, committable6 joined, ChanServ sets mode: +v committable6, releasable6 joined, ChanServ sets mode: +v releasable6 03:43 notable6 joined, shareable6 joined, coverable6 joined, ChanServ sets mode: +v coverable6, unicodable6 joined, ChanServ sets mode: +v unicodable6 03:44 squashable6 joined 03:45 bloatable6 joined, ChanServ sets mode: +v bloatable6 03:46 evalable6 joined, ChanServ sets mode: +v evalable6, greppable6 joined, ChanServ sets mode: +v greppable6, quotable6 joined, undersightable6 joined, statisfiable6 joined, benchable6 joined, ChanServ sets mode: +v benchable6, bisectable6 joined 03:47 nativecallable6 joined, reportable6 joined, ChanServ sets mode: +v reportable6 04:47 evalable6 left 04:51 evalable6 joined, ChanServ sets mode: +v evalable6 06:20 ufobat_ joined 06:24 ufobat left 07:54 titsuki joined
lizmat bisectable6: $_ = "3"; my regex decimal { \d }; say &decimal.Bool 12:26
bisectable6 lizmat, Bisecting by output (old=2015.12 new=2dc68c9) because on both starting points the exit code is 0
lizmat, bisect log: gist.github.com/13ce8b2a7cf5572c0c...700111012f 12:27
lizmat, (2019-01-28) github.com/rakudo/rakudo/commit/8e...aafd0ac825
13:17 lucasb joined 13:20 hankache joined
dogbert11 m: my @a = [1,1],[2,2],[3,3]; dd @a; @a.splice: 0, 2, $[4,4]; dd @a 13:58
camelia Array @a = [[1, 1], [2, 2], [3, 3]]
Array @a = [4, 4, [3, 3]]
14:40 hankache left 14:41 AlexDaniel left 14:42 AlexDaniel joined
AlexDaniel kawaii: so, blin results? 15:16
it should be clean but still
lucasb a release approaches? yay 15:20
dogbert11 AlexDaniel: note that the bug just reported is almost a year old 15:21
AlexDaniel lucasb: not exactly, this needs to be fixed: github.com/rakudo/rakudo/issues/3000 15:24
lizmat bisectable6: (when %()<>:exists { ... }) 15:31
bisectable6 lizmat, Bisecting by exit code (old=2015.12 new=2dc68c9). Old exit code: 0
lizmat, bisect log: gist.github.com/425b0eccf9cf0622b8...9c629e2f24
lizmat, (2018-05-22) github.com/rakudo/rakudo/commit/91...98dc273bec
lizmat ah, this got merged reve
*recently, no ? 15:32
AlexDaniel lizmat: reverted? No 15:33
lizmat: I considered reverting it but that feels so wrong given how many issues it resolves
lizmat yeah... 15:34
AlexDaniel lizmat: I looked at the code but I just don't get it. See github.com/rakudo/rakudo/issues/30...-506779356
what's $*FAKE_INFIX_FOUND and why is it even set there 15:35
github.com/rakudo/rakudo/commit/91...c4395R6442
lizmat all I know is that adverb parsing is fraught with hacks, because it basically violates the "only parse once" principle
AlexDaniel I wish skids was around 15:38
c: 2019.03.1,HEAD say (if %(a => ‘b’)<b>:exists { 42 }) 15:39
committable6 AlexDaniel, ¦2019.03.1: «()␤» ¦HEAD(2dc68c9): «===SORRY!===␤internal problem: parser did not give circumfix an EXPR␤ «exit code = 1»»
AlexDaniel c: 2019.03.1,HEAD say (if %(a => ‘b’)<a>:exists { 42 })
committable6 AlexDaniel, ¦2019.03.1: «42␤» ¦HEAD(2dc68c9): «===SORRY!===␤internal problem: parser did not give circumfix an EXPR␤ «exit code = 1»»
AlexDaniel lizmat: ↑ it's not likely writing something like this is wrong
in fact I'd say it's relatively common, I do that stuff sometimes
and there's one module broken because of it 15:40
lizmat yeah... I'm not saying it's not a blocker :-)
AlexDaniel I stared at it for quite a bit and I have so many questions… :)
TimToady: maybe you know?
Kaiepi how do i get nqp to install after making a breaking change to serialization? 15:42
trying to build it throws "Unhandled exception: Unsupported serialization format version 21 (current version is 22)" because of the bootstrap files but i can't build the bootstrap files because nqp requires them before i can rebuild them 15:44
lizmat Kaiepi: timotimo might know 15:45
and jnthn
15:48 pamplemousse joined
timotimo moar always tries to support more than one serialization version 15:53
so you'll just™ put an if/else for the bytecode version around your changes 15:54
AlexDaniel lizmat: so I tried removing nqp::die and adding `if nqp::defined($EXPR) {` instead
timotimo and rebootstrapping just to up the bytecode version is IMO not necessary
AlexDaniel lizmat: it does “work”
as in it does make the golf work, I guess
timotimo just wait for a rebootstrap that's going to happen anyway, and then increase the minimum version supported
AlexDaniel running spectest now but I wouldn't be surprised if it's clean 15:55
15:55 hankache joined
AlexDaniel lizmat: but if my random understanding that $*FAKE_INFIX_FOUND is set when it shouldn't be is right, then it could cause all kinds of weird stuff… 15:55
like adverbs being applied to random stuff
lizmat how does your fix spectest ?
timotimo that's already how they work to most people :P
AlexDaniel lizmat: waiting for that 15:56
lizmat: but knowing our spectests, I'm pretty sure they wouldn't cover a case where adverbs are applied in some weird nested manner 15:57
lizmat I tried to change it to // last
but there seems to be another thing borked:
$ perl6 t/spec/S06-operator-overloading/imported-subs.t
===SORRY!===
Missing or wrong version of dependency 'gen/moar/Perl6-Actions.nqp' (from '/Users/liz/Github/rakudo.moar/t/spec/packages/Exportops/lib/Exportops.pm6 (Exportops)
grrr
lizmat runs a reconfig
my fix with // last seems to spectest cleanly 15:59
lizmat runs a full spectest to be sure 16:00
yeah, spectests clean... 16:04
MessagePack installs ok with this patch as well
16:07 AlexDaniel left
Geth rakudo: c227693a66 | (Elizabeth Mattijsen)++ | src/Perl6/Actions.nqp
Probably temporary fix for R#3000

Somehow the empty outer () or [] is being included when it shouldn't. Instead of assuming some internal problem, just assume we're done.
16:07
16:17 hankache left 16:31 AlexDaniel joined
AlexDaniel lizmat: yeah 16:32
lizmat: maybe it'd be better to do `next` there instead of last
say you have something like `(); foo<>:bar` or something 16:33
lizmat well, the error seems to be related to the outer set of parens
AlexDaniel yeah but that'd be a single semi, right?
lizmat yep 16:34
AlexDaniel well, I honestly don't get that code whatsoever…
lizmat there are two places where this error could occur: with () as outer parens, and with [] as outer parens
so it feels to me that skids thought: what would happen if... and decided to do an nqp::die 16:35
AlexDaniel yes but if you're doing `last` then you're preventing proper processing in next semis 16:36
lizmat I don't think there are any next semis?
that's the whole problem ?
AlexDaniel lizmat: no, the repeat until is basically a foreach for every semi 16:37
for every semi, an error can occur
m: say (if %(a => ‘b’)<a>:exists { 42 }; say 42) 16:38
camelia ===SORRY!===
QAST::Block with cuid 1 has not appeared
AlexDaniel c: HEAD^^^ say (if %(a => ‘b’)<a>:exists { 42 }; say 42)
committable6 AlexDaniel, ¦HEAD^^^: «===SORRY!===␤internal problem: parser did not give circumfix an EXPR␤ «exit code = 1»»
AlexDaniel uhhh…
c: 2019.03.1 say (if %(a => ‘b’)<a>:exists { 42 }; say 42)
committable6 AlexDaniel, ¦2019.03.1: «42␤(42 True)␤»
AlexDaniel goddamit
lizmat bisectable6: say (if %(a => ‘b’)<a>:exists { 42 }; say 42) 16:39
bisectable6 lizmat, Bisecting by exit code (old=2015.12 new=c227693). Old exit code: 0
AlexDaniel lizmat: ↑ in that code there are more than one semi
bisectable6 lizmat, bisect log: gist.github.com/4c8dcf9c6153eff908...24c919e326
lizmat, (2018-05-22) github.com/rakudo/rakudo/commit/91...98dc273bec
lizmat bisects to the same,... o
k lemme test with "next"
AlexDaniel bisect: HEAD^^^^^^^^^^^^^,HEAD say (if %(a => ‘b’)<a>:exists { 42 }; say 42) 16:40
bisectable6 AlexDaniel, Using old=HEAD^^^^^^^^^^^^^ new=HEAD in an attempt to DWIM
AlexDaniel, Bisecting by output (old=HEAD^^^^^^^^^^^^^ new=c227693) because on both starting points the exit code is 1
AlexDaniel, bisect log: gist.github.com/2c5e1172ea75c38161...8f83f3caaa
AlexDaniel, (2019-06-29) github.com/rakudo/rakudo/commit/c2...6a7d812b01
AlexDaniel lizmat: or your commit, depending on the range :)
cuz the error changed
lizmat: it can't be exactly next because of `$semi++;`
lizmat: just make sure to increment that… 16:41
but if my understanding is correct, you'd still get `QAST::Block with cuid 1 has not appeared`
wtf is cuid
this stuff drives me nuts and I want to get rid of all of it
is it “cursor id” or something? why not say cursor id then 16:42
we're moving into the right direction though
LHF is now “good first issue”, “nom” is no longer a thing and now it's just “master”, etc.
all these unnecessary terms should just die, IMO 16:43
lizmat cuid is compilation unit id I believe
makes sense in this context :-)
AlexDaniel also I noticed that we have no `flapper` label on github, I think we had it on RT or somewhere else? 16:44
lizmat hmmm... turning it into a { ++semi, next } makes it hang on say (if %(a => ‘b’)<a>:exists { 42 }; say 42) 16:45
AlexDaniel so I added a label, called it “intermittent” because nobody outside the bubble knows what a flapper is
but I'll go for a walk now instead of continuing the rant :) 16:46
lizmat :-)
16:51 pamplemousse left 17:46 pamplemousse joined
Kaiepi figured out how to get nqp installed, i just needed to split up the breaking change into smaller pieces and rebuild bootstrap 4 or 5 times, gradually adding the smaller changes 17:55
18:16 tyilanmenyn joined 18:20 tyilanmenyn left
timotimo noooooo 18:20
what changes can these be that would require multiple rebootstraps? :o 18:22
18:25 tyilanmenyn joined 18:41 tyilanmenyn left, tyilanmenyn joined 18:43 tyilanmenyn left 18:44 tyilanmenyn joined 19:02 tyilanmenyn left 19:06 tyilanmenyn joined 19:13 hankache joined 19:18 hankache left 19:23 tyilanmenyn left 19:24 tyilanmenyn joined 19:39 pamplemousse left, pamplemousse joined 19:46 lucasb left 19:51 pamplemousse left, pamplemousse joined 19:56 patrickb joined 20:05 pamplemousse left, pamplemousse joined 20:22 tyilanmenyn left 20:34 pamplemousse_ joined 20:37 pamplemousse left
lizmat m: dd (:a(2) :b(3) :c(4)) 20:44
camelia (:a(2), :b(3), :c(4))
patrickb o/
lizmat hmmm.... I'm surprised that is actually legal
AlexDaniel: ^^
timotimo yeah it's legal to leave out the commas
m: dd (:a :b :c) 20:45
camelia (:a, :b, :c)
patrickb vrurg: I'd like to access the @moar::whatever@ variables in nqp\tools\templates\moar\Makefile.in but they seem not to be defined. Do you have a hint on where I have to look?
vrurg patrickb: is it being expanded under for_backends context? 20:46
patrickb Dunno. :-) I'll look 20:47
vrurg Actually, there is not config variable moar::whatever in nqp --show-config
*no config
Ah, gotcha! Sorry.
patrickb not literally moar::whatever, but all the moar::* variables...
vrurg Ok, by default Makefile.in templates from backend-specific dirs are expanded under for_backends, unless something has been changed. 20:48
patrickb I need to compile stuff in nqp ( the runners are gonna be binaries soon ) and I need the compiler stuff e.g. moar::ccswitch 20:49
vrurg And it is currently expanding moar::cc, moar::ld, etc. So, check the variable name if it's not expanding
patrickb hm, I copied the fragment from the rakudo Makefile.in...
vrurg Oops, nqp... missed that
patrickb @moar::ccswitch@ @moar::cflags@ @moar::ccout@ @moar::obj@ all don't work 20:50
vrurg And they shouldn't they were never needed previously. 20:51
That's why my "oops". I have re-checked it. 20:52
patrickb :-( I do now. I'm in progress of replacing all the .bat runners in nqp with binaries.
Any reason why I shouldn't change it, so I have them available?
vrurg No reason, you can do it. I'd be away for some time. 20:55
patrickb quick pointer where I should look?
AlexDaniel lizmat: it was meant to be legal, yes 20:57
lizmat: it didn't work in many places though 20:58
lizmat AlexDaniel: ok, gotcha, almost done with a real fix for #3000
AlexDaniel m: dd (:a(2):b(3):c(4))
camelia (:a(2), :b(3), :c(4))
AlexDaniel m: dd (:2a:3b3:4c)
camelia (:a(2), :b3(3), :c(4))
AlexDaniel m: dd (:2a:3b:4c)
camelia (:a(2), :b(3), :c(4))
vrurg patrickb: no, unfortunately. And the worst part is that I'm busy now and can't recall where the nqp config is built! 21:06
21:07 HarmtH_ joined 21:13 pamplemousse_ left
vrurg patrickb: I have to leave for 1-2hrs. Briefly, to get moar::* you would need bootstrapped nqp. For that you surely need to have moar ready. If you get into a problem with that I'd do it ASAP, but most likely on Monday. 21:14
BTW, if you do it: backend-dependen variables are installed in impls key. Look for {impls}{$backend}{config} or alikes. 21:16
vrurg is afk
21:30 tyilanmenyn joined 21:37 tyilanmenyn is now known as tyil
lizmat hmmm... looks like we lost Geth again :( 21:39
lizmat just pushed github.com/rakudo/rakudo/commit/a2...ab41e7b787 21:40
A more complete solution to #3000
AlexDaniel: ^^ 21:44
AlexDaniel lizmat: looks cleaner also 21:45
lizmat yeah, there was a lot of code duplication
I guess the underlying question is: why are some EXPR's undef
but this is at least better maintainable, and if we find the underlying cause 21:46
then that piece of code that basically does a grep, can be removed
lizmat calls it a day& 21:57
timotimo so the day has come to an & 21:58
AlexDaniel lizmat: thank you! 22:01
lizmat: it's not that the expr is undef, it's just that the AST is different
lizmat: see github.com/rakudo/rakudo/issues/30...-506779356 22:02
22:06 pamplemousse_ joined 22:16 pamplemousse_ left 23:07 vrurg left 23:08 vrurg joined 23:15 vrurg left 23:18 vrurg joined
vrurg .tell patrickb Tell please if you need me to implement access for moar::*. 23:26
yoleaux vrurg: I'll pass your message to patrickb.
patrickb vrurg: I'm currently looking into this. But given you have time I'd suspect you'd be faster.
yoleaux 23:26Z <vrurg> patrickb: Tell please if you need me to implement access for moar::*.
vrurg patrickb: not today, unfortunately. :( 23:27
And quite unlikely tomorrow (big grocery shopping day, hate them...)
patrickb vrurg: I'll see how far I get. If I'm stuck I'll let you know.
vrurg Rakudo.pm should be pretty helpful with this. It sets these vars in gen_nqp. 23:28
patrickb Yeah found that. It calls nqp --show-config 23:29
the stage0 works with that param too
the nqp::* stuff is wrong (stage0 stuff) but the moar::* vars should be fine
vrurg That's what I was expecting. We don't need nqp:: at this point anyway – we already know it because we set it. ;) 23:32
patrickb Yup
23:44 patrickb left 23:45 patrickb joined