Geth MoarVM: 19fc9f0f2b | (Timo Paulssen)++ | src/core/exceptions.c
vsnprintf can return more than the max value given

so truncate the number there.
00:02
MoarVM: 0f1801655c | (Timo Paulssen)++ | src/spesh/dump.c
vsnprintf already writes a nullbyte at the end

  (and furthermore, the return value might be out-of-range here)
00:04
timotimo what's the highest number for a "long long int"? 00:07
maybe a 64 byte buffer is enough to hold a number stringified with "%lld" 00:08
okay, i'm off to bed now, i'll look into this last piece after sleep
geekosaur 9223372036854775807
add one if you want to handle negatives :)
timotimo okay, that fits comfortably.
yeah, +1 00:09
01:05 tomboy64 joined 01:48 ilbot3 joined 02:30 TimToady joined 05:22 stmuk_ joined 05:32 domidumont joined 05:41 domidumont joined 05:58 domidumont joined 06:00 brrt joined 07:08 brrt joined
brrt good * #moarvm 08:04
nwc10 good *, brrt 08:16
samcv good *
brrt \o nwc10, samcv 08:19
i was working on basic block 'patching this morning
not very surprisingly, it can become pretty nasty
samcv block patching? 08:30
lizmat good *, #moarvm
lizmat just commented on RT #131134 08:31
basically, I think we need checking for negative indexes at the VM level for native artrays
*arrays
samcv what should we do for negative. throw? 08:32
lizmat that would be the implication, yes
samcv k
lizmat but I'm throwing this in here to see what jnthn has to say on that 08:33
I vaguely recall having this conversation before :-)
m: my int @a = ^10; my $a = 0; dd @a[$a-1]
camelia 9
lizmat m: my @a = ^10; my $a = 0; dd @a[$a-1] 08:34
camelia Failure.new(exception => X::OutOfRange.new(what => "Index", got => -1, range => "0..^Inf", comment => Any), backtrace => Backtrace.new)
lizmat perhaps jnthn considers this a feature: in which case we should probably document the behaviour :-) 08:35
brrt samcv: a sequence of code can be divided into 'basic blocks', i.e. sequences of code that always follow linearly (without branches or labels to enter); I want to find the extents of these blocks during list construction; this is simple enough to do (break the blocks at every branch or label), but then i need to assign the successors to the blocks, which is only known at a later phase 08:50
i'm fairly sure i've seen code to deal with that, yes
samcv interesting 08:52
brrt it's integrated into the tiling process, fwiw 08:53
(tiling is translation between expression-low-level IR to machine-level IR)
samcv yay i got travis to detect latest clang so i think i almost got the coverage build down 08:54
well. at least generating it. then have to set up the ssh, but that shouldn't be too hard since i've already wrestled with that
09:06 synopsebot6 joined 09:08 SourceBaby joined
brrt and the purpose of doing this extra work is so that i can analyze the live ranges within the basic block and find 'holes' in them 09:17
and the purpose of finding the holes is twofold
- if i can prove that a spill would be necessary only for the extent of a hole (e.g arround a CALL) then I don't need to spill at all
samcv sounds very useful 09:18
brrt - if i can prove that i need a register only within the extent of an existing hole, i don't need to spill the larger live range, either
yes, and it neatly solves the 'garbage restoring' problem i mentioned earlier 09:19
although the second variant is probably best only used for very short live rangesā€¦ 09:23
lizmat hmmm... what would be needed to get param_rp_o to spesh/JIT ? 11:58
jnthn spesh typically rewrites those 12:00
Into faster, unchecked, ops
And those are then JITted
So if they are making it to the JIT it means spesh couldn't specialize that case
That most typically happens when the caller is flattening arguments into the callsite
lizmat jnthn: this is the naive int candidate of AT-POS on native arrays 12:01
multi method AT-POS(intarray:D: int $idx) is raw { 12:02
nqp::atposref_i(self, $idx)
}
it doesn't JIT
MVM_JIT_LOG says: BAIL: op <param_rp_o>
jnthn What's calling it? 12:03
(In the case that it doesn't JIT?)
lizmat my int @a = ^10; my int $a = 5; for ^1000000 { @a[$a] }
jnthn OK, so postcircumfix:<[ ]> 12:04
I wonder what that looks like on the inside
(On the path it takes)
I'd be surprised it it were flattening, though
lizmat ah, ok, lemme check
jnthn Which makes it rather odd
Also would be odd if the callsite wasn't interned 12:05
lizmat well, actually, if I take out the postcircumfix, but do: 12:06
my int @a = ^10; my int $a = 5; for ^1000000 { @a.AT-POS($a) }
I get the same BAIL:
BAIL: op <param_rp_o>
but now on AT-POS
jnthn Hmm
What happens if you write `my Int $a = 4` ooc? 12:07
I wonder if it's part of the whole "we didn't teach spesh enough about native refs" thing...
lizmat yeah, I'm afraid it's that
jnthn Yeah, spesh really needs some time spendin gon it
*spending
lizmat same result with $i = 4 12:08
jnthn Hm, OK
Then maybe it's not that
lizmat why would 4 or 5 make a difference?
jnthn oh
lizmat ah, you mean Int :-)
jnthn I typo'd 5 :P
I meant the Int :D
haha
lizmat yeah
emit jump to label -1 12:09
Bytecode size: 3096
that emits fine, even with a check for < 0
Geth MoarVM/better-fsa: 62d0f7e2f0 | (Jonathan Worthington)++ | src/gc/orchestrate.c
Make nursery cleanup non-concurrent, for now.

