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