[Ironruby-core] Anyone interested in implementing Etc module for Mono?

Ryan Riley ryan.riley at panesofglass.org
Sun Apr 4 21:49:11 EDT 2010


Here's the error I get with xbuild:
Errors:

/home/ryan/dev/ironruby/Merlin/Main/Languages/Ruby/Ruby.sln (default
targets) ->
(ValidateSolutionConfiguration target) ->

    : error : Error initializing task Message: Not registered task Message.

     14 Warning(s)
     1 Error(s)

Time Elapsed 00:00:00.1908000

Ryan Riley

Email: ryan.riley at panesofglass.org
LinkedIn: http://www.linkedin.com/in/ryanriley
Blog: http://wizardsofsmart.net/
Twitter: @panesofglass
Website: http://panesofglass.org/


On Sun, Apr 4, 2010 at 6:32 PM, Ryan Riley <ryan.riley at panesofglass.org>wrote:

> Thanks, Shri. The problem is that I cannot run mspec at all. I have added
> it to my path, but I get a message saying thtat the command can't be found,
> even while in the bin folder. (And yes, the files are executable. :) I'll
> keep trying to determine what's wrong, but I would think this should just
> work.
>
> In other news, I was able to get master built on linux using rake compile.
> I've checked this into my copy of master on github, along with the etc.rb
> updates and Ivan's dev.sh script. I can write the additional test cases, but
> they should also work now on windows. I'm about to pull and try it myself.
>
> Cheers!
>
> Ryan Riley
>
>
>
> On Sun, Apr 4, 2010 at 10:55 AM, Shri Borde <Shri.Borde at microsoft.com>wrote:
>
>>  If you run “mspec ci library\etc”, that runs the real RubySpec specs.
>> irtests does run a command like “mspec ci lib” which will run the Etc
>> RubySpec specs. http://wiki.github.com/ironruby/ironruby/rubyspec might
>> be useful to you about how these scripts work.
>>
>>
>>
>> The RubySpecs are supposed to be working on all platforms. The specs use
>> checks like “platform_is :windows” or “platform_is_not :windows” to have
>> versions for all OSes. I am surprised that the current ones expect nil. You
>> can fix them to have versions of the specs that work on Unixes. You can run
>> the tests against MRI using “mspec –tr” to ensure that the spec you add is
>> correct.
>>
>>
>>
>> If you can streamline the development process for Mono, that will be great
>> so others have an easier time in the future…
>>
>>
>>
>> *From:* ironruby-core-bounces at rubyforge.org [mailto:
>> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Ryan Riley
>> *Sent:* Sunday, April 04, 2010 9:54 AM
>>
>> *To:* ironruby-core at rubyforge.org
>> *Subject:* Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>>
>>
>> I've posted all the type fixes, but since I can't compile master, I'm
>> hesitant to rebase. What should I do? Also, I still haven't gotten to the
>> tests. Looks like the current ones all expect nil and assume Windows. Are
>> those the real rubyspec specs?
>>
>> Sent from my iPhone
>>
>>
>> On Apr 3, 2010, at 10:13 PM, Jim Deville <jdeville at microsoft.com> wrote:
>>
>>  Also, to get a Int32 out of a UInt32, you should be able to use
>> induced_from:
>>
>>
>>
>> >>> a = System::UInt32.new(1)
>>
>> => 1 (UInt32)
>>
>> >>> Fixnum.induced_from(a)
>>
>> => 1
>>
>>
>>
>> Minor thing, but it will work.
>>
>>
>>
>> The fact that etc is a class is my bad. I was just getting enough
>> implemented in order to pass some specs and use libraries that expected the
>> nil on Windows.
>>
>>
>>
>> JD
>>
>>
>>
>> *From:* ironruby-core-bounces at rubyforge.org [mailto:
>> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Tomas Matousek
>> *Sent:* Saturday, April 03, 2010 6:01 PM
>> *To:* ironruby-core at rubyforge.org
>> *Subject:* Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>>
>>
>> That is a bug. Make it a module.
>>
>>
>>
>> Tomas
>>
>>
>>
>> *From:* ironruby-core-bounces at rubyforge.org [mailto:
>> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Ryan Riley
>> *Sent:* Saturday, April 03, 2010 5:02 PM
>> *To:* ironruby-core at rubyforge.org
>> *Subject:* Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>>
>>
>> Quick question: The etc.rb in Libs is a class, but the implementation in
>> the Ruby Standard Library appears to be a module. Should I keep the class or
>> use the module?
>>
>>
>> Ryan Riley
>>
>> On Sat, Apr 3, 2010 at 4:43 PM, Tomas Matousek <
>> Tomas.Matousek at microsoft.com> wrote:
>>
>> Nice work.
>>
>>
>>
>> A few suggestions:
>>
>>
>>
>> -          You can move the file to
>> C:\M0\Merlin\Main\Languages\Ruby\Libs.
>>
>> -          Use System::Environment:: System::Environment.OSVersion.Platform
>> to detect the OS (see e.g. Win32API.rb in Libs).
>>
>> -          Rather than check for the platform in every method it might be
>> better to define the methods differently on Windows. Something like:
>>
>>
>>
>> module Etc
>>
>>   platform = System::PlatformID
>>
>>   case System::Environment.OSVersion.Platform
>>
>>     when platform.Win32S, platform.WinCE, platform.Win32Windows,
>> platform.Win32NT:
>>
>>     def self.endgrent; end
>>
>>   def self.endpwent; end
>>
>>   def self.getgrent; end
>>
>>>>
>>     else
>>
>>    load_assembly 'Mono.Posix'
>>
>>
>>
>>   def self.endgrent
>>
>>     Mono::Unix::Native::Syscall.endgrent
>>
>>   end
>>
>>
>>
>>   def self.endpwent
>>
>>     Mono::Unix::Native::Syscall.endpwent
>>
>>   end
>>
>>
>>
>>
>>   def self.getgrent
>>
>>     to_group(Mono::Unix::Native::Syscall.getgrent)
>>
>>
>>
>>
>>
>>   end
>>
>>
>>
>>>>
>>   end
>>
>> end
>>
>>
>>
>> *From:* ironruby-core-bounces at rubyforge.org [mailto:
>> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Ryan Riley
>> *Sent:* Saturday, April 03, 2010 3:59 PM
>>
>>
>> *To:* ironruby-core at rubyforge.org
>> *Subject:* Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>>
>>
>> I've posted an initial "complete" implementation, though I have only done
>> basic testing. I have a couple of TODO's remaining and some cleanup, as well
>> as writing actual specs. I still don't have tests running. You can find the
>> module here:
>> http://github.com/panesofglass/ironruby/blob/linux/Merlin/External.LCA_RESTRICTED/Languages/IronRuby/Etc/IronRuby.Libraries.Etc/etc.rb
>>
>>
>>
>> Not the prettiest thing in the world, but I just wanted to get it working.
>> I definitely still have work to do.
>>
>>
>>
>> Cheers,
>>
>>
>> Ryan Riley
>>
>> Email: ryan.riley at panesofglass.org
>> LinkedIn: http://www.linkedin.com/in/ryanriley
>> Blog: http://wizardsofsmart.net/
>> Twitter: @panesofglass
>> Website: http://panesofglass.org/
>>
>> On Sat, Apr 3, 2010 at 2:30 PM, Ryan Riley <ryan.riley at panesofglass.org>
>> wrote:
>>
>> Sure! Mono::Unix::Native::Passwd<http://www.go-mono.com/docs/index.aspx?link=T:Mono.Unix.Native.Passwd>and
>> Mono::Unix::Native::Group<http://www.go-mono.com/docs/index.aspx?link=T:Mono.Unix.Native.Group>that are returned from the
>> Mono::Unix::Native::Syscall<http://www.go-mono.com/docs/index.aspx?link=M:Mono.Posix.Syscall.getusername%28System.Int32>functions have UInt32, System.String, and System.String[]. System.String is
>> no biggie, and I'm finding .to_i on a System.UInt32 is still displayed as
>> System.UInt32, so I suppose that's not an issue, either. MRI displays Fixnum
>> as the type, and I was trying to get the correct types back from the
>> functions. That leaves MRI's Array to Mono's System.String[].
>>
>>
>>
>> My current implementation is just a Ruby module wrapping calls to the Mono
>> functions and returning the appropriate types. Most of it is working, though
>> without being able to run tests easily, I'm testing from the command line. I
>> still need to add conditionals to return nil if it's run on Windows. I
>> suppose I also need to conditionally load the Mono.Posix.dll if it's on
>> Windows, too.
>>
>>
>>
>> I'm about to finish the basic implementation and post to github<http://github.com/panesofglass/ironruby/blob/linux/Merlin/External.LCA_RESTRICTED/Languages/IronRuby/Etc/IronRuby.Libraries.Etc/etc.rb>. (I've
>> already got what I finished last night up there.) I also asked Shri for a
>> pairing session to make sure it's inline with what you're wanting.
>>
>>
>>
>> Cheers,
>>
>>
>>
>> Ryan Riley
>>
>> Email: ryan.riley at panesofglass.org
>> LinkedIn: http://www.linkedin.com/in/ryanriley
>> Blog: http://wizardsofsmart.net/
>> Twitter: @panesofglass
>> Website: http://panesofglass.org/
>>
>> On Sat, Apr 3, 2010 at 11:25 AM, Tomas Matousek <
>> Tomas.Matousek at microsoft.com> wrote:
>>
>>   Can you give an example of where you need the conversions?
>>
>>
>>
>> Tomas
>>
>>
>>
>> *From:* ironruby-core-bounces at rubyforge.org [mailto:
>> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Jim Deville
>> *Sent:* Saturday, April 03, 2010 11:00 AM
>>
>>
>> *To:* ironruby-core at rubyforge.org
>>
>> *Subject:* Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>>
>>
>>
>> No conversion for Fixnums is needed (Fixnums are ints). Arrays are harder.
>> I would take a look at clr_ext in merlin/main/languages/ruby/samples. Inside
>> that file is a to_clr_array method
>>
>> JD
>>  ------------------------------
>>
>> *From: *Ryan Riley <ryan.riley at panesofglass.org>
>> *Sent: *Saturday, April 03, 2010 12:13 AM
>> *To: *ironruby-core at rubyforge.org <ironruby-core at rubyforge.org>
>> *Subject: *Re: [Ironruby-core] Anyone interested in implementing Etc
>> module for Mono?
>>
>> Where is documentation on converting between CLR and Ruby types? I can get
>> RubyStrings, but what about Fixnum and Array?
>>
>>
>>
>> Thanks,
>>
>>
>> Ryan Riley
>>
>>
>>
>> _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>>
>>
>>  _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>>
>> _______________________________________________
>> Ironruby-core mailing list
>> Ironruby-core at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/ironruby-core
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100404/6ef86e4d/attachment-0001.html>


More information about the Ironruby-core mailing list