00:20 virtualsue joined 01:38 flussence joined 02:48 ilbot3 joined 03:31 hoelzro joined
hoelzro diakopter: well, I figured out some more stuff about that bug 03:33
namely, that calling methods is fine, but calling subs triggers the bug
05:16 TimToady joined 05:39 vendethiel joined
timotimo so, uhm ... 06:04
i can't sleep, so i'm playing around with the garbage collector
i've put a print of the address we're popping off of a worklist into process_worklist
putting that through sort | uniq -c | sort -n gives me a surprising result
1201 0x7f38e2bea0e0 06:05
2407 0x7f38e27e6e70
12934 0x7f38e2be9c68
100023 0x7f38e28a63f0
timo@schmetterling ~> wc -l garbage_collection_order.txt
132296 garbage_collection_order.txt
m: say "{ 100 * 100023 / 132296 }% of addresses are just one single address over and over" 06:06
camelia rakudo-moar f1dd49: OUTPUT«75.605460% of addresses are just one single address over and over␤»
timotimo without sorting the outputted lines first, i still get: 06:07
371 0x7f38e2bea190
1051 0x7f38e2bea0e0
10202 0x7f38e2be9c68
100000 0x7f38e28a63f0
ah, haha
i know what this is about
my dumb test script %)
"hi" xx 100000
unsurprisingly puts the "hi" string in there about 100000 times in a row 06:08
who would have thought %)
my ideas of deduplicating things in the worklist were bogus anyway, because we're caring about pointers to pointers to objects 06:16
what an unexpected turn of events: an overtired timotimo is coming up with not-so-clever ideas 06:17
luckily, instead of coding, i can ease my mind with a few funny pictures and gifs: iks.soup.io/post/652386942/Image 06:20
let's try sleeping one more time 06:30
06:35 vendethiel joined 06:56 domidumont joined 07:02 domidumont joined 07:07 virtualsue joined 07:21 FROGGS joined 08:01 vendethiel joined 08:40 brrt joined 08:53 zakharyas joined 10:24 stmuk_ joined 10:45 FROGGS joined, donaldh joined 11:21 stmuk__ joined 11:26 leont joined 12:10 virtualsue joined
dalek arVM: d06a0c3 | (Dagfinn Ilmari Mannsåker)++ | src/io/fileops.c:
Fix stat CREATETIME return value
12:19
arVM: 292785f | FROGGS++ | src/io/fileops.c:
Merge pull request #332 from ilmari/fix-stat-createtime

Fix stat CREATETIME return value
12:27 patrickz joined 13:21 virtualsue joined 13:41 brrt joined
brrt huh, read an article on 'modern c', and the first thing it says is, 'clang will compile your files faster' 13:47
wat
nwc10 that certainly was true (and it had better diagnostics than gcc) but I think that gcc raised its game 13:50
[other compilers are available]
but, yes, really, is that relevant for "modern C" ?
brrt i compile moar typically much faster on gcc than on clang... 13:51
nwc10 oh OK. Interesting 13:52
brrt it's may be true for 'regular' projects, its just weird its so different from my experience
matt.sh/howto-c
anyway, it's interesting, but it probably shouldn't be treated as canon 13:53
arnsholt Yeah, that was an interesting write-up 13:55
The C99 recommendation doesn't fly for Moar, but I think most of the others are already followed by Moar
dalek arVM: 14d2575 | (Dagfinn Ilmari Mannsåker)++ | / (8 files):
Add subsecond file time ops stat_time and lstat_time
13:56
arVM: 8079ca5 | lizmat++ | / (8 files):
Merge pull request #331 from ilmari/stat-subsecond

