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 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?)
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,
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.
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:
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.
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:
(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.
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
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.