Geth | MoarVM: fa5158a38c | (Samantha McVey)++ | src/strings/normalize.c Don't break after ZWJ for Emoji=True + GCB=Other With this change we are now counting 100% of the Emoji v4.0 emoji as a single grapheme. Since ascii numbers and the pound symbol are also counted as Emoji, disregard any codepoints in the ASCII range. |
00:27 | |
geekosaur | "..are also counted as emoji". I don't even. | 00:28 | |
Geth | MoarVM: bef5802bda | (Samantha McVey)++ | tools/UCD-download.p6 Make some fixes to the Unicode data file downloader Update it to the version from my Unicode Grant repo and fix an additional problem downloading the UCA files. |
00:29 | |
samcv | yep | ||
they have an emoji presentation with variation selector | 00:30 | ||
probably... | |||
no clue. it's not on the emoji list but they're listed as emoji. the only i know they're a part of are the keypad ones | |||
now that Unicode 9.0 is effectively done... i will have a party | 00:31 | ||
hehe | |||
timotimo offers high-files before going to bed | 00:33 | ||
samcv updates moarvm readme to show unicode 9.0 support | |||
Geth | MoarVM: 89a9999fc1 | (Samantha McVey)++ | README.markdown Update the README to indicate Unicode 9.0 support With the recent fix to all the Unicode 9.0 era Emoji (though technically part of Emoji v4.0 standard), list that we support Unicode 9.0. Other changes which contributed to this were fairly recent full support of Prepend codepoints and Regional Indicators as well as various other Grapheme related things. |
||
samcv | ^5 :) | 00:34 | |
samcv | high files? | ||
samcv | heh | ||
timotimo o/āµo samcv | |||
we can totes 3dprint a big 5 that has handles on each side btw | 00:35 | ||
samcv | hehe | ||
timotimo | and if that's not "high five" enough, i'm sure we can get a glassblower (maybe a student) to make us a ... specific device ... shaped like a 5 | 00:37 | |
sleep time | 00:47 | ||
01:48
ilbot3 joined
|
|||
samcv | what's the best way to make strands. just concatting things? | 02:10 | |
02:24
AlexDaniel joined
03:19
vendethiel joined
08:09
domidumont joined
08:53
sivoais joined
|
|||
jnthn | samcv: Waht's the context on "make strands"? But yeah, concating two simple strings will potentially make strands, though if it detects it has to tweak with the ends of them for normalizations reasons you'll get a flat string again | 11:23 | |
samcv++ # emoji tests passing \o/ | |||
nine | Funny. I get "Code ref '' does not exist in serialization context", with "finish_code_object" being the outer according to gdb, but giving all the anonymous subs in method finish_code_object names does not change the result | 11:26 | |
Btw. my current strategy is to bite the bullet and write all the debug helpers I need to make debugging this rather trivial. Though it seems like finding out what those tools could do is rather non-trivial by itself. | 11:29 | ||
timotimo | i can try to offer guidance | 11:30 | |
nine | In essence all my troubles are caused by serialization context confusions in situations where we do nested compilation (BEGIN time EVAL or in-process precompilation). | ||
I get various "does not exist in serialization context" errors and one testcase shows repossession issues. I guess they are all related. | 11:31 | ||
timotimo: so if you were to debug such issues. What information would you seek? | 11:32 | ||
timotimo | oh lord, i haven't looked into serialization related things in a long time | 11:35 | |
maybe trace the creation of objects that get a SC set, and when repossession happens, what gets repossessed? | 11:37 | ||
not sure :\ | |||
i wonder if it's a good idea to turn off GC so that pointers don't move | 11:38 | ||
jnthn | I suspect something that can dump what's actually in a serialization context would be somewhat useful | ||
timotimo | mhm | ||
jnthn | Given we have debug_name that should be possible | ||
nine | Both sound quite useful to me. | ||
And given MVM_dump_p6opaque's warm reception, spending time on such debug tools could be good for the soul :) | 11:39 | ||
timotimo | i've experienced it crash on me | 11:40 | |
dump p6opaque i mean | |||
nine | Yeah, me, too. I'm not that surprised given how little I actually know about these internals. I'm sure to have missed a couple of cases. | 11:42 | |
timotimo | heh. | ||
i ought to look into it a bit | |||
among other things it'll just dump a string even if the object in question isn't even a string at all | 11:43 | ||
i wonder if i committed that piece of code that puts a decision tree there | |||
nine | Already looks a bit odd: gist.github.com/niner/062b873d56fe...dc1962a3ef | 12:07 | |
And objects appear to be listed multiple times in root_objects | 12:17 | ||
13:00
domidumont joined
13:05
domidumont joined
|
|||
nine | A VMNull object in an SC's root_codes array? Sounds odd, but I guess its nothing out of the ordinary. | 13:18 | |
With this SCRoot dumper I can now confirm that the code ref in question does indeed not appear in the SC or its dependencies. Could be that it was in an SC of a comp unit that has already been serialized | 13:22 | ||
OTOH the object itself thinks it belongs to the writer's root sc | 13:25 | ||
MasterDuke | fyi, just updated github.com/MoarVM/MoarVM/pull/590 | 13:31 | |
timotimo | have you tried working with rr yet, nine? | ||
nine | timotimo: what's rr? | 13:54 | |
rr-project.org? That does sound useful :) As I could just set a data-watch at the object's sc field's address | 13:57 | ||
Geth | MoarVM/even-moar-jit: 3e0c0881df | (Bart Wiegmans)++ | src/jit/core.expr Add return_o expression op Rather common, presents no problems, did indicate that our template correctness checks aren't great. |
14:00 | |
MoarVM/even-moar-jit: b81cd68142 | (Bart Wiegmans)++ | docs/jit/todo.org Plan JIT stack walker |
|||
nine | The choice of name is kinda idiotic though. How is any search for that name supposed to come up with something useful? | 14:01 | |
14:06
buggable joined
|
|||
nine | How can I disable the GC? | 14:25 | |
timotimo: you were spot on. Disabling the GC would make this easier | |||
jnthn | nine: Easiest way is to force everything to be allocated in gen2 | ||
Only way, probably :) | |||
There's a function you can call to achieve taht, I forget the exact name, but I think it's in src/gc/allocate.h | |||
nine | MVM_gc_allocate_gen2_default_set(tc) | 14:27 | |
jnthn | That's the one | 14:30 | |
Oh, I should note a caveat: it does it for per thread | |||
So if you're going to have multiple threads being spawned then you'll want to stick a call to that into both moar.c where we make the VM instance and thread.c where a new thread is spawned. | 14:31 | ||
nine | jnthn++ # works like a charm | 14:36 | |
14:36
AlexDaniel joined
|
|||
nine | timotimo++ # I now got the place where the object is put into SC #27 :) | 14:36 | |
jnthn | nine: fwiw if you want to add an env var MOAR_GC_NEVER or something I'm fine with that | 14:37 | |
I don't think you'll be the last person who wants it :) | |||
dogbert17 | is it correct that Metamodel::C3MRO.^mro returns types even though they are marked as hidden? | ||
timotimo | what does hidden mean? | 14:38 | |
nine | jnthn: will do. Still have to commit yesterday's debug_name fixes, too. | ||
timotimo | if something's not in the mro, methods from it won't be available at all | 14:39 | |
at least in theory? | |||
jnthn | dogbert17: Yes, there's an mro_unhidden for the other thing | ||
dogbert17 | timotimo: a trait called 'is hidden' | ||
jnthn | nine++ | ||
dogbert17 | cool, will tweak the doc, the ^mro method has two explanations, I intend to remove the one that is less detailed | 14:40 | |
nine | Ok, the unnamed code ref is a comp unit's mainline. Which isn't that surprising considering that we're compiling a module. | 14:41 | |
timotimo | don't forget that whenever you call some code from a running rr session it will clone the program, run the code, then destroy the clone | 14:46 | |
nine | The code object is actually right. It should still be in SC #27. That's where we added it and that's where we are now failing to find it. So somehow it had to be removed from the SC. | 14:48 | |
actually "has to have been removed" I think... | |||
dogbert17 | timotimo: would you be terribly upset if I closed RT #123434 | 15:07 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123434 | ||
timotimo | please go ahead | 15:10 | |
dogbert17 | timotimo: done | 15:13 | |
15:29
FROGGS joined
|
|||
FROGGS | o/ | 15:32 | |
15:38
domidumont joined
16:34
vendethiel joined
|
|||
dogbert17 | if you run helgrind on a script, is there an 'easy' way to know if something is a real problem or just something irrelevant? | 17:00 | |
dogbert17 perhaps not the easiest question to answer | 17:02 | ||
timotimo | that is one of the hardest things :) | 17:03 | |
dogbert17 | to be more specific, I'm running the second code example in RT #130796 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=130796 | ||
dogbert17 | m: my $c = 0; my @a = lazy gather { take 1; loop { take rand } }; my @b = lazy gather { take 1; loop { take rand } }; for ^10 -> $i { await start { $ = @a[^$i] }, start { $ = @b[^$i] } }; say @a[^10] eqv @b[^10]; say $c; say @a[^10] | 17:04 | |
camelia | False 0 (1 0.999299666130502 0.53503705328689 0.294035244642186 0.67976963144181 0.86719035238592 0.867675113551506 0.362186164002754 0.80890451131411 0.839907669840518) |
||
dogbert17 | I get a bunch of output but how do I make heads or tails of it? | ||
stuff like: | 17:06 | ||
==29592== Possible data race during read of size 4 at 0x6B4E834 by thread #11 | |||
==29592== Locks held: none | |||
==29592== This conflicts with a previous write of size 4 by thread #1 | |||
==29592== Locks held: 1, at address 0x6B412C8 | |||
I gisted the output here: gist.github.com/dogbert17/b774a3bc...8d89ee27cd | 17:11 | ||
timotimo | i expect the helgrind output of just an empty program (well, maybe two start blocks and an await or something) could look similarly gigantic | 17:17 | |
we can turn off lazy deserialization of SCs, that'd probably eliminate a few pieces of output | 17:18 | ||
dogbert17 | timotimo: there's some stuff at the top which seems to show up in each and every program, I added a few carriage returns in the output after that stuff | 17:23 | |
timotimo | 9:#define MVM_SERIALIZATION_LAZY 1 | 17:24 | |
you can flip this to 0 | |||
dogbert17 | timotimo: I'll give it a shot | 17:28 | |
the output went from 2300 lines to 2100 lines | 17:35 | ||
gist updated | 17:43 | ||
timotimo | bleh :( | 17:44 | |
dogbert17 | :) | 17:46 | |
can you see anything suspicious? | |||
timotimo | couldn't look closely yet, sorry | 17:50 | |
dogbert17 | I decreased the number of iterations, no the output is ~800 lines | 17:51 | |
*now | |||
timotimo: switched to a longer gist, the reason I did that is that the run in question actually failed with 'Cannot call method 'push' on a null object'. The other runs did not fail. | 18:18 | ||
timotimo | this log doesn't speak to me :< | 18:38 | |
dogbert17 | it was worth a shot :) | 18:45 | |
this caught my eye but I guess it's nothing ... gist.github.com/dogbert17/b774a3bc...-txt-L4055 | 18:49 | ||
timotimo | it doesn't help that the granularity of allocation info there is super bad | 18:57 | |
however | |||
we can get those to become better by enabling the FSA debug mode | |||
the size debug one | |||
it'll use malloc for every allocation, so we'll get the code that actually grabbed the data rather than the code that caused the whole page to be allocated | 18:58 | ||
that'd be worth a try | |||
dogbert17 | do you mean #define FSA_SIZE_DEBUG 0 | 19:00 | |
set to 1 ofc | |||
timotimo | that's the one | 19:08 | |
dogbert17 | trying to get the code example to fail | 19:09 | |
19:24
domidumont joined
19:32
zakharyas joined
|
|||
dogbert17 | finally, gist updated, the error 'This continuation has already been invoked' is not at the bottom though | 20:02 | |
20:09
colomon joined
|
|||
timotimo | hmpf | 20:22 | |
samcv | i need to decide when i want to convert needles from 8bit to 32bit before searching the haystack for them. i found for big documents i can get a pretty big speedup by doing so | 20:40 | |
yoleaux | 13:46Z <Zoffix> samcv: You're listed as stakeholder for Formal Rules for Defining Matched Delimiters/Brackets. When can you start working on that? Would you include approximate time required to complete it it? github.com/perl6/6.d-prep/blob/mas...mplement-2 | ||
21:07
colomon joined
21:14
colomon joined
21:29
colomon joined
|
|||
Geth | MoarVM: e13c30b705 | (Samantha McVey)++ | 2 files Use MVMint64 for MVM_string_chr (oplist/function mismatch) The oplist showed chr using int64 but its function had MVMCodepoint which is a 32 bit integer. Change the functions so it accepts a 64 bit integer. |
21:50 | |
22:11
colomon joined
22:27
colomon joined
22:53
colomon joined
|
|||
MasterDuke | timotimo: how difficult would it be to make num_graphs a MVMuint64 instead of MVMuint32? | 23:32 | |
timotimo | probably easy | 23:46 | |
MasterDuke | i figure some places all that's needed is changing the type of e.g., an index variable, but some places might need a little more attention | 23:50 | |
if i managed it, how do you think a PR to make that change would be accepted? | 23:52 |