01:48 ilbot3 joined 02:57 geekosaur joined 06:38 Dunearhp joined 09:38 vendethiel- joined 10:32 FROGGS joined
FROGGS o/ 10:32
timotimo o/
FROGGS any plans for today? 10:48
timotimo well, i have several outstanding work items that'd be good to work on :\ 10:49
one item that i've been pushing further and further forward is making spesh able to handle inlined code better; at the moment we don't discover facts from it and don't really do cross-inline-optimization all that well 10:50
FROGGS ahh 10:51
timotimo more recently, i've been meaning to improve the fixed-size allocator so that it handles multi-threading better - though it'd also be nice if it could get faster in the single-threaded case when a program is very heavy on allocating callframes
FROGGS can you break one of these tasks apart - into smaller work packages?
timotimo i'd also like to have some kind of analysis available for serialized blobs, as well as some analysis for the complete state of all our memory allocators
FROGGS and then say, I want to do #1 until 4 o'clock? 10:52
sometimes that keeps me productive
timotimo good question
FROGGS I just want to read the scrum guide carefully today, because the next two days will be scrum master course 10:53
timotimo that sounds nice
FROGGS hope so :o)
timotimo though i forgot which of the things i've read about so far was the one named "scrum"
FROGGS hmmm, hard to explain in a few sentences 10:54
timotimo i probably already know it, just can't identify it by the name alone 10:55
"know about it", more like :)
FROGGS the result should be that the "customer" will see the progress more often, and can request changes and report bugs while it is still in the works 10:56
timotimo oh, basically "agile" 10:57
FROGGS that's what I basically do since forever, but when doing scrum right, you've got one person that does the coding and another one that does reviews and administration stuff
aye
most of the time I'm kinda alone at work, and I hope that this will change over time 10:58
timotimo oh, yeah, working alone doesn't sound good, especially long-term 10:59
FROGGS only kinda alone, but still
timotimo mhm
FROGGS it's nice to have something to talk about the stuff that is going on, and I get that more in these channels that in person at work 11:00
m: say num16
camelia rakudo-moar 127b3b: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Undeclared routine:ā¤ num16 used at line 1ā¤ā¤Ā»
FROGGS damn
timotimo right :| 11:01
dalek arVM: 94e6f6c | FROGGS++ | src/6model/reprs/C (4 files):
remove (non-exitent) num16 from error message
11:03
FROGGS nebuchadnezzar: what are the next steps? do you need help with something? 11:13
11:35 Ven joined
timotimo .o( did i miss something? ) 11:40
11:46 Ven joined
FROGGS timotimo: arm64 is okay now for rakudo, though it is not visible in the debian build logs yet 11:50
timotimo: next up would be powerpc I think, which fails tests in rakudo's make test
timotimo ah! 11:52
that's what. cool :)
i think i might add valgrind client requests to the fixed size allocator 11:55
maybe that'll let me figure out why my fsa cache makes things explode 11:56
FROGGS and moarvm builds on mips*, though I have no clue if nqp or rakudo does (somehow I doubt it)
sounds good :o)
timotimo have you ever used that stuff? 11:57
FROGGS no, but I guess you'll be able to hook a valgrind into a running process then? 11:58
timotimo nah, it's more like when valgrind is attached, you can give it additional info about stuff your program does with its memory 12:00
with the memory pools API you can say "we just allocated a piece of memory here, it belongs to the pool identified by this address" and "this pool has redzones on the left and right of size N" and "this piece of memory is now NOACCESS" 12:02
12:03 Ven_ joined
lizmat www.iclarified.com/57138/apple-adds...rra-kernel # can't help but wonder what bugs will be shook out if my next MacBook has an ARM :-) 12:03
timotimo VALGRIND_DO_LEAK_CHECK: does a full memory leak check (like --leak-check=full) right now. This is useful for incrementally checking for leaks between arbitrary places in the program's execution. It has no return value.
VALGRIND_CREATE_BLOCK and VALGRIND_DISCARD. VALGRIND_CREATE_BLOCK takes an address, a number of bytes and a character string. The specified address range is then associated with that string. When Memcheck reports an invalid access to an address in the range, it will describe it in terms of this block rather than in terms of any other block it knows about. Note that the use of this macro does not actually 12:05
change the state of memory in any way -- it merely gives a name for the range.
^- cool
oh! snap! i didn't even know valgrind offers a gdbserver with a bunch of useful commands
you can even manually make a piece of memory noaccess at an arbitrary point 12:07
and you can who_points_at <addr> [<len>], how cool is that
i don't seem to see a way to mark a region as "do not write here", though 12:08
FROGGS that's awesome! 12:10
wouldnt it make sense to have a special debug build of moar adds names to memory reagions of th nursory/gen2 like 'class Foo / int8 $bar'? 12:11
lizmat: would be interesting, aye :o) 12:12
timotimo --workaround-gcc296-bugs=<yes|no> [default: no]
When enabled, assume that reads and writes some small distance below the stack pointer are due to bugs in GCC 2.96, and does not report them.
fantastic
adding info to the nursery is a bit tricky because of the way we just discard stuff that hasn't been copied over; i'm not entirely sure yet how that maps to client requests 12:13
| | | | * e9b2cc9 - (origin/valgrind_support) WIP on valgrind annotations (1 year, 6 months ago) <Timo Paulssen>
^- last time i looked into this
so, i'm probably smarter now than i was then ;)
12:15 Ven joined
FROGGS :o) 12:16
do you have gcc 2.96? I would not think so :o) 12:17
# uname -a
Linux froggs-Latitude-E6530 4.2.0-42-generic #49-Ubuntu SMP Tue Jun 28 21:26:26 UTC 2016 ppc GNU/Linux
^----- this is a debian powerpcspe
installing git now etc
geekosaur hears the number of the Beast and shudders a bit 12:18
(2.96 was a heinous Red Hat-ism) 12:19
timotimo oh?
the valgrind devs say implementing a read-only status for memory would be a significant development effort and would have a significant runtime impact 12:20
geekosaur yep 12:21
timotimo it would have been pretty cool to have for this one bug i'm experiencing in one of my (many, lousy) branches
geekosaur valgrind can't use CPU support, it has to emulate the CPU in software. implementing general read-only map support would indeed be painful both to develop and to run with 12:22
timotimo yeah, i guess
geekosaur as for gcc 2.96, there was no such thing officially. RH pulled a buggy unreleased post-2.95 revision and added more bugs to it
timotimo i wish there was a simple "append_only" thing for pages where it's readonly up until a certain position and can be written to after that and the position could only be increased
ah, i see
that's terrible :) 12:23
geekosaur then used it to compile the OS for one RH release, and the kernels for several subsequent releases
timotimo ;(
geekosaur the gcc folks were close to issuing death threats because they kept having to field bug reports that they couldn't do anything about
timotimo ;_; 12:28
that's the worst state of affairs ever
i'm going to need to teach the FSA about the concept of a redzone 12:34
12:47 Ven joined 13:01 Ven joined
timotimo ==23331== HEAP SUMMARY: 13:03
==23331== in use at exit: 0 bytes in 0 blocks
^- this means that my annotations for the fixed size allocator were correct :) 13:11
13:17 Ven_ joined
timotimo redzone will be a bit fiddly 13:20
where do i add, where do i subtract ...
13:50 zakharyas joined, Ven joined
timotimo operator precedence just f'd me over 14:34
i was moving over alloc pos with this code:
al->size_classes[bin].alloc_pos += (bin + 1) << MVM_FSA_BIN_BITS + 2 * MVM_FSA_REDZONE_BYTES; 14:35
but << is a very loose operator ...
14:47 Ven_ joined 14:48 dogbert17 joined 16:01 Ven joined
japhb .tell FROGGS num16 is supposed to be this: en.wikipedia.org/wiki/Half-precisi...int_format -- 'half' or 'binary16' FP format 16:16
yoleaux2 japhb: I'll pass your message to FROGGS.
09:11Z <nine> japhb: I guess exporting is the way to go but I'm not sure that would work right now. Alternatively one could copy the imported types from MY:: to GLOBAL:: in the top level module. Right now you won't find them in MY:: but that would just shorten the copy loop :)
FROGGS japhb: ohh, interesting 16:20
yoleaux2 16:16Z <japhb> FROGGS: num16 is supposed to be this: en.wikipedia.org/wiki/Half-precisi...int_format -- 'half' or 'binary16' FP format
japhb .tell nine Hmmm, thank you re: My:: --> GLOBAL:: hint. 16:21
yoleaux2 japhb: I'll pass your message to nine.
FROGGS build moarvm on mips64el now 16:33
is building* 16:34
17:32 Ven joined
dalek arVM: 96d74e0 | timotimo++ | / (3 files):
let the fixedsizealloc tell valgrind what's what.

