Parrot 6.1.0 "Black-collared Lovebird" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 February 2014.
00:02 kid51 joined 00:26 kid51_ joined 01:36 benabik joined 02:03 FROGGS__ joined
dalek rrot/rurban/imccflags: e04a749 | rurban++ | frontend/parrot/main.c:
[imcc] fix parrot_old -d flags

missed undo the shift
02:34
02:45 Chirag_ joined 03:16 l3l1p joined 03:29 rurban1 joined
rurban1 Working on fixing -O2. just fixed used_once() eliminiation for side-effecting ops 03:30
03:41 l3l1p joined
dalek rrot/rurban/imccO2: f32525e | rurban++ | / (6 files):
[imcc] fix -O2 used_once: keep side-effecting ops #1036

allow used_once elimination only for purely functional ops without side-effects. Fixes t/compilers/imcc/reg/alloc.t test 2 alligator 2 - r9629
   t/compilers/imcc/reg/spill_old.t test 1 bug \\#32996
and some more.
set ITPUREFUNC in the parser, as this is the best place to find them: logical un_op and null; artithmetic bin_op and assign_op
03:48
03:52 l3l1p joined
dalek rrot/rurban/imccflags: 4758059 | rurban++ | / (13 files):
[imcc] enable -O[12p] options again

Rename imcc_set_debug_api() to imcc_set_flags_api() to set verbosity, debug flags and optimizer flags at once.
Remove unused internal imcc->IMCC_DEBUG flags.
  -v prints now also the optimizer_level.
Document internal imcc_set_verbosity() as unused.
Makefile: add testOp, disable testexec (unused)
Add missing documentation to docs/running.pod and docs/binaries/parrot.pod which is essentially the same. docs/running.pod should include more high-level info. Remove gcdebug runcore documentation (unused).
Fix enabling parrot --imcc-debug flags.
Add Parrot_imcc_dflags and Parrot_imcc_opt_flags enums to include/imcc/api.h for the frontends.
  Mark t/op/calling.t test 63 as failing with -O1. (TODO)
This is a bad test, assuming an unoptimized layout.
04:23
rrot/rurban/imccflags: 2ede3c1 | rurban++ | t/op/calling.t:
[imcc] TODO t/op/calling.t test 63 with -O1

bad test
rrot/rurban/imccflags: 04c9fb9 | rurban++ | / (3 files):
[imcc] adjust documentation for optim options
rrot/rurban/imccflags: b817ae6 | rurban++ | t/fullharness:
[test] add -O1 to fulltest targets

t/fullharness runs now -O1 also, -O2 not yet
rrot/rurban/imccflags: 7861d39 | rurban++ | t/pharness/02-get_test_prog_args.t:
[test] disable --run-exec test in t/pharness/02-get_test_prog_args.t

this option is disabled
04:28 l3l1p joined
dalek rrot: b9616b8 | rurban++ | / (7 files):
[imcc] add imcc flags to the refactored API and use it in parrot_old (again)

