Perl 6 - the future is here, just unevenly distributed

IRC log for #parrot, 2014-06-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:46 rurban joined #parrot
01:24 sorear joined #parrot
01:28 FROGGS_ joined #parrot
01:50 rurban joined #parrot
02:05 rurban joined #parrot
03:06 rurban joined #parrot
03:47 rurban joined #parrot
05:56 rurban joined #parrot
06:52 FROGGS joined #parrot
06:57 rurban joined #parrot
07:57 rurban joined #parrot
08:12 basiliscos joined #parrot
08:58 rurban joined #parrot
09:47 Psyche^ joined #parrot
09:59 rurban joined #parrot
10:01 rurban1 joined #parrot
11:01 rurban joined #parrot
12:02 rurban joined #parrot
12:28 rurban joined #parrot
13:25 he joined #parrot
13:33 Chirag joined #parrot
13:34 Chirag rurban: Hey.. I have got some questions.. For instance, in class.pmc
13:35 Chirag 1. static STRING * make_class_name() has a manual WB .. but it is not a VTABLE method.. Don't we just have to worry about VTABLE methods?
13:39 Chirag 2. In VTABLE INTVAL isa_pmc(PMC *lookup)    no_wb has been set but it has  PARROT_GC_WRITE_BARRIER(INTERP, SELF);  .. Shouldn't it be manual_wb ?
13:41 Chirag 3. There are many VTABLE methods that do not have either no_wb or manual_wb .. They need to have one of these right?
13:43 Chirag 4. METHOD get_namespace() has :no_wb but it has  RETURN(PMC *ret_namespace);  ... So it should have manual_wb ?
13:58 rurban joined #parrot
14:06 Chirag rurban: Hey!
14:08 rurban_ Hi
14:08 rurban_ just looking at class
14:08 Chirag I posted some questions..
14:09 rurban_ yes, I saw. class.pmc is still wrong. yes
14:10 Chirag lots of files are inconsistent wrt the issue
14:13 rurban_ can you make a list of problematic pmc names?
14:13 Chirag yeah sure..
14:13 rurban_ We still don't have good enough diagnostics
14:14 rurban_ pmc2c should be better in checking inconsistencies
14:14 Chirag I was thinking of changing class.pmc and capture.pmc based on my understanding .. maybe you can then double-check if I am doing it right.. then I will change the remaining accordingly
14:15 rurban_ ad 1. no. this is a helper with a WB. good
14:15 rurban_ ad 2. yes, fixed
14:15 rurban_ ad 3. without means pmc2c adds a WB (writes to SELF)
14:16 rurban_ METHOD get_namespace() is a method. so we must use RETURN here
14:16 rurban_ see how it is compiled
14:17 Chirag sure!
14:17 rurban_ => Parrot_Class_nci_get_namespace
14:17 Chirag but RETURN doesnt necessarily add a WB?
14:18 rurban_ did you see my benchmarks?
14:18 Chirag yes
14:19 Chirag 2.46%
14:19 rurban_ not big, but better than anything before in the last years
14:19 rurban_ the sig stuff will be better
14:19 Chirag yes.. I saw parrot 2.* had a timing of 8s
14:20 rurban_ RETURN is only need for the nci sigs here
14:20 rurban_ the sig need to know the result decl and name
14:22 rurban_ I really should write down the WB rules now
14:22 Chirag different from ticket#1069?
14:22 rurban_ uuh, my coffee has old milk...
14:22 rurban_ no, same as in the ticket. but in an offical pod
14:23 Chirag ohk..
14:23 rurban_ in docs/
14:23 Chirag so should I make a list first or change 1-2 pmc files and run it by you?
14:24 rurban_ I already fixed class. you can started fixing more if you find something.
14:24 rurban_ I also need to extend pmc2c and fix the 2 remaining bugs
14:26 Chirag alright.. and I will just touch VTABLE methods? not static and METHOD for now?
14:27 dalek parrot/rurban/pmc2c_orig2: 17396b2 | rurban++ | src/pmc/class.pmc:
14:27 dalek parrot/rurban/pmc2c_orig2: [pmc] fix class WBs, detected by ZYROz
14:27 dalek parrot/rurban/pmc2c_orig2:
14:27 dalek parrot/rurban/pmc2c_orig2: isa_pmc, freeze have a manual WBs
14:27 dalek parrot/rurban/pmc2c_orig2: thawfinish, remove_attribute indirectly via build_attrib_index
14:27 dalek parrot/rurban/pmc2c_orig2: name needs one for the write case
14:27 dalek parrot/rurban/pmc2c_orig2: review: https://github.com/parrot/parrot/commit/17396b2a7b
14:27 rurban_ static no, method yes. but ask first
14:28 Chirag ok..
14:28 rurban_ with static it's a only a performance issue. call it 1x or 2x
14:28 rurban_ a GC is quite slow
14:30 rurban_ dynpmc's are also not checked yet. but should be fine as WB are added everywhere if no annotated otherwise
14:34 rurban_ but the biggest regression so far is del_namespace (./parrot t/pmc/namespace-old_27.pir)
14:39 Chirag unable to run t/pmc/namespace-old.t
14:44 rurban_ first `prove t/pmc/namespace-old.t`
14:45 rurban_ which creates the interim pirs
14:45 rurban_ or are you segv earlier?
14:52 rurban_ oh, simple stupid error in del_namespace: if (PMC_IS_NULL(ns)} RETURN(void);
14:52 rurban_ needs a {} around
14:54 rurban_ hmm, looks like I need to fix that in the compiler. grep -B1 'RETURN(' src/pmc/*.pmc|grep if has too many such cases
14:55 rurban_ grep -B1 'RETURN(' src/pmc/*.pmc|grep -A1 "if "|grep -v '{'
15:00 Chirag gives me error:imcc:syntax error, unexpected IDENTIFIER, expecting $end ('use')
15:01 rurban_ parrot for pir file, perl for perl files
15:01 rurban_ prove for both
15:01 Chirag oh yes
15:01 Chirag 27 - 20 fail
15:01 Chirag 30*
15:02 rurban_ just fixed it now (I hope)
15:02 rurban_ yes, this fixed it
15:07 Chirag out of curiosity, what's the timing for moarVM?
15:08 rurban_ a bit faster, I guess.
15:09 rurban_ around our 2.8.0 timings I suppose.
15:10 rurban_ they use a better de-serializer for pmc's, and a proper object system
15:10 rurban_ but no jit
15:11 Chirag we need to be like 2s faster form current at least
15:11 rurban_ yes, but not with this project
15:12 rurban_ a generic method call is way too slow now
15:12 rurban_ has nothing to do with sigs
15:13 rurban_ sigs will get max. 5-10%
15:13 Chirag hmm..
15:13 rurban_ whiteknight wrote a blogpost about the method slowness
15:14 Chirag i rad that a while back
15:14 Chirag read*
15:17 rurban_ ok, so now only t/op/gc.t fails. one more regression to find
15:34 dalek parrot/rurban/pmc2c_orig2: 3aaa825 | rurban++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
15:34 dalek parrot/rurban/pmc2c_orig2: [pmc2c] fix del_namespace. require {} around WB return
15:34 dalek parrot/rurban/pmc2c_orig2:
15:34 dalek parrot/rurban/pmc2c_orig2: there exist many methods without proper {} blocks for RETURN().
15:34 dalek parrot/rurban/pmc2c_orig2:
15:34 dalek parrot/rurban/pmc2c_orig2: grep -B1 "RETURN(" src/pmc/*.pmc|grep -A1 "if "|grep -v "{"
15:34 dalek parrot/rurban/pmc2c_orig2: such as:
15:34 dalek parrot/rurban/pmc2c_orig2: src/pmc/namespace.pmc-        if (PMC_IS_NULL(ns))
15:34 dalek parrot/rurban/pmc2c_orig2: src/pmc/namespace.pmc:            RETURN(void);
15:34 dalek parrot/rurban/pmc2c_orig2: review: https://github.com/parrot/parrot/commit/3aaa8250d6
15:34 dalek parrot/rurban/pmc2c_orig2: 3009168 | rurban++ | src/pmc/ (7 files):
15:34 dalek parrot/rurban/pmc2c_orig2: [codingstd] fix trailing whitespace
15:34 dalek parrot/rurban/pmc2c_orig2:
15:34 dalek parrot/rurban/pmc2c_orig2: and remove one too much WB in pmclist.shift_pmc
15:35 dalek parrot/rurban/pmc2c_orig2: review: https://github.com/parrot/parrot/commit/30091680b7
16:07 basiliscos joined #parrot
16:10 FROGGS joined #parrot
17:14 rurban joined #parrot
17:16 rurban joined #parrot
17:29 dalek parrot/rurban/pmc2c_orig2: 6f2238c | rurban++ | .gitignore:
17:29 dalek parrot/rurban/pmc2c_orig2: .gitignore: add local .perldb helper
17:29 dalek parrot/rurban/pmc2c_orig2:
17:29 dalek parrot/rurban/pmc2c_orig2: so that git clean -dxf will not wipe it.
17:29 dalek parrot/rurban/pmc2c_orig2: review: https://github.com/parrot/parrot/commit/6f2238cb89
17:44 Chirag rurban: vtable.tbl doesn't have a :write for VTABLE void destroy() .. I am assuming it doesnt require a WB ..
17:55 Chirag 2. also, Removing WB in clone() for capture.pmc
18:24 rurban joined #parrot
19:52 Chirag rurban: If a method in vtable.tbl does not have :write  .. does that imply that it should have a :no_wb ?
20:23 rurban_ yes
20:23 rurban_ :write is a hint
20:25 rurban_ Chirarg: Don't remove previously existing WBs (capture.clone) . They were added there manually
20:27 rurban_ vtable.tbl :write only applies to SELF, not to another pmc (here dest)
20:30 rurban joined #parrot
22:20 basiliscos joined #parrot
23:05 rurban joined #parrot
23:07 rurban1 joined #parrot
23:35 rurban joined #parrot
23:47 rurban joined #parrot

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

Parrot | source cross referenced