01:48 ilbot3 joined
Zoffix zostay: what version are you on? 02:18
zostay whatever rakudobrew installed for me a couple hours ago
Zoffix Which is what? perl6 -v 02:20
zostay 2017.05-25-g62bc54
er
2017.05-25-g62bc54e
Zoffix zostay: I mean perl6 compiler version 02:21
zostay This is Rakudo version 2017.05-286-ga47a78f built on MoarVM version 2017.05-25-g62bc54e
Zoffix upgrades to check if the problem is there. 02:23
zostay: what did you run to cause that error? 02:28
zef look HTTP::UserAgent; NETWORK_TESTING=1 prove6; passes all tests for me 02:29
On 2017.05-286-ga47a78f built on MoarVM version 2017.05-25-g62bc54e
zostay ok, i believe it's the installation of HTTP::UserAgent followed by URI from my branch (github.com/zostay/uri/tree/mutators) and then zef install HTTP::UserAgent chokes... let me make sure that alone is enough because i installed a bunch of other deps as well which might also be involved somehow 02:31
Zoffix Reproed. "Probable version skew in pre-compiled '/home/zoffix/.zef/store/http-useragent.git/4742f91fcd30c511e5063ddc934d02ddc493c2c4/lib/HTTP/MediaType.pm6 (HTTP::MediaType)' (cause: no object at index 4850)" 02:40
rm -fr ~/.zef; rm -fr ~/.perl6; rm -fr ~/.rakudobrew/; git clone github.com/tadzik/rakudobrew ~/.rakudobrew; rakudobrew build moar; rakudobrew build zef; zef look HTTP::UserAgent; zef --depsonly install .; NETWORK_TESTING=1 prove -e "perl6 -Ilib" -vr; zef install github.com/zostay/uri/archive/mutators.zip; NETWORK_TESTING=1 prove -e "perl6 -Ilib" -vr; 02:42
interesting... `zef uninstall URI; zef install github.com/zostay/uri/archive/mutators.zip` and now its install fails for unknown reason: gist.github.com/zoffixznet/cf273ec...a0fb0c8225 02:44
zostay awesome... thx for the confirmation 02:45
Zoffix nine: any ideas? ^ :) 02:46
Zoffix builds 2017.05 to see if issue exists there 02:47
Yup. 03:00
Geth MoarVM/fix_leak: 6ca991ab82 | (Jimmy Zhuo)++ | 2 files
fixed some memory leak
04:34
MoarVM: zhuomingliang++ created pull request #605:
fixed some memory leaks
04:35
JimmyZ brrt: maybe this helps 04:36
04:37 committable6 joined 06:23 domidumont joined 06:27 domidumont joined 06:50 nebuchadnezzar joined
Geth MoarVM/fix_leak: a38cc9610d | (Jimmy Zhuo)++ | src/io/syncpipe.c
fixed a memory leak
06:59
07:09 domidumont joined
Geth MoarVM/fix_leak: 239c615311 | (Jimmy Zhuo)++ | 2 files
fixed a memory leak
08:12
08:17 brrt joined
brrt good * #moarvm 08:17
i've uncovered that there's some more code difference than I saw in the sp_fastcreate bit, especially, the subsequent sp_p6obind_o looks a bit weird 08:18
i've been thinking of two possible solutions, and i'm not sure which of these i like best
well, that's not true 08:19
i do know which one i like the best
so I know that there is a problem with stashing pointers to objects on 'unwalked' locations on the local variable buffer 08:20
(i allocate extra memory, but don't mark the values as object pointers, so they aren't walked by the GC)
there are basically two solutions and a hybrid
jnthn Is that for when you have to spill? 08:46
brrt yes 08:51
solution A): when some template code might cause an allocation, we flush the variables that are generated at template generation time, this ensure that there are no cross-template references to old pointers
the problem is that there may well be intra-template references to old pointers, so all is not great
Geth MoarVM: 239c615311 | (Jimmy Zhuo)++ | 2 files
fixed a memory leak
MoarVM: 6d9de8d217 | (Jonathan Worthington)++ (committed using GitHub Web editor) | 2 files
Merge pull request #605 from MoarVM/fix_leak

