Hey Jim<br><br>Please find attached the diff. It's not perfect (I've managed to lose what I think are unicode markers from some of the files, as well as some end-of-file newlines), but it should give you a good idea.<br>
<br>To sum up, I think this is the entire set of things I had to do to be able to compile a fresh check-out under both VS and rake:<br><br>1) Remove tf.exe from misc.rake<br>2) Remove the SIGNED defined constant from all csproj files<br>
3) Remove SignAssembly, AssemblyOriginatorKeyFile and DelaySign tags from all csproj files.<br>4) Set the PublicKeyToken to null on "Microsoft.Scripting" and "IronRuby" in /merlin/main/App.config<br>
<br>and also but not exactly related:<br>5) Copy /lib from my MRI into merlin\languages\ruby\ruby-1.8.6\lib<br><br><div class="gmail_quote">On Tue, Dec 9, 2008 at 8:43 AM, Jim Deville <span dir="ltr"><<a href="mailto:jdeville@microsoft.com">jdeville@microsoft.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="purple" lang="EN-US">
<div>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">I'd be interested in the diff. You should be able to go
into Vim, open the file, and run :set fileformat=unix followed by a :wq to save
it. That should convert line endings for you. I can't guarantee we'll
use it, but I'd like to see what you had to do.</span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Ir.exe in a Merlin environment should use the app.config
provided, which is why you needed to put your files in ruby-1.8.6\lib. Those
files are mirrored in Merlin\External\Languages\Ruby\ruby-redist. I'll
look into making app.config look there. </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">Before we close the SVN repository, and switch to Git as
primary, we will have a solution for the signing problem. I'll bring it
up on list once I have a better plan for it.</span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<div style="border-style: solid none none; border-color: rgb(181, 196, 223) -moz-use-text-color -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
<p><b><span style="font-size: 10pt;">From:</span></b><span style="font-size: 10pt;"> <a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>
[mailto:<a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>] <b>On Behalf Of </b>Terence Lewis<br>
<b>Sent:</b> Monday, December 08, 2008 10:05 PM<div><div></div><div class="Wj3C7c"><br>
<b>To:</b> <a href="mailto:ironruby-core@rubyforge.org" target="_blank">ironruby-core@rubyforge.org</a><br>
<b>Subject:</b> Re: [Ironruby-core] Trouble building from Visual Studio (git
repo)</div></div></span></p>
</div><div><div></div><div class="Wj3C7c">
<p> </p>
<p style="margin-bottom: 12pt;">I've actually just managed to
get this to work. I had to remove the 3 signing xml tags from every project in
the solution (not just the 3 Jimmy mentioned). I also had to remove the
definition of SIGNED from every project that had it (which wasn't all of them).
Once this was done, all projects built through without errors. I also had to
change App.Config in Ruby.Console to set the public key token to null on
Microsoft.Scripting and IronRuby, to get the exe to start-up, but now it does,
and I've successfully resolved my underlying issue (which was a load failure
while using test/unit in some ironruby code I'm writing).<br>
<br>
Incidentally, it turns out the solution to that problem was to copy everything
out of my C:\ruby\lib folder into merlin\languages\ruby\ruby-1.8.6\lib folder.
Is this the recommended approach for now for using standard ruby libraries?
What is the plan for this going forwards?<br>
<br>
I tried to generate a diff to send through of all the things I've had to change
to get the code to build from a fresh git checkout (remove the check for
tf.exe, remove signing attribs, etc.), but my text editor appears to have put
^M's all over the csproj files. Presumably there's some windows/cygwin
line-ending conflict going on there. If this diff would be useful to anybody, I
can re-edit those files from cygwin's vim, which should fix the CRLF problem.<br>
<br>
<br>
Thanks again for all the helpful advice<br>
<br>
<br>
Terence</p>
<div>
<p>On Tue, Dec 9, 2008 at 7:39 AM, Jim Deville <<a href="mailto:jdeville@microsoft.com" target="_blank">jdeville@microsoft.com</a>> wrote:</p>
<div>
<div>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">I had Pete try that, and it
didn't work, but he might be hitting a different issue. So yes, Skip
verification (via sn -Vr) should work as well. </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);">JD</span></p>
<p><span style="font-size: 11pt; color: rgb(31, 73, 125);"> </span></p>
<div style="border-style: solid none none; border-color: -moz-use-text-color; border-width: 1pt medium medium; padding: 3pt 0in 0in;">
<p><b><span style="font-size: 10pt;">From:</span></b><span style="font-size: 10pt;"> <a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>
[mailto:<a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>]
<b>On Behalf Of </b>Michael Letterle<br>
<b>Sent:</b> Monday, December 08, 2008 4:05 PM</span></p>
<div>
<p><span style="font-size: 10pt;"><br>
<b>To:</b> <a href="mailto:ironruby-core@rubyforge.org" target="_blank">ironruby-core@rubyforge.org</a></span></p>
</div>
<p><b><span style="font-size: 10pt;">Subject:</span></b><span style="font-size: 10pt;"> Re: [Ironruby-core] Trouble building from Visual
Studio (git repo)</span></p>
</div>
<div>
<div>
<p> </p>
<p style="margin-bottom: 12pt;">Presumably turning off strong name validation
for the public key token would work as well... no?</p>
<div>
<p>On Mon, Dec 8, 2008 at 7:02 PM, Jimmy Schementi <<a href="mailto:Jimmy.Schementi@microsoft.com" target="_blank">Jimmy.Schementi@microsoft.com</a>>
wrote:</p>
<p>Terence,<br>
<br>
Sorry for the issues you're having, crazy build breaks and signing are never
fun. Microsoft requires us to sign any binaries we produce, so providing access
to our repository is a pain because we can't distribute the private key used in
signing. Jim is going to fix this so builds by default build do not sign.<br>
<br>
In the meantime, you'll need to remove the signing flags from all the .csproj
files (Ruby.csproj, IronRuby.Libraries.csproj, and
IronRuby.Libraries.Yaml.csproj). Open the .csproj files in a text-editor, and
remove the following lines anywhere you find them (they might be in a file more
than once):<br>
<br>
<DelaySign>true</DelaySign><br>
<AssemblyOriginatorKeyFile>..\..\..\MSSharedLibKey.snk</AssemblyOriginatorKeyFile><br>
<SignAssembly>true</SignAssembly><br>
<br>
Rebuilding should not care about signing at all now. Let me know if you run
into any other problems.<br>
<br>
~Jimmy</p>
<div>
<div>
<p><br>
<br>
> -----Original Message-----<br>
> From: <a href="mailto:ironruby-core-bounces@rubyforge.org" target="_blank">ironruby-core-bounces@rubyforge.org</a>
[mailto:<a href="mailto:ironruby-core-" target="_blank">ironruby-core-</a><br>
> <a href="mailto:bounces@rubyforge.org" target="_blank">bounces@rubyforge.org</a>]
On Behalf Of Terence Lewis<br>
> Sent: Monday, December 08, 2008 3:01 PM<br>
> To: <a href="mailto:ironruby-core@rubyforge.org" target="_blank">ironruby-core@rubyforge.org</a><br>
> Subject: [Ironruby-core] Trouble building from Visual Studio (git<br>
> repo)<br>
><br>
> Hello,<br>
><br>
> First let me apologise for the length of this mail - it's not quite as<br>
> long as it looks, a lot of the text is error messages :(<br>
><br>
> Anyway, I can now build from rake compile, however I'm having trouble<br>
> building from Visual Studio 2008 SP1.<br>
><br>
> The first thing that it complains about is something to do with<br>
> SpecSharp.targets. I managed to work-around this by copying this file<br>
> from \merlin\main\Languages\Ruby to \merlin\main.<br>
> After doing this, I got an error about Microsoft.Scripting.dll meta-<br>
> data file not being found (with FxCop in the path), but changing the<br>
> build config file to FxCop and then back to Debug seemed to make this<br>
> problem go away.<br>
> Next, I got a complaint about MSSharedLibKey.snk - I worked around<br>
> this by creating a key myself (sn -k MSSharedLibKey.snk) in the folder<br>
> it was looking for.<br>
> Then when compiling, I get build 3 errors in<br>
> ReflectionCacheGenerator.cs (ClassInitGenerator). These are as follows:<br>
><br>
> Error 1 'IronRuby.Compiler.Methods' is
inaccessible due to its<br>
> protection level<br>
> \merlin\main\Languages\Ruby\ClassInitGenerator\ReflectionCacheGenerato<br>
> r<br>
> .<br>
> cs line 29<br>
> Error 2 'IronRuby.Runtime.Calls.BlockDispatcher'
does not contain<br>
> a definition for 'MaxBlockArity'<br>
> \merlin\main\Languages\Ruby\ClassInitGenerator\ReflectionCacheGenerato<br>
> r<br>
> .<br>
> cs line 102<br>
> Error 3 'IronRuby.Runtime.Calls.BlockDispatcher'
does not contain<br>
> a definition for 'MaxBlockArity'<br>
> \merlin\main\Languages\Ruby\ClassInitGenerator\ReflectionCacheGenerato<br>
> r<br>
> .<br>
> cs line 103<br>
><br>
> I also get two build errors in IronRuby.Tests:<br>
><br>
> Error 5 'IronRuby.Compiler.IParserLogger' is inaccessible
due to<br>
> its protection level<br>
> \merlin\main\Languages\Ruby\IronRuby.Tests\Parser\DefaultParserLogger.<br>
> c<br>
> s<br>
> line 24<br>
> Error 6 'IronRuby.Compiler.IParserLogger' is
inaccessible due to<br>
> its protection level<br>
> \merlin\main\Languages\Ruby\IronRuby.Tests\Parser\CoverageParserLogger.<br>
> c</p>
</div>
</div>
<p>> s line 33</p>
<div>
<div>
<p style="margin-bottom: 12pt;">><br>
><br>
> Commenting out errors 2 and 3, and making IronRuby.Compiler.Methods<br>
> and IronRuby.Compiler.IParserLogger public allows everything to build<br>
> except IronRuby.Tests which then fails with 47 compile errors.<br>
><br>
> Trying to run Ruby.Console with the code in this condition leads to a<br>
> MessageBox with the following:<br>
> Error while trying to run project: Could not load file or
assembly<br>
> 'ir, Version=<a href="http://1.0.0.0" target="_blank">1.0.0.0</a>,
Culture=neutral, PublicKeyToken=67ede3a51bb28398'<br>
> or one of its dependencies. Strong name validation failed. (Exception<br>
> from HRESULT: 0x8013141A).<br>
><br>
> Presumably this is because I can't just generate a strong-name key<br>
> myself? I then ran sn -Vr using my public key token, and changed two<br>
> places in Ruby.Console's app.config file - Microsoft.Scripting and<br>
> IronRuby to use my public key token. At this point, running the<br>
> console doesn't bring up a message box, but the application does<br>
> terminate immediately with the following appearing in the output window:<br>
><br>
> WEAK_TABLE: IronRuby.Runtime.WeakTable`2[[System.Object, mscorlib,<br>
> Version=<a href="http://2.0.0.0" target="_blank">2.0.0.0</a>,
Culture=neutral,<br>
> PublicKeyToken=b77a5c561934e089],[IronRuby.Runtime.RubyInstanceData,<br>
> IronRuby, Version=<a href="http://1.0.0.0" target="_blank">1.0.0.0</a>,
Culture=neutral,<br>
> PublicKeyToken=67ede3a51bb28398]] A first chance exception of type<br>
> 'System.IO.FileLoadException' occurred in mscorlib.dll A first chance<br>
> exception of type 'IronRuby.Builtins.LoadError' occurred in<br>
> IronRuby.dll A first chance exception of type<br>
> 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll<br>
> A first chance exception of type<br>
> 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll<br>
> A first chance exception of type<br>
> 'Microsoft.Scripting.InvalidImplementationException' occurred in<br>
> Microsoft.Scripting.dll<br>
><br>
> So, when this failed, I tried to copy the only .snk file I could find<br>
> from the subversion repository<br>
> (trunk\src\microsoft.scripting.core\debugkey.snk) over my manually<br>
> generated key, but this didn't yield the correct public key token<br>
> either (it gives 51c7b9aefdaeb546).<br>
><br>
> So, now I'm totally stuck. Any help or suggestions will be appreciated.<br>
><br>
><br>
> Regards<br>
><br>
> Terence<br>
><br>
><br>
> PS, I'm trying to get the build to work out of visual studio so that I<br>
> can step through some of the code in the debugger.</p>
</div>
</div>
<p>_______________________________________________<br>
Ironruby-core mailing list<br>
<a href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a></p>
</div>
<p style="margin-bottom: 12pt;"><br>
<br clear="all">
<br>
-- <br>
Michael Letterle<br>
[Polymath Prokrammer]<br>
<a href="http://blog.prokrams.com" target="_blank">http://blog.prokrams.com</a></p>
</div>
</div>
</div>
</div>
<p style="margin-bottom: 12pt;"><br>
_______________________________________________<br>
Ironruby-core mailing list<br>
<a href="mailto:Ironruby-core@rubyforge.org" target="_blank">Ironruby-core@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a></p>
</div>
<p> </p>
</div></div></div>
</div>
<br>_______________________________________________<br>
Ironruby-core mailing list<br>
<a href="mailto:Ironruby-core@rubyforge.org">Ironruby-core@rubyforge.org</a><br>
<a href="http://rubyforge.org/mailman/listinfo/ironruby-core" target="_blank">http://rubyforge.org/mailman/listinfo/ironruby-core</a><br>
<br></blockquote></div><br>