We can't both have thread-local free lists and have the possibility of a work-stolen thread resuming while another thread that stole its GC work frees its nursery, since they can race on the free list. It is possible in the future to only lose the potential concurrency on threads that were stolen, and let non-stolen ones go their own way as ... (10 more lines)
12:22
dogbert17 does this latest commit mean that better-fsa is ready for release? 12:24
jnthn It looks good in spectest 12:27
There's still a todo however
(Which doesn't affect most Perl 6 programs, but should be fixed pre-merge)
dogbert17 was thinking of running with small nursery and the like, but I guess that you've already done that 12:28
jnthn Not yet, wanted to get the missing TODO done first :) 12:29
dogbert17 ah, I guess that I'll wait as well then :)
dogbert17 wonders if the new branch might help offset the speed difference (~30%) between harness5 and harness6 12:31
jnthn That is certainly possible
dogbert17 cool 12:32
jnthn Timings welcome :)
dogbert17 I'll do a couple of tests on my system 12:33
dogbert17 should be interesting to hear what kind of results IOninja can get on his 24 core box 12:35
Zoffix Busy. 12:36
The current harness is exactly 2x slower tho
dogbert17 not on my system :) 12:37
Zoffix stresstest are about: 112s on harness5 and 224s on harness6 12:39
12:40 brrt joined
dogbert17 ah, perhaps it differs from the spectest difference 12:42
I'm running on virtualbox with two available cores ... 12:43
lizmat jnthn: do you feel things like atposref_i should have a check for index < 0 in the VM 12:45
or that that should be handled in e.g. AT-POS ?
jnthn Well, if we do it in the VM it's harder to get a typed exception to happen 12:46
otoh the VM has to do it anyway for safety
lizmat at the HLL it would cause a 10% slowdown in the AT-POS
jnthn: in the VM it currently means: from the end 12:47
so it is already checked, I would say
m: my int @a = ^10; say @a.AT-POS(-2)
camelia 8
lizmat m: my int @a = ^10; say @a.AT-POS(-12) 12:48
camelia MVMArray: Index out of bounds
in block <unit> at <tmp> line 1
lizmat aka, it has old P5 semantics
question is: is that a bug or a feature at that level :-)
if it is a feature, we could cponceivably optimize *-1 to -1 for natives :-) 12:49
jnthn Bug, and I dunno why we do those semantics in the VM really
dogbert17 make spectest HARNESS_TYPE=5 TEST_JOBS=4; Files=1176, Tests=56122, 833 wallclock secs ( 9.48 usr 6.89 sys + 1493.20 cusr 103.88 csys = 1613.45 CPU)
Geth MoarVM/better-fsa: 3d7b51c98f | (Jonathan Worthington)++ | src/core/fixedsizealloc.c
Don't leak per-thread FSA freelists.

