01:48
ilbot3 joined
|
|||
MasterDuke | samcv: if you take a look at the gists i linked here github.com/MoarVM/MoarVM/issues/571, there are a lot of `Use of uninitialised value of size 8` or `Conditional jump or move depends on uninitialised value(s)` in unicode stuff | 02:26 | |
i can't really tell what's going on | 02:27 | ||
samcv | MasterDuke, and this is reproducable? | 02:52 | |
or occasional thing | 02:53 | ||
MasterDuke | every time so far | 02:57 | |
well, not the SEGV, but all those errors in valgrind | 02:59 | ||
samcv | ok thanks. will assign myself to it. not sure what causes it but | 03:38 | |
MasterDuke | i'm not sure if some crazy code inside libssl/libcrypto is just confusing valgrind | 03:42 | |
samcv | me either yeah. kinda weird | 03:44 | |
06:15
domidumont joined
06:19
domidumont joined
10:35
domidumont joined
10:44
domidumont joined
|
|||
jnthn | MasterDuke: www.hardening-consulting.com/en/pos...grind.html | 10:49 | |
tl;dr the uninitialized warnings are 'cus openssl uses uninitialzed stack state as a source of entropy | 10:50 | ||
MasterDuke | jnthn: ah, i kind of wondered about that but didn't actually search around to confirm | 11:26 | |
and all the errors in moar's unicode functions are just because openssl first confused valgrind with it's craziness? | 11:27 | ||
jnthn | Yeah, almost certainly | 11:29 | |
Because we're proessing data that comes back from openssl | |||
And valgrind can track propagation of uninitialized values and things derived from them | |||
MasterDuke | cool, makes sense | 11:30 | |
however, i did get a segv the very first time i ran this: perl6-m --profile=heap -I modules/http-useragent/lib/ -e 'use HTTP::UserAgent; my $ua = HTTP::UserAgent.new; my $response = $ua.get("perl6.org"); say $response.content.chars' | 11:32 | ||
jnthn | Hmm | 11:33 | |
Is it multi-threaded, 'cus the profiler handles that not too well... | |||
MasterDuke | is there an easy way to check? i obviously didn't do anything explicitly multi-threaded, but don't know what H::UA and its dependencies are doing under the hood | 11:35 | |
jnthn | Well, if you catch the segv in gdb then you can just info threads | 11:38 | |
And see how many it reports :) | |||
MasterDuke | i'll try to catch it | 11:43 | |
jnthn: btw, this change ( github.com/sergot/openssl/pull/37 ) created a drastically different heaptrack profile of doing `perl6-m -I modules/http-useragent/lib/,modules/openssl/lib -e 'use HTTP::UserAgent; my $ua = HTTP::UserAgent.new; for ^10 { my $response = $ua.get("perl6.org"); say $response.content.chars }'` | 11:45 | ||
before, heaptrack reported 10Gb total allocated, virtually off of it by `push`, in VMArray.c | 11:47 | ||
*all of it | |||
after, it was 268Mb total allocated | |||
11:54
geekosaur joined
|
|||
jnthn | Why doesn't it just do buf8.allocate($n) ? | 12:04 | |
m: say buf8.allocate(16) | |||
camelia | Buf[uint8]:0x<00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00> | ||
lizmat | jnthn: maybe the code predates the existences of Buf.allocate ? | 12:15 | |
*existence | |||
jnthn | That's very possible, yes :) | 12:16 | |
But I suspect it'd be quite the speedup :) | |||
lizmat | yeah, Buf.allocate is from Feb 2016 | 12:19 | |
m: say buf8.allocate(16,(1,2,3)) | 12:20 | ||
camelia | Buf[uint8]:0x<01 02 03 01 02 03 01 02 03 01 02 03 01 02 03 01> | ||
lizmat | whee :-) | ||
MasterDuke | jnthn++, lizmat++, i'll submit a new PR changing to that | 12:21 | |
but is the memory use/leakage from the previous way (0 xx $n) expected? | 12:22 | ||
lizmat | what is the exact code? | 12:23 | |
I could double check that, that leakage doesn't feel right :-) | |||
MasterDuke | this was my previous PR github.com/sergot/openssl/pull/37 | ||
inspired by github.com/sergot/http-useragent/issues/169 | 12:24 | ||
jnthn | Total allocated being higher doesn't convey a leak | 12:26 | |
Just means there was a lot more memory churn | 12:27 | ||
And it isn't so surprising in that xx will return a Seq, and then we really have to pull values out of it | |||
It's possible of course we could more optimally implement it :) | |||
MasterDuke | yeah, just one get request caused 1million+ calls to push | 12:28 | |
jnthn | Wow o.O | ||
MasterDuke | yeah, i had to double-check i was reading the number right | ||
lizmat | MasterDuke jnthn : the problem is really in the Blob.new(@a) candidate | 12:29 | |
self!push-list("initializ",nqp::create(self),@values) | |||
MasterDuke | correcting to "initialize" will fix everything? :P | 12:30 | |
lizmat | eh, it's used for any error messages and then postfixes "ing" I believe | ||
and it's taking the generic Seq route, rather than the optimized List route :-( | 12:32 | ||
MasterDuke | m: my int @i[10]; dd buf8.new(@i) | 12:34 | |
camelia | Buf[uint8].new(0,0,0,0,0,0,0,0,0,0) | ||
lizmat | yeah, that takes the most expensive route | 12:35 | |
MasterDuke | ^^^ that also uses the slow candidate (Buf.pm:43) | ||
lizmat | yup | ||
MasterDuke | because it's shaped | ||
lizmat | please rakudobug this | 12:36 | |
and I'll have a look at it | |||
MasterDuke | which isn't what i expected (though i don't know native shaped arrays well) | ||
lizmat | that code predates shaped arrays | ||
MasterDuke | will do | ||
RT #131086 | 12:42 | ||
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131086 | ||
lizmat | thanks! | ||
MasterDuke | np, thanks for looking into it | 12:43 | |
13:15
domidumont joined
|
|||
jnthn | line_coverage.c | 14:07 | |
src\instrument\line_coverage.c(2) : fatal error C1083: Cannot open include file: 'unistd.h': No such file or directory | |||
Busted build on Windows :( | |||
timotimo | oh crap! sorry! | ||
(why don't we have travis?) | |||
jnthn | We do, but Travis doesn't do Windows :P | ||
timotimo | er | 14:08 | |
i meant appveyor | |||
jnthn | Maybe we need...what's the thingy that does? :) | ||
Maybe you could set it up as penance for breaking the build? ;) | |||
timotimo | hah | ||
could try that. we do have a bunch of modules that already build their own rakudo to test themselves | |||
what did i even use unistd for | 14:09 | ||
aha "write" | |||
then perhaps i want fputs? | |||
jnthn | mebbe | ||
msdn.microsoft.com/en-us/library/1...2147217396 | 14:10 | ||
It's _write on Windows | |||
And comes from io.h | |||
timotimo | not sure what i'd have wanted the length parameter and the write function for | 14:11 | |
Geth | MoarVM: 826259d77b | (Timo Paulssen)++ | src/instrument/line_coverage.c don't use unistd + write, use fputs instead. unbusts our build on windows |
14:14 | |
geekosaur | if you did need the binary/packet one, try fwrite | 14:34 | |
timotimo | since my data also already ends with a null byte, i guess fputs would be sufficient? | 14:35 | |
14:37
leego joined
|
|||
Geth | MoarVM: 5d73bf4b98 | (Timo Paulssen)++ | src/6model/reprs/P6int.c cope with a native type with no nativesize, but signedness by setting default_storage_spec.bits |
14:42 | |
14:50
Geth joined
15:31
zakharyas joined
15:59
Ven joined
|
|||
jnthn | timotimo: Confirm that fixes the build; thanks! | 16:02 | |
c:\consulting\moarvm\src\instrument\line_coverage.c(53) : warning C4700: uninitialized local variable 'last_line_number' used | |||
I get that warning, though, fwiw ;) | 16:03 | ||
committable6 | jnthn, ¦\consulting\moarvm\src\instrument\line_coverage.c(53): «Cannot find this revision (did you mean “7ddc5f7”?)» | ||
jnthn | haha | ||
That's an...interesting suggestion :P | |||
timotimo | the what now? o_O | 16:04 | |
jnthn | Something starting c: triggers commitable | ||
timotimo | good point, i should set last_line_number and last_filename into invalid values | 16:05 | |
ooooh | |||
i was under the impression you pasted that as an output from msvc | |||
jnthn | Yes, the error I pasted was from MSVC | ||
Then commitable reacted :) | |||
timotimo | yeah :D | 16:06 | |
AlexDaniel slaps committable6 | |||
c:HEAD say 42 | |||
committable6 | AlexDaniel, ¦HEAD(932b59f): «42» | ||
AlexDaniel | this is not supposed to work… | ||
b:say 42 | |||
bisectable6 | AlexDaniel, On both starting points (old=2015.12 new=932b59f) the exit code is 0 and the output is identical as well | ||
AlexDaniel, Output on both points: «42» | |||
AlexDaniel | or is it? Not even sure now | 16:07 | |
17:53
camelia joined
17:58
bartolin joined
18:06
MasterDuke joined
19:39
patrickz joined
20:05
Ven joined
|
|||
samcv | hello beautiful people | 21:11 | |
Zoffix | \o | 21:14 | |
timotimo | yo | 21:17 | |
lizmat | samcv /o # feels honoured | ||
samcv | :-) | 21:18 | |
ok so. i am making coverage reports with travis. now where/how to upload them to some site for our viewing | |||
initially just the overview reports | |||
paging Zoffix | |||
i guess for now i'll just have it print it out to travis' output | 21:19 | ||
21:37
zakharyas joined
|
|||
Geth | MoarVM: 21fc7a226a | (Samantha McVey)++ | .gitignore Add more coverage related files to .gitignore |
21:49 | |
23:36
sivoais joined
|