本文整理汇总了C#中ProtoCore.Options类的典型用法代码示例。如果您正苦于以下问题:C# Options类的具体用法?C# Options怎么用?C# Options使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Options类属于ProtoCore命名空间,在下文中一共展示了Options类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DevRun
static void DevRun()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));
#if DEBUG
core.Options.DumpByteCode = true;
core.Options.Verbose = true;
#else
core.Options.DumpByteCode = false;
core.Options.Verbose = false;
#endif
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptTestRunner runner = new ProtoScriptTestRunner();
ExecutionMirror mirror = runner.LoadAndExecute(@"C:\Users\Yu\dev\github\test.ds", core);
long ms = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine(ms);
Console.ReadLine();
}
示例2: TestCompilerAndRuntimeComponent01
public void TestCompilerAndRuntimeComponent01()
{
String code =
@"
a = 10;
";
// Compile core
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Compilers.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.kImperative, new ProtoImperative.Compiler(core));
ProtoScriptRunner runner = new ProtoScriptRunner();
// Compiler instance
ProtoCore.DSASM.Executable dsExecutable;
bool compileSucceeded = runner.CompileMe(code, core, out dsExecutable);
Assert.IsTrue(compileSucceeded == true);
// Pass compile data to the runtime
RuntimeCore runtimeCore = new RuntimeCore(core.Heap);
runtimeCore.SetProperties(core.Options, dsExecutable);
// Runtime
ExecutionMirror mirror = runner.ExecuteMe(runtimeCore);
Obj o = mirror.GetValue("a");
示例3: DevRun
static void DevRun()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Compilers.Add(ProtoCore.Language.Associative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.Imperative, new ProtoImperative.Compiler(core));
#if DEBUG
core.Options.DumpByteCode = true;
core.Options.Verbose = true;
#else
core.Options.DumpByteCode = false;
core.Options.Verbose = false;
#endif
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptRunner runner = new ProtoScriptRunner();
// Assuming current directory in test/debug mode is "...\Dynamo\bin\AnyCPU\Debug"
runner.LoadAndExecute(@"..\..\..\test\core\dsevaluation\DSFiles\test.ds", core);
long ms = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine(ms);
Console.ReadLine();
}
示例4: Run
static void Run(string filename, bool verbose)
{
if (!File.Exists(filename))
{
Console.WriteLine("Cannot find file " + filename);
return;
}
var profilingThread = new Thread(new ThreadStart(CollectingMemory));
profilingThread.Start();
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Compilers.Add(ProtoCore.Language.Associative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.Imperative, new ProtoImperative.Compiler(core));
core.Options.DumpByteCode = verbose;
core.Options.Verbose = verbose;
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptRunner runner = new ProtoScriptRunner();
runner.LoadAndExecute(filename, core);
long ms = sw.ElapsedMilliseconds;
sw.Stop();
done = true;
profilingThread.Join();
Console.WriteLine("{0},{1},{2}", ms, maxNetMemory, maxPrivateWorkingSet);
}
示例5: TestCompilerAndRuntimeComponent01
public void TestCompilerAndRuntimeComponent01()
{
String code =
@"
// Any DS code goes here
a = 10;
";
// Compile core
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Compilers.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.kImperative, new ProtoImperative.Compiler(core));
ProtoScriptRunner runner = new ProtoScriptRunner();
// Compile
bool compileSucceeded = runner.CompileAndGenerateExe(code, core);
Assert.IsTrue(compileSucceeded == true);
// Execute
RuntimeCore runtimeCore = runner.ExecuteVM(core);
// Verify
ExecutionMirror mirror = new ExecutionMirror(runtimeCore.CurrentExecutive.CurrentDSASMExec, runtimeCore);
示例6: TestRunnerRunOnly
internal static ProtoCore.Core TestRunnerRunOnly(string code, out RuntimeCore runtimeCore)
{
ProtoCore.Core core;
ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScriptTestRunner();
// Specify some of the requirements of IDE.
var options = new ProtoCore.Options();
options.ExecutionMode = ProtoCore.ExecutionMode.Serial;
options.SuppressBuildOutput = false;
string testPath = @"..\..\..\test\Engine\ProtoTest\ImportFiles\";
options.IncludeDirectories.Add(testPath);
core = new ProtoCore.Core(options);
core.Compilers.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.kImperative, new ProtoImperative.Compiler(core));
fsr = new ProtoScriptTestRunner();
DLLFFIHandler.Register(FFILanguage.CSharp, new CSModuleHelper());
CLRModuleType.ClearTypes();
//Run
fsr.Execute(code, core, out runtimeCore);
return core;
}
示例7: Run
static void Run(string filename, bool verbose)
{
if (!File.Exists(filename))
{
Console.WriteLine("Cannot find file " + filename);
return;
}
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Compilers.Add(ProtoCore.Language.Associative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.Imperative, new ProtoImperative.Compiler(core));
core.Options.DumpByteCode = verbose;
core.Options.Verbose = verbose;
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptRunner runner = new ProtoScriptRunner();
runner.LoadAndExecute(filename, core);
long ms = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine(ms);
}
示例8: GetCallSite
/// <summary>
/// Retrieves an existing instance of a callsite associated with a UID
/// It creates a new callsite if non was found
/// </summary>
/// <param name="core"></param>
/// <param name="uid"></param>
/// <returns></returns>
public CallSite GetCallSite(GraphNode graphNode,
int classScope,
string methodName,
Executable executable,
int runningBlock,
Options options,
RuntimeStatus runtimeStatus
)
{
Validity.Assert(null != executable.FunctionTable);
CallSite csInstance = null;
// TODO Jun: Currently generates a new callsite for imperative and
// internally generated functions.
// Fix the issues that cause the cache to go out of sync when
// attempting to cache internal functions. This may require a
// secondary callsite cache for internal functions so they dont
// clash with the graphNode UID key
var language = executable.instrStreamList[runningBlock].language;
bool isImperative = language == Language.kImperative;
bool isInternalFunction = CoreUtils.IsInternalFunction(methodName);
if (isInternalFunction || isImperative)
{
csInstance = new CallSite(classScope,
methodName,
executable.FunctionTable,
options.ExecutionMode);
}
else if (!CallsiteCache.TryGetValue(graphNode.CallsiteIdentifier, out csInstance))
{
// Attempt to retrieve a preloaded callsite data (optional).
var traceData = GetAndRemoveTraceDataForNode(graphNode.guid);
csInstance = new CallSite(classScope,
methodName,
executable.FunctionTable,
options.ExecutionMode,
traceData);
CallsiteCache[graphNode.CallsiteIdentifier] = csInstance;
CallSiteToNodeMap[csInstance.CallSiteID] = graphNode.guid;
ASTToCallSiteMap[graphNode.AstID] = csInstance;
}
if (graphNode != null && !CoreUtils.IsDisposeMethod(methodName))
{
csInstance.UpdateCallSite(classScope, methodName);
if (options.IsDeltaExecution)
{
runtimeStatus.ClearWarningForExpression(graphNode.exprUID);
}
}
return csInstance;
}
示例9: TestRunnerRunOnly
internal static ProtoCore.Core TestRunnerRunOnly(string includePath, string code,
Dictionary<int, List<string>> map, string geometryFactory,
string persistentManager, out ExecutionMirror mirror, out RuntimeCore runtimeCoreOut)
{
ProtoCore.Core core;
ProtoScript.Runners.ProtoScriptTestRunner fsr = new ProtoScriptTestRunner();
ProtoScript.Config.RunConfiguration runnerConfig;
// Specify some of the requirements of IDE.
var options = new ProtoCore.Options();
options.ExecutionMode = ProtoCore.ExecutionMode.Serial;
options.SuppressBuildOutput = false;
options.WatchTestMode = true;
// Cyclic dependency threshold is lowered from the default (2000)
// as this causes the test framework to be painfully slow
options.kDynamicCycleThreshold = 5;
// Pass the absolute path so that imported filepaths can be resolved
// in "FileUtils.GetDSFullPathName()"
includePath = Path.GetDirectoryName(includePath);
options.IncludeDirectories.Add(includePath);
//StreamWriter sw = File.CreateText(executionLogFilePath);
TextOutputStream fs = new TextOutputStream(map);
core = new ProtoCore.Core(options);
core.Configurations.Add(ConfigurationKeys.GeometryXmlProperties, true);
//core.Configurations.Add(ConfigurationKeys.GeometryFactory, geometryFactory);
//core.Configurations.Add(ConfigurationKeys.PersistentManager, persistentManager);
// By specifying this option we inject a mock Executive ('InjectionExecutive')
// that prints stackvalues at every assignment statement
// by overriding the POP_handler instruction - pratapa
//core.ExecutiveProvider = new InjectionExecutiveProvider();
core.BuildStatus.MessageHandler = fs;
core.Compilers.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Compiler(core));
core.Compilers.Add(ProtoCore.Language.kImperative, new ProtoImperative.Compiler(core));
runnerConfig = new ProtoScript.Config.RunConfiguration();
runnerConfig.IsParrallel = false;
DLLFFIHandler.Register(FFILanguage.CSharp, new CSModuleHelper());
//Run
mirror = fsr.Execute(code, core, out runtimeCoreOut);
//sw.Close();
return core;
}
示例10: DevRun
static void DevRun()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));
#if DEBUG
core.Options.DumpByteCode = true;
core.Options.Verbose = true;
#else
core.Options.DumpByteCode = false;
core.Options.Verbose = false;
#endif
#if __RUN_TESTFILE
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptTestRunner runner = new ProtoScriptTestRunner();
ExecutionMirror mirror = runner.LoadAndExecute(@"D:\jun\AutodeskResearch\git\designscript\Scripts\jun.ds", core);
#else
// Insert test cases here
//ProtoTest.LiveRunner.MicroFeatureTests test = new ProtoTest.LiveRunner.MicroFeatureTests();
//test.Setup();
//test.TestPythonCodeExecution();
ProtoTest.Associative.MicroFeatureTests test = new ProtoTest.Associative.MicroFeatureTests();
test.Setup();
test.TestUpdateRedefinition01();
//IntegrationTests.IncrementingTraceTests test = new IntegrationTests.IncrementingTraceTests();
//test.Setup();
//test.IntermediateValueIncrementerIDTestUpdate1DReplicated();
//ProtoFFITests.CSFFIDispose test = new ProtoFFITests.CSFFIDispose();
//test.Setup();
//test.IntermediateValueIncrementerIDTestUpdate1DReplicated();
// test.Dispose_FFITarget_Overridden();
//ProtoTest.EventTests.PropertyChangedNotifyTest test = new ProtoTest.EventTests.PropertyChangedNotifyTest();
//test.Setup();
//test.RunPropertyChangedNegative();
#endif
long ms = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine(ms);
Console.ReadLine();
}
示例11: Run
static void Run(string filename, bool verbose)
{
if (!File.Exists(filename))
{
Console.WriteLine("Cannot find file " + filename);
return;
}
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));
core.Options.DumpByteCode = verbose;
core.Options.Verbose = verbose;
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptTestRunner runner = new ProtoScriptTestRunner();
ExecutionMirror mirror = runner.LoadAndExecute(filename, core);
}
示例12: RuntimeCore
public RuntimeCore(Heap heap, Options options = null, Executable executable = null)
{
// The heap is initialized by the core and is used to allocate strings
// Use the that heap for runtime
Validity.Assert(heap != null);
this.Heap = heap;
RuntimeMemory = new RuntimeMemory(Heap);
this.Options = options;
InterpreterProps = new Stack<InterpreterProperties>();
ReplicationGuides = new List<List<ReplicationGuide>>();
AtLevels = new List<AtLevel>();
executedAstGuids = new HashSet<Guid>();
RunningBlock = 0;
ExecutionState = (int)ExecutionStateEventArgs.State.Invalid; //not yet started
ContinuationStruct = new ContinuationStructure();
watchStack = new List<StackValue>();
watchFramePointer = Constants.kInvalidIndex;
WatchSymbolList = new List<SymbolNode>();
FunctionCallDepth = 0;
cancellationPending = false;
watchClassScope = Constants.kInvalidIndex;
ExecutionInstance = CurrentExecutive = new Executive(this);
ExecutiveProvider = new ExecutiveProvider();
RuntimeStatus = new ProtoCore.RuntimeStatus(this);
StartPC = Constants.kInvalidPC;
RuntimeData = new ProtoCore.RuntimeData();
DSExecutable = executable;
Mirror = null;
}
示例13: DevRun
static void DevRun()
{
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = new Core(opts);
core.Executives.Add(ProtoCore.Language.kAssociative, new ProtoAssociative.Executive(core));
core.Executives.Add(ProtoCore.Language.kImperative, new ProtoImperative.Executive(core));
#if DEBUG
core.Options.DumpByteCode = true;
core.Options.Verbose = true;
#else
core.Options.DumpByteCode = false;
core.Options.Verbose = false;
#endif
#if __RUN_TESTFILE
ProtoFFI.DLLFFIHandler.Register(ProtoFFI.FFILanguage.CSharp, new ProtoFFI.CSModuleHelper());
ProtoScriptTestRunner runner = new ProtoScriptTestRunner();
ExecutionMirror mirror = runner.LoadAndExecute(@"defectverify.ds", core);
#else
ProtoTest.GraphCompiler.MicroFeatureTests test = new ProtoTest.GraphCompiler.MicroFeatureTests();
test.Setup();
test.GraphILTest_Assign02();
#endif
long ms = sw.ElapsedMilliseconds;
sw.Stop();
Console.WriteLine(ms);
Console.ReadLine();
}
示例14: SetProperties
public void SetProperties(Options runtimeOptions, Executable executable, DebugProperties debugProps = null, ProtoCore.Runtime.Context context = null, Executable exprInterpreterExe = null)
{
this.Context = context;
this.DSExecutable = executable;
this.Options = runtimeOptions;
this.DebugProps = debugProps;
this.ExprInterpreterExe = exprInterpreterExe;
}
示例15: Setup
public void Setup()
{
var opts = new Options();
opts.ExecutionMode = ExecutionMode.Serial;
ProtoCore.Core core = thisTest.SetupTestCore();
}