From: Alexandre Terrasa Date: Sun, 4 Nov 2012 20:08:03 +0000 (-0500) Subject: nitmetrics: refactor rta metrics computation X-Git-Tag: v0.6~81^2~18 X-Git-Url: http://nitlanguage.org nitmetrics: refactor rta metrics computation Signed-off-by: Alexandre Terrasa --- diff --git a/src/metrics/metrics.nit b/src/metrics/metrics.nit index 507c67b..7904ca6 100644 --- a/src/metrics/metrics.nit +++ b/src/metrics/metrics.nit @@ -23,6 +23,6 @@ import visit_nullable_sends import visit_self import model_stats import generate_hierarchies -import rta_stats +import rta_metrics import model_hyperdoc import tables_metrics diff --git a/src/metrics/metrics_base.nit b/src/metrics/metrics_base.nit index 7bb23d9..950b956 100644 --- a/src/metrics/metrics_base.nit +++ b/src/metrics/metrics_base.nit @@ -21,6 +21,8 @@ import modelbuilder redef class ToolContext + # --rta + var opt_rta = new OptionBool("Compute RTA metrics", "--rta") # --generate_hyperdoc var opt_generate_hyperdoc = new OptionBool("Generate Hyperdoc", "--generate_hyperdoc") @@ -30,6 +32,7 @@ redef class ToolContext redef init do super + self.option_context.add_option(opt_rta) self.option_context.add_option(opt_generate_hyperdoc) self.option_context.add_option(opt_dir) end diff --git a/src/metrics/rta_stats.nit b/src/metrics/rta_metrics.nit similarity index 88% rename from src/metrics/rta_stats.nit rename to src/metrics/rta_metrics.nit index 47da557..cebf766 100644 --- a/src/metrics/rta_stats.nit +++ b/src/metrics/rta_metrics.nit @@ -14,18 +14,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Statistics of a RTA -module rta_stats +# Metrics from RTA +module rta_metrics import modelbuilder private import rapid_type_analysis -# Run a runtime type anamysis and print statistics -fun compute_rta_stats(modelbuilder: ModelBuilder, mainmodule: MModule) +# Run a runtime type analysis and print metrics +fun compute_rta_metrics(modelbuilder: ModelBuilder, mainmodule: MModule) do var analysis = modelbuilder.do_rapid_type_analysis(mainmodule) - print "--- Type Analysis ---" + print "--- RTA metrics ---" print "Number of live runtime types (instantied resolved type): {analysis.live_types.length}" if analysis.live_types.length < 8 then print "\t{analysis.live_types.join(" ")}" print "Number of live method definitions: {analysis.live_methoddefs.length}" diff --git a/src/nitmetrics.nit b/src/nitmetrics.nit index a2d20f8..68a6490 100644 --- a/src/nitmetrics.nit +++ b/src/nitmetrics.nit @@ -71,8 +71,11 @@ count_ntypes(modelbuilder) print "" compute_tables_metrics(mainmodule) -print "" -compute_rta_stats(modelbuilder, mainmodule) +# RTA metrics +if toolcontext.opt_rta.value then + print "" + compute_rta_metrics(modelbuilder, mainmodule) +end # Generate Hyperdoc if toolcontext.opt_generate_hyperdoc.value then