00:26 vendethiel joined 01:45 colomon joined 04:26 quester joined 04:46 vendethiel joined 06:25 vendethiel joined 06:43 FROGGS joined 06:58 Ven joined 07:07 zakharyas joined 07:26 vendethiel joined 07:41 Ven joined 07:44 quester left 09:00 FROGGS joined 10:36 vendethiel joined 11:10 vendethiel joined 11:50 colomon joined, Ven joined 11:58 FROGGS[mobile] joined 12:00 vendethiel joined 12:13 Ven joined
nwc10 jnthn: paste.scsys.co.uk/480344 -- GC managed to deadlock itself, with just one thread 12:46
sorry, have now killed the process
masak isn't that a real achievement, deadlocking on one thread? 12:52
sounds like a koan or something
nwc10 it does seem to be a bit special.
masak .oO( we have invented new groundbreaking single-thread deadlocking technology ) 12:53
lizmat m: 1 until Promise.new 12:58
masak good point.
camelia rakudo-moar 8ab32b: OUTPUT«(timeout)»
masak I guess that can be seen as a kind of zero-resource degenerate case of deadlocking. 12:59
lizmat :-)
13:08 vendethiel joined
masak .oO( kind of like a sphere is a generalized torus with 0 handles ) 13:12
13:22 dalek joined 15:42 TimToady joined 15:59 lizmat joined 16:09 vendethiel joined 16:58 vendethiel joined 17:30 vendethiel joined 17:45 FROGGS joined
dalek arVM: 5220f52 | FROGGS++ | / (8 files):
add scdisclaim op

