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.
04:21 rurban joined 07:12 rurban joined, Hunger joined 07:20 FROGGS joined 07:25 rurban joined 08:17 basiliscos joined 08:26 rurban joined 08:55 diginet joined 09:27 rurban joined 10:28 rurban joined 11:28 rurban joined 12:09 ingy joined 12:10 rblackwe joined 12:29 rurban joined 13:17 Chirag joined 13:30 rurban joined 13:42 rurban joined 14:11 bighugedog joined 14:45 rurban joined 15:25 bluescreen joined 16:32 Hunger joined 16:37 basiliscos joined
Chirag rurban: Hey! 17:53
I get this warning -> "Did not SHIM UNUSED(a) in Integer METHOD multi_i_add_Complex"
But MULTI void i_add(Complex value) in integer.pmc already has UNUSED(a)
18:18 davidfetter joined
FROGGS perhaps you have to use the SHIM macro also? (Note: I'm just guessing wildly here) 18:20
18:20 particle joined
Chirag doesnt UNUSED convert to SHIM? 18:20
when we do a make *.pmc the arguments definitely convert to SHIM(type arg) in the .c file 18:21
but here the variable 'a' is declared in the body and .c doesnt have a SHIM(a) .. so not sure how to fix this.. 18:23
rurban lemma check. I think I remember multi_i_add_Complex is a special-case 18:32
Ok. SHIM is only for unused args. When an arg is declared as UNUSED pmc2c tries to SHIM it automatically. But not in this case. This is a good bug found by pmc2c 18:38
Chirag we cant SHIM manually in a pmc file? 18:40
rurban we can. this is the fix: gist.github.com/rurban/dc54228fcb521009ff7d
Chirag dummy use for a 18:42
why call another function, can we just not do a + 0 ? 18:43
rurban no. we need to upgrade to int to complex and set the new number then 18:45
and the setter needs a WB 18:46
Chirag but 'a + VTABLE_get_number(INTERP, value));' is not given to any variable .. so what is this statement achieving? 18:48
rurban VTABLE_set_number_native SELF is the setter
FROGGS VTABLE_set_number_native() gets it
Chirag oh.. my bad.. its changed in the function call .. didnt see the '-' sign next to it 18:50
rurban but only the real part is changed, the imaginary part is kep from the arg value
that's why we can call set_number_native. if the imag part needs to be changed the Complex setter method would have been better
Chirag ok.. got it 18:52
rurban: When you say I have to add RETURN() .. do I do it for the methods that previously had no_wb or the ones to which I have added WBs explicitly? or both? 18:58
dalek rrot: 2551577 | rurban++ | src/pmc/integer.pmc:
[pmc] minor optimization in Integer_multi_i_add_Complex

Deteced by Chirag++ and pmc2c. Do not compute SELF.get_integer() twice and remove UNSUED(a). Do the same for the default case below.
18:59
rurban RETURN is needed for all methods which need a WB, with more than 1 return. 19:00
:no_wb does not need a WB, so RETURN is not needed
But for debugging we should remove most no_wb to find which WBs are missing 19:01
Chirag i removed all
rurban the new pcm2c can add WBs automatically for 0 or 1 return statement
Chirag so far i removed all no_wb attrib 19:02
also finished checking UNUSED() for all pmc files
didnt come across a case where it was added before the declaration 19:03
rurban_ and now the question is. are the automatically added WBs correct? and does it pass the tests? 19:04
Chirag no diff .. same tests fail 19:05
rurban_ I could have just removed the no_wb setter from pmc2c :)
hmm, so the manual WBs are wrong
Chirag i used sed
rurban_ Thats' at least a good finding
Inspecting the manual WBs should not be that hard. That are not that many 19:06
Chirag yes.. 19:07
but the manual WBs were straight forward .. the macros always had the WB 19:08
rurban_ you can compare the working old version (master) against the new one (the C files) 19:09
Chirag yes.. I will do that
rurban_ It would be nice if the GC could print the offending pmc type with some -D flag
dalek rrot/rurban/pmc2c_orig: b3994f9 | rurban++ | / (51 files):
[pmc2c] inline gc write barriers into vtable methods

  :no_wb detection of :manual_wb, allow RETURN(decl var) also for VTABLE methods
