# IronRuby v2Release xbuild is failing

**URL:** <https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462>\
**Category:** IronRuby\
**Created:** [October 3, 2011, 10:38pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462 "2011-10-03T22:38:29Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [October 3, 2011, 10:38pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/1 "2011-10-03T22:38:29Z")

</div>

FYI,

When trying to build IronRuby for a v2Release under Mono 2.10.2, I’m  
getting a failure:

% git clone [GitHub - IronLanguages/main: Work for this repo has moved to https://github.com/IronLanguages/ironpython2](https://github.com/IronLanguages/main.git) IronLanguages  
% cd IronLanguages  
% xbuild Solutions/Ruby.sln /p:Configuration=“v2Release”  
…  
Builtins/RangeOps.cs(307,17): error CS0266: Cannot implicitly convert  
type  
`System.Collections.Generic.IEnumerable<IronRuby.Builtins.MutableString>' to `System.Collections.Generic.IEnumerable'. An explicit  
conversion exists (are you missing a cast?)

Building for the regular configuration is fine.

-Doug

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 5:11pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/2 "2011-10-05T17:11:18Z")

</div>

Reported as:  
[http://ironruby.codeplex.com/workitem/6523](http://ironruby.codeplex.com/workitem/6523)

-Doug

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 5:16pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/3 "2011-10-05T17:16:15Z")

</div>

Can someone sign up to looking into this? After confirming this builds  
in .NET and not Mono, I’d first find out if this is a known Mono bug,  
and then provide a patch to IronRuby to work-around this.

Please let the list know if you want to take this on,

~js

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 6:12pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/4 "2011-10-05T18:12:29Z")

</div>

Is “v2Release” intended to target CLRv2? If so, this error is because  
that version of C# and the BCL don’t support covariance for IEnumerable.

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 8:32pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/5 "2011-10-05T20:32:09Z")

</div>

On Wed, Oct 5, 2011 at 11:17 AM, Curt H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Is “v2Release” intended to target CLRv2? If so, this error is because that  
> version of C# and the BCL don’t support covariance for IEnumerable.

I believe that “v2Release” targets the 3.5 framework (is that the same  
as CLRv2?), but someone can correct me if I am wrong.

I’m currently running a previous version of IronRuby built for  
“v2Release”, so perhaps there is at least a patch that we can apply  
(will a simple cast be sufficient?).

I’m trying to build the latest versions of IronRuby and IronPython for  
inclusion into the next version of Ubuntu. The versions built on  
dlr-0.9 were just removed. However, I must admit that I don’t know if  
people will really need v2Releases… I just thought I’d build them if  
I could.

-Doug

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 9:45pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/6 "2011-10-05T21:45:41Z")

</div>

> Is downlevel-framework support still a goal for IronRuby? I seem to recall that  
> IronPython 2.7 is .NET 4.0-only.

We were keeping around \< 4.0 support for Windows Phone. It’s always up  
for discussion whether we continue doing that; I vote yes.

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 8:59pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/7 "2011-10-05T20:59:55Z")

</div>

Yep, .NET 2.0, 3.0 and 3.5 all share the same fundamental CLR and the  
BCL bits are strictly additive. A simple cast is not sufficient; the  
code will need modification. One approach would be to insert a 3.5-only  
adapter function which does something like this:

IEnumerable Convert(IEnumerable collection) {  
foreach (var item in collection) {  
yield return item;  
}  
}

(I’d need to refer to the context of the code to make any other  
suggestions.)

Is downlevel-framework support still a goal for IronRuby? I seem to  
recall that IronPython 2.7 is .NET 4.0-only.

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 6, 2011, 12:23am UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/8 "2011-10-06T00:23:12Z")

</div>

On Wed, Oct 5, 2011 at 11:35 AM, Curt H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Is downlevel-framework support still a goal for IronRuby? I seem to recall that  
> IronPython 2.7 is .NET 4.0-only.

IronPython only ‘officially’ supports 4, but we occasionally make sure  
that it compiles for 3.5 as well (usually when someone points out that  
it’s broken).

There are a couple of embedders that haven’t moved their host apps to  
4 yet, but are fine to build IronPython themselves for 3.5.

- Jeff

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [October 5, 2011, 10:32pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/9 "2011-10-05T22:32:01Z")

</div>

On Wed, Oct 5, 2011 at 2:35 PM, Curt H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Yep, .NET 2.0, 3.0 and 3.5 all share the same fundamental CLR and the BCL bits  
> are strictly additive. A simple cast is not sufficient; the code will need  
> modification. One approach would be to insert a 3.5-only adapter function which  
> does something like this:
> 
> IEnumerable Convert(IEnumerable collection) {  
> foreach (var item in collection) {  
> yield return item;  
> }  
> }
> 
> (I’d need to refer to the context of the code to make any other suggestions.)

Ok, thanks.

> Is downlevel-framework support still a goal for IronRuby? I seem to recall that  
> IronPython 2.7 is .NET 4.0-only.

There are many systems still using Mono 2.6.7 which is CLRv2. However,  
I think that this may change sooner than later as distros like Ubuntu  
are moving on up.

-Doug

---

<div class="post-metadata">

**Author:** ![ashiro](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e5b9ba/32.png) [@ashiro](https://www.ruby-forum.com/u/ashiro)\
**Post date:** [November 13, 2011, 5:11pm UTC](https://www.ruby-forum.com/t/ironruby-v2release-xbuild-is-failing/212462/10 "2011-11-13T17:11:37Z")

</div>

On Wed, Oct 5, 2011 at 11:10 AM, Doug B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Reported as:  
> [http://ironruby.codeplex.com/workitem/6523](http://ironruby.codeplex.com/workitem/6523)

Updated this workitem:

This build issue with Ruby, under Mono, with  
/p:Configuration=“v2Release” can be fixed with:

change:

#if SILVERLIGHT  
return EachStepString(storage, self,  
ConvertStepToInt(storage, step)).Cast();  
#else  
return EachStepString(storage, self,  
ConvertStepToInt(storage, step));  
#endif

to just:

```
            return EachStepString(storage, self,

```

ConvertStepToInt(storage, step)).Cast();

This may turn out to be more important than first thought, as having  
some trouble using Configuration v4 under Mono (it builds fine, but  
having trouble with integration with other DLLs, probably because of  
v2 vs v4 issues). Looking into that, but we will need to use v2 for  
the time being.

-Doug
