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.


Reply via email to