At thread termination, contribute the freelist entries back to the global freelist.
12:53
jnthn OK, I think it's ready for fuller testing/merge 12:56
12:58 brrt joined
[Coke] fsa: financial savings account! 13:07
dogbert17 make spectest HARNESS_TYPE=6 TEST_JOBS=4; Files=1176, Tests=56122, 968 wallclock secs
Zoffix Is there mp_uint? 13:08
dogbert17 will now try with 'better-fsa'
Zoffix m: class { has uint $.x }.new: :x(2**64-1)
camelia Cannot unbox 64 bit wide bigint into native integer
in block <unit> at <tmp> line 1
Zoffix This used to work in last release. And in this commit, we're calling count bits function on an mp_int, so it blows up: github.com/MoarVM/MoarVM/commit/66...78553a8R38 13:09
.tell MasterDuke any idea for rt.perl.org/Ticket/Display.html?id=131149 seems like it can be fixed by just changing the bits check to check for 65 or something; is there a mp_uint? 13:23
yoleaux Zoffix: I'll pass your message to MasterDuke.
Zoffix m: class { has uint $.x }.new(:x(-2**30)).x.say
camelia -1073741824
Zoffix Seems that routine is the same place ^ that can be fixed in 13:24
dogbert17 with better-fsa; make spectest HARNESS_TYPE=5 TEST_JOBS=4; Files=1176, Tests=56122, 816 wallclock secs ( 9.08 usr 6.88 sys + 1458.77 cusr 103.15 csys = 1577.88 CPU) 13:30
lizmat dogbert17: that's a nice improvement 13:33
MasterDuke committable6: 2017.03,HEAD class { has uint $.x }.new(:x(2**64-1)).x.say 13:40
yoleaux 13:23Z <Zoffix> MasterDuke: any idea for rt.perl.org/Ticket/Display.html?id=131149 seems like it can be fixed by just changing the bits check to check for 65 or something; is there a mp_uint?
committable6 MasterDuke, Ā¦2017.03: Ā«-1Ā» Ā¦HEAD(fbc6697): Ā«Cannot unbox 64 bit wide bigint into native integerā¤ in block <unit> at /tmp/YsLW_nurSL line 1ā¤ Ā«exit code = 1Ā»Ā»
jnthn dogbert17: Wait, that's faster than with harness5? o.O
MasterDuke Zoffix: it was broken before (as you pointed out), uint was acting exactly the same as int 13:41
jnthn: i think he re-ran harness5 with the better-fsa branch? 13:42
jnthn Ohhh...right
d'oh
I thought it was the harness 6 number with better-fsa :)
Zoffix MasterDuke: the negative was, but not the failure to accept 2**64-1 as a value
c: 2017.03 class { has uint $.x }.new(:x(2**64-1)).x.say 13:44
committable6 Zoffix, Ā¦2017.03: Ā«-1Ā»
Zoffix Hmm
I see
Alright 13:45
MasterDuke Zoffix: i've been working on actually getting uint attributes to work correctly, with timotimo++'s help, but it's not quite as easy as a simple fix in mp_get_uint64
Zoffix MasterDuke: is the ticket I opened a dupe then?
MasterDuke i believe it's going to require patches in MoarVM, NQP, and Rakudo all coordinated to work
Zoffix Or rather: is there a ticket for "uint is really int"?
dogbert17 with better-fsa; make spectest HARNESS_TYPE=6 TEST_JOBS=4; Files=1176, Tests=56122, 956 wallclock secs 13:47
MasterDuke not sure
dogbert17 yeah, with my highly unscientific tests it seems if the harness5 tests gain a bit more than harness6, OTOH maybe it's in the margin of error 13:48
would be nice if someone with more than two cores could give it a run or two 13:49
jnthn :)
jnthn bbiab
dogbert17 will now do a herness6 run with 192k Nursersy, gc-debug and fsa-debug ... 13:51
jnthn dogbert17: Uh, if you do fsa-debug you'll completely bypass all the new code I added of any significance :) 13:52
14:05 brrt joined
brrt fixed size allocator :-P 14:05
14:05 brrt left, brrt joined
brrt .tell lizmat: one of the things to make param_rp_o and friends JIT is to refactor the arg handling into something more jit friendly 14:09
yoleaux brrt: What kind of a name is "lizmat:"?!
brrt .tell lizmat one of the things to make param_rp_o and friends JIT is to refactor the arg handling into something more jit friendly
yoleaux brrt: I'll pass your message to lizmat.
brrt also, ffs, yoleaux, how hard is it to strip a colon
Zoffix What kind of arg handling is jit friendly? 14:10
$ ./perl6 -e '$*VM.version.say' 14:14
Segmentation fault
:) 14:15
brrt currently it returns a small struct. not sure again what it was
i have it written down somewhere
:-)
Zoffix Hm, actually everything is segmentation fault 14:16
dogbert17: how do I get the better-fsa thing?
I did cd nqp/MoarVM; git checkout better-fsa; perl Configure.pl --prefix=../../install; make -j30; make install; and now any code just segfaults 14:17
Zoffix tries running `build-rakudo` 14:18
fixed it 14:24
Box: 24-cores, 21.75GB RAM, TEST_JOBS=30 14:33
c9ab59c, harness5: Files=1238, Tests=133653, 111 wallclock secs (20.90 usr 2.94 sys + 2322.17 cusr 124.95 csys = 2470.96 CPU)
c9ab59c, harness6: Files=1238, Tests=133653, 223 wallclock secs
better-fsa, harness5: Files=1238, Tests=133653, 108 wallclock secs (21.42 usr 2.87 sys + 2225.60 cusr 129.92 csys = 2379.81 CPU)
better-fsa, harness6: Files=1238, Tests=133653, 200 wallclock secs
jnthn: dogbert17 ^
Pretty good improvement in harness6
MasterDuke ~10% 14:34
it's interesting to look at the difference between your harness5 and harness6 and dogbert17's. it's twice as slow for you, but only ~15% slower for him 14:36
suggests there's some constant overhead 14:37
Zoffix overhead of opening and reading files, I'd guess 14:39
dogbert17 Zoffix: nice improvement 14:43
dogbert17 the comment from jnthn forces me to rerun my debug test after a quick change, will settle for small nursery and cgdebug 14:44
timotimo i wonder if we should grab all the free lists and sort items by memory address and chop them up to the threads again 14:54
dogbert17 slow going, so far I see 't/spec/S17-promise/in.t ........................................... Dubious, test returned 1' 14:57
is that a known flapper?
timotimo i don't think i've seen it fail 15:01
it could theoretically be sensitive to timing, but i thought we had "virtual time" for those kinds of test
oh, except if you want to test the mechanism itself, you can't replace it with another before testing 15:02
15:05 AlexDaniel joined
timotimo it has to have some cut-off for saying "yup, i told the promise to be kept in 1s, but now it's 3s later and i'm considering this a failure" 15:06
dogbert17 so it might have to do with me running on a 192k nursery then :) 15:08
jnthn Yeah, pretty sure that file would be vulnerable to such timing effects
dogbert17 and 't/spec/S17-promise/nonblocking-await.t ............................ Dubious, test returned 255' contains a nasty bug no? 15:09
jnthn I think that one's been known to explode on master of MoarVM too, yeah 15:10
dogbert17 then it looks really promising, the spectest is at S32 now 15:11
done, only the two files mentioned above failed, run was with '#define MVM_NURSERY_SIZE (32768 * 6)' and '#define MVM_GC_DEBUG 2' 15:16
15:23 brrt joined
jnthn Alright, guess taht means we can merge it :) 15:41
Geth MoarVM/master: 6 commits pushed by (Jonathan Worthington)++ 15:43
brrt \o/ 15:44
jnthn Thanks for the testing :) 15:46
timotimo cool. 15:47
Geth MoarVM/even-moar-jit: b14298108f | (Bart Wiegmans)++ | src/jit/tile.c
Propagate block numbers upwards

