github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 8 October 2013.
JimmyZ diakopter: llir? 01:06
yoleaux 9 Oct 2013 17:37Z <diakopter> JimmyZ: how hard woudld it be to add uint_ptr-sized atomic loads/stores to TCG?
JimmyZ .tell diakopter '--dump nqp.moarvm' doesn't work looks like because of an gc bug 01:21
yoleaux JimmyZ: I'll pass your message to diakopter.
diakopter JimmyZ: .ll (llvm's IR) 01:52
yoleaux 01:21Z <JimmyZ> diakopter: '--dump nqp.moarvm' doesn't work looks like because of an gc bug
JimmyZ diakopter: I think llir is much rich(or plentiful) 02:08
but I like the tcg one
llir has float and vector support and tcg doesn't 02:09
Optimizing directt hreaded code by selective inlining: citeseerx.ist.psu.edu/viewdoc/down...p;type=pdf 02:20
^^ this may be useful for the CGOTO core
s/directt hreaded/direct threaded/ 02:24
jnthn why does --dump trigger GC? 06:58
JimmyZ MVMString gc_free 07:00
which is called by collect.c ...
jnthn yes, why are we in collect.c? 07:03
I don't see why --dump should need to allocate 07:04
JimmyZ MVM_string_utf8_decode?
it allocates MVMString 07:05
jnthn yes, why are we doing that? 07:06
But anyway, easy fix is just to force gen2 allocation which never fills the nursery and so never runs GC
Which is what other sensitie-to-movement things do 07:07
07:15 FROGGS joined 07:17 odc joined
FROGGS .tell jnthn linux, I tried to check/debug that on linux but failed to get a connection to github with my virtualbox 07:43
yoleaux 9 Oct 2013 16:47Z <jnthn> FROGGS: what platform do you see the heisenbugs on?
FROGGS: I'll pass your message to jnthn.
07:52 cognominal joined
FROGGS .tell jnthn current state on my box :o( gist.github.com/FROGGS/ee72300abe8a460a1fcb 08:04
yoleaux FROGGS: I'll pass your message to jnthn.
jnthn FROGGS: yes, you'er meant to tell me ABOUT YOUR BOX... 08:41
yoleaux 07:44Z <FROGGS> jnthn: linux, I tried to check/debug that on linux but failed to get a connection to github with my virtualbox
08:04Z <FROGGS> jnthn: current state on my box :o( gist.github.com/FROGGS/ee72300abe8a460a1fcb
jnthn oh, you did :)
At least it now segfaults rather than just giving wrong answers... 08:42
FROGGS :o( 08:47
jnthn: I made a fresh stage0 but it still fails like in the gist
jnthn wish it said which lline in MVM_gc_root_add_tc_roots_to_worklist () 08:56
FROGGS yeah 09:03
jnthn debug build? 09:05
FROGGS you mean GCDEBUG? 09:07
jnthn no, I mean with --optimize 09:08
so gdb gives you line numbers too?
uh *without*
FROGGS hmm, I don't think it was built with --optimize
lemme check
jnthn oh...
:S
gdb-- then :)
jnthn hugely prefers the VS debugger
arnsholt gdb normally tells you which line when the information is available 09:17
gdb is a bit pants, I agree, but it's not *that* bad =)
JimmyZ .oOo. 09:35
yoleaux JimmyZ: Sorry: that command is a web-service, but it didn't respond in plain text.
tadzik hah 09:36
masak kids and bots: unintentionally funny. 09:44
FROGGS jnthn: CONFIG = --prefix=../nqp/install --optimize 10:59
:P
gdb++
jnthn bah :P 11:12
Most problems are between the chair and keyboard :P
So do you know where in that functin it blows up now? :) 11:13
FROGGS jnthn: compiling nqp atm
diakopter visual studio can include --debug when --optimize 11:14
it's nice.
tadzik in a laptop, CPU is between chair and keyboard
FROGGS aww, it takes soo long when it is not optimized :o(
soooo long 11:15
JimmyZ it takes about 1.5G memory to compile QAST.nqp on linux x64
with --optimize 11:16
FROGGS jnthn: updated gist.github.com/FROGGS/ee72300abe8a460a1fcb 11:17
src/gc/worklist.c:21
and I see MVMIter.c:153 down there
jnthn MVM_gc_root_add_tc_roots_to_worklist (tc=0x82a310, worklist=0x24a9db0) at src/gc/roots.c:68 11:19
is, if the code you have matches github
Any active exception handlers.
diakopter JimmyZ: wow
jnthn hmmm :)
FROGGS lunch & 11:20
jnthn um, that code is really wrong... 11:26
Which idiot wrote this... :)
diakopter erm
11:27 woolfy joined
jnthn If it didn't SEGV it'd be an infinite loop o.O 11:27
diakopter woolfy: hi
11:27 lizmat joined
diakopter lizmat: hi 11:28
jnthn oh, I get it noms memory and then malloc fails
*bet
woolfy \\o/
jnthn no, malloc failing is not \\o/ :P
Can't fix it right now...teaching git :) 11:29
woolfy sorry, I meant: diakopter: \\o/
jnthn will look later
diakopter jnthn: what line
jnthn: what are you looking at
woolfy you teach the git, go ahead
jnthn oop at 68
loop
diakopter what file?
jnthn woolfy: Well, just supervising practical session at the moment which is why I have a moment
diakopter: roots.c
diakopter: Where it walks the active exception handler list. 11:30
apart from it doesn't walk :)
diakopter whaaa 11:31
dalek arVM: 06c6ae7 | diakopter++ | src/gc/roots.c:
walk
11:32
diakopter JimmyZ: does it still use 1.5GB memory? 11:33
jnthn FROGGS: Hopefully what diakopter++ just committed helped 11:42
diakopter NQPHLL.pm takes 1GB
QAST.pm takes 2.0GB 11:43
NQP.pm takes 1.7GB 11:44
QRegex.pm takes 800MB
nwc10: I don't think the Pi could do this ^ 11:46
jnthn diakopter: Will be interesting to see what we can get it down to :) 12:39
FROGGS jnthn: it seems to work now btw
unoptimized + optimized build
diakopter++ :o) 12:40
and jnthn++ because I think the starter/stopper patch helped too to resolve this
jnthn yay 12:44
FROGGS: Do you need the heisenbug comments still?
FROGGS jnthn: no, I'm going to strip them now
stats: gist.github.com/FROGGS/e68b078d959b72262d3b
jnthn strip! strip! 12:45
I have 2 more failuers than that on Windows, from IO tests 12:46
FROGGS yeah, Windows is not that good for IO stuff in general 12:47
:P
jnthn :P
moritz does moarvm's Configure.pl dump its %config hash anywhere? 12:51
jnthn not afaik 12:52
moritz ah, wrong approach
FROGGS no, don't think so
moritz I suppose I can just give Configure.pl an option --install
which runs $config{make} install for me
that makes it easier for nqp's Configure to get a --gen-moar option 12:53
jnthn I think NQP calls it --make-install or so... 12:54
Or Rakudo maybe...I forget :)
moritz nqp does allright
dalek arVM: c87e935 | moritz++ | Configure.pl:
Configure.pl --make-install