This way we can deserialize an serialization context (SC), throw the SC away, and then serialize the obtained object to another SC.
17:54
FROGGS that won't hurt (when it is not used)
timotimo sounds good to have it early 18:22
what's your status? is the "segfaults with eval" problem still a thing? 18:23
FROGGS it is sadly, though that only happens in the rakudo/curly branch of course 18:24
timotimo yeah, i figured
did you capture a backtrace?
FROGGS no
looked at it, yes, but did not record it 18:25
timotimo OK
FROGGS was a WORKLIST_ADD in SCRef.c
lizmat FROGGS: did you look at loading_and_symbol_setup in World? 18:26
FROGGS lizmat: not yet, gimme a sec
timotimo ah, so something's referring to a null value
so we're wrongfully adding a reference to an SC'd thing that has had its SC disclaimed?
FROGGS timotimo: something along these lines probably, yes 18:27
lizmat it has different code paths for EVAL and loading a setting
timotimo my suggestion is adding a log output or exception when we take an SCref to something that has a null SC, so that we can figure out where it originates
do you want to postpone any further work on curly for a few weeks?
FROGGS timotimo: not a few weeks, but days... it is very unlikely to get it right until Thursday 18:29
lizmat: I'm looking at it
lizmat: that code was in Grammar.comp_unit before? 18:30
timotimo i definitely know the feeling
FROGGS the code after the line '# initialize %?INC if not in an eval' is interesting... I'll play with it 18:31
lizmat ok
FROGGS though there is nothing obvious...
lizmat I'm just realizing that the code for -M is executed for each EVAL ???? 18:47
FROGGS hmmm 18:53
m: use Test; ok 1; EVAL 'ok 2' 18:54
camelia rakudo-moar 27e531: OUTPUT«ok 1 - ␤ok 2 - ␤»
FROGGS ahh, that#s not -M
m: use Test; ok 1; EVAL 'use Test; ok 2'
camelia rakudo-moar 27e531: OUTPUT«ok 1 - ␤ok 2 - ␤»
FROGGS hmmm, not easily checkable 18:55
timotimo yeah, not with camelia 18:56
lizmat also not locally, as the mainline is not run a second time 18:58
anyway, I made it conditional and it didn't break any spectest
timotimo oh
the mainline is not run? phew
i thought it was and that'd have been disastrous :)
lizmat yeah... but in any case, it is not needed :-) 18:59
[Coke] FROGGS: +#?v6.0.0+ skip 'isn\'t the iterator exhausted already, since it\'s been used previously?'
That can be written with "" on the outside instead of '' so you can avoid the quoting of ' inside the string. 19:00
(crap, wrong tab.)
timotimo i had misunderstood what an SCRef is 19:02
FROGGS: you don't remember which of the worklist_add ones was the one that bombed? 19:03
FROGGS [Coke]: ahh, I was under the impression that fudge checked for ' explicitly
timotimo: I'm pretty sure it was this: MoarVM/src/6model/reprs/SCRef.c:75: MVM_gc_worklist_add(tc, worklist, &(sc->sr->root.sc)); 19:05
timotimo oh, so perhaps the reader was "damaged" during the disclaim? 19:06
FROGGS it looked alright when inspecting it via gdb 19:07
but maybe it is not meant to be reused or so, dunno
timotimo well, there had to be *some* address that refered to a non-mapped region or something 19:08
FROGGS maybe the string heap it points to? 19:14
timotimo isn't gc_worklist_add super simple? 19:15
like, wouldn't that only segv if sc->sr->root.sc was broken somehow? 19:16
directly, i mean
all worklist_add does is maybe grow the worklist allocation array and put the item in there
FROGGS but I was able to access sc->sr->root.sc 19:18
timotimo huh 19:19
and the worklist wasn't broken either, surely
maybe optimization shuffled some things around?
is it right that disclaim_sc doesn't do anything at all about the dependent_sc's of the reader? 19:20
hm, probably is; though disclaiming an sc forces the reader to read in everything everywhere
so it might be a good idea to kill off the reader, too?
if only to save the space it used
FROGGS I dunno :o( 19:21
dalek arVM/cunion: 1e7f1ac | FROGGS++ | / (13 files):
add support for CUnion repr
19:24
arVM/cunion: 2dacf16 | FROGGS++ | src/6model/reprs/CUnion. (2 files):
allow to inline CStructs in CUnions
arVM/cunion: 29ea746 | FROGGS++ | src/6model/reprs/CStruct.c:
align inlined CUnions to their size
timotimo this is just a rebase?
FROGGS a rebase and another commit
timotimo ah
i seem to recall someone complained that something about them wasn't working recently
FROGGS them?
timotimo c unions 19:25
FROGGS ahh, you probably mean the PR that adds tests
timotimo perhaps
FROGGS yes, IMO only the 'is inlined' trait is missing there
timotimo cool
FROGGS I want to fix another issue on windows and then I'll look at the PR 19:26
okay... last issue was a bogus test 19:33
timotimo for cunion? 19:34
FROGGS aye 19:35
struct a was: long, double, char; struct b was long, float, float, char
the intend was to check that both chars are at the same position
timotimo ah
but float and double have the same alignment, no? 19:36
FROGGS but they are not due to alignment
it aligns the long in a to 8 bytes too
and it aligns to 4 in b
timotimo oh? 19:37
i suppose i don't really know the rules of structs and stuff
not by heart anyway 19:38
FROGGS yeah, one can easily get confuddled
timotimo if you have the rules in front of you and you can go at it systematically, it's surely fine
FROGGS it is like: the double in a wants to start at an 8 byte alignment
timotimo ideally, you'd be using a tool :)
19:46 brrt joined
dalek arVM: 1e7f1ac | FROGGS++ | / (13 files):
add support for CUnion repr
19:47
arVM: 2dacf16 | FROGGS++ | src/6model/reprs/CUnion. (2 files):
allow to inline CStructs in CUnions
arVM: 29ea746 | FROGGS++ | src/6model/reprs/CStruct.c:
align inlined CUnions to their size
brrt \o 19:51
timotimo o/ brrt 19:52
brrt hey timotimo :-) 19:53
timotimo your funding has been accepted \o/
when can you start? :P
brrt its on the interwebs now? i start mid june 19:54
timotimo that's almost a month of waiting for the goods to start pouring in :S 19:55
brrt oh, you'll wait longer than that before you see any benefits :-P 19:57
but yes
i intend to take the time to study up :-) 19:58
timotimo well, right :) 19:59
brrt uhm, if you wish, you can put it in a weekly i guess 20:00
but i really should probably get around to publishing it myself 20:01
timotimo aye
brrt (the fact that i'll be working on the JIT again)
(compilers are exciting :-o) 20:07
timotimo :)
brrt luajit source code should not be known for being easy to read 20:23
22:31 vendethiel joined