Exemplo n.º 1
0
        public static void PerfTest()
        {
            MakePerfTestFile();
            var Arch  = new x86.x86Architecture();
            var Lang  = new Languages.Zinnia.ZinniaLanguage();
            var State = new CompilerState(null, Arch, Lang);

            State.SetOutput(new MemoryStream(), new MemoryStream());
            State.Entry  = "Main";
            State.Format = ImageFormat.MSCoff;

            var Times      = 10;
            var Files      = new[] { PerfTestFile };
            var Lines      = ZinniaBuilder.ReadLines(Files, State.TabSize);
            var Assemblies = new List <AssemblyPath>()
            {
                new AssemblyPath("ZinniaCore", true),
            };

            Console.WriteLine("Start");
            var Average = Environment.TickCount;
            var Minimum = int.MaxValue;

            for (var i = 0; i < Times; i++)
            {
                var Ms = Environment.TickCount;
                State.CodeOut.Seek(0, SeekOrigin.Begin);
                State.LibOut.Seek(0, SeekOrigin.Begin);

                if (State.Compile(Lines, Assemblies))
                {
                    Console.WriteLine(i + ": " + State.Strings["CompilingSucceded"]);
                }
                else
                {
                    Console.WriteLine(i + ": " + State.Strings["CompilingFailed"]);
                    State.Messages.WriteToConsole();
                    break;
                }

                Ms = Environment.TickCount - Ms;
                if (Ms < Minimum)
                {
                    Minimum = Ms;
                }
            }

            Average = Environment.TickCount - Average;
            Console.WriteLine("Minimum: {0}", Minimum);
            Console.WriteLine("Average: {0}", Average / Times);
            State.DisposeOutput();
        }
Exemplo n.º 2
0
        public bool CreateAssembly(CodeFile[] CodeFiles)
        {
            var RetValue = true;

            State.SetOutput(AsmFile, ZinniaLib);
            State.AssemblyName = Path.GetFileNameWithoutExtension(OutFile);

            if (State.Compile(CodeFiles, Assemblies, IncBins))
            {
                Console.WriteLine(State.Strings["CompilingSucceded"]);
                State.Messages.WriteToConsole();
            }
            else
            {
                Console.WriteLine(State.Strings["CompilingFailed"]);
                State.Messages.WriteToConsole();
                RetValue = false;
            }

            State.DisposeOutput();
            return(RetValue);
        }