In a number of cases, the label and branch structure of a child node is the same as the containing conditional structure, e.g. an ALL node
  'flows' into its consequent block because it works by branching to the
alternative on any failed test. No basic block is started for them. However, the block numbers are also required for correct assignment of successors, and without uppropagation we might need to dig arbitrarily deep to find them.
15:54
MoarVM/even-moar-jit: be591ff274 | (Bart Wiegmans)++ | src/jit/tile.c
Patch basic block successors associated with nodes

Because conditonals can be nested (what a novel idea), we can only know the exact basic block structure of a block after tiling it, so we have to 'patch' the successors back into the blocks.
brrt so, the above will allow me to start doing data flow analysis 15:56
specifically, it will allow me to discover lifetime holes
that said, i would like to test the created tructure for a bit 15:57
*structure
because I don't really trust it as is
anyway, decommute & 15:58
dogbert17 jnthn++, very cool
TimToady jnthn: I have a weird one; in Perl6/World it calls @components.push(~$name<identifier>); which works until I use --rxtrace, and then ~ gets 'cannot stringify this', but if I change to use .Str, it finds the one from NQP and works 16:03
but nqp::stringify just looks for .Str in the cache, so somehow .Str isn't in the cache such that nqp::stringify can find it, but calling it directly can
the mro is Perl6::Grammar HLL::Grammar NQPMatch NQPCapture NQPMu 16:05
and NQPMatch is supplying 'method Str()'
(this, by the way, is from the last failing .t file for the uncurse branch to pass spectests) 16:06
the method is actually from NQPMatchRole, which NQPMatch does, but moving the method from the role to the class makes no difference 16:07
I suppose --rxtrace must be rewriting method calls, and flubbing somehow... 16:08
jnthn That's...odd 16:10
(The failure itself)
rxtrace iirc hooks find_method
I wonder if nqp::stringify uses the smart stringify thing 16:11
Which doesn't know how to do fallback lookups
TimToady yes, but that only uses the cache
jnthn Yeah
So...why's it not in the cache... :S
TimToady I tried using nqp::can to preload the cache, but no go 16:12
maybe that doesn't
jnthn No, caches are authoritative 16:13
In general, at least
And are pre-populated at composition time
Oh 16:15
Do we ever late-bound add_method on it?
TimToady not that I know of
jnthn 'cus that clears the cache out
TimToady does --rxtrace call add_method? 16:16
jnthn Don't think so
What branches do I need to reproduce this?
TimToady nqp uncurse and rakudo uncurse, but let me push what I have 16:19
jnthn OK
And also which test :)
jnthn wonders if match/cursor unification will give us a decent memory use reduction already 16:20
TimToady the test is t/spec/S19-command-line-options/06-dash-rxtrace.t but it suffices to run perl6 --rxtrace -e 'say "hello world"'
jnthn huh, rxtrace is in spectest?! 16:21
TimToady all it does it test to see that it doesn't blow up
(which it does :)
jnthn :)
Building uncurse branches
TimToady I don't think it'll save memory just yet, since I haven't quite carved away the old match object entirely 16:22
just got it down to a stub class with a Bool method, but eventually $!match will becomee bool itself or go away entirely in favor of looking for a %!hash or so 16:23
timotimo the worst thing is that --rxtrace doesn't even give interesting output either way 16:25
TimToady is also possible we can do sharing tricks in the time domain like Perl 5 does, but that's kind of a last resort optimization
timotimo or did that get improved recently?
TimToady just says which methods are called
timotimo huh, apparently it works now
it used to give like 10 lines that were always the same no matter the code you're parsing
jnthn hhh 16:26
*ohh
Turning on tracing trashes the method cache
So that's why 16:27
TimToady that seems...incompatible...with relying on an authoritative cache... 16:28
jnthn Indeed
Well, it was a quick debugging hack rather :)
*rather than a carefully considered feature/implementation :) 16:29
TimToady I started changing some ~ to .Str to see how far it goes, but of course we use ~ *everywhere*
so I came whining to you instead :)
jnthn :) 16:31
Yeah.
I guess maybe the easiest thing for me to do is re-write the tracer to just build a cache of tracing things :)
TimToady what, you don't wanna implement a recache-all-the-things thingie? 16:32
jnthn Pushed a fix that seems to do it 16:41
I want to re-work how we do method caching stuff in general at some point :)
But this should get us over this bump in the road for the moment :) 16:42
TimToady yays 16:44
16:55 domidumont joined
jnthn :) 16:56
TimToady I guess it could give a little memory saving already due to not keeping redundant from/to/orig 17:02
timotimo three pointers per, eh? 17:06
er, no
two 64bit ints, one 64bit or 32bit pointer
we might at some point want to have a tool like pahole that tells us where in our P6opaque classes we can save space
save space by rearranging 17:07
Geth MoarVM/even-moar-jit: abcbf000f8 | (Bart Wiegmans)++ | src/jit/expr_ops.h
Silence a GCC warning

