In C# I’m loading and compiling a script like this:-

            _engine = Python.CreateEngine();
            _scope = _engine.CreateScope();

            _scriptSource = _engine.CreateScriptSourceFromFile(filename, 
Encoding.UTF7, SourceCodeKind.Statements);
            _compiledScript = _scriptSource.Compile();

(At some point in time my application will run the script by calling 
_compiledScript.Execute(_scope).)

I’ve also got a FileSystemWatcher watching the script file. When the file 
changes I recreate the ScriptSource and compile, basically executing those last 
two lines again. When I do this, _scriptSource.Compile() throws an 
ArgumentException (“Invalid argument valueParameter name: start”). The stack 
trace is below. It works if I re-create *everything* – the engine, scope, 
script source, compile, but this seems a bit a wasteful. Am I missing something?

Stack trace:-
   at Microsoft.Scripting.Utils.ContractUtils.Requires(Boolean precondition, 
String paramName)
   at Microsoft.Scripting.SourceUnit.GetCodeLines(Int32 start, Int32 count)
   at Microsoft.Scripting.SourceUnit.GetCodeLine(Int32 line)
   at Microsoft.Scripting.SyntaxErrorException..ctor(String message, SourceUnit 
sourceUnit, SourceSpan span, Int32 errorCode, Severity severity)
   at Microsoft.Scripting.Hosting.ErrorListenerProxySink.Add(SourceUnit 
sourceUnit, String message, SourceSpan span, Int32 errorCode, Severity severity)
   at IronPython.Compiler.Parser.CreateParserWorker(CompilerContext context, 
PythonOptions options, Boolean verbatim)
   at IronPython.Compiler.Parser.CreateParser(CompilerContext context, 
PythonOptions options)
   at IronPython.Runtime.PythonContext.ParseAndBindAst(CompilerContext context)
   at IronPython.Runtime.PythonContext.CompilePythonCode(SourceUnit sourceUnit, 
CompilerOptions options, ErrorSink errorSink)
   at IronPython.Runtime.PythonContext.CompileSourceCode(SourceUnit sourceUnit, 
CompilerOptions options, ErrorSink errorSink)
   at Microsoft.Scripting.SourceUnit.Compile(CompilerOptions options, ErrorSink 
errorSink)
   at Microsoft.Scripting.SourceUnit.Compile(ErrorSink errorSink)
   at Microsoft.Scripting.Hosting.ScriptSource.CompileInternal(CompilerOptions 
compilerOptions, ErrorListener errorListener)
   at Microsoft.Scripting.Hosting.ScriptSource.Compile()




Andrew Stephens

Senior Software Engineer

Nu Instruments Ltd



Email:  andrew.steph...@nu-ins.com
Tel:    +44 (0) 1978 661304
Fax:    +44 (0) 1978 664301
Web:    www.nu-ins.com<http://www.nu-ins.com>



[cid:d9eab3.png@3b3b5453.488676da]



Nu Instruments Ltd
Unit 74 Clywedog Road South
Wrexham Industrial Estate
Wrexham LL13 9XS
United Kingdom

Disclaimer

This message is confidential and may contain privileged information and is 
protected by copyright. If you are not the intended recipient you should not 
copy or disclose this message to anyone but should kindly notify the sender and 
delete the message. Opinions, conclusions and other information in this message 
which do not relate to the official business of Nu Instruments Ltd shall be 
understood as neither given nor endorsed by it. No contracts shall be concluded 
by means of this email. Neither the Company nor the sender accepts any 
responsibility or liability for any loss or damage arising from the presence of 
any computer virus or similar harmful code contained in this email or 
attachment/s.  It is your responsibility to scan this email and any 
attachments. The Company reserves the right to access and disclose all messages 
sent over its email system.

Nu Instruments Ltd is registered in England, No.: 3046042. Registered Office: 
Seacourt Tower, West Way, Oxford OX2 0FB. VAT No.: GB 616 3733 45
_______________________________________________
Ironpython-users mailing list
Ironpython-users@python.org
https://mail.python.org/mailman/listinfo/ironpython-users

Reply via email to