diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0de8a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +main.pdf diff --git a/0_preamble/acknowledgements.typ b/0_preamble/acknowledgements.typ index 8cdc627..9beaac2 100644 --- a/0_preamble/acknowledgements.typ +++ b/0_preamble/acknowledgements.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": todo +#import "../lib.typ": todo = Acknowledgements diff --git a/0_preamble/french_summary.typ b/0_preamble/french_summary.typ index d3965c8..33e559c 100644 --- a/0_preamble/french_summary.typ +++ b/0_preamble/french_summary.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": todo +#import "../lib.typ": todo = Résumé en Français diff --git a/3_rasta/0_intro.typ b/3_rasta/0_intro.typ index 737a432..f1255d5 100644 --- a/3_rasta/0_intro.typ +++ b/3_rasta/0_intro.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": etal +#import "../lib.typ": etal #import "X_var.typ": * == Introduction diff --git a/3_rasta/1_related_work.typ b/3_rasta/1_related_work.typ index 3ee82f6..bd1fabe 100644 --- a/3_rasta/1_related_work.typ +++ b/3_rasta/1_related_work.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": etal, eg, ie +#import "../lib.typ": etal, eg, ie #import "X_var.typ": * == Related Work diff --git a/3_rasta/2_methodology.typ b/3_rasta/2_methodology.typ index 7da02c2..768ba79 100644 --- a/3_rasta/2_methodology.typ +++ b/3_rasta/2_methodology.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": todo, etal, eg +#import "../lib.typ": todo, etal, eg #import "X_var.typ": * #import "X_lib.typ": * @@ -85,7 +85,7 @@ We manually searched the tool repository when the website mentioned in the paper - the source code of the tool; - the documentation for building and using the tool with a MWE (Minimum Working Example). -In @tab:rasta-tools we rated the quality of these artifacts with "#ok" when available but may have inconsistencies, a "#bad" when too much inconsistencies (inaccurate remarks about the sources, dead links or missing parts) have been found, a "#ko" when no documentation have been found, and a double "#ok#ok" for the documentation when it covers all our expectations (building process, usage, MWE). +In @tab:rasta-tools we rated the quality of these artifacts with "#ok" when available but may have inconsistencies, a "#bad" when too much inconsistencies (inaccurate remarks about the sources, dead links or missing parts) have been found, a "#ko" when no documentation have been found, and a double "#okk" for the documentation when it covers all our expectations (building process, usage, MWE). Results show that documentation is often missing or very poor (#eg Lotrack), which makes the rebuild process very complex and the first analysis of a MWE. diff --git a/3_rasta/3_experiments.typ b/3_rasta/3_experiments.typ index 5e3ee2f..9203299 100644 --- a/3_rasta/3_experiments.typ +++ b/3_rasta/3_experiments.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": todo, highlight +#import "../lib.typ": todo, highlight, num #import "X_var.typ": * #import "X_lib.typ": * @@ -50,8 +50,9 @@ is #mypercent(54.9, 100). When including the two defective tools, this ratio dr #highlight()[ *RQ1 answer:* -On a recent dataset we consider that \resultunusable of the tools - are unusable. For the tools that we could run, \resultratio of analysis are finishing successfully.%(those with less than 50\% of successful execution and including the two tools that we were unable to build). +On a recent dataset we consider that \resultunusable of the tools are unusable. +For the tools that we could run, \resultratio of analysis are finishing successfully. +//(those with less than 50\% of successful execution and including the two tools that we were unable to build). ] /* diff --git a/3_rasta/4_discussion.typ b/3_rasta/4_discussion.typ index dc08693..2b8f0bd 100644 --- a/3_rasta/4_discussion.typ +++ b/3_rasta/4_discussion.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": todo, etal +#import "../lib.typ": todo, etal #import "X_var.typ": * #import "X_lib.typ": * diff --git a/3_rasta/X_lib.typ b/3_rasta/X_lib.typ index d30e669..8796d3a 100644 --- a/3_rasta/X_lib.typ +++ b/3_rasta/X_lib.typ @@ -1,8 +1,3 @@ - -#let mypercent(numerator, denominator, digits: 2) = { - [#calc.round((100 * numerator) / denominator, digits: digits) %] -} - #let ok = text(fill: olive, sym.checkmark) #let okk = text(fill: olive, tracking: -5pt, sym.checkmark+sym.checkmark) @@ -25,5 +20,3 @@ s } } - -#let num(n) = [#n] diff --git a/3_rasta/X_var.typ b/3_rasta/X_var.typ index 1130e8e..c863929 100644 --- a/3_rasta/X_var.typ +++ b/3_rasta/X_var.typ @@ -1,7 +1,7 @@ -#import "X_lib.typ": mypercent +#import "../lib.typ": num, mypercent #let NBTOTAL = 62525 -#let NBTOTALSTRING = NBTOTAL //\num{62525}\xspace} +#let NBTOTALSTRING = num(NBTOTAL) #let nbtools = 26 #let nbtoolsselected = 20 diff --git a/3_rasta/rasta.typ b/3_rasta/main.typ similarity index 63% rename from 3_rasta/rasta.typ rename to 3_rasta/main.typ index cbfcf70..d6a91ba 100644 --- a/3_rasta/rasta.typ +++ b/3_rasta/main.typ @@ -1,10 +1,8 @@ -#import "@local/template-thesis-matisse:0.0.1": todo +#import "../lib.typ": todo = RASTA -#todo[typstify RASTA paper] - -#todo[Format numbers] +#todo[Bring back element from previous version of rasta] #include("0_intro.typ") #include("1_related_work.typ") diff --git a/4_class_loader/main.typ b/4_class_loader/main.typ new file mode 100644 index 0000000..884b073 --- /dev/null +++ b/4_class_loader/main.typ @@ -0,0 +1,12 @@ +#import "../lib.typ": todo + += Class loaders in the middle: confusing Android static analyzers + +/* +#include("0_intro.typ") +#include("1_related_work.typ") +#include("2_methodology.typ") +#include("3_experiments.typ") +#include("4_discussion.typ") +#include("5_conclusion.typ") +*/ diff --git a/lib.typ b/lib.typ new file mode 100644 index 0000000..1ca8f80 --- /dev/null +++ b/lib.typ @@ -0,0 +1,36 @@ +#import "@local/template-thesis-matisse:0.0.1": * + +// Format number. +// Following https://www.mit.edu/course/21/21.guide/numbers.htm +#let num(n, decimal: ".", thousands: " ") = { + let n = if type(n) == str { + float(n) + } else { + n + } + assert(type(n) == int or type(n) == float, message: "must be a number") + + let parts = str(n).split(".") + let decimal_p = if parts.len() == 2 { parts.at(1) } + let integer_p = parts.at(0) + let integer_p = if integer_p.len() <= 4 { + integer_p + } else { + let nb_cluster = calc.div-euclid(integer_p.len(), 3) + let first_cluster_size = calc.rem-euclid(integer_p.len(), 3) + let clusters = () + if first_cluster_size != 0 { + clusters.push(integer_p.slice(0, count: first_cluster_size)) + } + for i in range(0, nb_cluster) { + clusters.push(integer_p.slice(first_cluster_size + i*3, count: 3)) + } + clusters.join(thousands) + } + let formated = integer_p + if decimal_p != none { decimal + decimal_p } + [#formated] +} + + +#let mypercent(numerator, denominator, digits: 2) = [#num(calc.round((100 * numerator) / denominator, digits: digits))%] + diff --git a/main.pdf b/main.pdf deleted file mode 100644 index 10992ca..0000000 Binary files a/main.pdf and /dev/null differ diff --git a/main.typ b/main.typ index f29917e..2e4f3b4 100644 --- a/main.typ +++ b/main.typ @@ -1,4 +1,4 @@ -#import "@local/template-thesis-matisse:0.0.1": * +#import "lib.typ": * #import "jury.typ": jury-content #import "abstract.typ": keywords-en, keywords-fr, abstract-en, abstract-fr @@ -115,11 +115,8 @@ ) -#include("3_rasta/rasta.typ") - -= Contribution 2 - -#lorem(500) +#include("3_rasta/main.typ") +#include("4_class_loader/main.typ") = Contribution n