#+TITLE: Tasks #+TODO: TODO(t) DOING(w) | DONE(d) BLOCKED(b) CANCELED(c) #+FILETAGS: :@school: * Writing ** TODO Abstract ** TODO Introduction *** DONE Introduce problem **** DONE Container types common in programs **** DONE Functionally identical implementations **** DONE Large difference in performance *** DONE Motivate w/ effectiveness claims *** DONE Overview of aims & approach **** DONE Scalability to larger projects **** DONE Ease of integration into existing projects **** DONE Ease of adding new container types **** DONE Flexibility of selection *** TODO Overview of results ** DONE Background *** DONE Introduce problem *** DONE Functional vs non-functional requirements *** DONE Existing approaches & their shortfalls *** DONE Lead to next chapter ** TODO Design *** DONE Usage Example *** DONE Primrose Integration **** DONE Explain role in entire process **** DONE Short explanation of selection method **** DONE Abstraction over backend *** DONE Building cost models **** DONE Benchmarks **** DONE Linear Regression **** DONE Limitations *** DONE Profiling applications **** DONE Data collected **** DONE Segmentation **** TODO Limitations w/ pre-benchmark steps *** DONE Selection process & adaptive containers **** DONE Selection process **** TODO Adaptive container detection **** TODO Code generation ** TODO Implementation *** DONE Modifications to Primrose **** DONE API **** DONE Mapping trait **** DONE Resiliency, etc *** DONE Cost models **** DONE Benchmarker crate **** DONE Code generation **** DONE Chosen benchmarks **** TODO Fitting *** DONE Profiling wrapper **** DONE Use of Drop **** DONE Generics and stuff *** DONE Selection / Codegen **** DONE Selection Algorithm incl Adaptive **** DONE Implementation w/ const generics **** DONE Generated code (opaque types) *** TODO Misc Concerns **** TODO Explain cargo's role in rust projects & how it is integrated **** TODO Caching and stuff **** TODO Ease of use **** TODO Integration w/ Cargo ***** TODO Metadata fetching ***** TODO Caching of build dependencies ** TODO Results & Analysis *** DONE Testing setup, benchmarking rationale **** DONE Specs and VM setup **** DONE Reproducibility *** DONE Cost model analysis **** DONE Insertion operations **** DONE Contains operations **** DONE Comment on some bad/weird ones **** DONE Conclusion *** DONE Predictions **** DONE Chosen benchmarks **** DONE Effect of selection on benchmarks (spread in execution time) **** DONE Summarise predicted versus actual **** TODO Evaluate performance **** TODO Comment on distribution of best implementation **** TODO Surprising ones / Explain failures *** TODO Performance of adaptive containers **** TODO Find where adaptive containers get suggested **** TODO Comment on relative performance speedup **** TODO Suggest future improvements? ** TODO Conclusion