fixed some memory leaks
jnthn brrt: Probably easier to just tell the GC where they are... 08:52
I'd hope spilling is relatively rare
brrt i was coming to that, as a matter of fact :-) 08:53
solution B): track which values are object pointers and use the (relatively new) spesh temporary register allocation code to find spill space (rather than just increment the top thing as I do now) 08:55
that is a much better solution, but it requires tracking which values are object valuesā€¦ that is only partially obvious
part of solution A is still necessary, fwiw 08:56
which brings me to the hybrid solution
*currently* whenever I need to spill something to memory, I take no heed whatsoever if that value is 'backed' by a previously existing register 08:57
I kind of need to figure that out anyway 08:58
if it is already 'backed' by that (moarvm) register / 'local frame variable', surely it is just as well to insert a load back from that register
that would take care of most issues automatically
jnthn Yeah, that'd be cheaper
You could use that tracking to not spill constants too, presumably?
brrt i think so, yes 08:59
i was originally thinking of making that part of the optimizer
we can also do it in the register allocator, i.e. detect if something comes from a const, and if so, just 'copy' the tile rather than insert a load-and-spill 09:00
that one is presumably easier to do
jnthn Wouldn't doing it at allocation time perhaps eliminate needing to spill altogether in some cases?
brrt hang on, allocation of registers you mean? 09:06
i'm actually not 100% sure what will be involved with that
having said that 09:07
tracking which things are objects and which are not, that's something is that i'm fairly sure we'll need anyway
lizmat
.oO( isn't everything an object)
09:08
jnthn I meant knowing that's a constant 09:09
nine lizmat: native ints and floats are not
yoleaux 28 May 2017 18:48Z <Zoffix> nine: getting weird Failures about symbols in GTK::Simpler checkout. Seem to occur only when .new on looked up symbol is given args. Does it look like an issue with Rakudo? irclog.perlgeek.de/perl6/2017-05-28#i_14649906
jnthn If it's a constant you don't even have to spill it at all, and can consider the register vacant
brrt nods
at register allocation time, that's probably the most robust way to do it 09:10
nine CPointers aren't either
brrt go ahead nine, unmake my day :-P 09:11
nine what? who? why?
brrt CPointers are not object pointers, indeed
so now the job of tracking 'is this an object pointer' has become more hard 09:12
but in a slightly whimsical way, of course a native integer is an object 09:13
it's just one with a radically different protocol than other objects
so yeah, i've got my work cut out for me again :-) 09:23
09:40 zakharyas joined 10:11 jnthn joined
Geth MoarVM: 7fd9a82128 | (Jimmy Zhuo)++ | 5 files
remove unused args
10:30
MoarVM: f53265f27a | (Jimmy Zhuo)++ | 5 files
Merge branch 'remove_unsed_args'
10:51 travis-ci joined
travis-ci MoarVM build errored. Jimmy Zhuo 'Merge branch 'remove_unsed_args'' 10:51
travis-ci.org/MoarVM/MoarVM/builds/237117629 github.com/MoarVM/MoarVM/compare/6...3265f27a47
10:51 travis-ci left
timotimo we did it 11:04
we reached 10 minutes of compile time for interp.c on clang
brrt wth 11:07
timotimo actually, it's most probably not that 11:08
since other clang builds took only like 12 minutes for moar + nqp
it's still amusing 11:10
i don't know what made it hang. probably just a fluke
brrt istr ESR making noise about 'clang being better than GCC in every relevant way' 11:11
thereby demonstrating the seriousness of ESR's technical judgements
timotimo pff, compile times are irrelevant
also, we're using a clang version that's pretty much ancient
brrt compile times are so not irrelevant, ask any scala developer, or any go developer 11:14
timotimo or the perl6 devs 11:18
*cough* core setting *cough* 11:21
nwc10 but how often do people compile the core set... oh, wait, wrong channel 11:23
(at two levels)
11:28 domidumont joined
timotimo i hate when it's hard to go from a project name + version number to "when was it released" 11:28
11:30 brrt joined 12:18 domidumont joined 12:53 brrt joined 13:58 brrt joined 15:10 brrt joined
brrt okay, my 'there is a gc run inbetween' theory is clearly disproved 15:40
my new theory 15:48
'$rdx contains something funky, what's up with that' 15:49
15:49 AlexDaniel joined
brrt hmm 15:53
$rdx seems to contain a legit value...
okay, 15:59
the replaced bit is set to a the STable value
that's odd.. 16:00
almost as if the problem is really with sp_p6obind_o...
16:38 dalek joined 16:42 brrt joined 16:44 SourceBaby joined
timotimo are you following the p6o_real_body and accidentally pretending that's a gc managed pointer? 17:45
18:45 greppable6 joined 19:13 domidumont joined
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/05/29/...-encoding/ 19:56
19:59 robertle joined
jnthn lizmat++ # weekly 20:26
21:38 AlexDaniel joined 21:59 greppable6 joined
timotimo "suffering from buffering" <3 22:11
22:18 Util joined