MasterDuke | viki: CORE.setting.moarvm is the runtime, i didn't change anything about its printing | 01:40 | |
yoleaux2 | 28 Nov 2016 11:57Z <viki> MasterDuke: would you know how come this Backtrace::Frame doesn't get the seperate-core-file treatment and still has CORE.setting.moarvm in it instead of src/Backtrace or whatever? m: printf '%z'; CATCH { default { dd [.is-setting, .Str] given .backtrace[4] } } | ||
MasterDuke | "from SETTING::src/core/Exception.pm:2431 (././CORE.setting.moarvm:)" | 01:41 | |
m: printf '%z'; CATCH { default { dd [.is-setting, .Str] given .backtrace[3] } } | 01:42 | ||
camelia | rakudo-moar 054aca: OUTPUT«[Bool::True, " in block at SETTING::src/core/Cool.pm line 318\n"]» | ||
MasterDuke | if you take out the 'given .backtrace[x]' and add --ll-exception locally you'll see more .moarvm files (e.g., './blib/Perl6/BOOTSTRAP.moarvm', '/home/dan/Source/perl6/rakudo/perl6.moarvm') | 01:46 | |
viki | OK. Thanks. | 02:02 | |
MasterDuke | m: use Test; my (\x1) = 1; dies-ok { x1 = 2 }, 'cannot assign to sigilless variable after declaration (one)' | 04:33 | |
camelia | rakudo-moar 054aca: OUTPUT«ok 1 - cannot assign to sigilless variable after declaration (one)» | ||
MasterDuke | i just made that segfault with "Invalid read of size 8" and "Access not within mapped region at address 0x30", by adding "if (rcd->name) MVM_exception_throw_adhoc(tc, "Cannot assign to a readonly variable (%s) or a value", MVM_string_utf8_encode_C_string(tc, rcd->name));" here: github.com/rakudo/rakudo/blob/nom/...iner.c#L82 | 04:35 | |
valgrind is complaining about the if (rcd->name) line | 04:36 | ||
oh, gotta check rcd also, of course | 04:39 | ||
dalek | ast: fe0404c | usev6++ | S09-multidim/assign.t: Fudge test for X::Assignment::ToShaped for JVM The fudged test made the test file explode badly. It still passed on 7c1f5e197c. |
07:11 | |
ast: 265fbce | usev6++ | S04-statements/terminator.t: Unfudge passing test for JVM was fixed with Rakudo commit b516784b83 |
07:13 | ||
kudo/nom: 3982b20 | MasterDuke17++ | src/vm/ (2 files): Better error message for assigning to ro variable If possible, include the name of the variable that was assigned to. |
08:38 | ||
kudo/nom: e7fd61e | lizmat++ | src/vm/ (2 files): Merge pull request #931 from MasterDuke17/better_error_message_for_assigning_to_ro_variable Better error message for assigning to ro variable |
|||
kudo/nom: 4a59ab4 | 0racle++ | src/core/allomorphs.pm: Add allomorph multis for &infix:<===> Previously trying to use an allomorph on either side of `===` would result in an ambiguous call. |
08:51 | ||
kudo/nom: 8110471 | 0racle++ | src/core/allomorphs.pm: Merge pull request #1 from 0racle/0racle-allomorph-value-eq Add allomorph multis for &infix:<===> |
|||
rakudo/nom: 44ddfd4 | lizmat++ | src/core/allomorphs.pm: | |||
rakudo/nom: Merge pull request #932 from 0racle/nom | |||
rakudo/nom: | |||
rakudo/nom: Add allomorph multis for &infix:<===> | |||
[TuxCM] | This is Rakudo version 2016.11-94-g44ddfd4 built on MoarVM version 2016.11-20-g0f7277a | 09:07 | |
csv-ip5xs 3.281 | |||
test 14.549 | |||
test-t 6.584 | |||
csv-parser 13.836 | |||
lizmat | Multi method 'STORE' with signature :(array[int]+{array::shaped2intarray}:D $: Iterable:D \from, *%_) must be resolved by class array[int]+{array::shaped2intarray} because it exists in multiple roles (array::shapedintarray, array::shapedintarray) | 09:16 | |
jnthn: exists in multiple roles: but they are the same ??? | |||
jnthn | Well, same name at least | 09:18 | |
Did the same role somehow get added twice? | |||
lizmat | hmmm.... | ||
jnthn | m: role R { method m() { } }; class C does R does R { } | 09:19 | |
camelia | rakudo-moar 054aca: OUTPUT«===SORRY!=== Error while compiling <tmp>Method 'm' must be resolved by class C because it exists in multiple roles (R, R)at <tmp>:1» | ||
lizmat | lemme check | ||
shape2intarray does shapedintarray | 09:20 | ||
shapedintarray does shapedarray | |||
shapedarray does Rakudo::Internals::ShapedArrayCommon | |||
hmmm... and shaped2intarray gets mixed in with array[int] | 09:21 | ||
and array only does Iterable | 09:22 | ||
ShapedArrayCommon doesn't do any other roles | |||
what I'm trying to do is to add a STORE candidate for shapedintarray that uses optimised _i nqp ops | 09:23 | ||
instead of the generic .ASSIGN-POS(AT-POS) logic | 09:24 | ||
shapedarray *does* have a STORE with the same signature, but I thought the STORE in shapedintarray would shadow that | 09:25 | ||
was I wrong? | |||
jnthn | Would have thought it would, but it seems somehow the role is getting in twice | 09:26 | |
lizmat | gist.github.com/lizmat/0e734516f6a...8d62b38159 # my changes | ||
jnthn | Try tweaking add_role (probably in RoleContainer.nqp or so) | 09:27 | |
lizmat | ok | ||
jnthn | To either quietly filter out the dupe or complain about it | ||
lizmat | need to be afk for a few hours, will get back to this& | 09:32 | |
gfldex | m: EVAL 'role R { method overload-this(){...} }; class A does R {}; '; CATCH { default { say .^name, .Str } } | 11:29 | |
camelia | rakudo-moar 054aca: OUTPUT«X::Comp::AdHocMethod 'overload-this' must be implemented by A because it is required by a role» | ||
gfldex | does Rakudo not know by which role the method overload is required? | 11:30 | |
timotimo | it probably does, actually. just doesn't get recorded and then reported | ||
psch | right, it probably currently just doesn't care which role it comes from is my thought too | 11:31 | |
jnthn | The place we encounter the rquirement isn't where we detect the failure, so it's possible it's not passing the info along that we need for the error. Improvements welcome. :) | ||
(In the lucky case, the info is there and the error generation just needs a tweak) | |||
gfldex | i just doced it so it must stay that way forevaaaa | 11:32 | |
i will rakudobug with a note to where to update the docs | 11:33 | ||
m: role R1 { method m { say 'R1' } }; role R2 { method m { say 'R2' } }; my $a = (1 but R1) but R2; $a.m | 11:59 | ||
camelia | rakudo-moar 054aca: OUTPUT«R2» | ||
gfldex | is it a rule that the last mixed in method sticks? | 12:00 | |
arnsholt | Yeah, I think so | 12:15 | |
But you do get a conflict on "does R1, R2" IIRC | |||
gfldex | m: role R2 {...}; role R1 does R2 {}; role R2 {}; class C does R1; say C ~~ R1, ' ', C ~~ R2; | 12:19 | |
camelia | rakudo-moar 054aca: OUTPUT«===SORRY!=== Error while compiling <tmp>Too late for unit-scoped class definition;Please use the block form.at <tmp>:1------> does R2 {}; role R2 {}; class C does R1;⏏ say C ~~ R1, ' ', C ~~ R2;» | ||
gfldex | m: role R2 {...}; role R1 does R2 { method m {} }; role R2 { method m {} }; class C does R1 {}; say C ~~ R1, ' ', C ~~ R2; | ||
camelia | rakudo-moar 054aca: OUTPUT«True True» | ||
gfldex | m: role R2 {...}; role R1 does R2 { method m { say 'R1' } }; role R2 { method m { say 'R2' } }; class C does R1 {}; say C ~~ R1, ' ', C ~~ R2; C.new.m | 12:20 | |
camelia | rakudo-moar 054aca: OUTPUT«True TrueR1» | ||
gfldex | i don't like the difference in behaviour of runtime and compiletime mixins | 12:21 | |
jnthn | gfldex: Which difference in particular? | 12:52 | |
Constructing the runtime ones is done by deriving a subclass and then add_role of the role in question | 12:53 | ||
And then making the input object take on that new type | |||
gfldex | m: role R1 { method m { say 'R1' } }; role R2 { method m { say 'R2' } }; my $a = (1 does R1) does R2; say $a.^name; $a.m | ||
camelia | rakudo-moar 054aca: OUTPUT«Int+{R1}+{R2}R2» | ||
gfldex | for runtime mixins the last mixed in method wins | ||
jnthn | m: role R1 { method m { say 'R1' } }; role R2 { method m { say 'R2' } }; my $a = 1 does R1,R2; say $a.^name; $a.m | 12:54 | |
camelia | rakudo-moar 054aca: OUTPUT«Int+{R1}R1» | ||
jnthn | m: role R1 { method m { say 'R1' } }; role R2 { method m { say 'R2' } }; my $a = 1 does (R1,R2); say $a.^name; $a.m | 12:55 | |
camelia | rakudo-moar 054aca: OUTPUT«Method 'm' must be resolved by class Int+{R1,R2} because it exists in multiple roles (R2, R1) in any apply at gen/moar/Metamodel.nqp line 2806 in any compose at gen/moar/Metamodel.nqp line 3006 in any generate_mixin at gen/moar/Metamodel.nqp li…» | ||
jnthn | Each "does" introduces a new level of inheritance | ||
But if you mix the two in at once you get the collision. | |||
gfldex | does R1,R2 is ENODOC :-> | ||
jnthn | Ah :) | 12:56 | |
lizmat is watchen das blinkenlights of a TimeMachine restore on a new MBP | 13:19 | ||
DrForr | That would be the monster you mentioned on the book of Faces? | 13:21 | |
lizmat | well, monster... would have preferred 32G, but that was not an option :-( | 13:23 | |
dogbert17 | lizmat: is it a touchbar thingie? | 13:26 | |
lizmat | yup | ||
timotimo | make it show a bunch of camelias and upload a video of that on twitter :D | 13:27 | |
dogbert17 | do you use ESC often, I believe that button has been moved to the bar | ||
lizmat | will try ;-) | ||
dogbert17: it's indeed on the bar | |||
considering first trying that, and if I don't like it, repurposing caps-lock as an ESC key | 13:28 | ||
dogbert17 | will be interesting to hear and also how much faster it is compared to your old machine | 13:29 | |
lizmat | it now claims it's going to need 5+ hours for the restore to complete | 13:30 | |
so it will be much later today before I have any figures :-) | |||
jnthn | That's...a lot of restoring o.O | 13:31 | |
lizmat | hmmm... I guess I should have removed all of those precomped files before making the last backup :-) | 13:35 | |
timotimo | heh heh | 13:37 | |
viki | Would be useful to have github.com/rakudo/web-rakudo repo to stuff various bits from rakudo.org like this download page PHP script I'm writing. | 13:39 | |
dogbert17 | lizmat: when the restore is complete it would be interesting to know more about the test that failed for you yesterday | 14:39 | |
gfldex | m: role R1 { method m {} }; role R2 { method m {} }; my $a but R1,R2 | 14:45 | |
camelia | ( no output ) | ||
gfldex | m: role R1 { method m {} }; role R2 { method m {} }; my $a but (R1,R2) | ||
camelia | rakudo-moar 054aca: OUTPUT«Method 'm' must be resolved by class Any+{R1,R2} because it exists in multiple roles (R2, R1) in any apply at gen/moar/Metamodel.nqp line 2806 in any compose at gen/moar/Metamodel.nqp line 3006 in any generate_mixin at gen/moar/Metamodel.nqp li…» | ||
gfldex | that's a bit of a trap | ||
jnthn | Yes, I was a bit surprised not to get a sink warning about that | 14:46 | |
gfldex | shall I rakudobug as LTA? | 14:49 | |
jnthn | +1 | 14:50 | |
[Coke] | someone have some code that is known to be slowish in --profile? | 18:19 | |
dalek | p: 7eb2824 | coke++ | src/vm/moar/profiler/template.html: Use latest versions of css/js from CDNs |
18:33 | |
[Coke] | I just did a bump and made sure that a basic profile still worked there. | 18:37 | |
hopefully all the new stuff is faster. :) | |||
timotimo | well, that was a simple upgrade | 19:16 | |
lizmat | yeah, need to get a faster backup disk for next time | 19:23 | |
👀 | 19:24 | ||
🐪 | |||
timotimo | is it finished? | 19:25 | |
lizmat | trying out the touchbar emoji selection :-) | ||
yeah | |||
timotimo | i actually meant coke's last commit with the "simple upgrade" thing | ||
lizmat | ah, ok | ||
sorry, wasn't sure :-) | |||
timotimo | weechat didn't even show you had joined until your first message appeared | ||
(the smart filter thingie) | |||
[Coke] | timotimo: upgrade might be too strong a word. | 19:41 | |
dalek | ar/origin/zef: 3e2ad8f | (Steve Mynott)++ | tools/build/Makefile.in: install zef not panda |
20:47 | |
ar/origin/zef: 3a728d3 | (Steve Mynott)++ | tools/build/module-install.pl: args for zef |
|||
viki | :o | 20:48 | |
dalek | ar/origin/zef: 96400ab | (Steve Mynott)++ | / (3 files): delete panda submodule and add zef one |
20:50 | |
jnthn | We merged a memory leak earlier today: github.com/rakudo/rakudo/pull/931#...w-10641686 | 21:25 | |
lizmat | Files=1155, Tests=53799, 182 wallclock secs (10.35 usr 4.72 sys + 1026.25 cusr 124.58 csys = 1165.90 CPU) | 21:33 | |
jnthn: want me to revert that ? | |||
jnthn | Or we can just fix it... | ||
I can tomorrow; way too tired to trust myself to write code tonight :) | 21:34 | ||
lizmat | ah, ok... | ||
jnthn | But if somebody wants to beat me to it, go ahead :) | ||
lizmat | will be commuting to London most of tomorrow | ||
jnthn | LPW? | ||
lizmat | yup | ||
not going to do a keynote this time, *phew* :-) | 21:35 | ||
dogbert17 | lizmat: so is the new computer blazingly fast? | 21:41 | |
lizmat | well, blazingly... it feels faster and the first clean spectest make it looks like | 21:42 | |
m: say 182/209 | |||
camelia | rakudo-moar 843a6b: OUTPUT«0.870813» | ||
jnthn | lizmat: Phew. Enjoy it! :) | ||
dogbert17 | and do you like the touchbar? | 21:43 | |
lizmat | jnthn: will do.... travel tomorrow, then two days of seeing sights in London | ||
still getting used to it | |||
especially the suggestions it gives when typing | 21:44 | ||
dogbert17 | aha, interesting | ||
timotimo | i can fix the memory leak there in the container ops | ||
lizmat | and emojis: 😍😒👌😊😘😭😩😔😏😁 | ||
dogbert17 | yay | ||
lizmat | 👍👍✌️😌🙈😎🖨🖥💻📲📱 | 21:45 | |
dogbert17 | memory leaks, I actually have a question about such a beast | ||
is there any reason why t/spec/S17-procasync/no-runaway-file-limit.t should leak memory? | 21:46 | ||
jnthn | dogbert17: Not that I can think of | ||
jnthn takes an early night, and hopes to have good debugging energy tomorrow for that pesky "zeroed owner" GC crash | 21:47 | ||
'night, #perl6 | |||
*-dev :) | 21:48 | ||
timotimo | gnite jnthn | ||
dogbert17: how do you measure the leak? | |||
dogbert17 | timotimo: does this gist tell you anything? gist.github.com/dogbert17/b381b649...761f45f1ba | ||
gist :-) | |||
timotimo | yeah, it probably shouldn't do that | 21:49 | |
dogbert17 | of course, the test does 1000 iterations so each leak is not that big but still | 21:50 | |
timotimo | yeah, we should ideally only ever leak things that happen only a single time | 21:52 | |
like how we currently leak the unicode database | |||
dogbert17 | yes, I've seen that, its ~120k if I remember correctly | 21:53 | |
timotimo | right | ||
dalek | ar/origin/zef: b0d5744 | ugexe++ | tools/build/module-install.pl: Skip [build&test]-depends |
22:23 | |
ar/origin/zef: 568f25f | (Steve Mynott)++ | tools/build/module-install.pl: Merge pull request #80 from ugexe/patch-1 Skip [build&test]-depends |
|||
ar/zef: 7331b7e | (Steve Mynott)++ | README: zef is new panda in README coke++ |
22:30 | ||
ar/zef: fb718d8 | (Steve Mynott)++ | tools/build/module-install.pl: don't access the network for modules ugexe++ |
22:40 | ||
kudo/nom: 3800e99 | timotimo++ | src/vm/moar/ops/container.c: don't leak variable name C string on exception |
22:55 | ||
lizmat | $ 6 'my @a[2,2] = (0,1),(2,3); my int @b[2;2] = @a' | 23:16 | |
Segmentation fault: 11 | |||
lizmat gives up for today | |||
good night, #perl6-dev | |||
MasterDuke | timotimo++ for fixing that leak i created | 23:38 | |
btw, how/where in the world is that rakudo_scalar_store called? | 23:39 | ||
git grep in rakudo, nqp, and moarvm all show nothing besides the couple hits in countainer.c itself. i see container.c in the rakudo makefile | 23:44 | ||
timotimo | do you see the rakudo_scalar_spec struct in container.c? | 23:49 |