Parrot 6.4.0 "Double-eyed Fig Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 25 May 2014.
00:46 rurban joined 01:24 sorear joined 01:28 FROGGS_ joined 01:50 rurban joined 02:05 rurban joined 03:06 rurban joined 03:47 rurban joined 05:56 rurban joined 06:52 FROGGS joined 06:57 rurban joined 07:57 rurban joined 08:12 basiliscos joined 08:58 rurban joined 09:47 Psyche^ joined 09:59 rurban joined 10:01 rurban1 joined 11:01 rurban joined 12:02 rurban joined 12:28 rurban joined 13:25 he joined 13:33 Chirag joined
Chirag rurban: Hey.. I have got some questions.. For instance, in class.pmc 13:34
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:35
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:39
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:41
4. METHOD get_namespace() has :no_wb but it has RETURN(PMC *ret_namespace); ... So it should have manual_wb ? 13:43
13:58 rurban joined
Chirag rurban: Hey! 14:06
rurban_ Hi 14:08
just looking at class
Chirag I posted some questions..
rurban_ yes, I saw. class.pmc is still wrong. yes 14:09
Chirag lots of files are inconsistent wrt the issue 14:10
rurban_ can you make a list of problematic pmc names? 14:13
Chirag yeah sure..
rurban_ We still don't have good enough diagnostics
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
rurban_ ad 1. no. this is a helper with a WB. good 14:15
ad 2. yes, fixed
ad 3. without means pmc2c adds a WB (writes to SELF)
METHOD get_namespace() is a method. so we must use RETURN here 14:16
see how it is compiled
Chirag sure! 14:17
rurban_ => Parrot_Class_nci_get_namespace
Chirag but RETURN doesnt necessarily add a WB?
rurban_ did you see my benchmarks? 14:18
Chirag yes
2.46% 14:19
rurban_ not big, but better than anything before in the last years
the sig stuff will be better
Chirag yes.. I saw parrot 2.* had a timing of 8s
rurban_ RETURN is only need for the nci sigs here 14:20
the sig need to know the result decl and name
I really should write down the WB rules now 14:22
Chirag different from ticket#1069?
rurban_ uuh, my coffee has old milk...
no, same as in the ticket. but in an offical pod
Chirag ohk.. 14:23
rurban_ in docs/
Chirag so should I make a list first or change 1-2 pmc files and run it by you?
rurban_ I already fixed class. you can started fixing more if you find something. 14:24
I also need to extend pmc2c and fix the 2 remaining bugs
Chirag alright.. and I will just touch VTABLE methods? not static and METHOD for now? 14:26
dalek rrot/rurban/pmc2c_orig2: 17396b2 | rurban++ | src/pmc/class.pmc:
[pmc] fix class WBs, detected by ZYROz

isa_pmc, freeze have a manual WBs thawfinish, remove_attribute indirectly via build_attrib_index name needs one for the write case
14:27
rurban_ static no, method yes. but ask first
Chirag ok.. 14:28
rurban_ with static it's a only a performance issue. call it 1x or 2x
a GC is quite slow
dynpmc's are also not checked yet. but should be fine as WB are added everywhere if no annotated otherwise 14:30
but the biggest regression so far is del_namespace (./parrot t/pmc/namespace-old_27.pir) 14:34
Chirag unable to run t/pmc/namespace-old.t 14:39
rurban_ first `prove t/pmc/namespace-old.t` 14:44
which creates the interim pirs 14:45
or are you segv earlier?
oh, simple stupid error in del_namespace: if (PMC_IS_NULL(ns)} RETURN(void); 14:52
needs a {} around
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:54
grep -B1 'RETURN(' src/pmc/*.pmc|grep -A1 "if "|grep -v '{' 14:55
Chirag gives me error:imcc:syntax error, unexpected IDENTIFIER, expecting $end ('use') 15:00
rurban_ parrot for pir file, perl for perl files 15:01
prove for both
Chirag oh yes
27 - 20 fail
30*
rurban_ just fixed it now (I hope) 15:02
yes, this fixed it
Chirag out of curiosity, what's the timing for moarVM? 15:07
rurban_ a bit faster, I guess. 15:08
around our 2.8.0 timings I suppose. 15:09
they use a better de-serializer for pmc's, and a proper object system 15:10
but no jit
Chirag we need to be like 2s faster form current at least 15:11
rurban_ yes, but not with this project
a generic method call is way too slow now 15:12
has nothing to do with sigs
sigs will get max. 5-10% 15:13
Chirag hmm..
rurban_ whiteknight wrote a blogpost about the method slowness
Chirag i rad that a while back 15:14
read*
rurban_ ok, so now only t/op/gc.t fails. one more regression to find 15:17
dalek rrot/rurban/pmc2c_orig2: 3aaa825 | rurban++ | lib/Parrot/Pmc2c/PCCMETHOD.pm:
[pmc2c] fix del_namespace. require {} around WB return

there exist many methods without proper {} blocks for RETURN().
grep -B1 "RETURN(" src/pmc/*.pmc|grep -A1 "if "|grep -v "{" such as: src/pmc/namespace.pmc- if (PMC_IS_NULL(ns)) src/pmc/namespace.pmc: RETURN(void);
15:34
rrot/rurban/pmc2c_orig2: 3009168 | rurban++ | src/pmc/ (7 files):
[codingstd] fix trailing whitespace

and remove one too much WB in pmclist.shift_pmc
16:07 basiliscos joined 16:10 FROGGS joined 17:14 rurban joined 17:16 rurban joined
dalek rrot/rurban/pmc2c_orig2: 6f2238c | rurban++ | .gitignore:
.gitignore: add local .perldb helper

so that git clean -dxf will not wipe it.
17:29
Chirag rurban: vtable.tbl doesn't have a :write for VTABLE void destroy() .. I am assuming it doesnt require a WB .. 17:44
2. also, Removing WB in clone() for capture.pmc 17:55
18:24 rurban joined
Chirag rurban: If a method in vtable.tbl does not have :write .. does that imply that it should have a :no_wb ? 19:52
rurban_ yes 20:23
:write is a hint
Chirarg: Don't remove previously existing WBs (capture.clone) . They were added there manually 20:25
vtable.tbl :write only applies to SELF, not to another pmc (here dest) 20:27
20:30 rurban joined 22:20 basiliscos joined 23:05 rurban joined 23:07 rurban1 joined 23:35 rurban joined 23:47 rurban joined