add_write_barrier() now calls Parrot::Pmc2c::PCCMETHOD::rewrite_RETURNS. Also add automatic WB for 0 or 1 return statements in the method body. Other need either a RETURN or :manual_wb or :no_wb annotations.
Set manual_wb for :no_wb and PARROT_GC_WRITE_BARRIER in --dump Detect it now earlier, in the parser
Missing write barriers typically cause the following errors: t/examples/shootout.t: 16 examples/shootout/regexdna.pir SEGV t/op/gc.t t/pmc/*.t
19:16
rrot/rurban/pmc2c_orig: 8080670 | rurban++ | src/pmc/ (2 files):
[pmc] partially use new WB markers
rrot/rurban/pmc2c_orig: 3ec013e | ZYROz++ | / (2 files):
[pmc] GSOC start. arrayiterator :no_wb, removed unnecessary :manual_wb

Start of GSOC 2014 work. Task 1: improve GC write barriers. See GH issue #1069
rrot/rurban/pmc2c_orig: 3291082 | ZYROz++ | src/pmc/callcontext.pmc:
[pmc] callcontext: manual WBs for shift_pmc & shift_string
rrot/rurban/pmc2c_orig: 3414add | ZYROz++ | src/pmc/ (2 files):
[pmc] key, task: manual WBs for shift_*, pop_*
rrot/rurban/pmc2c_orig: c4d87f4 | ZYROz++ | src/pmc/ (2 files):
[pmc] callcontext :no_wb and :manual_wb
rrot/rurban/pmc2c_orig: 1d49760 | ZYROz++ | src/pmc/key.pmc:
[pmc] key WBs
rrot/rurban/pmc2c_orig: c84f90d | ZYROz++ | src/pmc/ (4 files):
[pmc] arrayiterator, callcontext, key, task: WBs
19:17
rrot/rurban/pmc2c_orig: 19f6820 | ZYROz++ | src/pmc/ (3 files):
[pmc] capture, HashIterator, ImageIoThaw: WBs
rrot/rurban/pmc2c_orig: 8936d73 | ZYROz++ | src/pmc/ (5 files):
[pmc] default, object, orderedHashIterator, pmcList, resizablePmcArray: WBs
rrot/rurban/pmc2c_orig: 957a20b | ZYROz++ | src/pmc/ (8 files):
[pmc] fix some mixed c99 declarations with generated WBs

DEBUGGED - ISO C90 forbids mixed declarations = Solved by adding WB after declarations ; expected declaration specifiers before ā€˜:’ token Solved by removing :no_wb attributes for the flagged functions
rrot/rurban/pmc2c_orig: dd93d75 | ZYROz++ | src/pmc/task.pmc:
[pmc] task: WB related errors
rrot/rurban/pmc2c_orig: ac58f97 | rurban++ | src/pmc/fixed (2 files):
[pmc] add RETURN and WB attrs to fixedintegerarray, fixedstringarray
parrot/rurban/pmc2c_orig: d946dcd | rurban++ | src/pmc/callcontext.pmc:
parrot/rurban/pmc2c_orig: [pmc] re-add some WBs to callcontext
19:18 dalek joined
rurban_ that's my new rebased version 19:20
Chirag i ll rebase to it 19:21
rurban_ I disabled the no_wb setter and testing now also
Chirag i did make one change in key.pmc .. added a UNUSED(INTERP) to get rid of a warning
rurban_ this is harmless 19:22
Chirag 'Useless use of SHIM UNUSED(INTERP) in *' .. is it a concern? 19:23
rurban_ confirmed your result. it's one of the manual_wb's
where? 19:24
19:24 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1030 (master - 2551577 : Reini Urban): The build was broken. 19:24
[travis-ci] Change view : github.com/parrot/parrot/compare/c...515777ac22
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/26325955
19:24 travis-ci left
Chirag i guess everytime we call UNUSED() 19:24
for instance
/usr/bin/perl -Ilib tools/build/pmc2c.pl --c src/pmc/imccompiler.pmc 19:25
Useless use of SHIM UNUSED(INTERP) in IMCCompiler METHOD destroy: kept for write barrier
Useless use of SHIM UNUSED(INTERP) in IMCCompiler METHOD get_integer: kept for write barrier
Useless use of SHIM UNUSED(INTERP) in IMCCompiler METHOD get_pointer: kept for write barrier
rurban_ This one? Useless use of SHIM UNUSED($key) in $pmcname METHOD $meth: kept for write barrier
Chirag yes
rurban_ Ah, I disabled these. Can be ignored for now
Chirag ok..
which manual_wb?
rurban_ Should be commenrted out in my branch already
Chirag i uncommented all warnings 19:26
rurban_ which manual_wb? yes, that's the question.
Chirag ok :)
rurban_ My guess is callcontext 19:27
Chirag i will check 19:28
how to not solve conflicts and just blindly rebase to your branch? 19:30
rurban_ you can save your patches, reset --hard to mine, and restore your patches 19:32
g fetch origin; g d > xx.p; g rh rurban/pmc2c_orig; patch < xx.p
if you didn't commit anything new 19:33
alias g=git
and given several other .gitconfig aliases
Chirag saved using git stash
rurban_ d for diff, rh for reset --hard
Chirag rurban: you pushed your commits now right? latest commit still stuck on Wednesday.. 19:43
19:49 cooper joined
rurban_ yes, it appeared here in IRC 20:02
for you it's probably g fetch upstream 20:10
or g fetch --all
I found a problem with RETURN(PMC *const ret) and RETURN(INTVAL pos<<32) 20:11
Oops, my previous integer change broke it 20:23
Chirag oh.. actually github still shows the older commit as the latest 20:31
dalek rrot: 9be3ff0 | rurban++ | src/pmc/integer.pmc:
[pmc] oops, undo the previous optimization

it broke the integer test 39 add complex number. Just remove the first duplicate SELF.get_integer call, and UNUSED(a)
20:39
rurban_ github.com/parrot/parrot/commits/r...pmc2c_orig (rebased) and github.com/parrot/parrot/commits/master all look good
dalek rrot: 2a3e888 | rurban++ | compilers/imcc/imclexer.c:
[imcc] regenerated imclexer.c with latest flex

use yy_size_t len instead of int
20:50
rrot: ae981f4 | rurban++ | t/native_pbc/ (16 files):
[native_pbc] update fingerprints to unTODO tests

perl tools/dev/pbc_header.pl --update-fingerprint t/native_pbc/*.pbc as per release_manager_guide
21:06 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1031 (master - 9be3ff0 : Reini Urban): The build was fixed. 21:06
[travis-ci] Change view : github.com/parrot/parrot/compare/2...e3ff09dd7c
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/26334067
21:06 travis-ci left
rurban_ Working on better WB debugging when it fails inside the GC 21:26
21:33 travis-ci joined
travis-ci [travis-ci] parrot/parrot#1032 (master - ae981f4 : Reini Urban): The build was fixed. 21:33
[travis-ci] Change view : github.com/parrot/parrot/compare/9...981f454332
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/26335095
21:33 travis-ci left 21:47 bluescreen_ joined
rurban_ Aargh, all the WBs were wrong 22:20
22:33 rurban joined
rurban_ whow. tools/dev/vgp t/op/gc.t is a mess 23:01
23:36 rurban joined