diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index 2e0d1a3..6d8bfa8 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | |||
@@ -67,10 +67,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
67 | private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); | 67 | private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider(); |
68 | private static VBCodeProvider VBcodeProvider = new VBCodeProvider(); | 68 | private static VBCodeProvider VBcodeProvider = new VBCodeProvider(); |
69 | 69 | ||
70 | private static UInt64 scriptCompileCounter = 0; | 70 | private static int instanceID = new Random().Next(0, int.MaxValue); // Unique number to use on our compiled files |
71 | 71 | private static UInt64 scriptCompileCounter = 0; // And a counter | |
72 | private static int instanceID = new Random().Next(0, int.MaxValue); | ||
73 | // Implemented due to peer preassure --- will cause garbage in ScriptEngines folder ;) | ||
74 | 72 | ||
75 | public Common.ScriptEngineBase.ScriptEngine m_scriptEngine; | 73 | public Common.ScriptEngineBase.ScriptEngine m_scriptEngine; |
76 | public Compiler(Common.ScriptEngineBase.ScriptEngine scriptEngine) | 74 | public Compiler(Common.ScriptEngineBase.ScriptEngine scriptEngine) |
@@ -107,7 +105,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
107 | LanguageMapping.Add(enumCompileType.lsl.ToString(), enumCompileType.lsl); | 105 | LanguageMapping.Add(enumCompileType.lsl.ToString(), enumCompileType.lsl); |
108 | 106 | ||
109 | // Allowed compilers | 107 | // Allowed compilers |
110 | string allowComp = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl;cs;vb"); | 108 | string allowComp = m_scriptEngine.ScriptConfigSource.GetString("AllowedCompilers", "lsl,cs,vb"); |
111 | AllowedCompilers.Clear(); | 109 | AllowedCompilers.Clear(); |
112 | 110 | ||
113 | #if DEBUG | 111 | #if DEBUG |
@@ -115,7 +113,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
115 | #endif | 113 | #endif |
116 | 114 | ||
117 | 115 | ||
118 | foreach (string strl in allowComp.Split(';')) | 116 | foreach (string strl in allowComp.Split(',')) |
119 | { | 117 | { |
120 | string strlan = strl.Trim(" \t".ToCharArray()).ToLower(); | 118 | string strlan = strl.Trim(" \t".ToCharArray()).ToLower(); |
121 | if (!LanguageMapping.ContainsKey(strlan)) | 119 | if (!LanguageMapping.ContainsKey(strlan)) |
@@ -299,6 +297,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
299 | string OutFile = | 297 | string OutFile = |
300 | Path.Combine("ScriptEngines", | 298 | Path.Combine("ScriptEngines", |
301 | FilePrefix + "_compiled_" + instanceID.ToString() + "_" + scriptCompileCounter.ToString() + ".dll"); | 299 | FilePrefix + "_compiled_" + instanceID.ToString() + "_" + scriptCompileCounter.ToString() + ".dll"); |
300 | #if DEBUG | ||
301 | m_scriptEngine.Log.Debug(m_scriptEngine.ScriptEngineName, "Starting compile of \"" + OutFile + "\"."); | ||
302 | #endif | ||
302 | try | 303 | try |
303 | { | 304 | { |
304 | File.Delete(OutFile); | 305 | File.Delete(OutFile); |
@@ -313,14 +314,16 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
313 | // DEBUG - write source to disk | 314 | // DEBUG - write source to disk |
314 | if (WriteScriptSourceToDebugFile) | 315 | if (WriteScriptSourceToDebugFile) |
315 | { | 316 | { |
317 | string srcFileName = FilePrefix + "_source_" + Path.GetFileNameWithoutExtension(OutFile) + ext; | ||
316 | try | 318 | try |
317 | { | 319 | { |
318 | File.WriteAllText( | 320 | File.WriteAllText( |
319 | Path.Combine("ScriptEngines", FilePrefix + "_source_" + Path.GetFileNameWithoutExtension(OutFile) + ext), | 321 | Path.Combine("ScriptEngines", srcFileName), |
320 | Script); | 322 | Script); |
321 | } | 323 | } |
322 | catch | 324 | catch (Exception ex) |
323 | { | 325 | { |
326 | m_scriptEngine.Log.Error(m_scriptEngine.ScriptEngineName, "Exception while trying to write script source to file \"" + srcFileName + "\": " + ex.ToString()); | ||
324 | } | 327 | } |
325 | } | 328 | } |
326 | 329 | ||
@@ -346,7 +349,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
346 | parameters.GenerateExecutable = false; | 349 | parameters.GenerateExecutable = false; |
347 | parameters.OutputAssembly = OutFile; | 350 | parameters.OutputAssembly = OutFile; |
348 | parameters.IncludeDebugInformation = CompileWithDebugInformation; | 351 | parameters.IncludeDebugInformation = CompileWithDebugInformation; |
349 | parameters.WarningLevel = 4; | 352 | parameters.WarningLevel = 1; // Should be 4? |
350 | parameters.TreatWarningsAsErrors = false; | 353 | parameters.TreatWarningsAsErrors = false; |
351 | 354 | ||
352 | CompilerResults results; | 355 | CompilerResults results; |