01:48 ilbot3 joined 02:53 geekosaur joined 04:53 spebern joined 05:29 spebern joined 05:33 brrt joined
brrt good * #moarvm 05:34
samcv good *
argh such horrible hacks 05:40
getting my bash script that changes the command line args for perl6 script. converting it to posix shell
which deosn't have arrays (well other than $@)
i got it to work though... this is so hacky 05:41
geekosaur wroite it in perl 5 :)
samcv it saves $@ into a string by using sed 05:42
that might be nicer
i finally got the posix shell one working though
but i don't really want the appimage to require perl. i don't think it should have dependencies
wow. it's actually not going insane
brrt hmm 05:44
i still think we should have native 'bundling' capability
samcv native bundling? 05:45
also i think we should have inline::perl5 but shouldn't require perl 5 just to start perl 6
want to make people want to try perl 6
this makes me sad github.com/samcv/rakudo-appimage/b...testing#L9 05:46
a little bit inside
05:47 domidumont joined
samcv finally works with dash. guess dash linked at sh got overwritten on an update and thought i was using it to start out. and then actually used dash and it threw up 05:47
but now it is depressing but functional
brrt yeah, the ability to compile rakudo into moarvm; and prefereably, rakudo plus libraries plus applications, into moarvm
that is a bitā€¦ said yes 05:48
*sad
samcv somehow only $@ gets to be an array
05:53 domidumont joined
samcv on bash the new script is 30% slower. but it's 30% faster running the new one with dash 05:54
but it does make me very sad.
just should add a way to chdir as soon as it starts up. so i don't need any hackery 05:55
brrt oh, that's why you're changing the array 06:00
that explains
right, so this was a silly bug 06:01
rather than: MVMJItTileLIst *list = tiler->list;
i had
MVMJitTileList *list = list;
while
list was not defined? that's weird
so list was defined, but i'm not sure as waht 06:09
samcv hm 06:10
brrt weird stuff 06:16
Geth MoarVM/even-moar-jit: 112d5df206 | (Bart Wiegmans)++ | src/jit/tile.c
Replace MVM_oops and if with an ASSERT macro

Comparable to the use in linear_scan.c, which hides it behind a debugging flag, because they are debugging aids and need not slow down the normal running of the program. I think it's cleaner, too.
06:26
MoarVM/even-moar-jit: 9ef1a4cf48 | (Bart Wiegmans)++ | 3 files
Start splitting basic blocks

