[svn] r6332: nemerle/trunk/ncc: CompilationOptions.n STATELESS-TODO
completion/CodeCompletionEngine.n gene...
malekith
svnadmin at nemerle.org
Wed May 24 21:16:35 CEST 2006
Log:
Yet more static killing.
Author: malekith
Date: Wed May 24 21:16:34 2006
New Revision: 6332
Modified:
nemerle/trunk/ncc/CompilationOptions.n
nemerle/trunk/ncc/STATELESS-TODO
nemerle/trunk/ncc/completion/CodeCompletionEngine.n
nemerle/trunk/ncc/generation/Typer3.n
nemerle/trunk/ncc/hierarchy/TypeBuilder.n
nemerle/trunk/ncc/misc/Stats.n
nemerle/trunk/ncc/parsing/Utility.n
nemerle/trunk/ncc/passes.n
nemerle/trunk/ncc/typing/TyVar.n
Modified: nemerle/trunk/ncc/CompilationOptions.n
==============================================================================
--- nemerle/trunk/ncc/CompilationOptions.n (original)
+++ nemerle/trunk/ncc/CompilationOptions.n Wed May 24 21:16:34 2006
@@ -59,6 +59,7 @@
// do not unload external libraries in consecutive compilations
public mutable PersistentLibraries : bool;
public mutable MainClass : string;
+ public mutable DoPrintStats : bool;
public mutable LinkedResources : list [string];
public mutable EmbeddedResources : list [string];
@@ -119,6 +120,7 @@
PersistentLibraries = false;
DumpDecisionTree = false;
IndentationSyntax = false;
+ DoPrintStats = false;
LinkedResources = [];
EmbeddedResources = [];
ReferencedLibraries = [];
@@ -594,7 +596,7 @@
}),
Getopt.CliOption.Flag (name = "-stats", aliases = [], help = "NOHELP",
- handler = fun () { Stats.DoPrintStats = true; }),
+ handler = fun () { this.DoPrintStats = true; }),
Getopt.CliOption.String (name = "-main",
aliases = [],
Modified: nemerle/trunk/ncc/STATELESS-TODO
==============================================================================
--- nemerle/trunk/ncc/STATELESS-TODO (original)
+++ nemerle/trunk/ncc/STATELESS-TODO Wed May 24 21:16:34 2006
@@ -1,7 +1,5 @@
Modules:
- MacroClasses.implicit_ctx_name
-- Stats
-- Util.current_id
- Message
- Location_stack
- MacroColorizer
@@ -16,5 +14,3 @@
- TypesManagers.global_nr
- Location...
- LexerFile.store_comments
-- TyVar...
-
Modified: nemerle/trunk/ncc/completion/CodeCompletionEngine.n
==============================================================================
--- nemerle/trunk/ncc/completion/CodeCompletionEngine.n (original)
+++ nemerle/trunk/ncc/completion/CodeCompletionEngine.n Wed May 24 21:16:34 2006
@@ -236,7 +236,6 @@
this.LibrariesManager = LibraryReferenceManager (this, Options.LibraryPaths);
this.NameTree.namespace_tree.Clear ();
- Util.Init ();
this.Solver = Solver (this);
Options.Clear();
@@ -266,7 +265,6 @@
this.NameTree.Init ();
when (!Options.PersistentLibraries || this.LibrariesManager == null)
this.LibrariesManager = LibraryReferenceManager (this, Options.LibraryPaths);
- Util.Init ();
this.Solver = Solver (this);
Modified: nemerle/trunk/ncc/generation/Typer3.n
==============================================================================
--- nemerle/trunk/ncc/generation/Typer3.n (original)
+++ nemerle/trunk/ncc/generation/Typer3.n Wed May 24 21:16:34 2006
@@ -878,7 +878,7 @@
//Message.Debug ($"closure for $(current_local_fun.name) $(current_local_fun.closure_vars)");
if (current_local_fun.closure_vars.IsEmpty) []
else {
- Stats.FunctionClosures++;
+ Manager.Stats.FunctionClosures++;
def (new_tp, subst) = CopyFunTyparms (add_class_tyvars = true);
@@ -1241,7 +1241,7 @@
EmitFunctionalValue (fn : Fun_header, children : Queue [Typer3]) : TExpr
{
- Stats.FirstClassFunctions++;
+ Manager.Stats.FirstClassFunctions++;
def closures = fn.used_closures;
Util.cassert (fn.typarms.IsEmpty, $"should be handled in T2, $(fn.name)");
Modified: nemerle/trunk/ncc/hierarchy/TypeBuilder.n
==============================================================================
--- nemerle/trunk/ncc/hierarchy/TypeBuilder.n (original)
+++ nemerle/trunk/ncc/hierarchy/TypeBuilder.n Wed May 24 21:16:34 2006
@@ -102,7 +102,7 @@
this.TyManager = manager;
- Stats.AllTypeBuilders++;
+ Manager.Stats.AllTypeBuilders++;
this.pt_tydecl = td;
this.pt_name = td.ParsedName;
Modified: nemerle/trunk/ncc/misc/Stats.n
==============================================================================
--- nemerle/trunk/ncc/misc/Stats.n (original)
+++ nemerle/trunk/ncc/misc/Stats.n Wed May 24 21:16:34 2006
@@ -1,9 +1,9 @@
namespace Nemerle.Compiler
{
- module Stats
+ [ManagerAccess (ManagerClass.Instance)]
+ class StatsClass
{
- public mutable DoPrintStats = false;
public mutable PrintTemps = false;
public mutable AllTypeBuilders : int;
@@ -42,7 +42,7 @@
}
IO.print ("------------- END STATS ---------------\n");
}
- when (DoPrintStats)
+ when (Manager.Options.DoPrintStats)
dump ();
}
}
Modified: nemerle/trunk/ncc/parsing/Utility.n
==============================================================================
--- nemerle/trunk/ncc/parsing/Utility.n (original)
+++ nemerle/trunk/ncc/parsing/Utility.n Wed May 24 21:16:34 2006
@@ -54,18 +54,10 @@
public module Util
{
- mutable current_id : int;
-
- public Init () : void
- {
- current_id = 0;
-
- }
-
public next_id () : int
{
- current_id = current_id + 1;
- current_id
+ ManagerClass.Instance.Util_Id++;
+ ManagerClass.Instance.Util_Id
}
public ice['a] (msg : string) : 'a { throw ICE (msg) }
Modified: nemerle/trunk/ncc/passes.n
==============================================================================
--- nemerle/trunk/ncc/passes.n (original)
+++ nemerle/trunk/ncc/passes.n Wed May 24 21:16:34 2006
@@ -38,6 +38,7 @@
public SystemTypeCache : SystemTypeClass;
public InternalType : InternalTypeClass;
internal AttributeCompiler : AttributeCompilerClass;
+ internal Stats : StatsClass;
internal mutable Solver : Solver;
public mutable Hierarchy : TypesManager;
@@ -63,6 +64,24 @@
internal mutable Typer_checked_macro : NamespaceTree.Node;
internal mutable Typer_unchecked_macro : NamespaceTree.Node;
internal mutable Typer_yield_macro : NamespaceTree.Node;
+ internal mutable TyVar_reuse_queue : TyVar;
+ internal mutable TyVar_Id : int;
+ internal mutable Util_Id : int;
+
+
+ // won't be needed when we use this object only once
+ KillStatics () : void
+ {
+ Typer_checked_macro = null;
+ Typer_unchecked_macro = null;
+ Typer_yield_macro = null;
+ Typer_BetterTypeCache.Clear ();
+ StaticTyVarId = 0;
+ Typer_DT_Id = 0;
+ TyVar_Id = 0;
+ TyVar_reuse_queue = null;
+ Util_Id = 0;
+ }
#endregion
/// initialize pipelines with default values
@@ -75,6 +94,7 @@
InternalType = InternalTypeClass (this);
SystemTypeCache = SystemTypeClass (this);
AttributeCompiler = AttributeCompilerClass (this);
+ Stats = StatsClass ();
}
@@ -156,6 +176,7 @@
}
internal InitCompiler () : void {
+ KillStatics ();
Stats.Reset ();
Message.Init ();
MacroColorizer.Clear ();
@@ -168,7 +189,6 @@
MacrosRegistry = MacroRegistry (this);
when (shouldCreate (LibrariesManager))
LibrariesManager = LibraryReferenceManager (this, Options.LibraryPaths);
- Util.Init ();
Options.Validate ();
this.Solver = Solver (this);
if (Options.XmlDocOutputFileName != null)
Modified: nemerle/trunk/ncc/typing/TyVar.n
==============================================================================
--- nemerle/trunk/ncc/typing/TyVar.n (original)
+++ nemerle/trunk/ncc/typing/TyVar.n Wed May 24 21:16:34 2006
@@ -931,8 +931,8 @@
}
def store = next;
CopyFrom (next);
- store.next = reuse_queue;
- reuse_queue = store;
+ store.next = Manager.TyVar_reuse_queue;
+ Manager.TyVar_reuse_queue = store;
loop (Manager.Solver.serial_stack_top)
} else if (Manager.Solver.serial_stack [i] == serial) {}
else loop (i - 1)
@@ -953,16 +953,14 @@
}
- static mutable reuse_queue : TyVar;
-
-
static CopyTyVar (tv : TyVar) : TyVar
{
- if (reuse_queue == null)
+ def Manager = ManagerClass.Instance;
+ if (Manager.TyVar_reuse_queue == null)
TyVar (tv)
else {
- def res = reuse_queue;
- reuse_queue = reuse_queue.next;
+ def res = Manager.TyVar_reuse_queue;
+ Manager.TyVar_reuse_queue = Manager.TyVar_reuse_queue.next;
res.flags = Flags.None;
res.CopyFrom (tv);
res
@@ -1041,13 +1039,11 @@
#region Constructors (only internal)
- static mutable current_id : int;
-
internal this (man : ManagerClass)
{
Manager = man;
- id = current_id;
- ++current_id;
+ id = Manager.TyVar_Id;
+ ++Manager.TyVar_Id;
serial = Manager.Solver.top_serial;
flags = Flags.IsFresh;
}
@@ -1057,11 +1053,6 @@
Manager = other.Manager;
CopyFrom (other);
}
-
- static this ()
- {
- ManagerClass.Instance.OnInit += fun () { reuse_queue = null; }
- }
#endregion
More information about the svn
mailing list