Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-10-10

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:06 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?
01:21 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.
01:52 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
02:08 JimmyZ diakopter: I think llir is much rich(or plentiful)
02:08 JimmyZ but I like the tcg one
02:09 JimmyZ llir has float and vector support and tcg doesn't
02:20 JimmyZ Optimizing directt hreaded code by selective inlining: citeseerx.ist.psu.edu/viewdoc/downloa​d?doi=10.1.1.92.513&rep=rep1&type=pdf
02:20 JimmyZ ^^ this may be useful for the CGOTO core
02:24 JimmyZ s/directt hreaded/direct threaded/
06:58 jnthn why does --dump trigger GC?
07:00 JimmyZ MVMString gc_free
07:00 JimmyZ which is called by collect.c ...
07:03 jnthn yes, why are we in collect.c?
07:04 jnthn I don't see why --dump should need to allocate
07:04 JimmyZ MVM_string_utf8_decode?
07:05 JimmyZ it allocates MVMString
07:06 jnthn yes, why are we doing that?
07:06 jnthn But anyway, easy fix is just to force gen2 allocation which never fills the nursery and so never runs GC
07:07 jnthn Which is what other sensitie-to-movement things do
07:15 FROGGS joined #moarvm
07:17 odc joined #moarvm
07:43 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?
07:43 yoleaux FROGGS: I'll pass your message to jnthn.
07:52 cognominal joined #moarvm
08:04 FROGGS .tell jnthn current state on my box :o( https://gist.github.com/FR​OGGS/ee72300abe8a460a1fcb
08:04 yoleaux FROGGS: I'll pass your message to jnthn.
08:41 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:41 yoleaux 08:04Z <FROGGS> jnthn: current state on my box :o( https://gist.github.com/FR​OGGS/ee72300abe8a460a1fcb
08:41 jnthn oh, you did :)
08:42 jnthn At least it now segfaults rather than just giving wrong answers...
08:47 FROGGS :o(
08:47 FROGGS jnthn: I made a fresh stage0 but it still fails like in the gist
08:56 jnthn wish it said which lline in MVM_gc_root_add_tc_roots_to_worklist ()
09:03 FROGGS yeah
09:05 jnthn debug build?
09:07 FROGGS you mean GCDEBUG?
09:08 jnthn no, I mean with --optimize
09:08 jnthn so gdb gives you line numbers too?
09:08 jnthn uh *without*
09:08 FROGGS hmm, I don't think it was built with --optimize
09:08 FROGGS lemme check
09:08 jnthn oh...
09:08 jnthn :S
09:08 jnthn gdb-- then :)
09:08 * jnthn hugely prefers the VS debugger
09:17 arnsholt gdb normally tells you which line when the information is available
09:17 arnsholt gdb is a bit pants, I agree, but it's not *that* bad =)
09:35 JimmyZ .oOo.
09:35 yoleaux JimmyZ: Sorry: that command is a web-service, but it didn't respond in plain text.
09:36 tadzik hah
09:44 masak kids and bots: unintentionally funny.
10:59 FROGGS jnthn: CONFIG    = --prefix=../nqp/install --optimize
10:59 FROGGS :P
10:59 FROGGS gdb++
11:12 jnthn bah :P
11:12 jnthn Most problems are between the chair and keyboard :P
11:13 jnthn So do you know where in that functin it blows up now? :)
11:13 FROGGS jnthn: compiling nqp atm
11:14 diakopter visual studio can include --debug when --optimize
11:14 diakopter it's nice.
11:14 tadzik in a laptop, CPU is between chair and keyboard
11:14 FROGGS aww, it takes soo long when it is not optimized :o(
11:15 FROGGS soooo long
11:15 JimmyZ it takes about 1.5G memory to compile QAST.nqp on linux x64
11:16 JimmyZ with --optimize
11:17 FROGGS jnthn: updated https://gist.github.com/FR​OGGS/ee72300abe8a460a1fcb
11:17 FROGGS src/gc/worklist.c:21
11:17 FROGGS and I see MVMIter.c:153 down there
11:19 jnthn MVM_gc_root_add_tc_roots_to_worklist (tc=0x82a310, worklist=0x24a9db0) at src/gc/roots.c:68
11:19 jnthn is, if the code you have matches github
11:19 jnthn Any active exception handlers.
11:19 diakopter JimmyZ: wow
11:19 jnthn hmmm :)
11:20 FROGGS lunch &
11:26 jnthn um, that code is really wrong...
11:26 jnthn Which idiot wrote this... :)
11:26 diakopter erm
11:27 woolfy joined #moarvm
11:27 jnthn If it didn't SEGV it'd be an infinite loop o.O
11:27 diakopter woolfy: hi
11:27 lizmat joined #moarvm
11:28 diakopter lizmat: hi
11:28 jnthn oh, I get it noms memory and then malloc fails
11:28 jnthn *bet
11:28 woolfy \o/
11:28 jnthn no, malloc failing is not \o/ :P
11:29 jnthn Can't fix it right now...teaching git :)
11:29 woolfy sorry, I meant: diakopter: \o/
11:29 jnthn will look later
11:29 diakopter jnthn: what line
11:29 diakopter jnthn: what are you looking at
11:29 woolfy you teach the git, go ahead
11:29 jnthn oop at 68
11:29 jnthn loop
11:29 diakopter what file?
11:29 jnthn woolfy: Well, just supervising practical session at the moment which is why I have a moment
11:29 jnthn diakopter: roots.c
11:30 jnthn diakopter: Where it walks the active exception handler list.
11:30 jnthn apart from it doesn't walk :)
11:31 diakopter whaaa
11:32 dalek MoarVM: 06c6ae7 | diakopter++ | src/gc/roots.c:
11:32 dalek MoarVM: walk
11:32 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/06c6ae79c4
11:33 diakopter JimmyZ: does it still use 1.5GB memory?
11:42 jnthn FROGGS: Hopefully what diakopter++ just committed helped
11:42 diakopter NQPHLL.pm takes 1GB
11:43 diakopter QAST.pm takes 2.0GB
11:44 diakopter NQP.pm takes 1.7GB
11:44 diakopter QRegex.pm takes 800MB
11:46 diakopter nwc10: I don't think the Pi could do this ^
12:39 jnthn diakopter: Will be interesting to see what we can get it down to :)
12:39 FROGGS jnthn: it seems to work now btw
12:39 FROGGS unoptimized + optimized build
12:40 FROGGS diakopter++ :o)
12:40 FROGGS and jnthn++ because I think the starter/stopper patch helped too to resolve this
12:44 jnthn yay
12:44 jnthn FROGGS: Do you need the heisenbug comments still?
12:44 FROGGS jnthn: no, I'm going to strip them now
12:44 FROGGS stats: https://gist.github.com/FR​OGGS/e68b078d959b72262d3b
12:45 jnthn strip! strip!
12:46 jnthn I have 2 more failuers than that on Windows, from IO tests
12:47 FROGGS yeah, Windows is not that good for IO stuff in general
12:47 FROGGS :P
12:47 jnthn :P
12:51 moritz does moarvm's Configure.pl dump its %config hash anywhere?
12:52 jnthn not afaik
12:52 moritz ah, wrong approach
12:52 FROGGS no, don't think so
12:52 moritz I suppose I can just give Configure.pl an option --install
12:52 moritz which runs $config{make} install for me
12:53 moritz that makes it easier for nqp's Configure to get a --gen-moar option
12:54 jnthn I think NQP calls it --make-install or so...
12:54 jnthn Or Rakudo maybe...I forget :)
12:54 moritz nqp does allright
13:01 dalek MoarVM: c87e935 | moritz++ | Configure.pl:
13:01 dalek MoarVM: Configure.pl --make-install
13:01 dalek MoarVM:
13:01 dalek MoarVM: this makes it easier for the nqp ConfigureMoar.pl to build moar
13:01 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c87e9352d6
13:01 jnthn :)
13:03 tadzik nice
13:06 moritz is it normal that the JVM takes about about 3 cores while compiling the setting?
13:06 moritz ugh, www
13:06 moritz *ww
13:19 * masak .oO( to be fair, "ugh" is how I feel sometimes about the world wide web )
13:20 FROGGS Use of undeclared variable '$node' at line 4068, near ".list, $*B"
13:20 FROGGS :o(
13:34 masak FROGGS: where/what is this?
13:38 moritz fwiw if we start to require specific versions of moar for nqp, we should start tagging, so that 'git describe' works
13:40 FROGGS masak: that happens when I add a say() statement to Nodes.nqp to debug something
13:41 FROGGS 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:53 masak moritz: as soon as we need it, we can always tag something retroactively, I guess.
13:54 masak moritz: like, the commit closest to The Reveal could be tagged v0.1 or something.
13:54 masak or something with more personal flair, even.
13:55 JimmyZ make: *** [src/stage1/ModuleLoader.moarvm] Segmentation fault (core dumped)
13:57 jnthn JimmyZ: Patches welcome :P
13:58 jnthn JimmyZ: I assume you're running latest?
13:58 JimmyZ I think so
13:58 jnthn ok, we patched a SEGV earlier is all
13:58 JimmyZ no
13:59 JimmyZ I forgot git pull nqp
13:59 jnthn ah
14:33 JimmyZ though  I can't build nqp.moarvm because of not enough memory or the x86 bug
14:34 diakopter :(
14:36 FROGGS :/
14:36 FROGGS I guess the x86 didn't went away just like that
14:36 FROGGS x86-bug*
14:49 jnthn time to decommute
15:04 benabik joined #moarvm
15:08 jnap joined #moarvm
15:29 jnap joined #moarvm
16:13 JimmyZ joined #moarvm
16:21 FROGGS joined #moarvm
16:55 colomon joined #moarvm
17:37 jnap joined #moarvm
17:54 ssutch joined #moarvm
18:28 grondilu joined #moarvm
19:04 FROGGS nqp-m: say( -> $a, $b, $c { $c }(40, 41, 42) )
19:04 camelia nqp-moarvm: OUTPUT«42␤»
19:04 FROGGS why does the qast test fail? it is almost the same
19:05 FROGGS 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:…»
19:05 FROGGS nqp-m: my @a := nqp::list_i(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
19:05 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:…»
19:05 FROGGS nqp: my @a := nqp::list_i(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
19:05 camelia nqp: OUTPUT«42␤»
19:05 FROGGS nqp-m: my @a := nqp::list(40, 41, 42); say( -> $a, $b, $c { $c }( |@a ) )
19:05 camelia nqp-moarvm: OUTPUT«42␤»
19:05 jnthn oh...probably 'cus the flatterer doesn't know about int lists...
19:06 FROGGS damn, it is really about list_i
19:06 FROGGS yeah
19:06 FROGGS works with list
19:06 FROGGS where is the flatterner ooc?
19:06 jnthn args.c
19:06 jnthn uh, flattener :PP
19:07 FROGGS k
19:17 jnthn I think the fileops.t tests that fail on Windwos on Moar look like they also will on other VMs
19:18 FROGGS which one fails?
19:19 jnthn But don't have any of the other backends built on my laptop yet :)
19:20 FROGGS shame on you :o)
19:20 jnthn 8/10
19:20 jnthn by assuming \n not \r\n
19:21 jnthn uh, 9/10
19:21 jnthn Well, new laptop...teaching distractions... :)
19:22 FROGGS ahh, so the CREDITS gets modified when checking it out?
19:23 FROGGS yeah, that would break everywhere :o)
19:23 jnthn yeah
19:23 jnthn Git on Windows will happily throw in the \r on checkout, and toss it on commit
19:24 FROGGS well, you've chosen your fate explicitly when installing git
19:24 jnthn aye :)
19:24 jnthn but if I chose that fate, others will doo ;)
19:24 jnthn *too
19:24 jnthn Anyway, easy fix.
19:25 jnthn So, that leaves us 9 test cases
19:25 jnthn I guess you're working on the qast.t one at the moment?
19:25 FROGGS btw, that is one reason I added the test file which has different newlines, which should not get mangled by git
19:25 FROGGS sort of, yes
19:27 FROGGS "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
19:27 jnthn Just an obj with native ints within it.
19:27 FROGGS ahh, yeah
19:28 FROGGS MVM_repr_at_pos_o
19:53 FROGGS jnthn: I guess the :want in the list_i op should help me to identify it as an in array?
19:57 [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.
20:03 FROGGS [Coke]: I don't think so
20:06 FROGGS jnthn: I don't get it :o(
20:06 jnthn FROGGS: huh, :want?
20:06 jnthn This needs to be handled in the flattener in args.c
20:06 jnthn Not something static
20:06 FROGGS hmmm, I don't know how to query the list/items if they are ints
20:07 jnthn See get_elem_storage_spec
20:07 FROGGS I did that
20:07 FROGGS and got the spe of the things in the list
20:07 jnthn Right
20:07 FROGGS like: if (REPR(o)->get_storage_spec(tc, STABLE(o)).can_box == MVM_STORAGE_SPEC_CAN_BOX_INT) {
20:07 jnthn That's what you need, no?
20:08 FROGGS and before I tried .boxed_primitive
20:08 jnthn No, you want the oneobjprimspec looks at
20:08 jnthn yes, that one
20:08 FROGGS but that condition is never true
20:08 jnthn It won't be if you compare it to CAN_BOX_INT :P
20:08 FROGGS if (REPR(o)->get_storage_spec(tc, STABLE(o)).boxed_primitive == MVM_STORAGE_SPEC_BP_INT) {
20:08 FROGGS printf("MVM_STORAGE_SPEC_BP_INT\n");
20:09 jnthn MVM_STORAGE_SPEC_BP_INT is the one...
20:09 jnthn oh...but
20:09 jnthn get_elem_storage_spec in VMArray loosk wrong :(
20:09 FROGGS ahh
20:10 jnthn Should be done in terms of repr_datea->slot_teype
20:10 FROGGS it has the same as Iter
20:12 FROGGS 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
20:12 jnthn Same for any of the _I*
20:13 FROGGS and N* and so on
20:13 jnthn yeah, but _NUM for those :)
20:13 FROGGS I not taht :o)
20:13 FROGGS know*
20:13 FROGGS -.-
20:13 jnthn .oO( but do you not how to type? )
20:16 FROGGS that is just because I am tired :o) (I usually type without any arrows)
20:42 jnthn detrain &
21:11 * jnthn home
21:38 diakopter hi
22:00 jnthn Pushed Windows fixes to 19- so I'm down to 9 failures too now :)
23:58 jnthn Is MVM_string_flatten meant to always give back 32-wide?

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary