This replication package contains all data and scripts needed to reproduce results from the paper.
TL;DR: Download data-cache.zip and run make to regenerate
tables/figures.
Raw data is very large, however, cached Parquet files are smaller. You are
likely able to skip downloading data.zip and can instead use
data-cache.zip. This should be sufficient to run make.
The scripts require Python 3, and were tested on 3.9. Earlier versions likely work.
See the requirements.txt file for a list of required packages. These may be
installed by running:
pip install -r requirements.txtIf you need to download Boa jobs, the Boa API does require authentication. You may, however, view the jobs online: they are public.
Files are organized in the following layout:
datadata files are kept here. This includes unprocessed boa output (.txt), and processed versions (.parquet,.txt)boacontains Boa queries and snippets used. A description of the output and the snippets is available in CODEBOOK.mdanalysescontains code used to produce figures, tables and other analyses. This is organized in acommondirectory which contains common utilities, and directories for bothjavaandkotlin.figuresandtablescontains generated tables/figures.
The following make targets are available:
kotlin/table-countsorjava/table-counts: These produce Tables Ia and Ib, respectively.kotlin/rq-usage-2orjava/rq-usage-2: These produce Figures 4a and 4b, respectivelykotlin/rq-usageorjava/rq-usage: These produce Figures 5 and 6, respectivelykotlin/rq-mutability: This produces Figure 8.kotlin/rq-rhs-typesorjava/rq-rhs-types: These produce Figures 7a and 7b, respectively.kotlin/rq-rhs-methodcallsorjava/rq-rhs-methodcalls: These produce Tables IIa and IIb, respectivelykotlin/rq-survivalorjava/rq-survival: These produce Figures 9a and 9b, respectively