[armedbear-ticket] [armedbear] #35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO
#35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO -------------------------+-------------------------------------------------- Reporter: dmiles | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: 0.13 Component: component1 | Version: 1.0 Keywords: ikvm | -------------------------+-------------------------------------------------- HOWTO: First Patch the ABCL sources: [root@titan abcl]# patch -p0 < svn11486-ikvm.patch (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/Complex.java (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/IkvmSite.java (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/Lisp.java (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/Load.java (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/Nil.java (Stripping trailing CRs from patch.) patching file src/org/armedbear/lisp/Pathname.java Clean: [root@titan abcl]# rm -rf build dist Build ABCL: [root@titan abcl]#ant abcl.dist .... Download the latest binaries from http://ikvm.net I use the "stable" ones: 0.36.0.11 Unzip the binaries to a $ABCL_HOME/bin/ Update MON_PATH: export MONO_PATH=.:bin Build the ABCL.Net.dll and abcl.exe alias ikvmc='mono bin/ikvmc.exe ' [root@titan abcl]# ikvmc -compressresources -recurse:build/classes/ -out:ABCL.Net.dll Note IKVMC0003: automatically adding reference to "/development/mirrors /ABCL-SVN/trunk/abcl/bin/IKVM.OpenJDK.ClassLibrary.dll" [root@titan abcl]# ikvmc -r:ABCL.Net.dll -main:org.armedbear.lisp.Main -out:abcl.exe Note IKVMC0003: automatically adding reference to "bin/IKVM.OpenJDK.ClassLibrary.dll" Run it: [root@titan abcl]# mono abcl.exe Armed Bear Common Lisp 0.13.0-dev (built Fri Dec 26 2008 19:15:42 PST) Java 1.6.0 Jeroen Frijters IKVM.NET Low-level initialization completed in 0.159 seconds. Startup completed in 3.067 seconds. Type ":help" for a list of available commands. CL-USER(1): *FEATURES* (:IKVM :X86 :JAVA-1.6 :ARMEDBEAR :ABCL :COMMON-LISP :ANSI-CL) I use the following .dll in a C# project at http://code.google.com/p/opensim4opencog/source/detail?r=28 Have fun.. how soon can we just have this patch applied to ABCL src? -- Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/35> armedbear <http://common-lisp.net/project/armedbear> armedbear
#35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO --------------------------+------------------------------------------------- Reporter: dmiles | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: 0.13 Component: component1 | Version: 1.0 Resolution: | Keywords: ikvm --------------------------+------------------------------------------------- Comment(by dmiles): One note: before invoking: ikvmc -compressresources -recurse:build/classes/ -out:ABCL.Net.dll Do this: rm -f build/classes/org/armedbear/lisp/top-level.abcl rm -f build/classes/org/armedbear/lisp/top-level*.cls If you do not, there is a small problem when trying to jump to the toplevel stack frame introduced by the compiler that seems to be not present in the interpreter. org.armedbear.lisp.Go at org.armedbear.lisp.top_level_46._execute(top-level.lisp:439) at org.armedbear.lisp.ClosureTemplateFunction._execute (ClosureTemplateFunction.java:147) at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:56) so the above in fastforward mode it's: patch -p0 < svn11486-ikvm.patch rm -rf build dist ant abcl.dist #optional# export MONO_PATH=.:bin #optional# alias ikvmc='mono bin/ikvmc.exe ' rm -f build/classes/org/armedbear/lisp/top-level.abcl rm -f build/classes/org/armedbear/lisp/top-level*.cls ikvmc -compressresources -recurse:build/classes/ -out:ABCL.Net.dll ikvmc -r:ABCL.Net.dll -main:org.armedbear.lisp.Main -out:abcl.exe mono abcl.exe -- Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/35#comment:1> armedbear <http://common-lisp.net/project/armedbear> armedbear
#35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO --------------------------+------------------------------------------------- Reporter: dmiles | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: 0.13 Component: component1 | Version: 1.0 Resolution: | Keywords: ikvm --------------------------+------------------------------------------------- Comment(by dmiles): Oh heck, just one more note: Since some of us on win32/win64 I better show what DLLs are needed in the ABCL dir: IKVM.Runtime.dll and IKVM.OpenJDK.ClassLibrary.dll Otherwise a MS Windows user gets an error: T:\development\mirrors\ABCL-SVN\trunk\abcl>abcl.exe Unhandled Exception: System.TypeInitializationException: The type initializer for "java.lang.ExceptionHelper" threw an exception. ---> System.IO.FileNotFoundException: File or assembly name IKVM.Runtime, or one of its dependencies, was not found. File name: "IKVM.Runtime" at java.lang.ExceptionHelper.SafeGetEnvironmentVariable(String ) at java.lang.ExceptionHelper..cctor() SO they must T:\development\mirrors\ABCL-SVN\trunk\abcl>copy bin\IKVM.OpenJDK.ClassLibrary.dll . 1 file(s) copied. T:\development\mirrors\ABCL-SVN\trunk\abcl>copy bin\IKVM.Runtime.dll . 1 file(s) copied. T:\development\mirrors\ABCL-SVN\trunk\abcl>abcl.exe Armed Bear Common Lisp 0.13.0-dev (built Fri Dec 26 2008 19:15:42 PST) Java 1.6.0 Jeroen Frijters IKVM.NET Low-level initialization completed in 0.721 seconds. Startup completed in 19.534 seconds. Type ":help" for a list of available commands. CL-USER(1): And now they have a happy "native?" abcl.exe in Windows with no need for Java installed! -- Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/35#comment:2> armedbear <http://common-lisp.net/project/armedbear> armedbear
#35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO --------------------------+------------------------------------------------- Reporter: dmiles | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: 0.13 Component: other | Version: 1.0 Resolution: | Keywords: ikvm --------------------------+------------------------------------------------- Comment(by mevenson): Needs to be analyzed for incorporation into 0.13. At a minimum it needs a sponsor with commit rights to ABCL svn. Takers? -- Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/35#comment:3> armedbear <http://common-lisp.net/project/armedbear> armedbear
#35: ABCL.Net.dll -- Using IKVM-patch to make ABCL run on .NET and MONO --------------------------+------------------------------------------------- Reporter: dmiles | Owner: somebody Type: enhancement | Status: new Priority: major | Milestone: unscheduled Component: other | Version: 1.0 Resolution: | Keywords: ikvm --------------------------+------------------------------------------------- Changes (by ehuelsmann): * milestone: 0.13 => unscheduled Comment: Waiting for updated patch, given the amount of change on trunk, that would definitely be required. Switching to 'unscheduled': it's definitely not in 0.13 anymore. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/35#comment:4> armedbear <http://common-lisp.net/project/armedbear> armedbear
participants (1)
-
armedbear