We'll need to patch up successors, but I think that's best handled in a post-order step, since (especially for ANY and ALL) the block associated to the label is only known after the entire conditional construct has been tiled.
06:28 domidumont joined 06:42 brrt joined
brrt i'm wondering if the current ā€”asan configuration does work for anybody on os x. it certainly doesn't work for me 06:44
i can fix it but...
it's historically been weird
i'm wondering if we can get the clang version 06:45
and if it somehow depends on that 06:51
samcv brrt, does our asan use gcc only atm? 07:08
brrt hmm, no 07:45
no, asan is kind of a weird pseudolibrary thing 07:47
samcv that's what i thought. 08:33
does clang have a similar thing though?
i'm getting tired of appimages. i think i'm going to try working on coverage reports for mvm done by travis
and writing bash is making me sad 08:34
bash/sh
nwc10 you can write Perl 5 for Travis instead? 08:35
samcv I probably should
nwc10, do you know of a module that will echo every perl 5 line while it runs 08:37
.o(or i could write it in perl 6 and have travis DL an appimage)
hehehehe
the future is now!
brrt clang does have address sanitizer, yes 08:51
i'm not sure how the integration works at all
but the point is
in some systems, you have to add the flag '-lasan' to 'link' agains ASAN
in some systems, you have to add '-faddress-sanitizer
in some systems, you have to add '-fsanitize=address' - i think that's the latest convention 08:52
so it's kind of difficult to make it work for everybody
fwiw, in an ideal world, a Configure.pl script would *only* figure out LDLIBS, LDFLAGS, CFLAGS etc.
and all the rest of details could be macro-defined 08:53
nwc10 samcv: er no I don't. The regular (ugly) debugger *might* be able to do it
I think that the debugger hooks provide enough er, hooks, that someone might have written it on CPAN
well d'oh, yes I do: metacpan.org/release/Devel-Trace 08:54
samcv somebody who has access to this page github.com/MoarVM/MoarVM/settings/keys wil have to help me out 09:02
after i generate a git key for travis they will need to add the pubkey to it
timotimo right, that's only jnthn i believe 09:17
samcv: have you considered joining the original pieces of $@ with \0 and splitting on \0 afterwards? 09:18
i know a bunch of utilities work like that; xargs and find for example? 09:19
er, rather: they can work like that
samcv i guess that coldu work
i really want to figure out where i can put a chdir in perl6 and have it not explode
i tried a few places and it just was not having it
well. i didn't try that hard, cause it was hard to find where to put it 09:20
timotimo it most probably has to happen before perl6 09:21
there is no real chdir in moarvm, it's all emulated by passing paths to all manner of ops
so all you have to do is have a $*CWD that you set to the correct value
samcv hm 09:22
timotimo but it's probably a bit more involved than just that?
samcv well
all i need is for it to start out it a different directory
so i guess find the code that sets it to whatever path
cause perl 6 needs to be at its own path, i guess it makes sense if perl 6 doesn't have chdir really
with how it can't be started in another directory because it doesn't really know 09:23
but starting it inside appimage directory is fine. as long as it uses a different directory as $*CWD
and using -M with normal perl6 can achieve a chdir. but tthe -M loading a module *before* the script is broken with relative paths 09:24
that's the only thing that's actually broken so far that i've found. that wasn't a side effect of the appimage itself 09:25
nine samcv: since perl6 is a shell script, why not do the cd there? 10:05
10:11 dogbert17 joined 11:15 brrt joined 11:32 brrt joined
dogbert17 o/ any debug info experts around? Have a stupid question. 12:38
brrt not sure if i can really help, but ask away 12:39
dogbert17 what have I donw wrong if I can't see any source refs in the top frames: gist.github.com/dogbert17/7b75552c...d55c67285b 12:40
before building MoarVM I did 'perl Configure.pl --debug=3 --no-optimize --prefix=/home/dogbert/repos/rakudo/install/' 12:41
dogbert17 hopes that brrt has the solution 12:42
timotimo i wonder if that has to do with the jit? 12:43
dogbert17 am on 32 bit
timotimo or maybe it's just dyncall not playing nice with gdb and such
dogbert17 There is still one nativecall test, i.e. t/04-nativecall/08-callbacks.t which makes valgrind crazy on 32 bit 12:44
timotimo ah, hmm.
dogbert17 does it complain for you? 12:45
timotimo i don't have 32bit 12:46
dogbert17 on 64 bit then :) './perl6-valgrind-m t/04-nativecall/08-callbacks.t'
brrt no, it's dyncall in all probablity 12:49
not sure why that doesn't do what you mean
it looks like a jit, because that's what dyncall does :-) 12:50
dogbert17 brrt, timotimo: I have updated the gist, any theories as to where I should look in order to find the problem? 12:52
timotimo don't get much output from that file
er 12:53
it apparently tries to jump to 0x0?
dogbert17 that sounds suspicious :)
timotimo i could imagine that valgrind and dyncall don't play terribly well together? 12:54
maybe it crashed because i recompiled at the same time
brrt o.O
timotimo recompiled moarvm
dogbert17 could that mean that there is no problem whatsoever or are you referring to its inability to point out the src
timotimo running it a second time was fine 12:55
brrt are we sure the tests it tries to compile are correct C
is my basic question
dogbert17 brrt: do you mean gist.github.com/dogbert17/c1c44e17...1802173f57 12:56
timotimo i haven't checked :)
12:57 AlexDaniel joined
brrt yes, that C 12:57
Geth MoarVM/telemeh_try: 532ee16f31 | (Timo Paulssen)++ | 17 files
introduce "telemeh", a high-precision-time low-impact logger

