github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 12 July 2013.
timotimo i suppose i'll have to wait a bit longer before starting to benchmark moarvm gets sensible 00:01
while_empty, while_empty_native and while_bind all end up a tiny bit faster than nqp-parrot at the biggest workloads 00:02
10/42: Testing while_push ... 00:04
Segmentation fault (core dumped)
moarvm is almost at the same speed as nqp-parrot in the while_hash_set benchmark, except at the end it gets slower than nqp-parrot 00:07
while_array_set coredumps as well 00:09
i have no idea where the "cut" is where nqp-parrot ends and moarvm starts or where the moarvm is invoked, so i have no idea where i'd have to look to make exit codes be passed outwards properly :( 00:18
congratulations, moarvm is a bit faster than nqp-parrot in the postwhile_nil_native benchmark! 00:24
00:32 benabik joined
diakopter timotimo: okay. 00:50
timotimo: probably those errors won't occur if you don't use --optimize 00:51
there are a couple things there that have been known for many months
timotimo: re "bit faster", *sigh* 00:52
timotimo are you sighg because i concentrate on performance or because the benchmarks are meaningless? 00:54
01:48 FROGGS_ joined
diakopter timotimo: no :) 02:47
timotimo please elaborate?
welp, i better get to bed 02:52
diakopter bbiab
05:26 benabik joined 05:58 itz joined 07:22 FROGGS joined 08:43 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
13:59 jlaire joined 14:06 birdwindupbird joined
dalek arVM: 36e3254 | (Tobias Leich)++ | / (8 files):
added and mapped noninteractive nqp::readlinefh
14:07
FROGGS jnthn: should I commit src/NQPHLL.nqp with everything commented it that is compilable? it is quit a lot 14:22
I guess the next thing I do might be sprintf... or is there something more important? 15:03
ahh, nqp::stat first 15:07
15:34 FROGGS joined 16:15 JimmyZ_ joined
JimmyZ_ Hello FROGGS 16:16
FROGGS hi JimmyZ
gah, libapr cant tell one if a file exists... (or I am just stupid and cant find it) 16:18
JimmyZ_ FROGGS++, for adding new ops 16:28
TimToady can't one just see if a getfileinfo call fails? 16:30
a google search seems to refer to both stat and lstat variants of that 16:31
FROGGS TimToady: I'm currently reading that stat cant handle files > 2GB reliable... 16:34
so I am reading a bit before deciding what to do
TimToady surely it can tell whether the file is there or not, regardless of whether it mishandles the size
you were looking for an existence test, right?
FROGGS the third one says that: stackoverflow.com/questions/230062/...s-platform 16:35
TimToady: yes, only for existence, I can do the rest using libapr 16:36
16:37 benabik joined
FROGGS I think I'm going to use access() 16:40
TimToady that seems okay for existence, as long as you don't try to check for any other bits at the same time 16:42
for most other purposes, access is wrong, and you want something like eaccess 16:43
FROGGS it is really just about existence 16:44
cool
TimToady I guess stat would work if you trapped EOVERFLOW, since you can't get that unless the file exists, but access does seem simpler 16:46
but who'd be stupid enought to compile with 32-bit off_t these days anyway? 16:47
most people would like to be able to handle DVDs 16:48
FROGGS hint: a line like "#define MVM_stat_exists = 0" is not what you want 17:50
-.-
18:46 colomon joined
sorear :) 18:57
diakopter :D 19:39
FROGGS: sometime we need to talk about setting the thread's "I'm in external code" flag when calling things that could call things that aren't statically linked or could do IO 19:49
FROGGS okay 19:50
diakopter I'm not 100% certain jnthn intends/agrees that needs to be set during all the system calls, but I suspect he does 19:51
dalek arVM: 4e2bc25 | (Tobias Leich)++ | / (9 files):
added and mapped nqp::stat

