ClojureCLR Build Error

121 views
Skip to first unread message

RobertLJ

unread,
Apr 17, 2012, 11:04:14 AM4/17/12
to Clojure, dmill...@gmail.com

Just wondering has anyone seen this build error from ClojureCLR (The
"Clojure.Compile" Project):

================================================

Error 3 The command ""C:\Users\Robert\bob-dev\bob-src\clojureCLR-
Builds\clojure-clojure-clr-nodlr-vs11\bin\4.0\Debug
\Clojure.Compile.exe" clojure.core clojure.core.protocols clojure.main
clojure.set clojure.zip clojure.walk clojure.stacktrace
clojure.template clojure.test clojure.test.tap clojure.test.junit
clojure.pprint clojure.clr.io clojure.repl clojure.clr.shell
clojure.string clojure.data clojure.reflect" exited with code 1.
Clojure.Compile

================================================





It appears that the build (Clojure.Compile.exe clojure.repl) is
failing with the error:

================================================

System.TypeLoadException: Method 'ReadAsyncInternal' on type
'clojure.repl.proxy$PushbackTextReader$0$_COMP_clojure.repl.clj' from
assembly 'clojure.repl.clj, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null' is overriding a method that is not visible from
that assembly.
at System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule
module, Int32 tk, ObjectHandleOnStack type)
at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
at System.Reflection.Emit.TypeBuilder.CreateType()
at clojure.lang.GenProxy.Generate(Type superclass, ISeq interfaces,
String className) in c:\Users\Robert\bob-dev\bob-src\clojureCLR-Builds
\clojure-clojure-clr-nodlr-vs11\Clojure\Clojure\CljCompiler
\GenProxy.cs:line 113
at clojure.lang.GenProxy.GenerateProxyClass(Type superclass, ISeq
interfaces, String className) in c:\Users\Robert\bob-dev\bob-src
\clojureCLR-Builds\clojure-clojure-clr-nodlr-vs11\Clojure\Clojure
\CljCompiler\GenProxy.cs:line 82
at clojure/core$generate_proxy__14614.invoke(Object , Object ) in
core_proxy.clj:line 55
at clojure/core$get_proxy_class__14625.doInvoke(Object ) in
core_proxy.clj:line 272
at clojure.lang.RestFn.applyTo(ISeq arglist) in c:\Users\Robert\bob-
dev\bob-src\clojureCLR-Builds\clojure-clojure-clr-nodlr-vs11\Clojure
\Clojure\Lib\RestFn.cs:line 194
at clojure/core$apply__10331.invoke(Object , Object ) in
core.clj:line 601
at clojure/core$proxy__14675.doInvoke(Object , Object , Object ,
Object , Object ) in core_proxy.clj:line 346
at clojure.lang.RestFn.invoke(Object arg1, Object arg2, Object
arg3, Object arg4, Object arg5) in c:\Users\Robert\bob-dev\bob-src
\clojureCLR-Builds\clojure-clojure-clr-nodlr-vs11\Clojure\Clojure\Lib
\RestFn.cs:line 618
at clojure.lang.Var.invoke(Object arg1, Object arg2, Object arg3,
Object arg4, Object arg5) in c:\Users\Robert\bob-dev\bob-src
\clojureCLR-Builds\clojure-clojure-clr-nodlr-vs11\Clojure\Clojure\Lib
\Var.cs:line 761
at clojure.lang.AFn.ApplyToHelper(IFn fn, ISeq argList) in c:\Users
\Robert\bob-dev\bob-src\clojureCLR-Builds\clojure-clojure-clr-nodlr-
vs11\Clojure\Clojure\Lib\AFn.cs:line 208
at clojure.lang.Var.applyTo(ISeq arglist) in c:\Users\Robert\bob-dev
\bob-src\clojureCLR-Builds\clojure-clojure-clr-nodlr-vs11\Clojure
\Clojure\Lib\Var.cs:line 874
at clojure.lang.Compiler.MacroexpandSeq1(ISeq form) in c:\Users
\Robert\bob-dev\bob-src\clojureCLR-Builds\clojure-clojure-clr-nodlr-
vs11\Clojure\Clojure\CljCompiler\Compiler.cs:line 893
at clojure.lang.Compiler.AnalyzeSeq(ParserContext pcon, ISeq form,
String name) in c:\Users\Robert\bob-dev\bob-src\clojureCLR-Builds
\clojure-clojure-clr-nodlr-vs11\Clojure\Clojure\CljCompiler
\Compiler.cs:line 1501, compiling: (clojure/repl.clj:149)

================================================

Any Info would be apreciated

Robert

dmiller

unread,
Apr 18, 2012, 9:59:34 PM4/18/12
to clo...@googlegroups.com, dmill...@gmail.com
We discovered this was due to building on the beta of .Net 4.5.  ClojureCLR has not been updated to 4.5 yet.

In this case, a new method was introduced in an interface, causing the proxy to have a missing method.

4.5 support coming 'real soon now'.

-David

Scott Thoman

unread,
Nov 12, 2012, 12:17:49 PM11/12/12
to clo...@googlegroups.com, dmill...@gmail.com
David,

Has there been any progress on this one?  I'm looking to use clojure on .Net 4.5 / Windows server 2012 for some prototyping and am also running into this issue.

I've got the source forked and project tweaked and loaded in VS2012.  I'm willing to fix it if it still needs fixing and, if so, any pointers toward the right spot in the code would be welcome.

/stt

dmiller

unread,
Nov 23, 2012, 3:18:25 PM11/23/12
to clo...@googlegroups.com, dmill...@gmail.com
Robert, Scott:

Fixed on the master branch.

Tripped up by CLR's strange convention for indicating method accessibility.

[sotto voce]: Just because a method has the Private flag set, don't think the IsPrivate property is true.  It can be IsAssembly instead. 
[Deeply felt]: Sigh.

-David





On Tuesday, April 17, 2012 10:04:14 AM UTC-5, RobertLJ wrote:

Just wondering has anyone seen this build error from ClojureCLR (The
"Clojure.Compile" Project):

================================================

 Error 3 The command ""C:\Users\Robert\bob-dev\bob-src\clojureCLR-
Builds\clojure-clojure-clr-nodlr-vs11\bin\4.0\Debug
\Clojure.Compile.exe" clojure.core clojure.core.protocols clojure.main
clojure.set clojure.zip  clojure.walk clojure.stacktrace
clojure.template clojure.test clojure.test.tap clojure.test.junit
clojure.pprint clojure.clr.io clojure.repl clojure.clr.shell
clojure.string clojure.data clojure.reflect" exited with code 1.
Clojure.Compile

================================================





It appears that the build (Clojure.Compile.exe clojure.repl) is
failing with the error:

================================================

System.TypeLoadException: Method 'ReadAsyncInternal' on type
'clojure.repl.proxy$PushbackTextReader$0$_COMP_clojure.repl.clj' from
assembly 'clojure.repl.clj, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=null' is overriding a method that is not visible from
that assembly.
 
Reply all
Reply to author
Forward
0 new messages