github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:03 sena_kun joined 00:04 Altai-man_ left 01:34 raku-bridge left, raku-bridge joined, raku-bridge left, raku-bridge joined 01:39 timotimo left 02:02 Altai-man_ joined 02:05 sena_kun left 04:08 [Coke] left, samcv left, raku-bridge left, nine left, ChanServ left, nebuchadnezzar left, bingos left, rypervenche left, rba left, jpf1 left, AlexDaniel` left, eater left, camelia left, krunen left, Voldenet left, lizmat left, discoD left, mst left, TimToady left, nwc10 left, jjatria left, Util left, moritz left, squashable6 left, releasable6 left, quotable6 left, linkable6 left, sourceable6 left, benchable6 left, evalable6 left, coverable6 left, shareable6 left, harrow left, leedo left, robertle left, xiaomiao left, vesper11 left, hoelzro left, Altreus left, moon-child left, jnthn left, kawaii left, elcaro_ left, mtj_ left, Altai-man_ left, Geth left, japhb left, gugod left, tobs left, Kaiepi left, dogbert17 left, SmokeMachine left, vrurg left, sivoais left, chansen_ left, avar left, greppable6 left, committable6 left, bisectable6 left, reportable6 left, tbrowder left, statisfiable6 left, bloatable6 left, notable6 left, tellable6 left, unicodable6 left, nativecallable6 left 04:12 Kaeipi joined, eater joined, krunen joined, camelia joined, Altai-man_ joined, gugod joined, japhb joined, Geth joined, sena_kun joined, tobs joined, Kaiepi joined, dogbert17 joined, chansen_ joined, tbrowder joined, SmokeMachine joined, vrurg joined, statisfiable6 joined, greppable6 joined, committable6 joined, bloatable6 joined, notable6 joined, bisectable6 joined, reportable6 joined, tellable6 joined, unicodable6 joined, nativecallable6 joined, sivoais joined, ChanServ joined, avar joined, weber.freenode.net sets mode: +o ChanServ 04:13 vesper11 joined, hoelzro joined, Altreus joined, moon-child joined, jnthn joined, elcaro_ joined, mtj_ joined 04:14 Kaiepi left, sena_kun left, kawaii joined, squashable6 joined, releasable6 joined, quotable6 joined, linkable6 joined, sourceable6 joined, benchable6 joined, evalable6 joined, coverable6 joined, shareable6 joined, harrow joined, leedo joined, robertle joined, xiaomiao joined, kawaii left, kawaii joined, raku-bridge joined, nine joined 04:15 bingos joined, rypervenche joined, rba joined, jpf1 joined, nebuchadnezzar joined, TimToady joined, nwc10 joined, jjatria joined, Util joined, moritz joined 04:16 Voldenet joined, lizmat joined, discoD joined, mst joined, weber.freenode.net sets mode: +o mst, [Coke] joined, samcv joined 04:22 AlexDaniel` joined 06:04 sena_kun joined 06:05 Altai-man_ left
nwc10 good *, #moarvm 07:49
jnthn/lizmat: It's easy to add to the C API to provide one return the hash key on delete (for the MVMHash, because the "value" here is just one pointer) 07:50
08:02 Altai-man_ joined 08:05 sena_kun left 08:09 zakharyas joined
nwc10 and I think I know how to make all the "delete at the current itetaror position" work, even with sanity checks on iterator position. 08:13
nine oh, how? 08:15
nwc10 if enforcing sanity checks, as well as having a serial number for the hash "state" in the hash (which the iterator records), on a delete, store in the hash, the bucket number of the last delete 08:20
and reset this to "invalid" (which needs to be ~0 for the UT hash stuff) on an insert 08:21
and for "next" in the iterator, either the serial number must match
or
the serial number must be exactly 1 behind, and the iterator's current bucket must match the hash's last deleted bucket
I belive that this will work. A build is running 08:22
(this works better with open addressing, where "bucket number" is the only state) 08:23
oh yes, debugging question. 08:48
Is there a good way to trigger a breakpoint at the C level by doing something in NQP code? 08:49
in that, for Perl 5, a trick was to put a breakpoint on the C function Perl_pp_study
and then add `study` to you test case code
(as almost nothing uses study. Or reset)
and so you could set a breakpoint in gdb, and it would first get hit at that point in the high level code 08:50
and then you could do your real work
without having to figure out how to skip over all the setup
09:01 MasterDuke joined
MasterDuke nwc10: i've stuck a nqp::tanh(0e0) in code and then in gdb just break on tanh 09:06
nwc10 :-)
thanks, that sounds useful
09:17 brrt joined
nine MasterDuke: thanks for that! 09:29
nwc10 it seems you actually want nqp::tanh_n(0e0)
but this is exactly the thing I was lookign for
meanwhile, no plan surives contact with the enemy
in that this line of MVMIter.c is currently thwating me: 09:30
116 body->hash_state.curr = body->hash_state.next;
because `next` has already been advanced into safety, but I don't (directly) know that
there will be a solution
but I'm going to mow the lawn and figure it out 09:31
in the end, I think that MVMIter.c can actually get simpler
because my planned new hash has sentinel bytes at both ends, meaning it can easily have a state of "iterator not yet advanced to first", which probably means the whole curr/next dance can go
as I think that it's only needed in the C code to support 09:32
1) delete at current iterator location
2) having iterators that need to be advanced to the first real entry, when the C API (currently) has "first", and gives you the first entry.
but the lawn doesn't mow itself. 09:33
09:37 MasterDuke left 09:38 leont joined 10:03 sena_kun joined 10:05 Altai-man_ left 11:23 nebuchadnezzar left 11:27 nebuchadnezzar joined 11:28 zakharyas left 11:50 moon-child left 12:02 Altai-man_ joined 12:05 sena_kun left 12:20 brrt left 13:11 timo joined, timo is now known as Guest99547, Guest99547 is now known as timotimo 13:26 chansen__ joined 13:27 chansen_ left, chansen__ is now known as chansen_ 13:35 MasterDuke joined 14:03 sena_kun joined 14:05 Altai-man_ left 15:45 zakharyas joined 15:55 hankache joined 16:03 Altai-man_ joined 16:05 sena_kun left 16:56 hankache left 17:24 zakharyas left 18:03 sena_kun joined 18:05 Altai-man_ left 18:44 patrickb joined 18:53 Kaeipi left 18:55 Kaiepi joined 18:56 vrurg_ joined 19:02 vrurg_ left 19:23 vrurg_ joined
dogbert17 heh, a valgrind error, haven't seen one of these for a while 19:50
for those who might be interested: gist.github.com/dogbert17/caa46f52...2e89587231 19:52
MasterDuke huh. stock build? or small nursery or anything like that? 19:59
dogbert17 stock build
20:02 Altai-man_ joined 20:04 vrurg_ left
timotimo looks like checking for zero-length seperators may be missing? 20:05
20:05 sena_kun left
dogbert17 could very well be, cur_sep_pos is zero here github.com/MoarVM/MoarVM/blob/mast...eam.c#L639 when the error occurs 20:07
timotimo yeah i saw
20:07 vrurg left
dogbert17 what's the proper fix? 20:07
timotimo it looks pretty much exactly like "an empty seperator at the start of the separators list causes this issue"
do we expect nl-in to be set to "" to give one character per "line"? 20:08
lizmat so there's no sanity check on the separator list ?
timotimo i'd say throw an exception at open time
lizmat throw it at nl-in setting time
timotimo sure
that can be done after opening 20:09
dogbert17 ah, so the fix should be made at a higher level then
20:12 vrurg joined 20:13 vrurg_ joined 20:25 vrurg left 20:32 brrt joined 20:49 vrurg_ left 21:20 vrurg joined 21:35 brrt left
timotimo why? 21:44
decoder_set_separators seems like the right spot to me 21:46
21:52 brrt joined 21:59 zakharyas joined 22:03 sena_kun joined, patrickb left 22:05 Altai-man_ left 22:22 zakharyas left 22:34 leont_ joined, leont left 22:50 brrt left 23:53 leont_ left