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 True␤R1␤»
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