This replaces the duplicate eof moar-op, too.
20:05
diakopter FROGGS: those ops in interp.c don't look like the same order as in oplist 20:06
FROGGS ohh, does that matter? 20:07
diakopter they should be in order of their constant to help it make a jump table, I'd think
(I mean, theoretically it can figure out they're independent and put them in order)
FROGGS okay, will reorder it in a bit 20:08
diakopter it's not a big deal though because they'll all be rearranged at some point this year, I'd expect
jnthn Yeah, we'll do an op list cleanup at some point. 20:09
diakopter jnthn: see speculation 21 min ago 20:10
jnthn FROGGS: I think there already is an nqp-src/NQPHLL.nqp or so
Yes, any system call that can block at least. 20:11
FROGGS jnthn: I know about nqp-src/NQPHLL.nqp, the question is: if it compiles when commenting in stuff, should I commit that? 20:12
diakopter FROGGS: you mean when uncommenting new/pasted stuff?
FROGGS no
stuff that is there, but was commented out because the io ops where missing 20:13
jnthn FROGGS: You can uncomment the commented stuff if it still builds
diakopter okay, so *un*commenting stuf
jnthn FROGGS: That's the idea...
FROGGS: Uncomment what works, so we can see what's left
FROGGS err, yes
jnthn That's how everything so far as happened ;)
FROGGS yeah
diakopter FROGGS: I was confused because you said "commenting" :D
FROGGS diakopter: yeah, sorry :/ 20:14
"commenting in" might be a bit too germish
jnthn: I guess the next thing (not for me) could be exceptions+try/catch 20:15
jnthn Yes, that's on my todo list. I already did a bunch of the groundwork
FROGGS cool
(just so that the moarvm backend can be in this-months compiler release :P) 20:16
btw, the startup of nqp nqp-moar-cc.nqp -e '1' is still effected by parrot, right? 20:17
I mean, it must be, no?
jnthn Right, it's a cross-compiler 20:19
FROGGS right
jnthn No, moarvm backend will be a bit further off
FROGGS is the runtime effected too? I guess not
jnthn It spits out moarvm bytecode, then runs moarvm 20:20
FROGGS k, thanks
jnthn MoarVM's execution time is more likely affected by various other things :)
FROGGS for example? I'd think libapr has the most impact 20:21
jnthn Well, partly by GC needing some work ;) 20:22
FROGGS ahh, yes, of course 20:23
jnthn And other bits. The difference between an optimized and unoptimized build is fairly notable too, and the default is unoptimized
FROGGS one cool thing atm is that you can add ops, and after 3 seconds you got it compiled and you see the test out... that is pretty nice 20:24
not waiting for ten minutes or moar 20:25
jnthn yes, this kinda dev turnaround time is fairly deliberate ;) 20:26
FROGGS btw, have you an opinion to an interactive readline library? 20:31
linenoise was mentioned but I have no idea if that will work on windows
sorear looks into MoarVM for the first time 20:34
this mast/compiler.c thing looks pretty parrot-specific
jnthn sorear: It's all very macro'd 20:36
So replacing node_parrot.h or so will mean it's about Moar'd
FROGGS: No opinion on the readline thing without looking into it more... 20:39
diakopter sorear: there's one or two things labeled "parrot" "hack" that are there 20:40
jnthn I guess that libreadline is the most common option 20:41
dalek arVM: ce83acc | (Tobias Leich)++ | src/core/interp.c:
use the same ordering like in core/oplist
20:44
arVM: ef23f5d | (Tobias Leich)++ | nqp-cc/nqp-src/ (2 files):
uncomment bits that are now available
20:50
benabik diakopter: ... Jump tables don't need to have their destinations in order. 21:30
diakopter ... they do if it wants to translate the value to an index/offset 21:32
benabik In assembly, it ends up being jump to offset from here, followed by a huge pile of jump instructions.
jump 0+(index); jump label1; jump label3; jump label2 21:33
diakopter I do not see how you could conclude I didn't know that...
benabik The indexing goes to a jump that can be anywhere, so it doesn't matter if the switch statement is in order. 21:34
diakopter yes ok 21:35
benabik Now, having them in the same order as the original list can certainly help the programmer. :-D 21:36
dalek arVM: 434fd28 | (Tobias Leich)++ | src/io/fileops.c:
remove unneeded include which was accidentally added
22:08
23:06 colomon joined