Changes between Version 7 and Version 8 of CottoTasklist

Show
Ignore:
Timestamp:
12/15/09 20:49:50 (12 years ago)
Author:
cotto
Comment:

rearranging and cleanup

Legend:

Unmodified
Added
Removed
Modified
  • CottoTasklist

    v7 v8  
    11This page is a personal todo list for me, cotto.  Others are welcome to take on any tasks mentioned here, but the primary purpose for this page is to keep track of what I intend to do.  Because of that, I haven't spend much effort on breaking tasks down into bite-size chunks or made much of a concrete plan.  If you are interested in helping but don't know where to start, catch me on #parrot and I'll put you to work.   
    22 
    3 profiling: 
    4  - Get to know the PackFile code. 
    5    - Read through the bytecode pdd (13) and make it match the current implementation. 
    6    - Focus on annotations, but it wouldn't be a bad thing to lower the PackFile bus number. 
     3profiling (important, in decreasing order): 
     4 - Annotations are slow.  Make it possible to avoid a Schlemiel the Painter algorithm by getting annotations from bytecode iteratively. 
     5   - http://irclog.perlgeek.de/parrot/2009-12-12#i_1828456 
     6   - Get to know the PackFile code. 
     7     - Read through the bytecode pdd (13) and make it match the current implementation. 
     8     - Focus on annotations, but it wouldn't be a bad thing to raise the PackFile bus number. 
    79 - test profiling output (pprof format) 
    810 - test pprof to callgrind conversion and callgrind-style output 
    9  - Figure out a nice way to integrate annotations into the profile. 
    10  - Switch to a Configure.pl-based approach for finding the appropriate timing functions. 
    1111 - Create an efficient binary output format with optional compression, similar to NYTProf. 
    12  - Optimize the profiling runloop code. 
    13  - Consider moving the Callgrind output code into the profiling runcore. 
     12   - Alternately, consider moving the Callgrind output code into the profiling runcore and using the pprof output only for testing. 
     13   - Look into spitting out NYTProf-compatible output too. 
     14 - Optimize the profiling runloop code.  Major refactors should wait until some tests are in place. 
    1415 - ~~Abstract output in the profiling runcore to minimize the amount of code that cares about the output format.~~ 
     16 - ~~Figure out a nice way to integrate annotations into the profile.~~ 
     17 
     18profiling (would be nice): 
    1519 - Fix CLI argument parsing so that options can be passed to the profiling runcore. 
    1620   - It'd also be nice if parrot were smart enough to treat -Rp or -Rprof to the same as -Rprofiling 
    1721     - This is a trivial change to compilers/imcc/main.c 
    18  - Annotations are slow.  Make it possible to avoid a Schlemiel the Painter algorithm by getting annotations from bytecode iteratively. 
    19    - http://irclog.perlgeek.de/parrot/2009-12-12#i_1828456 
     22 - Switch to a Configure.pl-based approach for finding the appropriate timing functions. 
    2023 
    2124Questions: 
     
    2326   * A basic block is a straight line piece of code without any branches or branch targets.  It's the smallest individual unit of code to which you can apply a compiler optimization. 
    2427 
    25  
    2628profiling testing todo: 
    27  - figure out what to test 
    28  - actual profiling runcore output (does it work, is the output valid) 
     29 - Figure out what to test. 
     30 - Write some fake tests to figure out what the profiling testing interface should look like. 
    2931 - pprof2cg (split into a module, test individual components, multiple output formats (when implemented)) 
    3032   - The Callgrind output code may end up in C since nqp is way too slow and even the Perl 5 version isn't very fast.  This would make testing more interesting, though I'd still have a way to produce either the pprof or the callgrind formatted output. 
    31  - stats output should also be tested since it's nice for debugging (note to self: ???) 
     33   - There's now no reason that multiple output formats can't coexist apart from the extra testing burden. 
    3234 - specific test cases 
    33   - stupid hello world 
     35  - test all output types (currently none and pprof, possibly cg and nytprof if I get ambitious) 
     36  - hello world  
    3437  - profiling a pbc without line information (if possible) 
    3538  - proper namespace support