The file ended with an escaped newline, and GCC rightly complained about that.
17:20
18:15 domidumont joined 18:59 stmuk joined
samcv good * 19:43
timotimo oh hey
samcv woo. ok think it's building the html coverage on travis now. stage 2 begin! getting the ssh key working and copying to gh-pages branch 22:02
Geth MoarVM/coverage: 4f3798310c | (Jonathan Worthington)++ (committed by Samantha McVey) | src/io/io.c
Remove arbitrary and small length range check.

This meant we could not slurp a file over 100MB in binary mode without getting an error. Removing this, such a file is very easily slurped.
22:06
MoarVM/coverage: f6b3ac1274 | (Samantha McVey)++ | 4 files
Commit coverage report related files
samcv weird. uh
oh well
looks like my rebase modified the previous commit. oh well. no matter 22:07
can't test any further on my branch because the ssh key is locked to travis ci on MoarVM/MoarVM 22:08
woo. key decrypted successfully. i'm so excited. for continuous coverage reports 22:09
brb 22:10
Geth MoarVM/coverage: b049e7114f | (Samantha McVey)++ | tools/update-gh-pages.sh
fix
22:26
MoarVM/gh-pages: 106a558f23 | (Travis CI)++ | 240 files
Travis build 1960 pushed to gh-pages
22:32
jnthn samcv: What does it run to get coverage data? 22:37
(As in, just building Rakudo, make test, make spectest?) 22:38
samcv nqp
make test in nqp 22:39
jnthn Ah
OK, that explains a lot :)
(Like, why none of the concurrency stuff is covered... :))
samcv moarvm.github.io/MoarVM/libmoar/ did you see
ah
yeah
it worked :) 22:40
jnthn Yeah, that's what I'm looking at :)
samcv++
samcv now i only need to re-enable the noncoverage builds on the coverage branch to make sure i didn't break the other things in the matrix 22:42
i can get roast tests too since people will like that 22:43
as long as travis doesn't cry from it taking too long 22:44
Geth MoarVM/coverage: c309939841 | (Samantha McVey)++ | .travis.yml
Try readding the noncoverage builds
22:45
jnthn Yeah, depends how much of a slowdown running coverage is, I guess 22:46
samcv well it doesn't take more time than a normal run really 22:48
maybe like 10 seconds max
if i take out it building nqp without coverage the 1st time
atm it runs the normal mvm tests, and then afterward it will run the coverage (same nqp tests, but using nqp-profile script which sets the right env vars and such to save the coverage) 22:49
Geth MoarVM/coverage: 03d13be72b | (Samantha McVey)++ | .travis.yml
Re-add the MacOS builds too
MoarVM/gh-pages: 4ba4c88d6b | (Travis CI)++ | 237 files
Travis build 1961 pushed to gh-pages
23:00
jnthn I...assume that the push of the updated coverage data doesn't trigger a Travis build? :D 23:01
timotimo if it does, we can blacklist gh-pages 23:02
but it'd be reasonable if travis already knew about gh-pages
jnthn I guess the other question is if all the coverage data we're pushing will affect clone times, but I guess it compresses super well 23:04
If either of those is an issue, I guess we just make a special MoarVM/coverage repo to push to 23:05
timotimo sure
samcv no it doesn't 23:10
since it has no .travis.yml
timotimo ah, that makes sense 23:11
Geth MoarVM/gh-pages: bbc7b1e031 | (Travis CI)++ | 237 files
Travis build 1962 pushed to gh-pages
23:14
timotimo samcv: you see these little graphs? irclog.perlgeek.de/
it'd be pretty cool if we could have history graphs for each cell in the overview
samcv that would be nice 23:15
somebody should do that who is not me :)
timotimo :D
i don't know how we'd properly get at data from previous commits
don't want to parse a hundred html files for each new report :D
samcv yeah no. we would not do that
we'd generate a more parsable thing with `report` instead of the html coverage line by line 23:16
timotimo we could build both the html and the text-only ... yeah
samcv yea
timotimo the text-format report will also give prettier "git diff" output
though it's kind of likely that it'll very often give us "all these lines changed!" and you can't actually see anything 23:17
Geth MoarVM/coverage: 79a259c5b8 | (Samantha McVey)++ | .travis.yml
Try and get os x excluding items in travis again
samcv oh you want lines? not files?
timotimo oh
samcv :O
timotimo no lines in the report file i mean
when you use git log on a text-based report five 23:18
samcv oh number of lines covered
timotimo git log on the html reports is definitely going to be worthless, as the complete html gets put into just a single line
samcv yeah
but would be better if it were processed and extracted as a percentage of the file or something idk
timotimo i'm not sure if i understand how you mean that?
samcv uh 23:19
this cry.nu/coverage/report-libmoar.html
is what we'd extract data from. but with no color of course. and not as html just a plain text file
timotimo ugh, that's *really* wide and my browser's line-wrapping it 23:20
but yeah, i imagined it like that
samcv yep
it is super wide. since they added more columns in llvm 5
timotimo mhm
23:22 geekosaur joined
jnthn 'night o/ 23:26
Zoffix night
timotimo nite jnthn 23:27
Geth MoarVM/gh-pages: d2bc415c90 | (Travis CI)++ | 237 files
Travis build 1963 pushed to gh-pages
23:34