I think there's more general problem with my setup, as now I've detected a crash when I am using function value in lambda expression:<div><br></div><div>    var list = new List<int> { 1, 2, 3 };</div><div>    Func<int, bool> test = i => i % 2 == 0;</div>
<div>    list.Count(i => test(i)); // crash</div><div>    list.Count(test); // fine</div><div class="gmail_extra"><br><br><div class="gmail_quote">On 24 November 2012 23:21, Bartosz Przygoda <span dir="ltr"><<a href="mailto:bprzygoda@gmail.com" target="_blank">bprzygoda@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I've put the code and binaries needed to reproduce this issue under this repository: <a href="https://github.com/bprzygoda/mono-dlr-repro" target="_blank">https://github.com/bprzygoda/mono-dlr-repro</a><div>
<br></div><div>Folder structure:</div>
<div><i>lib</i>: binaries from mono 3.0.1 distribution (minimal set)</div><div><i>managed</i>: managed-part of the repro, the executable is also contained in root directory, built with vs2012</div><div><br></div><div>Files:</div>

<div><i>mono-2.0.dll, Mono.CSharp.dll</i> - from 3.0.1 distribution</div><div class="HOEnZb"><div class="h5"><div><br></div><div><br><div class="gmail_extra"><br><br><div class="gmail_quote">On 23 November 2012 23:13, Marek Safar <span dir="ltr"><<a href="mailto:marek.safar@gmail.com" target="_blank">marek.safar@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hello,<div><br><div class="gmail_extra"><div class="gmail_quote">

<div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>I'm currently implementing REPL functionality in my app that embeds mono runtime (3.0.1), and I've encountered some issues when evaluating code that contains dynamic invocation.</div><div><br>
</div><div>For example, consider this simple dynamic class:</div><div><br></div><div><div><span style="white-space:pre-wrap">   </span>public class Foo : DynamicObject {</div><div><span style="white-space:pre-wrap">               </span>public override bool TryGetMember(GetMemberBinder binder, out object result)<span style="white-space:pre-wrap"> </span>{</div>



<div><span style="white-space:pre-wrap">                  </span>result = 5;</div><div><span style="white-space:pre-wrap">                      </span>return true;</div><div><span style="white-space:pre-wrap">             </span>}</div><div><span style="white-space:pre-wrap">        </span>}</div>



</div><div><br></div><div>The following Evaluator initialization:</div><div><br></div><div><div>        var settings = new CompilerSettings();</div><div>        var printer = new ConsoleReportPrinter();</div><div>        eval = new Evaluator(new CompilerContext(settings, printer));</div>



<div>        eval.ReferenceAssembly(typeof(REPL).Assembly);</div><div>        eval.Run("using System;");</div></div><div><br></div><div>And the evaluation</div><div><br></div><div>        dynamic f = new Program.Foo();</div>



<div>        f.Whatever;</div><div><br></div><div>gives following error:</div><div><br></div><div><div>error CS0518: The predefined type Microsoft.CSharp.RuntimeBinder.Binder' is not defined or imported (1,4): error CS1969: Dynamic operation cannot be compiled without `Microsoft.CSharp.dll' assembly reference.</div>



</div><div><br></div></blockquote><div><br></div></div><div>This is strange, are you embedding correct runtime version (4.0) ?</div><div><br></div><div>I have tried to cook full sample based on your code and it works without error for me as a standalone app.</div>


<div><br></div><div><div>using System;</div><div>using System.Dynamic;</div><div>using Mono.CSharp;</div><div><div><br></div><div>public class Foo : DynamicObject</div><div>{</div><div>    public override bool TryGetMember(GetMemberBinder binder, out object result)</div>


<div>    {</div></div><div>        Console.WriteLine("called");</div><div><div>        result = 5;</div><div>        return true;</div><div>    }</div><div>}</div><div><br></div></div><div>class C</div>
<div>{</div><div>    public static void Main()</div><div>
<div>    {</div><div>        var settings = new CompilerSettings();</div><div>        var printer = new ConsoleReportPrinter();</div></div><div>        var eval = new Evaluator(new CompilerContext(settings, printer));</div>

<div>
        eval.ReferenceAssembly(typeof(Foo).Assembly);</div><div>        eval.Run("using System;");</div><div>        eval.Run("dynamic f = new Foo();");</div><div>        eval.Run("f.Whatever;");</div>


<div>    }</div><div>}</div></div><span><font color="#888888"><div><br></div><div>Marek</div></font></span></div></div></div>
</blockquote></div><br></div></div>
</div></div></blockquote></div><br></div>