also uses it in a bunch of places that seem interesting
hopefully the impact is very small when it's inactive ...
13:18
timotimo yo check it.
dogbert17 ok, so I have experimented a bit with 08-callbacks.t 13:23
I commented out all tests except 'is CheckReturnsStr(&return_str), 7, 'callback returned a string to C';'
running valgrind still gave me a bunch of invalid reads 13:24
then I went into 08-callbacks.c (gist.github.com/dogbert17/c1c44e17...802173f57) and commented out the two lines before 'return 7;' and suddenly the invalid reads disappeared 13:25
13:25 domidumont joined
dogbert17 the line 'char *str = cb();' seems to be the one generating the invalid reads but why 13:26
brrt hmmm 13:30
dogbert17 what is that line supposed to do?
for fun I put in the following line instead of the two I commented out 'int t = 10000;'. No invalid reads were generated (unsurprisingly I guess) 13:31
wait a minute, is there a malloc missing here by any chance? 13:33
dogbert17 or am I just spewing out nonsense 13:38
brrt let me look at it a bit better 13:45
dogbert17 brrt: thx 13:46
brrt seems like that's nativecall, yes
it's nativecall which has to 'wrap' our string-decoding function, i think
dogbert17 so there are many things going on under the hood here then 13:51
13:56 domidumont joined
brrt right 13:56
Geth MoarVM/telemeh_try: e980958ae2 | (Timo Paulssen)++ | 5 files
allow dynamic strings in telemeh, use it for nativecall func names
14:29
dogbert17 brrt: running the dyncall test suite, i.e. 'rakudo/nqp/MoarVM/3rdparty/dyncall/test/callback_suite/callback_suite' under valgrind also causes invalid reads ! 14:31
brrt hehe 14:42
that's not very surprising no
15:06 Util_ joined, BinGOs_ joined 15:31 BinGOs joined 15:32 brrt joined
timotimo llvm.moe/ - when is it time for a moarvm book featuring cute anime girls? 16:37
Zoffix Yeah, but do it with cute anime boys... with dog ears 16:38
timotimo that's also acceptable 16:41
Zoffix ^_^ 16:42
timotimo LOL, i was wondering why framerate of my shooter example was so low 16:48
turns out i accidentally ran it via X11 forwarding
TimToady o_O 16:49
jnthn So, discovery from $dayjob code today is that our fixed size allocator really needs to be better in multi-threaded apps. 16:53
Should give it a per-thread set of free lists that it can try looking in first 16:56
timotimo i would have given the FSA telemetry output, but i'm afraid it'd just be a firehose of info 16:57
jnthn aye, suspect so 16:58
perf output seems quite clear though
timotimo yeah, perf is nice like that :) 16:59
dogbert17 anyone know where to report problems with the dyncall package, i.e. rakudo/nqp/MoarVM/3rdparty/dyncall ? 17:04
as I wrote to brrt above even their own test suite generates invalid reads/writes under valgrind, at least on 32 bit 17:05
17:15 domidumont joined
JimmyZ dogbert17: I connected them by: www.dyncall.org/contact 17:34
Zoffix They have a number you call, but it's very dynamic! 17:36
dogbert17 JimmyZ: many thanks 18:02
18:25 dalek joined
dogbert17 mail sent to the dyncall team 18:40
Geth MoarVM: 24124d268b | (Jonathan Worthington)++ | src/core/threadcontext.h
Remove unused defines.
20:21
MoarVM/better-fsa: 1bb36428fc | (Jonathan Worthington)++ | 3 files
Stub in per-thread FSA data structure.
timotimo moar: 3rdparty/libuv/src/unix/core.c:487: uv__close: Assertion `fd > STDERR_FILENO' failed. 20:51
i wonder how i did this
Geth MoarVM/better-fsa: 4de9d4dddd | (Jonathan Worthington)++ | 4 files
Create and partial destory of thread FSA state.
20:52
jnthn o.O
That's...impressive :)
Didn't see that one before :) 20:53
timotimo writing json 20:55
Malformed UTF-8 at line 39 col 10
?!? :(
jnthn Smells like memory corruption 20:56
timotimo worst case, yeah :(
i'm trying to spurt a to-json'd thing 20:57
ah
maybe it's because i'm trying to use the json data as the filename?! 20:58
20:59 AlexDaniel joined
timotimo Error detected while processing function <SNR>70_Highlight_Matching_Pair: 21:03
line 78:
E363: pattern uses more memory than 'maxmempattern'
(this is vim)
jnthn What is this, break all the things night? :) 21:04
timotimo it really is, isn't it 21:08
samcv i just woke up
yoleaux 14:27Z <Zoffix> samcv: Is this good to merge? github.com/perl6/nqp/pull/350
samcv how many things are broken
timotimo oh, nothing
samcv omg i thought i had merged that 21:09
Zoffix :)
samcv good catch
just gonna restart travis ci and then probably merge it 21:10
and gonna run roast again too just to be double sure 21:12
timotimo it's a royal barbeque
samcv but yeah it should have def been merged 21:13
also timotimo have you checked out that PR 21:16
i'm removing code that you added
like 8 months ago
timotimo i had not
samcv just make sure i didn't remove anything that we needed to keep
timotimo nah, that was just some code to make sure that we only lc the haystack once 21:17
when we use indexic, we don't have to lc anything at all
samcv ok
timotimo so that's strictly better
samcv also is there more code i can remove then?
timotimo if there's no other mentions of haystacklc, then yes 21:18
somewhere it requests a register to use for that
samcv yeah there are not
timotimo perfect
samcv ok so i can remove the regalloc line ? github.com/perl6/nqp/pull/350/files
timotimo yeah 21:19
samcv ok and instead of $lit in the op ( ) i just remove it?
and change the number of arguments? 21:20
timotimo you can't change the number of arguments, i don't think 21:21
what did it do with $lit anyway? 21:22
oh, yeah
samcv ok it passes all roast tests
Geth MoarVM/better-fsa: 0039cdca98 | (Jonathan Worthington)++ | 2 files
Start keeping per-thread FSA free lists.

Even before any tuning and optimization, this change gets a real-world multi-threaded application running in 60% of the time it used to.
samcv so happy you found that Zoffix
timotimo the $lit was used to hold the needle
$node[0] is the SVal we had put as the child of the scan node 21:23
we generate that if we have code like .*? "foobar"
- QAST::Regex(:rxtype(concat) :subtype()) 21:24
- QAST::Regex(:rxtype(scan) :subtype())
- foo
- QAST::Regex(:rxtype(literal) :subtype()) \"foo\"
- foo
- QAST::Regex(:rxtype(pass) :subtype())
see how the foo also shows up as the child of the scan node?
that's the magic optimization that lets us use index instead of trying a literal at every position
jnthn Will finish up better-fsa tomorrow all being well 21:25
timotimo now if you remove $node[0] completely, you won't have anything to use with the index op for the needle
so we need to keep that bit
samcv ok 21:26
jnthn Handing back the free lists of dead threads to the global one is a lock free operation, and I'm smart enough to know I'm not smart enough to get that right at 11:30pm :)
samcv so i removed too much?
timotimo yeah, it'd have searched for a null string in tha tcase, i'd guess 21:27
does the pr test properly without setting something in $lit?
oh, no
it would just re-use whatever register it gave back to you 21:28
samcv i haven't tried taking out lit
but as it stands it passes
timotimo that must be coincidence
samcv what is?
timotimo that it works :D
samcv oh 21:29
should it not work XD
also jnthn if i give you a ssh key for travis can you add it under authorized keys, so it can push to the gh-pages branch for coverage reports?- 21:30
jnthn samcv: Um, I can try and find that :-) 21:31
timotimo you know, moarvm.com isn't on gh-pages
samcv yeah sec
let me generate 21:32
i will show you where it is though
not yet...
jnthn OK :)
timotimo you were going to give moarvm a github-pages thingie? or where were you going to put things?
samcv it's only gonna be in the gh-pages branch
that things will go
timotimo right
samcv jnthn, you can get here? github.com/MoarVM/MoarVM/settings/keys 21:36
jnthn Yup. Tells me "There are no deploy keys for this repository" :) 21:37
samcv this is the pubkey gist.github.com/samcv/b9ccb8535af8...1ff9479e4c 21:38
jnthn Does it need write access?
samcv just encrypted the private key with travis special utility
just to gh-pages branch 21:39
jnthn I don't get that granularity, it's all or nothing :)
samcv ok
jnthn Added :)
samcv jnthn, ok now github.com/MoarVM/MoarVM/settings 21:43
go to GitHub Pages and choose that we are gonna use the gh-pages branch
jnthn It doesn't offer me that choice 21:44
Only master and master /docs
timotimo probably will have to push it once first
jnthn Does the branch exist?
samcv no
hold on. let me check something 21:45
i think we maybe need to make it
jnthn I think it's typically created bare
Yeah
Hm, bare ain't the word
naked?
no
oh
orphan maybe?
yeah, that's the one :) 21:46
samcv sounds good
yep
i didn't do that for appimages repo and just deleted all the files :P
heh
but yeah orphan seems to be the best thing to do
jnthn samcv: Let me know when you'vce created it and I'll do the setup in github config :) 22:08
I'm about for another 30 minutes or so
samcv oh i have not
working on it now 22:10
Geth MoarVM/gh-pages: 71cbf731f4 | (Samantha McVey)++ | 0 files
Initial Commit
22:11
samcv ok done jnthn
yey 22:12
jnthn :) 22:13
Seems it picked up on the name gh-pages and did the setup automagically :) 22:14
samcv nice
22:16 lizmat joined
samcv timotimo, so what needs to be changed with that PR? i still have no clue :P 22:36
timotimo you need to grab the sval($node[0]), that's the needle we were searching for
we have to ask the register allocator to give us a string register, then we put the needle in there with const_s, then we pass the register to the indexic op
samcv nqp::push(@ins, op('const_s', $lit, sval($node[0]))); 22:38
so this 22:39
after the `my $lit := $!regalloc.frash_s();` ?
timotimo yeah, that'd do it 22:40
samcv anybody know how to see what packages are in a apt repo? 22:41
i need to see what packages are in deb apt.llvm.org/precise/ llvm-toolchain-precise main
so i can get llvm-cov instaled on travis
timotimo hm, can you just surf to it with a web browser?
samcv nope
i just need the list of files, so whatever is the file that tells apt-get which packages are availible i need to see that file 22:42
they don't have uh. directory indexing turned on
timotimo i've got no idea 22:43
mst samcv: why do you need the list of files for that? 22:50
samcv cause i need to know what they're named
to be able to install them
ok i found this apt-origin.llvm.org/precise/dists/l...4/Packages
after trying to copy the layout of some other debian mirrors
timotimo ah, nice
mst argh, I'd forgotten how the sources.list line worked
samcv looks like i want clang-5.0
mst I'd got 99% of the way there 22:51
but was forgetting sources.list is ${base} ${dist} @types
and had been waffling trying to remember which was ${dist}
samcv timotimo, so i added that github.com/perl6/nqp/pull/350/files 23:33
spectest pass as well. is this ready for merge now?
timotimo if it's fine that the string in there doesn't have to be changed in any way, then yeah, i think it looks good 23:35
samcv yeah it doesn't 23:41
indexic_s handles it all