Skip to content
Jan Ječmen edited this page Mar 29, 2017 · 17 revisions

This is the place to put all progress updates... Continuation of https://docs.google.com/document/d/1Ix9eiJ23F9M309V6NNz9O5WP4sKhlAQVeP0NH1JcUus

Deadlines

Finished thesis: 9.5.2017

Advisor and opponent evaluations: 5.6.2017

(see http://fit.cvut.cz/casovy-plan/szz-ls)

Formal instructions

Familiarize yourself with the R language, its bytecode compiler, and interpreter architecture. Familiarize yourself with RIR, an alternative bytecode format, compiler, and interpreter for the language. The R bytecode compiler assumes certain invariants (such as built-in meaning of control flow statements and certain operators) about the code to make the compiled code faster. Analyze similar assumptions that are used by RIR and extend RIR to use assumptions made by GNU-R as well. Identify and implement improvements to the RIR (compiler, bytecode format, and interpreter). Discuss your results.

R links

GNU-R github mirror: https://github.com/wch/r-source

GNU-R mirror with RIR patches: https://github.com/reactorlabs/gnur

RIR: https://github.com/reactorlabs/rir

RIR fork: https://github.com/JanJecmen/rir

March 2017

Initial tasks

GNU-R bytecode compiler notes

Benchmarks

In the forked repo: tools/bench-speedup.sh - takes one optional command line argument (hash of revision to benchmark, defaults to HEAD), runs benchmarks and saves the measurments + plots (in png and pdf)

Output backed up here: https://github.com/JanJecmen/dip/tree/master/benchmarks

Added also script to plot history of running times of rir across past revisions. The plot is backed up at the same place (speedup_history.png).

Clone this wiki locally