github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:04
leont left
02:49
benchable6 left,
squashable6 left,
evalable6 left,
unicodable6 left,
quotable6 left,
bisectable6 left,
linkable6 left,
notable6 left,
statisfiable6 left,
nativecallable6 left,
sourceable6 left,
committable6 left,
coverable6 left,
shareable6 left,
tellable6 left,
releasable6 left,
greppable6 left,
bloatable6 left,
lucasb left,
releasable6 joined,
bloatable6 joined,
shareable6 joined,
bisectable6 joined,
unicodable6 joined
02:50
linkable6 joined,
squashable6 joined,
sourceable6 joined,
coverable6 joined,
notable6 joined
02:51
greppable6 joined,
committable6 joined,
statisfiable6 joined,
quotable6 joined,
benchable6 joined,
tellable6 joined,
evalable6 joined
02:52
nativecallable6 joined
04:01
vrurg left,
vrurg joined
09:04
sena_kun joined
10:40
leont joined
|
|||
MasterDuke | nice, arch just updated their rr package to 5.4.0, i now have zen support | 10:56 | |
12:10
Altai-man joined
12:12
sena_kun left
|
|||
nine | \o/ | 12:18 | |
13:33
leont left
15:07
lucasb joined
15:47
patrickb joined
16:01
patrickb left
16:11
sena_kun joined
16:13
Altai-man left
|
|||
nine | Oh boy.... serialization is done with gen2 default allocation, but none of the places that throw exceptions actually clear that flag. Not a big issue if the program exits soon anyway, but it is when you actually want to gracefully handle them. | 16:18 | |
MasterDuke | how many places to throw? easy to find at least? | 16:34 | |
16:43
zakharyas joined
|
|||
timotimo | possibly a lot of them | 16:47 | |
but we already have a mechanism to clear out temporary roots when we're going back to the interpreter with an exception | |||
that could be a good place to do this | |||
nine | A bunch...it's harder for the functions in sc.c, because it's not always clear that they are only used when the flag is set | 16:53 | |
Yes, yes, yes! | 16:57 | ||
MasterDuke | saved the cheerleader? saved the world? | ||
nine | maybe this time for real :) | 16:58 | |
nine is off to get some exercise | |||
timotimo | good luck | ||
MasterDuke | timotimo: i've been rebasing my use_fsa_for_vmarray PR. my understanding is that using the fsa can prevent segfaults on concurrent access (though won't prevent e.g., (over|lost)writes). however, for that to be true, all reallocs and frees will have to be `*_at_safepoint`, correct? | 17:01 | |
timotimo | yeah, that's right | 17:02 | |
MasterDuke | k, thanks | 17:03 | |
17:08
Geth_ joined
17:10
Geth left
17:18
MasterDuke left
18:50
domidumont joined
18:54
domidumont left
|
|||
nwc10 | nine: github.com/MoarVM/MoarVM/pull/1374 fixes an ugly thing in the serialisation code, but I doubt that you (or anyone) is actually tripping up over it | 19:16 | |
19:16
MasterDuke joined
19:20
mtj_ left
20:10
Altai-man joined
20:12
sena_kun left
|
|||
MasterDuke | if a string has 0 graphs, could it have >0 codepoints? | 21:08 | |
jnthn | No | 21:10 | |
MasterDuke | thanks. then if s->body.num_graphs == 0 here github.com/MoarVM/MoarVM/blob/mast...ize.c#L154 is there a good way to bail out early? | 21:12 | |
jnthn | Not sure about bail out in so far as the bit of setup is at the end | 21:14 | |
But you could wrap a lot of the stuff there into an `if` | |||
oh actually | |||
The array memory is zeroed anyway I guess so maybe you do get away wiht it | 21:15 | ||
MasterDuke | k | ||
btw, glad to see you're back, hope the time off was good | 21:16 | ||
jnthn | Will be not diving into things too deep too quickly, but yeah, I'm feeling at least a bit better than I was. | 21:18 | |
lizmat is very glad to hear that | |||
MasterDuke slowly hides github.com/MoarVM/MoarVM/pull/1344 behind my back | 21:19 | ||
jnthn | Oh goodness, I already spent at least half a day debugging that without luck... | ||
MasterDuke | heh, yeah... | 21:20 | |
jnthn | No doubt you've spent much longer | ||
MasterDuke | and yeah | ||
if you want something a bit lighter, github.com/rakudo/rakudo/pull/4026 is right up your alley | 21:23 | ||
but feel free to punt, i just happen to be looking through my various open PRs seeing if they need any attention | 21:26 | ||
21:33
zakharyas left
|
|||
jnthn | MasterDuke: Ah, yes, can look...I guess that will want stealing into rakuast, except that there we just analyze and produce good QAST in the first place, rather than produce it and then optimize...well, in theory :) | 21:34 | |
afk for a bit | |||
MasterDuke | cool, thanks again | 21:35 | |
for anybody. i'm on my use_fsa_for_vmarray branch and i'm seeing an invalid free during a spectest (t/spec/S32-io/io-cathandle.rakudo.moar). valgrind says allocated by MVM_fixed_size_alloc, freed by MVM_fixed_size_safepoint (after some gc stuff) | 21:37 | ||
MasterDuke wonders if this is the sort of thing i should be using my newly available rr for... | 21:39 | ||
or will that still be annoying because of the gc? | 21:41 | ||
nine | rr is your new best friend...trust me on that | 21:42 | |
timotimo | MasterDuke: have you checked if putting in very special objects into the given/when will break? like derived types with custom Numeric implementations or whatever? | 21:52 | |
MasterDuke | nope | ||
timotimo | may be interesting, and also for new tests to be added to roast | 21:53 | |
MasterDuke | m: class MyInt is Int { method Numeric { self + 1 } }; my MyInt $a .= new(3); given $a { when 3 { say "three" }; when 4 { say "four" }; default { say "default" } } # something like this? | 22:01 | |
camelia | four | ||
MasterDuke | m: class MyInt is Int { method Numeric { "MyInt == " ~ (self + 1).Str } }; my MyInt $a .= new(3); given $a { when 3 { say "three" }; when 4 { say "four" }; default { say "default" } } # this give 'default' on my branch | 22:03 | |
camelia | Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5MyInt == 4' (indicated by ⏏) in block <unit> at <tmp> line 1 |
||
22:25
Altai-man left
|
|||
timotimo | tbh returning something that does not do Numeric from the Numeric method isn't a ting you should do | 22:31 | |
MasterDuke | well yeah, so should it die? or just not match like with my PR? | 22:34 | |
the first example with just `self + 1` works just fine on both master and my branch | 22:35 | ||
timotimo | what about strings with a Numeric method? | 22:36 | |
MasterDuke | m: class MyStr is Str { method Numeric { self.chars } }; my MyStr $a .= new(:value("abc")); given $a { when 3 { say "three" }; when 4 { say "four" }; default { say "default" } } | 22:40 | |
camelia | three | ||
MasterDuke | same on my branch | ||
timotimo | OK, that's good at least | 22:43 | |
MasterDuke | m: my Int $a .= new(3); my Str $b .= new("b") # is the difference deliberate? | 22:44 | |
camelia | Default constructor for 'Str' only takes named arguments in block <unit> at <tmp> line 1 |
||
timotimo | probably easier to apply a role with "but" | 22:45 | |
MasterDuke | ? | ||
timotimo | i think Int.new is relatively new? it came with the feature to allow getting a new object with the same value as another? | ||
MasterDuke | right | 22:46 | |
timotimo | committable6: say Int.new(5) | ||
committable6 | timotimo, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”) | ||
MasterDuke | should Str get the same? | ||
committable6 | timotimo, ¦v6.c (48 commits): «5» | ||
timotimo | above my pay grade :) :) | ||
oh, hm, okay | |||
MasterDuke | committable6: say Str.new("a") | ||
committable6 | MasterDuke, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”) | ||
MasterDuke, ¦v6.c (48 commits): «Default constructor for 'Str' only takes named arguments in block <unit> at /tmp/p0FydDL9ql line 1 «exit code = 1»» | 22:47 | ||
MasterDuke | m: my Num $n .= new(1e0) | ||
camelia | ( no output ) | ||
MasterDuke | m: my Rat $r .= new(1, 2); my Rat $s .= new(1/2) | 22:48 | |
camelia | Type check failed in binding to parameter 'nu'; expected Int but got Rat (0.5) in block <unit> at <tmp> line 1 |
||
MasterDuke | anyway, off to sleep. later... | 22:54 | |
timotimo | good night! thanks for your hard work :) | 22:58 | |
i'll have to think on whether the one thing that behaves differently would be a problem, but it's kind of unspecified already, and when you're Doing It Wrong already ... hm. | 23:00 |