My Clojure.dll shouldn't break ngen. I ilmerge'd it from AOT compiled assemblies - it doesn't use embedded assemblies which would break ngen. For me ngen seems to work fine. Open up the Clojure.dll from nuget in Ilspy or DotPeek to see how it's done. Btw, I just posted a new build on nuget today in preparation for hopefully an official public release soon - I'm hoping this will be possible even next week. I'll leave this build unlisted under the assumption that we can make it official quite soon. See here: https://nuget.org/packages/Clojure/
On Fri, Mar 1, 2013 at 6:57 PM, Rainer Schuster <schuster-rai...@web.de>wrote: > Btw. I like how you package all the clojure assemblies into clojure.dll, > very smart. But that'll break ngen speed up, doesn't it? Atm. I'm running a > native x86 image of clojure-clr (1.4.1) which is pretty descent, regarding > the startup. I'll try building a ngened versio of your current fork and > running nlein as a module > > Am Samstag, 2. März 2013 00:48:28 UTC+1 schrieb Rainer Schuster: > >> Thx and great work. I have a working nlein.exe ... and had serveral >> issues so far. >> >> First of all: I"m using VS2012. Don't this is not an issue. >> >> 1. your packages.config from Bootstrap has the following content >> >> <?xml version="1.0" encoding="utf-8"?> >> <packages> >> <package id="Clojure" version="1.4.0.1" targetFramework="net40-Client" >> /> >> <package id="IronPython" version="2.7.3" targetFramework="net40-Client" >> /> >> <package id="Mono.Cecil" version="0.9.5.4" >> targetFramework="net40-Client" /> >> <package id="Nuget.Core" version="2.3.0-alpha002" >> targetFramework="net40-Client" /> >> </packages> >> >> 2. I assume, you created your a nuget and added it to a local repo. I >> don't have one and don't know what version you are using. >> 3. I deleted the Clojure and Nuget.Core dependency. Using Stable >> Nuget.Core Version 2.2.0 but thats not an issue. >> 4. cloned YOUR clojure master (and setup DLR and test dependencies as >> described in the clojure-clr wiki) >> 5. compiled 1.5.0-master-SNAPSHOT >> 6. Added the reference for clojure.dll from output dir to the Bootstrap >> solution >> 7. Compiled Bootstrap >> 8. Microsoft.Scripting is missing (not referenced, and therefore not >> copied over to the output dir). >> 9. Copied Microsoft.Scripting.dll to the bin\Debug >> 10. running script\repl.bat throws: >> Unhandled Exception: System.**TypeInitializationException: The type >> initializer for 'Bootstrap.Program' threw an exception. ---> >> System.**TypeInitializationException: >> The type initializer for 'clojure.lang.RT' threw an exception. ---> >> System.IO.FileLoadException: Could not load file or assembly >> 'Microsoft.Scripting, Version=1.0.0.0, Culture=neutral, >> PublicKeyToken=null' or one of its dependencies. The located assembly's >> manifest definition does not match the assembly reference. (Exception from >> HRESULT: 0x80131040) >> at clojure.lang.RT..cctor() >> --- End of inner exception stack trace --- >> at clojure.lang.RT.var(String ns, String name) >> at Bootstrap.Program..cctor() in d:\Projects\Playground\** >> clojure\test\clr\clode_org\**nleiningen\Bootstrap\**Bootstrap\Program.cs:line >> 11 >> --- End of inner exception stack trace --- >> at Bootstrap.Program.Main(String[**] args) >> >> 11. removed the IronPython dependencies because the Microsoft.Scripting >> from clojure-clr is a different one you are using. The most recent version >> from IronPyhton 2.7.3 isn't not compatible with clojure. >> >> 12. added Microsoft.Scripting.dll and Microsoft.Dynamic.dll as Reference >> 13. finally executed your instructions (haha its friday and we have step >> 13) >> Clojure 1.5.0-master-SNAPSHOT >> user=> (use 'nleiningen.core) >> nil >> user=> (main "compile") >> Error: #<MissingMethodException System.MissingMethodException: Cannot >> find instance field/property/member name SourcePath >> at CallSite.Target(Closure , CallSite , Object ) >> at >> System.Dynamic.**UpdateDelegates.**UpdateAndExecute1[T0,TRet](**CallSite >> site, T0 arg0) >> at >> nleiningen/core$load_**dependencies__457.__interop_**SourcePath460(Object >> ) >> at nleiningen/core$load_**dependencies__457.invoke() in eval:line 70 >> at nleiningen/core$bootstrap_**project__590.invoke() in eval:line 165 >> at nleiningen/core$compile_**project__797.doInvoke(Object ) in >> eval:line 239 >> at clojure.lang.RestFn.invoke() >> at nleiningen/core$main$fn__873__**878.invoke() in eval:line 418 >> at nleiningen/core$main__881.**doInvoke(Object ) in eval:line 407> >> -1 >> >> >> 14. Added a (println asmref) to load-dependencies. output: >> #<ZipPackageAssemblyReference .NETFramework,Version=v4.0 Mono.Cecil.dll >> (lib\net40\Mono.Cecil.dll)> >> >> 16. Wtf... ok, get-dependency-assembly-**references uses nuget to >> resolve the dependencies >> >> 17. Used the 2.3.0-alpha002 Version again ... tada works ... >> >> >> >> Am Freitag, 1. März 2013 02:59:18 UTC+1 schrieb Aaron: >>> >>> Rainer, I've pushed some updates to nleiningen. Be sure you do a git >>> submodule update first. There is now a Bootstrap project that you can >>> build from VS 2010 - enable Nuget package restore on it first and then try >>> building. There is a private nuget package for Clojure.dll that it pulls. >>> Then you use script\repl.bat to start a repl (you must do this from the >>> root of the nleiningen dir). You should be again to compile nlein.exe >>> using the following commands: >>> >>> user=> (use 'nleiningen.core) >>> user=> (main "compile") >>> >>> Let me know if you get this to work or if you have any problems. Please >>> keep in mind that this is just a proof of concept really - the code is not >>> too well organized yet. >>> >> -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to a topic in the > Google Groups "Clojure" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/clojure/_7tqNWmQuGU/unsubscribe?hl=en. > To unsubscribe from this group and all its topics, send an email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.