Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:03
j3nnn1 left
00:10
AlexDaniel`` joined,
CIAvash[m] joined
00:27
AlexDaniel left,
AlexDaniel joined
00:41
cognominal left
02:49
shareable6 joined
04:19
MasterDuke left
05:22
squashable6 joined
05:51
skids left
06:28
robertle joined,
brrt joined
06:58
[TuxCM] left
07:05
AlexDaniel left
07:08
[TuxCM] joined
07:18
[TuxCM] left
07:38
brrt left
08:03
lizmat left
08:11
lizmat joined
08:26
cognominal joined
08:52
AlexDaniel joined
08:55
robertle left
|
|||
AlexDaniel looks at github.com/rakudo/rakudo/commit/472f6e48 | 08:59 | ||
oh, I guess that's why there are many toaster failures with a bunch of stuff about DEPRECATED? | 09:00 | ||
will check later today… | |||
or maybe github.com/rakudo/rakudo/commit/89a4cf0d | 09:01 | ||
09:17
AlexDaniel`` left,
AlexDaniel`` joined
|
|||
lizmat | yeah, DEPRECATED as a sub was not really meant to be public :-( | 09:17 | |
or memory is playing tricks on me | 09:18 | ||
if it was supposed to be, I case we could add a shim to R:I:DEPRECATED | |||
at least for the release | |||
jnthn | Anything people can discover/use, they will :) | 09:19 | |
yoleaux | 12 Jun 2018 18:26Z <bartolin_> jnthn: fwiw, I increased Xmx (and Xms) in Makefile to 3GB and was able to build rakudo on the jvm backend with HEAD of your rescalar branch. spectest is currently running. With the original value for Xmx it didn't finish stage classpath (I only tried once, though). | ||
12 Jun 2018 18:29Z <Zoffix> jnthn: FYI: `[Coke] ok, finally got a copy of MasterDuke's CLA, so we're clear to give him the rakudo commit bit.`: colabti.org/irclogger/irclogger_log...06-12#l191 | |||
09:29
scovit left
09:32
brrt joined
09:44
robertle joined
09:51
brrt left
|
|||
Geth | rakudo: 874ead515d | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm6 Re-instate DEPRECATED as a global sub for now |
09:53 | |
lizmat | AlexDaniel: ^^^ hope that helps with the burned toast | ||
AlexDaniel | cool, thanks | 09:54 | |
lizmat | m: END say "ended"; LEAVE say "left"; exit # not sure this is a bug or a feature | 10:02 | |
camelia | ended | ||
lizmat | jnthn ^^^ | 10:03 | |
jnthn | exit means exit | 10:04 | |
moritz | m: END say "ended"; LEAVE say "left"; | ||
camelia | left ended |
||
lizmat | yeah, just noticed it's documented as such: exit does prevent the LEAVE phaser to be executed. | ||
jnthn | We do run `END` blocks, but it doesn't throw an exception and unwind the stack | 10:05 | |
That'd arguably be surprising too, and then we'd get in to "does it cause all the other threads to unwind their stacks" | |||
lizmat | yeah, I realize why it is the way it is. It's just that if we state "LEAVE is reliably called whenever a scope is exited" is maybe technically true | 10:11 | |
but not conceptually in the minds of many | 10:12 | ||
I guess we need to document this better: use "die" if you want LEAVE blocks to execute, using "exit" will not | |||
but I guess the docs already say that | 10:13 | ||
ok, I will shut up now :-) | |||
10:17
brrt joined
|
|||
timotimo | will we mark DEPRECATED as deprecated in user code? | 10:19 | |
lizmat | timotimo: yeah, was considering that :-) | 10:20 | |
but it's a bit tricky, as calling it would call itself :-) | 10:21 | ||
timotimo | so we'll need to have two versions? :) | 10:23 | |
lizmat | yeah, I don't think it's worth the effort | 10:26 | |
10:35
llfourn joined
|
|||
jnthn | I guess the real DEPRECATED would be in Rakudo::Internals and then the sub DEPRECATED just forwards to that | 10:41 | |
And then we can mark it deprecated I guess :) | 10:42 | ||
.tell zoffix Commit access granted :) | 11:04 | ||
yoleaux | jnthn: I'll pass your message to zoffix. | ||
jnthn | .tell MasterDuke I've granted you push access to the Rakudo repo; please let me know if any problems :) | 11:05 | |
yoleaux | jnthn: I'll pass your message to MasterDuke. | ||
AlexDaniel | o yey | 11:07 | |
🙌 | |||
welcome, MasterDuke! ♥ | |||
Geth | nqp: 6a27f87d2d | (Jonathan Worthington)++ | tools/build/MOAR_REVISION Bump MOAR_REVISION for new atomic ops |
11:08 | |
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...3-ge485ab3 11cf77d330 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp |
|||
rakudo/rescalar: 11 commits pushed by (Jonathan Worthington)++ review: github.com/rakudo/rakudo/compare/c...21c3b86d13 |
11:09 | ||
rakudo/rescalar: edc3935998 | (Jonathan Worthington)++ | 2 files Move Scalar CAS internals to NQP |
|||
jnthn | lunch & | 11:10 | |
11:56
AlexDaniel left
|
|||
stmuk | 12:06 | ||
12:10
|Tux| left,
|Tux| joined
|
|||
jnthn back | 12:19 | ||
tbrowder_ | MasterDuke++ | 12:26 | |
folks, please consider (and vote) on my rakudo PR #1916. | 12:31 | ||
lizmat is for it and Zoffix is not (and he has a strong argument against it). | 12:32 | ||
timotimo | R#1916 | 12:38 | |
synopsebot_ | R#1916 [open]: github.com/rakudo/rakudo/pull/1916 Ease maintenance of Actions.nqp, Grammar.nqp | ||
Geth | rakudo/rescalar: 752819868e | (Jonathan Worthington)++ | 2 files Move Scalar atomic store to NQP code |
12:42 | |
rakudo/rescalar: 645b1b63c6 | (Jonathan Worthington)++ | 2 files Eliminate a bunch of now-dead C code in the extops |
|||
12:44
scovit joined
|
|||
jnthn | Hm, wondering if we can get rid of non-rw ContainerDescriptor | 12:56 | |
That is, it being null is what conveys a readonly Scalar | |||
lizmat | that seems like a nice opt, but how many readonly scalars do we have ? | 12:59 | |
jnthn | All the ones that wrap sub parameters | ||
lizmat | I guess when we do a for @a -> $foo { } | ||
jnthn | Or block parameters | ||
lizmat | ah, yes, ok | ||
jnthn | Also .item | ||
lizmat | right, so that feels like a very nice opt | 13:00 | |
jnthn | In theory, yes. In practice, no descriptor passed to p6scalarfromdesc currently results in it sticking a default rw descriptor in there | ||
So I'll need to hunt down where that's happening | |||
I so far just removed all the places that we created an ro descriptor | 13:01 | ||
To see what happens | |||
And the answer is a relatively small number of spectest failures, so it feels like it's probably possible with some compensating tweaks | 13:02 | ||
13:02
AlexDaniel joined
|
|||
jnthn | m: sub foo(Int $x is copy) { $x = 'foo' }; my $y = 42; foo($y) | 13:24 | |
camelia | Type check failed in assignment to $x; expected Int but got Str ("foo") in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jnthn | ah, ok | 13:25 | |
Thoguht that might have a type check bug, but then realized I forgot a detail of the code I removed :) | |||
Language lesson time; bbiab | 13:27 | ||
13:38
AlexDaniel left
13:39
skids joined
13:40
AlexDaniel joined
14:51
brrt left
|
|||
jnthn | grmbl, latest version of the "no descriptor = ro" change still has some spectest failures | 15:08 | |
Who'd have thought refactoring the most-used data structure in the language would be tricky... :) | 15:09 | ||
japhb | .oO( "Who knew? No one knew. No one could have predicted!" ) |
15:12 | |
15:18
robertle left
|
|||
jnthn | Argh | 15:22 | |
m: sub foo($x) { $x = 42 }; foo(10) | 15:23 | ||
camelia | Cannot assign to a readonly variable ($x) or a value in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jnthn | m: sub foo(Int $x) { $x = 42 }; foo(10) | ||
camelia | Cannot assign to an immutable value in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
jnthn | So at least one failure is because in some cases (but certainly not reliably) we have the varname available thorugh the descriptor | 15:24 | |
m: sub foo(Mu $a) { say $a.isa(Scalar) }; my $x; foo($x.VAR) | 15:36 | ||
camelia | True | ||
jnthn | Hurrah, got it down to that one test, whihc I think I can argue is overly-expectant (not to mention that such a check could ideally happen at compile time anyway) | 15:52 | |
This isn't doing the switch to using lack of descriptor as indicating ro yet, just eliminating all the places I could find that create an ro descriptor | 15:53 | ||
timotimo | so if they don't create an ro descriptor, what do they do? a shared ro descriptor? | 15:57 | |
jnthn | Null descriptor | 15:58 | |
15:58
brrt joined
|
|||
timotimo | ah, so no ro descriptor where-ever possible, otherwise the ro descriptor stays? | 15:59 | |
Geth | rakudo/rescalar: 35ecc99016 | (Jonathan Worthington)++ | 2 files Don't create readonly container descriptors This way, we'll be able to use the container descriptor's presence as a means to indicate rw-ness, which is a simplification over checking both that *and* then checking the rw flag. This simplification will also aid us in moving what started out as the Rakudo Scalar container spec into the MoarVM core, since then it won't need to be coupled to ... (11 more lines) |
16:01 | |
jnthn | timotimo: No, it's going way. The above commit should mean we never create one. | ||
*away | |||
Just seperating out the interesting part of the refactor from the (hopefully) grunt work that now follows | 16:02 | ||
timotimo | oh, OK! | 16:03 | |
jnthn | I'm also quite happy to be getting rid of C code that made assumptions about the layout of P6opaque :) | ||
timotimo | oh, yes | ||
jnthn | When we move it into MoarVM, we can do it by just configuring the attribute holding the value to fetch and the attribute to null-check for rwness | 16:05 | |
BTW, this also opens the door to us implementing a kind of container that has storage, but lets you do some custom logic on STORE | 16:07 | ||
Which'd handle some use cases of Proxy without having the costly many-FETCH thing happen | 16:08 | ||
timotimo | nice. | 16:09 | |
Geth | rakudo/rescalar: 2e78e6b2b6 | (Jonathan Worthington)++ | 2 files Start switching to null descriptor to meaning ro This updates the code behind the `isrwcont` and various other things inside of the VM that care about rw-ness (such as the multi cache) to just use the presence or absence of a container descriptor to decide rw or not for Scalar. |
16:13 | |
jnthn | No extra regressions from that part | 16:15 | |
Geth | rakudo/rescalar: 968b73dfa0 | (Jonathan Worthington)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp Stop checking the ContainerDesciptor rw flag The assignment logic now also simply uses the absence of the descriptor to mean it is writable. |
16:21 | |
16:23
robertle joined
|
|||
timotimo | "35 additions and 53 deletions" :) | 16:24 | |
ilmari | shouldn't that be s/ab/pre/? | 16:25 | |
jnthn | ilmari: oops, yes | ||
timotimo | that's for abpre ski | 16:26 | |
16:27
huggable joined,
ChanServ sets mode: +v huggable
16:28
lizmat left
|
|||
jnthn | Seems I've now got rid of the rw flag entirely, thus shrinking ContainerDescriptor too | 16:34 | |
16:34
j3nnn1 joined,
AlexDaniel left
|
|||
Geth | rakudo/rescalar: c002ff1e30 | (Jonathan Worthington)++ | 5 files Remove now-unused `rw` from ContainerDescriptor |
16:37 | |
jnthn | Next up will be to get the JVM fixed up for these changes | 16:44 | |
*JVM backend | |||
And then I can dig in to the elimination of $!whence | 16:45 | ||
And then spesh plugins :) | |||
16:46
ggoebel left
|
|||
brrt | jnthn++ | 16:49 | |
17:05
cognominal left,
ggoebel joined
17:11
lizmat joined
|
|||
lizmat | weekly: news.ycombinator.com/item?id=17303557 | 17:13 | |
notable6 | lizmat, Noted! | ||
Geth | rakudo/pod-slang-tbrowder: 94 commits pushed by 14 authors review: github.com/rakudo/rakudo/compare/f...4ead515dfe |
17:26 | |
17:28
PufferBot left
17:31
Zoffix joined
|
|||
Zoffix | New blog post: "A Call to Action: Polish Perl 6 First Steps Experience": rakudo.party/post/A-Call-To-Action...Experience | 17:38 | |
lizmat | Zoffix++ | 17:42 | |
weekly: rakudo.party/post/A-Call-To-Action...Experience | |||
notable6 | lizmat, Noted! | ||
jnthn | .oO( Why Polish? Why not Czech? :P ) |
17:43 | |
lizmat | I guess Zoffix wants us to Czech it out ? | 17:44 | |
Zoffix | :) | ||
timotimo | #CzechALook | 17:49 | |
17:56
cognominal joined
17:57
Zoffix left
|
|||
jnthn | Zoffix++ # good initiative :) | 17:58 | |
Maybe I'll suffer a look at the Windows build :) | |||
And see if I can do anything | |||
timotimo | i was able to build a 32bit one using appveyor + RDP, but for some reason i had to cut out the mathematical symbols for pi and e | 18:00 | |
jnthn | o.O | ||
timotimo | the parser would complain if i left them in | ||
also, it was just a regular rakudo build, not a rakudo star build or msi | |||
geekosaur | if it needs to bootstrap using the older version, the old parser wasn't handling unicode in the setting yet? | 18:03 | |
timotimo | no, that was the core setting, that's always the current parser | ||
18:28
AlexDaniel joined
18:41
dogbert17 joined
|
|||
dogbert17 | timotimo: shouldn't github.com/rakudo/rakudo/issues/1886 be labeled 'testneeded' ? | 18:42 | |
lizmat | dogbert17: label added | 18:51 | |
dogbert17 | lizmat++ | 18:53 | |
timotimo | thank you | 18:54 | |
18:58
brrt left
|
|||
lizmat | stackoverflow.com/questions/508445...-statement | 19:08 | |
afk for a bit& | |||
jnthn | Pretty sure there's no way to do that, or at leaest if there is it's an epic unsupported hack :) | 19:32 | |
19:36
dct joined
19:45
robertle left
19:48
Zoffix joined
|
|||
Zoffix | DID SOMEONE SAY AN EPIC HACK!? | 19:48 | |
lizmat | jnthn: is there a reason to not make something like that possible somehow ? | ||
jnthn | lizmat: I sorta wonder if it's in macro-like teritory :) | 19:49 | |
lizmat | oh, that it definitely is | ||
Zoffix | m: BEGIN '/tmp/20180713'.IO.mkdir.add('Foo.pm6').spurt: 「sub EXPORT { $*W.add_phaser: $*LANG, 'LEAVE', { say 'meow' }; {} }」; use lib </tmp/20180713>; { use Foo; say "cat says" }; { use Foo; say "dog says" }; { use Foo; say "chicken says" } | ||
camelia | cat says meow dog says meow chicken says meow |
||
timotimo | that situation is very similar to the "stand back, i know regular expressions" comic | 19:50 | |
geekosaur | also fits "unsupported", I suspect :p | ||
lizmat | actually, if that works :-) | ||
Zoffix | Yeah, that's totally unsuppoorted | 19:51 | |
:D | |||
lizmat | hmmm... setting $/ to $*LANG works ? | 19:52 | |
Zoffix | m: BEGIN say $*LANG.^name | 19:53 | |
camelia | Perl6::Grammar | ||
Zoffix | yeah, 'cause IIRC $/ would be Perl6::Grammar object and $*LANG is that object. Dunno if it's actually needed there, it's prolly used just for :node annotations | 19:54 | |
lizmat is going to run with that :-) | 19:55 | ||
gfldex | is $*W speced? | 19:57 | |
Zoffix | gfldex: nope | 19:59 | |
20:03
Zoffix left
|
|||
lizmat | wee, Zoffix++ It works :) | 20:15 | |
argh no :-( | 20:18 | ||
whee, it does :-) | 20:19 | ||
fg | 20:20 | ||
geekosaur | No jiush job. | ||
... | |||
such | |||
way to wreck it >.> | |||
timotimo | fg: there are no suitable jobs | 20:23 | |
AlexDaniel | bash: fg: current: no such job | 20:24 | |
NEED MORE COLONS | |||
geekosaur just went with ancient csh :p | 20:26 | ||
timotimo | mine's fish | ||
geekosaur | and then botched it anyway because fingers, what fingers | ||
21:05
cognominal left
21:10
MasterDuke joined,
cognominal joined
21:42
skids left
22:35
dct left
22:38
lizmat left
22:53
lizmat joined
23:18
skids joined
23:26
j3nnn1 left
|