Shantanu

The best way to get going right now with ClojureCLR is to build it from 
source.  The following is the process to build ClojureCLR on Linux 
(Assuming that the mono development environment is installed).  

1. Download: 
https://github.com/clojure/clojure-clr/archive/clojure-1.4.1.tar.gz
2. Untar clojure-1.4.1.tar.gz
3. Download the NuGet.exe commandline installer: 
http://nuget.codeplex.com/releases . Use the link under Available downloads 
"NuGet.exe Command Line". 
4. set up nuget as per these directions: 
http://monomvc.wordpress.com/2012/03/06/nuget-on-mono/

5. From the terminal in the "lib" directory under clojure-1.4.1 use "nuget" 
to download the dependencies like this:  

A. "nuget install DynamicLanguageRuntime.Net20.Unofficial"
B. "nuget install DynamicLanguageRuntime.Net40.Unofficial"
C. "nuget install NUnit"

6. Copy the assemblies from 
"lib/DynamicLanguageRuntime.Net20.Unofficial/lib/net20" to "lib/DLR/2.0"

7. Copy the assemblies from 
"lib/DynamicLanguageRuntime.Net40.Unofficial/lib/net40" to "lib/DLR/4.0"

8. In a text editor open the "Clojure.Compile.csproj" file located in 
"clojure-1.4.1/Clojure/Clojure.Compile".  Under the "<PostBuildEvent>" add 
"mono"  to the sections so it looks like this:

*---------------------------------Clojure.Compile.csproj 
Edit-------------------------------------------*
 <PostBuildEvent>mono "$(TargetPath)" 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</PostBuildEvent>  </PropertyGroup>
*---------------------------------Clojure.Compile.csproj 
Edit-------------------------------------------*

*---------------------------------NUnit 
Edit----------------------------------------------------------*
9. In a text editor open the "Clojure.Tests.csproj" file located in 
"clojure-1.4.1/Clojure/Clojure.Tests".   Change the "nunit.framework" 
configuration from:

Original Configuration
 <Reference Include="nunit.framework, Version=2.6.0.12051, Culture=neutral, 
PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
      
<HintPath>..\packages\NUnit.2.6.0.12054\lib\nunit.framework.dll</HintPath>
    </Reference> 

Change Configuration to this 
<Reference Include="nunit.framework">
      <HintPath>..\..\lib\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
    </Reference>
*---------------------------------NUnit 
Edit----------------------------------------------------------*

10. Finaly from the directory "clojure-clr-clojure-1.4.1/Clojure" run 
either:

MONO_IOMAP=all xbuild build.proj /target:Build /p:Configuration="Release 
4.0" /p:Platform="Any CPU"

or
MONO_IOMAP=all xbuild build.proj /target:Build /p:Configuration="Debug 4.0" 
/p:Platform="Any CPU"

After the build the binaries will be located in 
"clojure-clr-clojure-1.4.1/bin/4.0\{Release || Debug}"


I'm working on streamlining this for for ClojureCLR 1.5.0. Hope this helps.

-Robert



On Wednesday, December 19, 2012 5:37:10 PM UTC-5, Shantanu Kumar wrote:
>
> Here are the steps how to reproduce the issue on 32-bit Ubuntu 12.04:
>
> 1. lein new lein-clr foo
> 2. cd foo
> 3. # edit project.clj to download the dependencies using :clj-dep
> 4. lein clr -v compile :all
>
 

> 5. lein clr -v test
>
> It will show the exact commands being executed. Are the same Clojure 
> binaries supposed to work on 32-bit systems?
>
> Shantanu
>
> On Wednesday, 19 December 2012 13:19:55 UTC+5:30, Shantanu Kumar wrote:
>>
>> Thanks David, and sorry for the insufficient bug details. I tested this 
>> on 64-bit Ubuntu where it works fine; however, the problem shows up on 
>> 32-bit Ubuntu.
>>
>> I will post the exact steps in the evening on how to replicate the issue 
>> on 32-bit Ubuntu.
>>
>> Shantanu
>>
>> On Wednesday, 19 December 2012 02:00:53 UTC+5:30, dmiller wrote:
>>>
>>> Shantanu,
>>>
>>> I created an Ubuntu 12.10 VM running in VirtualBox on my Win7 PC.  
>>> I installed Mono 2.10.8.
>>> I downloaded the zip for ClojureCLR 1.4.0 Debug-4.0.
>>> Extracted.
>>> > mono Clojure.Main.exe  
>>> Runs with no problem.
>>>
>>> > mono Clojure.Compile.exe test.junk
>>> Runs with no problem.
>>>
>>> From the errors you report, I can only guess that some pre-1.4 DLLs are 
>>> being found somehow and loaded.  
>>> For example,  the field clojure.lang.RT.OutVar did not exist in 
>>> ClojureCLR 1.3.
>>>
>>> I do not know how else to help.
>>>
>>> -David
>>>  
>>>
>>>
>>> On Saturday, December 15, 2012 10:17:59 PM UTC-6, Shantanu Kumar wrote:
>>>>
>>>> This is when using ClojureCLR 1.4.0 Debug-4.0 version.
>>>>
>>>> Shantanu
>>>>
>>>> On Sunday, 16 December 2012 09:45:21 UTC+5:30, Shantanu Kumar wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I noticed the following ClojureCLR errors using Mono 2.10 on Ubuntu 
>>>>> 12.04 (they do not happen on Windows using either .NET or Mono):
>>>>>
>>>>> 1. when running Clojure.Compile.exe:
>>>>>
>>>>> Exception: System.MissingFieldException: Field 
>>>>> 'clojure.lang.RT.OutVar' not found.
>>>>>
>>>>> 2. when using Clojure.Main.exe:
>>>>>
>>>>> Exception: System.TypeLoadException: Could not load type 
>>>>> 'Clojure.CljMain' from assembly 'Clojure.Main, Version=1.0.0.0, 
>>>>> Culture=neutral, PublicKeyToken=null'.
>>>>>
>>>>> It would be great if anybody can let me know what's going on.
>>>>>
>>>>> Shantanu
>>>>>
>>>>

-- 
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

Reply via email to