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 |