Ejemplo n.º 1
0
        protected void LoadAssembly(string filename, string platform, string includeDirectory = null)
        {
            Compiler.CompilerOptions.Architecture           = GetArchitecture(platform);
            Compiler.CompilerOptions.MultibootSpecification = MultibootSpecification.V1;

            Compiler.CompilerOptions.SearchPaths.Clear();
            Compiler.CompilerOptions.SourceFiles.Clear();

            Compiler.CompilerOptions.AddSearchPath(includeDirectory);
            Compiler.CompilerOptions.AddSearchPath(Path.GetDirectoryName(filename));

            Compiler.CompilerOptions.AddSourceFile(filename);
            Compiler.CompilerOptions.AddSourceFile("Mosa.Plug.Korlib.dll");
            Compiler.CompilerOptions.AddSourceFile("Mosa.Plug.Korlib." + platform + ".dll");

            var moduleLoader = new MosaModuleLoader();

            moduleLoader.AddSearchPaths(Compiler.CompilerOptions.SearchPaths);
            moduleLoader.LoadModuleFromFiles(Compiler.CompilerOptions.SourceFiles);

            var metadata = moduleLoader.CreateMetadata();

            var typeSystem = TypeSystem.Load(metadata);

            Compiler.Load(typeSystem);
        }
Ejemplo n.º 2
0
        protected void LoadAssembly(string filename, bool includeTestComponents, string platform)
        {
            Compiler.CompilerOptions.Architecture = GetArchitecture(cbPlatform.Text);

            var moduleLoader = new MosaModuleLoader();

            if (includeTestComponents)
            {
                moduleLoader.AddPrivatePath(System.IO.Directory.GetCurrentDirectory());
                moduleLoader.LoadModuleFromFile("mscorlib.dll");
                moduleLoader.LoadModuleFromFile("Mosa.Platform.Internal." + platform + ".dll");
                moduleLoader.LoadModuleFromFile("Mosa.Kernel.x86Test.dll");
            }

            moduleLoader.AddPrivatePath(Path.GetDirectoryName(filename));
            moduleLoader.LoadModuleFromFile(filename);

            var metadata = moduleLoader.CreateMetadata();

            Compiler.Load(TypeSystem.Load(metadata));

            UpdateTree();

            Stage = CompileStage.Loaded;
        }
Ejemplo n.º 3
0
        protected void CompileTestCode()
        {
            platform.InitializeSimulation(simAdapter);

            var moduleLoader = new MosaModuleLoader();

            moduleLoader.AddPrivatePath(System.IO.Directory.GetCurrentDirectory());
            moduleLoader.LoadModuleFromFile("mscorlib.dll");
            moduleLoader.LoadModuleFromFile("Mosa.Platform.Internal." + platform.Name + ".dll");
            moduleLoader.LoadModuleFromFile("Mosa.Test.Collection.dll");
            moduleLoader.LoadModuleFromFile("Mosa.Kernel." + platform.Name + "Test.dll");

            compiler.Load(TypeSystem.Load(moduleLoader.CreateMetadata()));

            //compiler.Execute();
            compiler.Execute(Environment.ProcessorCount);

            linker = compiler.Linker as SimLinker;

            //DumpSymbols();
            //simAdapter.SimCPU.Monitor.DebugOutput = true; // DEBUG OPTION

            Run <int>(string.Empty, "Default", "AssemblyInit", true);

            simAdapter.SimCPU.Monitor.DebugOutput = false;             // DEBUG OPTION
        }
Ejemplo n.º 4
0
        public void LoadAssembly(string filename)
        {
            var moduleLoader = new MosaModuleLoader();

            moduleLoader.AddPrivatePath(System.IO.Path.GetDirectoryName(filename));
            moduleLoader.LoadModuleFromFile(filename);

            Compiler.Load(TypeSystem.Load(moduleLoader.CreateMetadata()));

            assembliesView.UpdateTree();
        }
Ejemplo n.º 5
0
        public void Load()
        {
            lock (_lock)
            {
                var moduleLoader = new MosaModuleLoader();

                moduleLoader.AddSearchPaths(CompilerOptions.SearchPaths);
                moduleLoader.LoadModuleFromFiles(CompilerOptions.SourceFiles);

                var typeSystem = TypeSystem.Load(moduleLoader.CreateMetadata());

                Load(typeSystem);
            }
        }
Ejemplo n.º 6
0
        protected void LoadAssembly(string filename, string platform)
        {
            Compiler.CompilerOptions.Architecture = GetArchitecture(cbPlatform.Text);

            var moduleLoader = new MosaModuleLoader();

            moduleLoader.AddPrivatePath(Path.GetDirectoryName(filename));
            moduleLoader.LoadModuleFromFile(filename);

            var metadata = moduleLoader.CreateMetadata();

            Compiler.Load(TypeSystem.Load(metadata));

            UpdateTree();

            Stage = CompileStage.Loaded;
        }
Ejemplo n.º 7
0
        private void CompileTestCode()
        {
            platform.InitializeSimulation(simAdapter);

            var moduleLoader = new MosaModuleLoader();

            moduleLoader.AddPrivatePath(System.IO.Directory.GetCurrentDirectory());
            moduleLoader.LoadModuleFromFile("mscorlib.dll");
            moduleLoader.LoadModuleFromFile("Mosa.Runtime.dll");
            moduleLoader.LoadModuleFromFile("Mosa.Runtime." + platform.Name + ".dll");
            moduleLoader.LoadModuleFromFile("Mosa.Test.Collection.dll");
            moduleLoader.LoadModuleFromFile("Mosa.Kernel." + platform.Name + "Test.dll");

            Compiler.Load(TypeSystem.Load(moduleLoader.CreateMetadata()));

            //var threads = Compiler.CompilerOptions.UseMultipleThreadCompiler ? Environment.ProcessorCount : 1;
            //Compiler.Execute(threads);
            Compiler.Execute(Environment.ProcessorCount);
        }
Ejemplo n.º 8
0
        protected void LoadAssembly(string filename, string platform, string includeDirectory = null)
        {
            Compiler.CompilerOptions.Architecture = GetArchitecture(platform);

            var moduleLoader = new MosaModuleLoader();

            if (includeDirectory != null)
            {
                moduleLoader.AddPrivatePath(includeDirectory);
            }

            moduleLoader.AddPrivatePath(Path.GetDirectoryName(filename));
            moduleLoader.LoadModuleFromFile(filename);

            var metadata = moduleLoader.CreateMetadata();

            var typeSystem = TypeSystem.Load(metadata);

            Compiler.Load(typeSystem);
        }
Ejemplo n.º 9
0
 public CLRMetadata(MosaModuleLoader loader)
 {
     moduleLoader = loader;
 }
Ejemplo n.º 10
0
 public CLRMetadata(MosaModuleLoader loader)
 {
     moduleLoader = loader;
 }
Ejemplo n.º 11
0
 public MosaCompiler()
 {
     CompilerOptions = new CompilerOptions();
     CompilerTrace   = new CompilerTrace();
     ModuleLoader    = new MosaModuleLoader();
 }