[Ironpython-users] Recreate and compile a script in an existing engine instance?

Jeff Hardy jdhardy at gmail.com
Mon Jul 14 14:02:48 CEST 2014


Smells like a bug, because this should work. Can you open an issue (
https://ironpython.codeplex.com/WorkItem/Create) with a minimal test case
that reproduces it?

- Jeff


On Fri, Jul 11, 2014 at 11:58 AM, Andrew Stephens <
Andrew.Stephens at nu-ins.com> wrote:

>  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.Stephens at nu-ins.comTel: +44 (0) 1978 661304Fax: +44 (0)
> 1978 664301Web:www.nu-ins.com
>
>
>
>
>
> *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 at python.org
> https://mail.python.org/mailman/listinfo/ironpython-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20140714/0c265d85/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: d9eab3.png
Type: image/png
Size: 7347 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20140714/0c265d85/attachment.png>


More information about the Ironpython-users mailing list