includes a redzone (forbidden bytes) between FSA allocations
17:33
timotimo ^- requires you to configure with --valgrind
and also requires you to actually run the moar binary through valgrind
17:46 travis-ci joined
travis-ci MoarVM build failed. Timo Paulssen 'let the fixedsizealloc tell valgrind what's what. 17:46
travis-ci.org/MoarVM/MoarVM/builds/169940964 github.com/MoarVM/MoarVM/compare/9...d74e0c80bc
17:46 travis-ci left
timotimo hmpf. the valgrind support didn't help with my sso stuff :( 17:49
nebuchadnezzar FROGGS: sorry, I'm discovering Valencia and Barcelona (in addition to the 2016.opennebulaconf.com) 17:51
17:51 Ven joined
FROGGS nebuchadnezzar: ohh, enjoy it! :o) 17:51
nebuchadnezzar thanks 17:52
I warned domi about it
nwc10 timotimo: there doesn't seem to be anything that defines VALGRIND_MAKE_MEM_DEFINED 17:53
timotimo oh, didn't i put that in? 17:54
nwc10 if you did, I can't find it with `git grep VALGRIND_MAKE_MEM_DEFINED`
timotimo must have forgotten to actually push it
dalek arVM: 82628a5 | timotimo++ | src/memdebug.h:
add back MAKE_MEM_DEFINED which somehow got lost
17:55
nwc10 oops. :-) 17:56
yes, MoarVM now builds for me
timotimo phew. 17:57
Memcheck: mc_main.c:5525 (vgMemCheck_is_valid_aligned_word): Assertion 'VG_IS_WORD_ALIGNED(a)' failed. 17:58
i wonder what i'm doing to cause that?
maybe the redzone has to be like 8 bytes? 17:59
18:11 travis-ci joined
travis-ci MoarVM build errored. Timo Paulssen 'add back MAKE_MEM_DEFINED which somehow got lost' 18:11
travis-ci.org/MoarVM/MoarVM/builds/169944402 github.com/MoarVM/MoarVM/compare/9...628a5c735b
18:11 travis-ci left
timotimo W: Failed to fetch downloads-distro.mongodb.org/repo/d...tion-en_US Unable to connect to downloads-distro.mongodb.org:http: 18:25
18:43 cygx joined
cygx got a segfault while playing around with re-exporting symbols, in particular github.com/cygx/p6-physics-gr/blob...sics/GR.pm 18:45
segfault is at 0x0000000069bd41e9 in MVM_interp_run () at src/6model/sc.h:71
71 return sc_idx > 0 ? tc->instance->all_scs[sc_idx]->sc : NULL;
I failed to come up with a minimal test case
it's re-exporting &unit-matri that makes it explode, for whatever reason 19:02
*&unit-matrix
19:02 Ven joined 19:17 domidumont joined 19:36 Ven joined 19:52 Ven joined 20:22 Ven joined 20:40 zakharyas joined 23:04 geekosaur joined 23:17 dogbert17 joined
timotimo oh, did i mention i was able to fix the little FSA cache 23:37
thanks to valgrind pointing me at the right address after i put in the redzone 23:38
diakopter timotimo++ 23:52