00:38
danaj joined
01:48
ilbot3 joined
02:11
vendethiel joined
02:31
colomon joined
02:35
colomon joined
05:22
pyrimidine joined
07:34
FROGGS joined
07:52
zakharyas joined
08:17
brrt joined
|
|||
brrt | timotimo: you can merge jit_devirt_reprops_4 if you wish | 08:17 | |
btw, i suppose you've all seen github.com/hintjens/zs | 08:24 | ||
i have one thing to say..... does the author think we've regressed since the 80's with direct threaded interpreters? | 08:25 | ||
i mean, why even encode an interpretation mode in your language | 08:26 | ||
timotimo | i havent seen it | 09:09 | |
brrt | wants to be javascript, but based on forth and zeromq | 09:14 | |
it's a bad idea | |||
timotimo | zeromq? how does that fit? | 09:56 | |
10:49
vendethiel joined
|
|||
brrt | it does not :-) | 11:09 | |
timotimo | No recursive descent parsers either. A language that needs recursion to parse it is too complex. ← huh? | 11:14 | |
"I don't see why regular expressions, commands, keystrokes, or template code should have different syntaxes. They're all text." - wow, that goes in the complete opposite direction from perl6 | 11:16 | ||
brrt | i don't see why we can't all just write lisp, forth, or failing that, assembly language | 11:17 | |
:-P | |||
i mean | |||
complexity is additive, thus complexity of your program is the complexity of the language + the complexity of your code, therefore a complex language will always yield more complex programs, q.e.d | 11:19 | ||
(find the five logic flaws) | |||
dalek | Heuristic branch merge: pushed 32 commits to MoarVM by timo | 11:38 | |
timotimo | thank you, brrt | ||
... 32 commits? | |||
oh my | |||
brrt | yes | 11:40 | |
long list | |||
hard work | |||
perchance a non-ff merge? | 11:41 | ||
timotimo | oh | ||
brrt | oh, no, oh well :-) | ||
timotimo | i can still put a non-ff merge commit on top | 11:42 | |
brrt | yeah, but it doesn't matter all that much | ||
timotimo | hm | ||
brrt | although maybe it matters for disecting | ||
11:42
vendethiel joined
|
|||
brrt | i can fix it i think, if you want | 11:44 | |
timotimo | oh? | ||
it'd be a great help if you gave me the commit id that was pre-merge | 11:45 | ||
i seem to lack my favourite git log alias | |||
dalek | arVM: 9ffd57c | brrt++ | src/ (4 files): Merge remote-tracking branch 'origin/jit_devirt_reprops_4' |
||
timotimo | perfect | ||
brrt | 1475976 was your commit :-) | ||
that was easier than i thoughth, no forcing was required | 11:46 | ||
timotimo | of course not | ||
:) | |||
what should i do next-ish? | 11:47 | ||
brrt | eh... | ||
timotimo | i don't feel like working on UDP sockets again | ||
brrt | what do you want to do, and how much time do you have for it | ||
timotimo | i want perl6 to be better :P | ||
brrt | right. so do i :-) | ||
that said, i wouldnt know how to do anything about the nqp/rakudo stack | 11:48 | ||
tracing has been on my mind, but it's more complex than it looks in some cases | |||
timotimo | most probably | ||
FROGGS | timotimo: you are more interested in C stuff, right? | ||
brrt | do we have something like a shared wiki page where we can dump ideas? | ||
timotimo | more in C than in what? | 11:49 | |
FROGGS | Perl 6 | ||
brrt | (when i say it's more complex than it looks, that means i think i've some unresolved issues, not that it's nearly impossible) | ||
FROGGS | like, you seem to be more interesting in tuning MoarVM than working on nqp/rakudo itself | ||
timotimo | i like both | ||
FROGGS | timotimo: well, then grepping for #?rakudo in roast might be inspiring... it is at least for me | 11:50 | |
brrt | roadmap says nativeref optimization would be desirable | 11:51 | |
i'd.... think that would be doable, but not very small | |||
timotimo | i've been banging my head against trying to get local/localref code-gen working properly | 11:52 | |
that's more or less a prerequisite to having nativeref optimizations have a big effect, i think? | |||
well, i suppose it can make lexicalref things better, too | 11:53 | ||
brrt | alright, lets rubber duck a bit :-) | 11:57 | |
what does local/localref do | |||
timotimo | right, the thing i'm talking about is having a variable that's defined to be a local accessed somewhere in a scope set to localref | ||
or the other way around, having a variable that's defined to be a localref accessed as a local | 11:58 | ||
currently, the code-gen for one of these cases throws a bogus instruction right in the middle of the code that makes things blow up | |||
brrt | ok, is that always the same bogus instruction? | 11:59 | |
do you know what inserts it? | |||
timotimo | i haven't found what inserts it | ||
gimme a second, i'll find it for you again | |||
brrt | :-D | ||
timotimo | i mean, find what instruction it is | 12:00 | |
brrt | right | 12:01 | |
my next question would be, are you sure the information in the oplist is correct | |||
timotimo | bleh, gnome3 just stole my mouse | 12:02 | |
hum | 12:03 | ||
this is an output i don't remember seeing | |||
not ok 1 - localref of type int with value 23 assigned to itQAST::Var with scope 'localref' NYI | 12:04 | ||
QAST::Var with scope 'localref' NYI | |||
... what? | |||
didn't i just implement that ... | |||
well, anyway ... the code is in "mast_localref_2" | 12:06 | ||
in t/moar/02*t | |||
i'll be AFK for a bit | 12:07 | ||
brrt | ok, that's the branch? | 12:10 | |
timotimo | yes, that's right | 12:33 | |
ah, i know what i did wrong | 12:36 | ||
i ran "make" instead of "make install" | |||
brrt | :-D | 12:37 | |
that is a moarvm branch, right | 12:38 | ||
because i can't fetch it | |||
timotimo | no, an nqp branch | 12:40 | |
not ok 4 - a localref'd var can have a local ref'd thing bound to it and accessed (str)Cannot assign to an immutable value | |||
moar doesn't even have a t/ :) | |||
brrt | quite true | 12:42 | |
which is probably right, and probably wrong, at the same time | |||
timotimo | check this | 12:47 | |
gist.github.com/timo/ac81c1ee775152202e23 | |||
you see that decont_s there? | 12:48 | ||
we're getting the string out of the strlexref, boxing it into a Str and trying to assign to that Str box | 12:49 | ||
which ... wat | |||
oh, hold on | |||
maybe decl'ing a localref with :returns(str) is the culprit? | 12:50 | ||
removing that gets rid of the bogus str boxing at least | |||
gist updated | 12:51 | ||
brrt | let me see | 13:00 | |
not sure i fully understand... | 13:01 | ||
timotimo | that's what i'm here for | 13:02 | |
isn't it fun when the duck and duckee switch places? :P | 13:03 | ||
ah | 13:04 | ||
sorry, the explanation was wrong | |||
what i really wanted to point out was this: | |||
assign_s is trying to assign into a register that hasn't been set up with anything | |||
er | |||
that's also not true | |||
but why does it decont? :( | 13:05 | ||
brrt | for safety | 13:15 | |
13:16
cygx joined
|
|||
timotimo | i just dcon't understand | 13:17 | |
cygx | should dynload on windows be patched to use something like LoadLibraryExA(libPath, NULL, LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS) instead of plain LoadLibraryA(libPath)? | ||
brrt | ok, the decont takes the string out of the localref and into r2 | 13:18 | |
cygx | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR seems a reasonable thing to have | ||
brrt | const_s stores 'hooray' into in r3 | ||
assign_s assigns r3 into r2, which is impossible, because r2 holds a string and not a container | |||
what it should be, i think, is assign(r1, r3) | 13:19 | ||
cygx: sorry, our resident windows expert is at osdc.no i'm afraid :-) | |||
if that goes on to search for libs in directories it is a nice-to-have and also a security risk, | 13:20 | ||
possibly the dynload folks know the tradeoff there | |||
cygx | brrt: the alternative is to tell your users to add to their PATH | 13:21 | |
timotimo | that's what it should be, yeah, brrt | 13:31 | |
it's also strange that moar emits a decont rather than a decont_s | 13:32 | ||
how does that even work? | |||
brrt | you tell me | ||
:-) | |||
do you think this is a bug in moarvm level codegen? but that seems unlikely imho | 13:33 | ||
timotimo | it's in nqp | 13:34 | |
all moar does is turn a MAST into bytecode | |||
i hope i didn't give you the impression i was looking at moar's internals to fix this | |||
13:40
rurban joined
|
|||
brrt | ah, ok | 13:41 | |
could've been moar :-) | |||
but yeah, i'm afraid i'm rather unhelpful here | 13:42 | ||
timotimo | aaw | 13:43 | |
brrt | i know very little about nqp except how to use it | 13:46 | |
but anyway, that codegen is certainly of whack | 13:47 | ||
timotimo | good to know i'm not just hallucinating the problem | 13:48 | |
cygx | .tell jnthn dynload might need patching: github.com/MoarVM/MoarVM/issues/214 | 13:54 | |
no msg bot? | |||
timotimo | only in #perl6 so far | 13:56 | |
BBL | 13:58 | ||
14:06
jepeway joined
|
|||
brrt | no, no message bot here | 14:08 | |
cygx needs to go | 14:12 | ||
o/ | |||
14:12
cygx left
|
|||
brrt | \o | 14:19 | |
oh, too late | 14:20 | ||
15:12
FROGGS joined
15:16
lizmat joined
|
|||
jnthn | oh noes... | 15:38 | |
compiling graph.c explodes on MSVC | |||
lizmat | on to the venue& | 15:42 | |
dalek | arVM: 2015f07 | jnthn++ | src/jit/graph.c: Unbust the MSVC build. |
15:47 | |
jnthn | t stillf djfd 3 warnings | ||
... | |||
It still gives 3 warnings. | 15:48 | ||
16:18
dlem joined
|
|||
dlem | \o/ | 16:18 | |
jnthn: I have looked more closely into the matter on the time spent on UTF-8 decoding. | 16:22 | ||
Unfortunately I won't be able to make it to the OSDC - I've been hit by the flu and am just now starting to recover. | 16:23 | ||
Anyway, here goes: | 16:24 | ||
1: The three first functions in utf8.c should be marked MVM_STATIC_INLINE | 16:25 | ||
2: The CHAR/NONCHAR distinction is incorrect, see www.unicode.org/versions/corrigendum9.html | 16:28 | ||
(I should rather say; NONCHAR must not be disallowed!) | 16:29 | ||
16:36
colomon joined
|
|||
dlem | 3: I have implemented The World's Fastest UTF-8 Decoder (TM) ;-), however this probably won't improve things that much for you - the decoding itself is already so fast that loop overhead and pipeline stalls may take longer time. | 16:38 | |
16:59
dlem joined
19:11
arnsholt joined
|
|||
nebuchadnezzar | mazette! nqp “make test” is somewhat faster on moar than on jvm ;-) | 20:05 | |
14 wallclock secs for MoarVM and 491 wallclock secs for JVM | |||
arf, 6 t/hll/06-sprintf.t tests failes: Failed tests: 75-80 | 20:06 | ||
FROGGS | nebuchadnezzar: what os are you on? | 20:07 | |
I think we had sprintf tests on freebsd only | |||
nebuchadnezzar | FROGGS: Debian, in a schroot | 20:08 | |
FROGGS | hmmmm, strange | ||
nebuchadnezzar | FROGGS: I try to update the packaging of nqp since MoarVM is waiting in new queue of Debian | ||
FROGGS | 32bit by chance? | ||
nebuchadnezzar | 64 | 20:09 | |
FROGGS | ahh, packager you are | ||
nebuchadnezzar | yes | ||
FROGGS | then you probably use your packaged libtommath, which misses important patches | ||
nebuchadnezzar: read github.com/perl6/nqp/issues/234 | 20:10 | ||
nebuchadnezzar | ok, dod is my mentor and I did not notice is work, shame on me :-/ | 20:11 | |
FROGGS | :o) | ||
np | |||
nebuchadnezzar | erf, no release of libtommath since 23 Jul 2010 | 20:14 | |
and dod already did the job github.com/libtom/libtommath/issues/35 :-D | |||
23:33
lizmat joined
|
|||
japhb | Anyone happen to know if the .so file installation under panda got fixed? | 23:37 | |
timotimo | i haven't kept sufficiently close tabs | 23:38 | |
i haven't run benchmarks in a long time, i think | 23:40 | ||
but right now "turning lexicals into locals" is not really in effect, so we are sort of in the "pre-lowering era" again | 23:41 | ||
and that makes me sad |