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
|