Add subsecond file time ops stat_time and lstat_time
brrt i'm slightly annoyed by the idea that everything c99 introduced is automaitcally better 14:03
but yeah, mostly interesting
JimmyZ lizmat: pr #331 have wrong op order in interp.c, it didn't follow the oplists order.
[Coke] brrt: Imagine how perl 5 people feeel about perl 6! ;) 14:04
brrt i can imagine that yes :-)
lizmat JimmyZ: suggestions for fixing other than reverting ?
ilmari JimmyZ: I didn't realise that mattered. is it documented anywhere? 14:05
lizmat FWIW, it builds ok 14:06
JimmyZ lizmat: if the answer of my question in #331 is yes, I would like to suggest fixing it.
lizmat all the way to Perl 6
JimmyZ ilmari: It may disallow optimazation for big switch 14:07
ilmari: wrong op order :)
ilmari if it matters, there should be a test 14:08
or at the very least a comment
JimmyZ well patch for comment welcome
or test :) 14:09
arnsholt What's the problem though? Is it just that the new ops should be added at a different place in the list?
JimmyZ just same order as oplist file 14:10
ilmari arnsholt: they're in the right place in the list, but they should be in the same order in the dispatch switch()
arnsholt Oh, right! 14:11
That's probably non-trivial to write a test for
lizmat in any case, it builds Perl 6 ok and spectests ok
so I'm not going to revert anything
patches for fixes in MoarVM welcome! :-) 14:12
ilmari arnsholt: grep out the OP(): labels from interp.c and make sure theyre in the same order as in oplist...
doesn't seem too hard
leont Related to that, I recently observed some stat entries being available from nqp and others not
I didn't dive into it yet, but it was odd 14:13
arnsholt I guess. I'm just by nature wary of manupulating source code with that kind of tool. I've done too much parsing, probably =)
leont E.g. nqp::const::STAT_PLATFORM_INODE worked, but nqp::const::STAT_PLATFORM_NLINK didn't
ilmari leont: WFM 14:17
it's spelled NLINKS
m: use nqp; say nqp::stat(".", nqp::const::STAT_PLATFORM_NLINKS)
camelia rakudo-moar 5c0631: OUTPUT«1␤»
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_PLATFORM_NLINKS)
camelia rakudo-moar 5c0631: OUTPUT«1␤»
ilmari JimmyZ, lizmat: github.com/MoarVM/MoarVM/pull/333 14:18
leont Ah, just a case of PEBKAC 14:19
arnsholt NQP doesn't complain about non-existent consts? That's a bit LTA 14:20
leont Probably made that conclusion because some other entries also didn't exist (e.g. UID, GID, RDEV)
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_PLATFORM_UID)
camelia rakudo-moar 5c0631: OUTPUT«===SORRY!===␤Unknown constant 'STAT_PLATFORM_UID'␤»
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_UID)
camelia rakudo-moar 5c0631: OUTPUT«0␤»
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_PLATFORM_DEVICETYPE)
camelia rakudo-moar 5c0631: OUTPUT«===SORRY!===␤Unknown constant 'STAT_PLATFORM_DEVICETYPE'␤»
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_PLATFORM_DECTYPE)
camelia rakudo-moar 5c0631: OUTPUT«===SORRY!===␤Unknown constant 'STAT_PLATFORM_DECTYPE'␤»
ilmari m: use nqp; say nqp::stat("/", nqp::const::STAT_PLATFORM_DEVTYPE) 14:21
camelia rakudo-moar 5c0631: OUTPUT«0␤»
leont What does the PLATFORM_ namespace mean? 14:22
Can I safely use the other one?
dalek arVM: 82eb5fc | (Dagfinn Ilmari Mannsåker)++ | src/core/interp.c:
Move stat_time ops to the right place in dispatch loop

They should be in in the same order as in the oplist file, so that the compiler can optimese the switch properly.
14:24
arVM: e2d6f75 | (Jimmy Zhuo)++ | src/core/interp.c:
Merge pull request #333 from ilmari/fix-op-order

Move stat_time ops to the right place in dispatch loop
ilmari oh, moarvm doesn't have any tests of its own 14:25
I guess update_ops.p6 could do the checking
JimmyZ ilmari: moarvm will have test in the future ;) 14:27
leont nqp is effectively the test suite, AFAIK
JimmyZ moarvm will have its own tests. 14:28
so anyone adding test to t/ is welcome 14:29
ilmari JimmyZ: this only needs to run when modifying the so adding it top update_ops.c makes sense 14:30
s/modifying the/adding ops/ 14:31
JimmyZ I think it's fine too :) 14:32
14:36 virtualsue joined
ilmari there's lots of other ops that are out of order in intepr.c 14:45
s/pr/rp/
paste.scsys.co.uk/504121 14:49
14:50 donaldh joined
ilmari JimmyZ: ^^ 14:54
JimmyZ .o_O 15:20
looks like need to be fixed . 15:30
ilmari have you actually compared/benchmared the generated code to see if it matters? 15:31
JimmyZ ilmari: just in case of some compilers is not clever enough 15:32
ilmari: by default, it uses CGOTO on gcc and SWITCH on MSVC
ilmari ah 15:46
donaldh is loving the < massive cop out prose-val > ABNF rule which Grammar::BNF can't magically handle ;-) 16:06
16:11 pyrimidine joined 16:13 colomon joined 16:16 donaldh left 17:45 domidumont joined 18:14 vendethiel joined 21:39 vendethiel joined