parrot_old -y works fine now. Also re-enable symbolic api_flags by including the relevant headers. Issue [GH #1033]
Add old imcc optim flags as Parrot_trace_flags, but the optimizations are not yet passed through
04:39
rrot: a67ff1c | rurban++ | / (2 files):
[imcc] add more flags to parrot: -y -E -a

re-enable some old flags now in parrot2 also [GH #1033]. Also re-enable symbolic api_flags by including the relevant headers.
rrot: f446380 | rurban++ | / (2 files):
[GH #1035] require -a parrot arg for .pasm files

add -a to all .pasm file invocations, as temporary parrot does not accept .pasm without -a set.
rrot: 9dfe4a4 | rurban++ | frontend/parrot2/main.c:
relax mandatory parrot -a requirement

check each argument for .pasm as in parrot_old, and set the have_pasm_file flag (i.e. -a) then automatically.
broke t/pmc/sub.t and t/src/checkdepend.t
rrot: 05e0d98 | rurban++ | config/gen/makefiles/root.in:
add new parrot.h deps for checkdepend.t

The 2 frontends include now all parrot.h headers, not just a subset.
rrot: 3f583ff | rurban++ | t/src/checkdepend.t:
[docs] improve checkdepend.t SYNOPSIS
rrot: 6537151 | rurban++ | frontend/parrot (3 files):
[docs] parrot* -h: replace runcore gcdebug by subprof
rrot: 93a3905 | rurban++ | / (10 files):
[imcc] add imcc_debug flags to Parrot_debug_flags, docs

revamp --imcc-debug, improve --help-debug remove gcdebug runcore references in the docs remove run-exec references in harness leave out the imcc PBC compiler options (unused)
TODO: yydebug == PARROT_IMCC_PARSER
rrot: 4d02cc7 | rurban++ | / (6 files):
[imcc] merge yydebug with imccflags, init pasm and pir compilers

we need to init both compilers to fix t/pmc/sub.t simplify imcc_set_debug_api: only take imccflags, and also call imcc_set_verbosity on -v shift public PARROT_IMCC_* flags by 16 to private imcc->debug enable -v (imcc->verbose) use PARROT_IMCC_PARSER for imcc yydebug flag
TODO: imccflags do not yet arrive in imcc
rrot: 4758059 | rurban++ | / (13 files):
[imcc] enable -O[12p] options again

Rename imcc_set_debug_api() to imcc_set_flags_api() to set verbosity, debug flags and optimizer flags at once.
Remove unused internal imcc->IMCC_DEBUG flags.
  -v prints now also the optimizer_level.
Document internal imcc_set_verbosity() as unused.
Makefile: add testOp, disable testexec (unused)
Add missing documentation to docs/running.pod and docs/binaries/parrot.pod which is essentially the same. docs/running.pod should include more high-level info. Remove gcdebug runcore documentation (unused).
Fix enabling parrot --imcc-debug flags.
Add Parrot_imcc_dflags and Parrot_imcc_opt_flags enums to include/imcc/api.h for the frontends.
  Mark t/op/calling.t test 63 as failing with -O1. (TODO)
This is a bad test, assuming an unoptimized layout.
rrot: 2ede3c1 | rurban++ | t/op/calling.t:
[imcc] TODO t/op/calling.t test 63 with -O1

bad test
04:42 dalek joined
dalek rrot: 74055e5 | rurban++ | / (6 files):
[imcc] fix -O2 used_once: keep side-effecting ops #1036

allow used_once elimination only for purely functional ops without side-effects. Fixes t/compilers/imcc/reg/alloc.t test 2 alligator 2 - r9629
   t/compilers/imcc/reg/spill_old.t test 1 bug \\#32996
and some more.
set ITPUREFUNC in the parser, as this is the best place to find them: logical un_op and null; artithmetic bin_op and assign_op
04:44
rrot: 8dc451c | rurban++ | ChangeLog:
ChangeLog: add fix for GH #1036
04:49 Chirag_ joined 04:51 travis-ci joined
travis-ci [travis-ci] parrot/parrot#952 (master - 7861d39 : Reini Urban): The build is still failing. 04:51
[travis-ci] Change view : github.com/parrot/parrot/compare/a...61d39d0108
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19704590
04:51 travis-ci left 04:56 l3l1p joined 05:03 travis-ci joined
travis-ci [travis-ci] parrot/parrot#953 (master - 0ff8b80 : Reini Urban): The build is still failing. 05:03
[travis-ci] Change view : github.com/parrot/parrot/compare/7...f8b803e9be
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19704615
05:03 travis-ci left 05:16 travis-ci joined
travis-ci [travis-ci] parrot/parrot#954 (master - 8dc451c : Reini Urban): The build is still failing. 05:16
[travis-ci] Change view : github.com/parrot/parrot/compare/0...c451c3faa7
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19704791
05:16 travis-ci left
dalek rrot/rurban/imccO2: 3abde38 | rurban++ | compilers/imcc/ (3 files):
[imcc] better ins debug printing

do not only print the ins ptr, also the name and args.
06:40
rrot/rurban/imccO2: ad94004 | rurban++ | compilers/imcc/optimizer.c:
[imcc] fixup: more ins debug printing
06:54
rrot/rurban/imccO2: 385caf8 | rurban++ | compilers/imcc/optimizer.c:
[imcc] fixup: optimizer comments

do not be overly excited about optimizer features.
rrot/rurban/imccO2: 980ad41 | rurban++ | compilers/imcc/ (3 files):
[imcc] better ins debug printing

do not only print the ins ptr, also the name and args.
shorter optimizer comments: do not be overly excited about optimizer features.
06:55
rrot/rurban/imccO2: 93fbe9c | rurban++ | compilers/imcc/optimizer.c:
[imcc] fixup ins print
06:59
rrot/rurban/imccO2: 8c3d312 | rurban++ | compilers/imcc/ (3 files):
[imcc] better ins debug printing

do not only print the ins ptr, also the name and args.
shorter optimizer comments: do not be overly excited about optimizer features.
07:41 webart joined 07:52 FROGGS joined 08:12 rurban1 joined 09:22 denis_boyun joined 09:56 denis_boyun joined 10:00 Maddingue joined 10:29 TonyC joined 11:01 Chirag_ joined 11:06 Chirag__ joined 11:10 denis_boyun joined 11:19 mtk joined 13:46 rurban1 joined 14:12 awwaiid joined
dalek rrot/rurban/imccO2: 966d9c2 | rurban++ | compilers/imcc/ (2 files):
[imcc] WIP attempt to fix #1039

but the ins->op (the op ptr) appears now later in emit_pbc
14:38
14:59 rurban1 joined
Coke I didn't get back to rm_pasm last night; definitely by the weekend. 15:22
15:26 webart left 15:27 sorear joined
rurban It's not really urgent. I doubt it will help us a lot. imcc -O2 will have a big impact. Almost done 15:29
And I'm thinking of bringing the old jit in. It *is* scalable if you know how 15:30
dalek rrot: bd22970 | rurban++ | / (2 files):
[test] TODO remaining failing -O1 nci tests [GH #1037]

mark the 4 failing -O1 nci tests as TODO
15:31
rrot: 4c4858f | rurban++ | compilers/imcc/ (3 files):
[imcc] better ins debug printing

do not only print the ins ptr, also the name and args.
shorter optimizer comments: do not be overly excited about optimizer features.
rurban Nice, did too much work lately: /tmp/ccoW3G7S.s: Assembler messages: 15:45
/tmp/ccoW3G7S.s: Fatal error: can't write /home/rurban/.ccache/4/2/4dcce8d78aa80ec2cf3a2826704ca8-691574.o.tmp.reini.4561: No space left on device
Coke rurban - oh, I expect little help from a performance standpoint, more from a maintenance standpoint. 15:48
oh - and it probably still needs someone to simplify the grammar, because I took the route of ripping out pasm invocation everywhere, but it's still buried in IMCC's lexer. 15:49
16:04 travis-ci joined
travis-ci [travis-ci] parrot/parrot#955 (master - 4c4858f : Reini Urban): The build is still failing. 16:04
[travis-ci] Change view : github.com/parrot/parrot/compare/8...4858f28628
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19737428
16:04 travis-ci left
rurban I think I'll need a few hours cleaning up my harddisc 16:06
16:15 awwaiid joined
rurban ands smolder still reacts horribly 16:18
Coke smolder replacement still on my backlog. 16:34
rurban if the pasm argument is just maintainership I'd rather keep it. e.g. pbc_disassemble prints pasm only. I need pbc_disassemble to check -O1 and -O2 16:51
to check if the optimizations are sound or not. 16:52
16:59 FROGGS2 joined
FROGGS2 jnthn : I can do that once I'm at home 17:00
jnthn : does that mean you're not doing my homework either? :p 17:01
17:42 FROGGS joined
FROGGS2 ww :/ 17:43
Coke rurban: I don't care if the branch gets applied at this point or not. 17:44
17:49 benabik joined
rurban -O1 is stable now, fixed the last bug. -O2 also soon 17:51
dalek rrot: 85a7952 | rurban++ | compilers/imcc/ (3 files):
[imcc] micro optimizations

  ask for DEBUG_OPT1 & imcc->debug before doing 3 calls
inline imcc_vfprintf
18:10
rrot: 2ac3fbf | rurban++ | / (4 files):
[immc] Fixed -O1. Special-case get_global for branch_cond_loop_swap [GH #1037]

See github.com/parrot/parrot/issues/1037 for the nci problem. I couldn't see any logical problem with the attempted optimization
add I0,1 vs inc I0 tested ok. just a get_global_p with if_p_ic P4,out converted to unless_p_ic P4,loop was problematic, so we skip optimizing such loops. get_global has no type attached, so we need to STREQ
added a IMCC_debug DEBUG_OPT1 notice for this case.
rrot/rurban/imccO2: 104966b | rurban++ | compilers/imcc/ (2 files):
[imcc] WIP attempt to fix #1039

but the ins->op (the op ptr) appears now later in emit_pbc
18:28 bluescreen joined
Coke github.com/parrot/parrot/issues/870 has a lot of Commit has since been removed from the repository and is no longer available. that disturbs me a bit. (was it a commit in a branch that got merged or something?) 18:36
rurban -O1 is roughly 3.7% faster than -O0, which includes the compile and run-time. Normally you'd split the longer-time and get faster run-times
the longer compile-time 18:37
Published the benchmark numbers at github.com/parrot/parrot/issues/10...t-36274524 18:44
-O2 is not that spectacular with our benchmarks, even if pre-compiled 18:45
18:46 travis-ci joined
travis-ci [travis-ci] parrot/parrot#956 (master - 2ac3fbf : Reini Urban): The build is still failing. 18:46
[travis-ci] Change view : github.com/parrot/parrot/compare/4...c3fbf6f03d
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19748828
18:46 travis-ci left
rurban Coke: it was called rurban/gh870-pmc_class 18:48
4fa3d40e50ff151 and 04d2ffcb5d618efb9
just 2 commits, which I refactored over time
19:21 rurban1 joined 19:55 TonyC joined 20:01 rurban1 joined 20:02 denisboyun joined
dalek rrot/rurban/imccO2: 8272ff1 | rurban++ | / (7 files):
[imcc cage] move IMCC_debug_ins to debug.c, remove unused DEBUG_ defs

also do not fatalize -O2 GH 1039 empty ins->op, just warn
20:08
20:12 drift joined
dalek rrot/rurban/imccO2: 2308b20 | rurban++ | compilers/imcc/ (2 files):
[imcc] Fix most -O2 errors, restore ins2->op on failed const propag.

IMCC_subst_constants may return ok with an empty ins. Restore the old ins2->op ptr then. If !ok also restore the symregs.
Remaining -O2 fails:
  /compilers/imcc/syn/macro.t (Wstat: 512 Tests: 42 Failed: 2)
   Failed tests: 10-11
   Non-zero exit status: 2
t/op/calling.t (Wstat: 512 Tests: 104 Failed: 2)
   Failed tests: 30, 36
   Non-zero exit status: 2
t/op/exit.t (Wstat: 256 Tests: 9 Failed: 1)
   Failed test: 6
   Non-zero exit status: 1
t/op/jitn.t (Wstat: 256 Tests: 14 Failed: 1)
   Failed test: 13
   Non-zero exit status: 1
t/op/lexicals.t (Wstat: 256 Tests: 54 Failed: 1)
   Failed test: 42
   Non-zero exit status: 1
t/pmc/io.t (Wstat: 1024 Tests: 35 Failed: 4)
   Failed tests: 3-4, 13-14
   Non-zero exit status: 4
t/pmc/nci.t (Wstat: 256 Tests: 61 Failed: 1)
   Failed test: 50
   Non-zero exit status: 1
t/pmc/os.t (Wstat: 512 Tests: 36 Failed: 2)
   Failed tests: 3, 5
   Non-zero exit status: 2
Files=207, Tests=7199, 72 wallclock secs ( 1.46 usr 0.49 sys + 32.52 cusr 24.70 csys = 59.17 CPU) Result: FAIL
20:56
21:35 rurban1 joined
dalek rrot/rurban/imccO2: 64dc724 | rurban++ | compilers/imcc/ (2 files):
[imcc] Fix most -O2 errors, restore ins2->op on failed const propag.

IMCC_subst_constants may return ok with an empty ins. Restore the old ins2->op ptr then. If !ok also restore the symregs.
   See GH #1039
Remaining -O2 fails:
  /compilers/imcc/syn/macro.t (Wstat: 512 Tests: 42 Failed: 2)
   Failed tests: 10-11
   Non-zero exit status: 2
t/op/calling.t (Wstat: 512 Tests: 104 Failed: 2)
   Failed tests: 30, 36
   Non-zero exit status: 2
t/op/exit.t (Wstat: 256 Tests: 9 Failed: 1)
   Failed test: 6
   Non-zero exit status: 1
t/op/jitn.t (Wstat: 256 Tests: 14 Failed: 1)
   Failed test: 13
   Non-zero exit status: 1
t/op/lexicals.t (Wstat: 256 Tests: 54 Failed: 1)
   Failed test: 42
   Non-zero exit status: 1
t/pmc/io.t (Wstat: 1024 Tests: 35 Failed: 4)
   Failed tests: 3-4, 13-14
   Non-zero exit status: 4
t/pmc/nci.t (Wstat: 256 Tests: 61 Failed: 1)
   Failed test: 50
   Non-zero exit status: 1
t/pmc/os.t (Wstat: 512 Tests: 36 Failed: 2)
   Failed tests: 3, 5
   Non-zero exit status: 2
Files=207, Tests=7199, 72 wallclock secs ( 1.46 usr 0.49 sys + 32.52 cusr 24.70 csys = 59.17 CPU) Result: FAIL
21:37
rrot/rurban/imccO2: ab85cac | rurban++ | compilers/imcc/optimizer.c:
[imcc] fix more -O2 errors, found but empty => delete ins

On some constant propagation on (mostly arithmetic or param) ops, the ins can be safely deleted. GH #1039
This fixed: t/compilers/imcc/syn/macro.t 10-11 t/pmc/io.t 13-14 t/op/lexicals.t 42
but broke: t/pmc/exception-old.t 19
21:52
rurban down to 10 broken -O2 tests for now. some more analysis and then single tickets and TODOs
dalek rrot/rurban/imccO2: d05a883 | rurban++ | compilers/imcc/pbc.c:
[imcc] change emit_pbc !ins->op warnings to fatal again

closing GH #1039 all ops treated by -O2 constant propagation are now properly set
22:01
rrot: 104966b | rurban++ | compilers/imcc/ (2 files):
[imcc] WIP attempt to fix #1039

but the ins->op (the op ptr) appears now later in emit_pbc
22:06
rrot: 8272ff1 | rurban++ | / (7 files):
[imcc cage] move IMCC_debug_ins to debug.c, remove unused DEBUG_ defs

also do not fatalize -O2 GH 1039 empty ins->op, just warn
rrot: 64dc724 | rurban++ | compilers/imcc/ (2 files):
[imcc] Fix most -O2 errors, restore ins2->op on failed const propag.

IMCC_subst_constants may return ok with an empty ins. Restore the old ins2->op ptr then. If !ok also restore the symregs.
   See GH #1039
Remaining -O2 fails:
  /compilers/imcc/syn/macro.t (Wstat: 512 Tests: 42 Failed: 2)
   Failed tests: 10-11
   Non-zero exit status: 2
t/op/calling.t (Wstat: 512 Tests: 104 Failed: 2)
   Failed tests: 30, 36
   Non-zero exit status: 2
t/op/exit.t (Wstat: 256 Tests: 9 Failed: 1)
   Failed test: 6
   Non-zero exit status: 1
t/op/jitn.t (Wstat: 256 Tests: 14 Failed: 1)
   Failed test: 13
   Non-zero exit status: 1
t/op/lexicals.t (Wstat: 256 Tests: 54 Failed: 1)
   Failed test: 42
   Non-zero exit status: 1
t/pmc/io.t (Wstat: 1024 Tests: 35 Failed: 4)
   Failed tests: 3-4, 13-14
   Non-zero exit status: 4
t/pmc/nci.t (Wstat: 256 Tests: 61 Failed: 1)
   Failed test: 50
   Non-zero exit status: 1
t/pmc/os.t (Wstat: 512 Tests: 36 Failed: 2)
   Failed tests: 3, 5
   Non-zero exit status: 2
Files=207, Tests=7199, 72 wallclock secs ( 1.46 usr 0.49 sys + 32.52 cusr 24.70 csys = 59.17 CPU) Result: FAIL
rrot: ab85cac | rurban++ | compilers/imcc/optimizer.c:
[imcc] fix more -O2 errors, found but empty => delete ins

On some constant propagation on (mostly arithmetic or param) ops, the ins can be safely deleted. GH #1039
This fixed: t/compilers/imcc/syn/macro.t 10-11 t/pmc/io.t 13-14 t/op/lexicals.t 42
but broke: t/pmc/exception-old.t 19
rrot: d05a883 | rurban++ | compilers/imcc/pbc.c:
[imcc] change emit_pbc !ins->op warnings to fatal again

closing GH #1039 all ops treated by -O2 constant propagation are now properly set
rrot: d835140 | rurban++ | ChangeLog:
ChangeLog: add GH #1039 -O2 line
22:23 travis-ci joined
travis-ci [travis-ci] parrot/parrot#957 (master - d835140 : Reini Urban): The build is still failing. 22:23
[travis-ci] Change view : github.com/parrot/parrot/compare/2...3514063e6d
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/19763958
22:23 travis-ci left 22:53 rurban1 joined 23:11 Psyche^ joined 23:33 kid51 joined