Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by Zoffix on 27 July 2018. |
|||||||||||||||||||||||||||||||||||||||
00:17
tbrowder left
00:49
tbrowder joined
03:00
vrurg left
03:01
vrurg joined
07:11
sivoais_ joined,
sivoais left
|
|||||||||||||||||||||||||||||||||||||||
bartolin | haha, it looks like the implementation of bindlexdyn on the JVM backend expects its arguments in the wrong order: github.com/perl6/nqp/blob/7a28dfc6...java#L1581 vs. github.com/perl6/nqp/blob/7a28dfc6....nqp#L2719 | 08:10 | |||||||||||||||||||||||||||||||||||||
since bindlexdyn is used that way in github.com/perl6/nqp/blob/7a28dfc6....nqp#L4543 changing this requires a rebootstrap. I'm struggling to get instruction list right, so I'll commit a workaround first. | 08:11 | ||||||||||||||||||||||||||||||||||||||
Geth | nqp: db3e4a043f | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java [JVM] Add second version of bindlexdyn as bandaid nqp::bindlexdyn expects the name as the first and the value as the second argument (on MoarVM, too). It looks like that op wasn't used in rakudo-j -- until github.com/rakudo/rakudo/commit/69c535ecfb Since bindlexdyn is currently used in NQP's src/vm/jvm/QAST/Compiler.nqp we need a change there and a rebootstrap in order to remove the old version of bindlexdyn. For now, this should fix the Rakudo build. |
08:12 | |||||||||||||||||||||||||||||||||||||
08:43
sivoais_ left,
sivoais joined
11:43
MasterDuke left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | bartolin++ # taking care of JVM | 11:57 | |||||||||||||||||||||||||||||||||||||
12:03
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 056e45527c | usev6++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java [JVM] Fix small-ish typos |
13:02 | |||||||||||||||||||||||||||||||||||||
rakudo: 0990ecc4b7 | (Elizabeth Mattijsen)++ | src/core/CompUnit/Repository/Installation.pm6 Don't copy the ENV hash into precomp files By assigning, rather than binding, we appear not to keep the environment hash alive. Fixes #2838 |
14:29 | ||||||||||||||||||||||||||||||||||||||
synopsebot | RAKUDO#2838 [open]: github.com/rakudo/rakudo/issues/2838 [BLOCKER][regression] Precomp files contain ENV variables breaking packaging and reproducible builds | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: e84845ad05 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals/Sprintf.pm6 First attempt at %e support WIP: Seems to die for very small values still... |
14:48 | |||||||||||||||||||||||||||||||||||||
16:48
titsuki_ left,
tailgate left,
masak left
17:05
titsuki joined
17:06
masak joined,
tailgate joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: ad8b5a6497 | (Elizabeth Mattijsen)++ | src/core/Main.pm6 Warn when reading from keyboard in a MAIN-powered script Inspired by www.reddit.com/r/perl6/comments/bc...h/ekq6khy/ . It basically mixes in specific versions of the slurp/lines/words methods that put a hopefully understandable message on STDERR. |
17:06 | |||||||||||||||||||||||||||||||||||||
17:06
masak is now known as Guest47580
|
|||||||||||||||||||||||||||||||||||||||
lizmat | afk& | 17:08 | |||||||||||||||||||||||||||||||||||||
nine | lizmat: "which is usually only done when debugging" is just not true. It's also done, when I'm pasting stuff into the terminal or even when I type it in manually. | 17:19 | |||||||||||||||||||||||||||||||||||||
That's just how UNIX tools have worked for many decades | 17:20 | ||||||||||||||||||||||||||||||||||||||
17:29
Kaiepi left
17:40
lucasb joined
|
|||||||||||||||||||||||||||||||||||||||
nine | .tell jnthn I fear identify-mixin-types broke Inline::Perl5: New type P6Bar for Foo is not a mixin type in method new at /home/nine/Inline-Perl5/lib/Inline/Perl5/ClassHOW.pm6 (Inline::Perl5::ClassHOW) line 48 | 18:34 | |||||||||||||||||||||||||||||||||||||
yoleaux | nine: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||||||
nine | .tell jnthn And 45e2902d0210cc24376229800569e1dbb7856093 (Generate an empty BUILDALL for class with no attrs) may have broken it some more: This representation (VMArray) does not support attribute storage (for type IterationBuffer) at src/Perl6/World.nqp:3374 (/home/nine/rakudo/install/bin/../share/nqp/lib/Perl6/World.moarvm:generate_buildplan_executor) | 18:41 | |||||||||||||||||||||||||||||||||||||
yoleaux | nine: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||||||
MasterDuke | m: $_ = "foo"; s/(o)/$999999999999999999999999999999999999999999999999999999999999999/; .say | 18:48 | |||||||||||||||||||||||||||||||||||||
evalable6 | (exit code 1) Index out of range. Is: -9223372036854775808, should be in 0..^Inf in block <unit> at /tmp/lQDdoiH97f line 1 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | AlexDaniel++ an example that's fixed in my default-int branch (it gives `Use of Nil in string context in code at -e line 1 fo`) | 18:49 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | and that's it? Just one example? | 18:50 | |||||||||||||||||||||||||||||||||||||
MasterDuke: also, are you sure it is not broken for other huge numbers? | 18:54 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | just the first one i've looked at | 18:56 | |||||||||||||||||||||||||||||||||||||
it still is for another example | |||||||||||||||||||||||||||||||||||||||
m: $_ = "foo"; s/(o)/$9999999999999999999999999999999999999999999999999999999999999/; .say | |||||||||||||||||||||||||||||||||||||||
evalable6 | (exit code 1) Index out of range. Is: -6917529027641081856, should be in 0..^Inf in block <unit> at /tmp/lu05zpREnn line 1 |
18:57 | |||||||||||||||||||||||||||||||||||||
MasterDuke | my branch gives `Index out of range. Is: -6917529027641081857, should be in 0..^Inf` | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | soo… maybe not really fixed | 18:58 | |||||||||||||||||||||||||||||||||||||
[Tux] |
|
19:12 | |||||||||||||||||||||||||||||||||||||
19:46
vrurg left
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | AlexDaniel: i think there's something unrelated to my branch. github.com/rakudo/rakudo/blob/mast....nqp#L1769 might be it, using nqp::radix instead of nqp::radix_I | 19:50 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | yeah | 20:11 | |||||||||||||||||||||||||||||||||||||
Geth | nqp: 0610e04ed2 | usev6++ | 10 files [JVM] Rebootstrap for new version of bindlexdyn |
20:28 | |||||||||||||||||||||||||||||||||||||
nqp: 56efbb0700 | usev6++ | 2 files [JVM] Switch to new version of bindlexdyn There should be a cleaner way to achieve this than swapping the two values on top of the stack, but I was unable to come up with a better solution. |
|||||||||||||||||||||||||||||||||||||||
lizmat | .ask nine would you rather see a rephrasing of the message, or a revert of the commit ? | 21:13 | |||||||||||||||||||||||||||||||||||||
yoleaux | lizmat: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
MasterDuke | can a QAST::IVal have something bigger than a native int in it? | 21:24 | |||||||||||||||||||||||||||||||||||||
timotimo | it can not | ||||||||||||||||||||||||||||||||||||||
must be a WVal with an Int object for that | 21:25 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | thanks | ||||||||||||||||||||||||||||||||||||||
timotimo: btw, did you find anything useful in rr? | 21:30 | ||||||||||||||||||||||||||||||||||||||
21:31
Guest47580 is now known as masak
|
|||||||||||||||||||||||||||||||||||||||
timotimo | i didn't actually run it yet, but i definitely should | 21:31 | |||||||||||||||||||||||||||||||||||||
i'm worried the recording could explode my hard drive :D | |||||||||||||||||||||||||||||||||||||||
but i bet it'll let me put the recording on my other hard drive | |||||||||||||||||||||||||||||||||||||||
MasterDuke | ha | 21:33 | |||||||||||||||||||||||||||||||||||||
btw, `Object of type Int in QAST::WVal, but not in SC` ? | |||||||||||||||||||||||||||||||||||||||
jnthn | .tell nine If you're going to use a type as the target type in an nqp::rebless, then :is_mixin now needs to be passed to ClassHOW.new_type. | ||||||||||||||||||||||||||||||||||||||
yoleaux | jnthn: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
18:34Z <nine> jnthn: I fear identify-mixin-types broke Inline::Perl5: New type P6Bar for Foo is not a mixin type in method new at /home/nine/Inline-Perl5/lib/Inline/Perl5/ClassHOW.pm6 (Inline::Perl5::ClassHOW) line 48 | |||||||||||||||||||||||||||||||||||||||
18:41Z <nine> jnthn: And 45e2902d0210cc24376229800569e1dbb7856093 (Generate an empty BUILDALL for class with no attrs) may have broken it some more: This representation (VMArray) does not support attribute storage (for type IterationBuffer) at src/Perl6/World.nqp:3374 (/home/nine/rakudo/install/bin/../share/nqp/lib/Perl6/World.moarvm:generate_buildplan_executor) | |||||||||||||||||||||||||||||||||||||||
timotimo | MasterDuke: at some point it was necessary to $*W.add_object before putting it into a WVal's value | 21:36 | |||||||||||||||||||||||||||||||||||||
i thought that'd mostly be done implicitly by now | |||||||||||||||||||||||||||||||||||||||
jnthn | .tell nine No guesses on the second; unfortunately the line number just points at the generate_buildplan_executor method. Don't suppose --ll-exception gives a better trace? Or I can try it out when I get some time to do that :) | 21:37 | |||||||||||||||||||||||||||||||||||||
yoleaux | jnthn: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
MasterDuke | m: $_ = "foo"; s/(o)/$9999999999999999999999999999999999999999999999999999999999999/; .say | 21:41 | |||||||||||||||||||||||||||||||||||||
evalable6 | (exit code 1) Index out of range. Is: -6917529027641081856, should be in 0..^Inf in block <unit> at /tmp/G5GeYFU3OU line 1 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | is `Cannot unbox 203 bit wide bigint into native integer at SETTING::src/core/Capture.pm6:58 (/home/dan/Source/perl6/install/bin/../share/perl6/runtime/CORE.setting.moarvm:AT-POS)` better? | 21:42 | |||||||||||||||||||||||||||||||||||||
jnthn | Can we make it "What on earth are you doing????!!!1" :) | 21:45 | |||||||||||||||||||||||||||||||||||||
But yeah, the second is probably better | 21:46 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | heh | ||||||||||||||||||||||||||||||||||||||
this is the patch gist.github.com/MasterDuke17/60a7a...ed361de85f | 21:47 | ||||||||||||||||||||||||||||||||||||||
lizmat | m: dd sprintf("%#b",0) # unexpected, is there a reasoning behind this? Perl 5 does the same | 21:51 | |||||||||||||||||||||||||||||||||||||
evalable6 | "0" | ||||||||||||||||||||||||||||||||||||||
MasterDuke | jnthn: should i have it throw if nqp::isbig($val)? | 21:53 | |||||||||||||||||||||||||||||||||||||
timotimo | the explosion in the rr run i've got right now happens when it's trying to free a callsite object that looks pretty bogus | 21:57 | |||||||||||||||||||||||||||||||||||||
lizmat | m: dd sprintf("%+b",0) # Perl 5 says "0" | ||||||||||||||||||||||||||||||||||||||
timotimo | it has a few thousand flags and about 800 arguments | ||||||||||||||||||||||||||||||||||||||
evalable6 | "+0" | ||||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: ha! | ||||||||||||||||||||||||||||||||||||||
timotimo | so i've now got a watchpoint on one of those values to see when it was last written | ||||||||||||||||||||||||||||||||||||||
uv_signal_init (loop=0x3400e00, handle=handle@entry=0x34af368) at 3rdparty/libuv/src/unix/signal.c:324 | 21:58 | ||||||||||||||||||||||||||||||||||||||
324 uv__handle_init(loop, (uv_handle_t*) handle, UV_SIGNAL); | |||||||||||||||||||||||||||||||||||||||
um, yes, that is absolutely not a place where a callsite's values should be updated | 21:59 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | does seem suspect | ||||||||||||||||||||||||||||||||||||||
timotimo | it's quite possibly a use-after-free thing | ||||||||||||||||||||||||||||||||||||||
unfortunately there's not really a good way to break when a specific address is freed, apart from putting a conditional breakpoint in MVM_free, which is slow :( | 22:01 | ||||||||||||||||||||||||||||||||||||||
ok, that's weird, the time before that that memory location was part of a VMArray that got resized while evaluating an argument guard | 22:03 | ||||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: have you every used github.com/gperftools/gperftools ? if so, any good? | 22:04 | |||||||||||||||||||||||||||||||||||||
*ever | |||||||||||||||||||||||||||||||||||||||
22:05
squashable6 left
|
|||||||||||||||||||||||||||||||||||||||
timotimo | i don't think i have | 22:05 | |||||||||||||||||||||||||||||||||||||
MasterDuke | timotimo: i think some of the valgrind output i posted the other day had VMArray stuff in them | ||||||||||||||||||||||||||||||||||||||
timotimo | MasterDuke: looks like if you want to move an rr trace across machines you can use "rr pack" to make it system-independent (by making it a lot larger) | 22:09 | |||||||||||||||||||||||||||||||||||||
MasterDuke | cool | ||||||||||||||||||||||||||||||||||||||
22:10
squashable6 joined,
ChanServ sets mode: +v squashable6
|
|||||||||||||||||||||||||||||||||||||||
timotimo | _RR_TRACE_DIR is also a thing | 22:10 | |||||||||||||||||||||||||||||||||||||
MasterDuke | how about `===SORRY!=== Error while compiling -e Cannot declare a match variable at -e:1 ------> 9999999999999999999999999999999999999999⏏/; .say` | ||||||||||||||||||||||||||||||||||||||
22:35
MasterDuke left
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | .tell MasterDuke “Cannot declare a match variable” why not? | 22:40 | |||||||||||||||||||||||||||||||||||||
yoleaux | AlexDaniel: I'll pass your message to MasterDuke. | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | .tell MasterDuke I mean why should it behave differently than say $99999 | 22:41 | |||||||||||||||||||||||||||||||||||||
yoleaux | AlexDaniel: I'll pass your message to MasterDuke. | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | a pessimistic one github.com/perl6/problem-solving/issues/9 | 22:49 | |||||||||||||||||||||||||||||||||||||
23:12
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | . | 23:12 | |||||||||||||||||||||||||||||||||||||
yoleaux | 22:40Z <AlexDaniel> MasterDuke: “Cannot declare a match variable” why not? | ||||||||||||||||||||||||||||||||||||||
22:41Z <AlexDaniel> MasterDuke: I mean why should it behave differently than say $99999 | |||||||||||||||||||||||||||||||||||||||
MasterDuke | AlexDaniel: because that's really shorthand for $/[99999] and arrays can only be so long | 23:13 | |||||||||||||||||||||||||||||||||||||
i'm open to suggestions for other exceptions, that just seemed the closes at first glance | 23:14 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | m: say $/[9999999999999999999999999999999999999999999999] | ||||||||||||||||||||||||||||||||||||||
evalable6 | Nil | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | a shorthand that's not really a shorthand? | ||||||||||||||||||||||||||||||||||||||
just make it work, maybe? | |||||||||||||||||||||||||||||||||||||||
MasterDuke | m: my @a = 1,2; say @a[9999999999999999999999999999999999999999999999] | 23:17 | |||||||||||||||||||||||||||||||||||||
evalable6 | (exit code 1) Cannot unbox 153 bit wide bigint into native integer in block <unit> at /tmp/ldjuzMCrIl line 1 |
||||||||||||||||||||||||||||||||||||||
MasterDuke | what do you mean just make it work? don't throw and just give the unbox error i showed earlier? | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | hm, why $/ behaves a bit differently… | 23:19 | |||||||||||||||||||||||||||||||||||||
MasterDuke: yeah, I guess that qualifies as “work”, yes… | |||||||||||||||||||||||||||||||||||||||
MasterDuke | down the rabbit hole... | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | MasterDuke: wait but, does that happen at run time or compile time? | 23:20 | |||||||||||||||||||||||||||||||||||||
MasterDuke | AlexDaniel: which? the "cannot declare" or the "cannot unbox"? | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | cannot unbox | ||||||||||||||||||||||||||||||||||||||
MasterDuke | compile time | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | MasterDuke: oh well… then I don't know | 23:23 | |||||||||||||||||||||||||||||||||||||
in my mind it shouldn't behave differently than this: | 23:24 | ||||||||||||||||||||||||||||||||||||||
m: $_ = "foo"; s/(o)/$99999/; .say | |||||||||||||||||||||||||||||||||||||||
evalable6 | Use of Nil in string context fo in code at /tmp/j2bGYSkLGI line 1 |
||||||||||||||||||||||||||||||||||||||
AlexDaniel | I'd also accept the unbox error at run time, I guess… | ||||||||||||||||||||||||||||||||||||||
but compile time is better?… I don't know, actually. I'm very confused now :) | |||||||||||||||||||||||||||||||||||||||
MasterDuke | problem-solving repo? | 23:25 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | yeah, you can try that | ||||||||||||||||||||||||||||||||||||||
MasterDuke | AlexDaniel: github.com/perl6/problem-solving/issues/10 | 23:34 | |||||||||||||||||||||||||||||||||||||
23:39
lucasb left
23:45
llfourn left
|
|||||||||||||||||||||||||||||||||||||||
dogbert17 | lizmat: wrt your sprintf examples, perhaps it has something to do with how P5 handles True/False | 23:47 | |||||||||||||||||||||||||||||||||||||
23:57
llfourn joined,
Kaiepi joined
23:59
Kaiepi left,
Kaiepi joined
|