this makes it easier for the nqp ConfigureMoar.pl to build moar
13:01
jnthn :)
tadzik nice 13:03
moritz is it normal that the JVM takes about about 3 cores while compiling the setting? 13:06
ugh, www
*ww
masak .oO( to be fair, "ugh" is how I feel sometimes about the world wide web ) 13:19
FROGGS Use of undeclared variable '$node' at line 4068, near ".list, $*B" 13:20
:o(
masak FROGGS: where/what is this? 13:34
moritz fwiw if we start to require specific versions of moar for nqp, we should start tagging, so that 'git describe' works 13:38
FROGGS masak: that happens when I add a say() statement to Nodes.nqp to debug something 13:40
masak: which is what I called the "heisenbug" the last days, which seems to just have changed its behaviour but has not disappeared as I hoped 13:41
masak moritz: as soon as we need it, we can always tag something retroactively, I guess. 13:53
moritz: like, the commit closest to The Reveal could be tagged v0.1 or something. 13:54
or something with more personal flair, even.
JimmyZ make: *** [src/stage1/ModuleLoader.moarvm] Segmentation fault (core dumped) 13:55
jnthn JimmyZ: Patches welcome :P 13:57
JimmyZ: I assume you're running latest? 13:58
JimmyZ I think so
jnthn ok, we patched a SEGV earlier is all
JimmyZ no
I forgot git pull nqp 13:59
jnthn ah
JimmyZ though I can't build nqp.moarvm because of not enough memory or the x86 bug 14:33
diakopter :( 14:34
FROGGS :/ 14:36
I guess the x86 didn't went away just like that
x86-bug*
jnthn time to decommute 14:49
15:04 benabik joined 15:08 jnap joined 15:29 jnap joined 16:13 JimmyZ joined 16:21 FROGGS joined 16:55 colomon joined 17:37 jnap joined 17:54 ssutch joined 18:28 grondilu joined
FROGGS nqp-m: say( -> $a, $b, $c { $c }(40, 41, 42) ) 19:04
camelia nqp-moarvm: OUTPUT«42␤»
FROGGS why does the qast test fail? it is almost the same
nqp-m: say( -> $a, $b, $c { $c }( |nqp::list_i(40, 41, 42) ) ) 19:05
camelia nqp-moarvm: OUTPUTĀ«MVMArray: atpos expected int register␤ at <unknown>:1 (<ephemeral file>:frame_name_3:4294967295)␤ from /tmp/Rs4k0sES75:2 (<ephemeral file>:frame_name_0:49)␤ from nqp-src/NQPHLL.nqp:1084 (./NQPHLLMoar.moarvm:frame_name_671:97)␤ from nqp-src/NQPHLL.nqp:…»
FROGGS nqp-m: my @a := nqp::list_i(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
camelia nqp-moarvm: OUTPUTĀ«MVMArray: atpos expected int register␤ at <unknown>:1 (<ephemeral file>:frame_name_3:4294967295)␤ from /tmp/rEUMDUaEoq:2 (<ephemeral file>:frame_name_0:54)␤ from nqp-src/NQPHLL.nqp:1084 (./NQPHLLMoar.moarvm:frame_name_671:97)␤ from nqp-src/NQPHLL.nqp:…»
FROGGS nqp: my @a := nqp::list_i(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
camelia nqp: OUTPUT«42␤»
FROGGS nqp-m: my @a := nqp::list(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
camelia nqp-moarvm: OUTPUT«42␤»
jnthn oh...probably 'cus the flatterer doesn't know about int lists...
FROGGS damn, it is really about list_i 19:06
yeah
works with list
where is the flatterner ooc?
jnthn args.c
uh, flattener :PP
FROGGS k 19:07
jnthn I think the fileops.t tests that fail on Windwos on Moar look like they also will on other VMs 19:17
FROGGS which one fails? 19:18
jnthn But don't have any of the other backends built on my laptop yet :) 19:19
FROGGS shame on you :o) 19:20
jnthn 8/10
by assuming \\n not \\r\\n
uh, 9/10 19:21
Well, new laptop...teaching distractions... :)
FROGGS ahh, so the CREDITS gets modified when checking it out? 19:22
yeah, that would break everywhere :o) 19:23
jnthn yeah
Git on Windows will happily throw in the \\r on checkout, and toss it on commit
FROGGS well, you've chosen your fate explicitly when installing git 19:24
jnthn aye :)
but if I chose that fate, others will doo ;)
*too
Anyway, easy fix.
So, that leaves us 9 test cases 19:25
I guess you're working on the qast.t one at the moment?
FROGGS btw, that is one reason I added the test file which has different newlines, which should not get mangled by git
sort of, yes
"The bytecode loader verifies it's a MVM_CALLSITE_ARG_OBJ" - that is not what we want for list_*, right? 19:27
jnthn No, it's still an obj
Just an obj with native ints within it.
FROGGS ahh, yeah
MVM_repr_at_pos_o 19:28
jnthn: I guess the :want in the list_i op should help me to identify it as an in array? 19:53
[Coke] has the moar bootstrap branch been updated with master recently? 19:57
[Coke] just wants to poke at the doc testing a bit once that happens, but it's no big deal.
FROGGS [Coke]: I don't think so 20:03
jnthn: I don't get it :o( 20:06
jnthn FROGGS: huh, :want?
This needs to be handled in the flattener in args.c
Not something static
FROGGS hmmm, I don't know how to query the list/items if they are ints
jnthn See get_elem_storage_spec 20:07
FROGGS I did that
and got the spe of the things in the list
jnthn Right
FROGGS like: if (REPR(o)->get_storage_spec(tc, STABLE(o)).can_box == MVM_STORAGE_SPEC_CAN_BOX_INT) {
jnthn That's what you need, no?
FROGGS and before I tried .boxed_primitive 20:08
jnthn No, you want the oneobjprimspec looks at
yes, that one
FROGGS but that condition is never true
jnthn It won't be if you compare it to CAN_BOX_INT :P
FROGGS if (REPR(o)->get_storage_spec(tc, STABLE(o)).boxed_primitive == MVM_STORAGE_SPEC_BP_INT) {
printf("MVM_STORAGE_SPEC_BP_INT\\n");
jnthn MVM_STORAGE_SPEC_BP_INT is the one... 20:09
oh...but
get_elem_storage_spec in VMArray loosk wrong :(
FROGGS ahh
jnthn Should be done in terms of repr_datea->slot_teype 20:10
FROGGS it has the same as Iter
so, if slot_type is MVM_ARRAY_I64 it should state that when querying the spec? 20:12
jnthn Should set boxed_primtivie to INT, yeah
Same for any of the _I*
FROGGS and N* and so on 20:13
jnthn yeah, but _NUM for those :)
FROGGS I not taht :o)
know*
-.-
jnthn
.oO( but do you not how to type? )
FROGGS that is just because I am tired :o) (I usually type without any arrows) 20:16
jnthn detrain & 20:42
jnthn home 21:11
diakopter hi 21:38
jnthn Pushed Windows fixes to 19- so I'm down to 9 failures too now :) 22:00
Is MVM_string_flatten meant to always give back 32-wide? 23:58