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
|