I believe the example for embedding the assemblies to create a .exe that you're looking for is: http://github.com/rifraf/IronRubyEmbeddedApps

I think my main interests would be 1.9 support and a .NET duby backend which I might need to talk to Charlie about :).

-Zac

On 5/11/2010 8:24 PM, Jimmy Schementi wrote:
Will, what you are describing is the preferred way of packaging Ruby code as an exe. Someone should write a sample that shows how to do this; I believe there already is one but I don't have the URL handy.

David, the first part of your email sounded reasonable, but the 2nd part (about scope) came from left field. Please indicate why the recipe Tomas and Will explained make IronRuby any less than first-class (whatever that means =P). IronPython is also planning on doing this too, so we think it's the best "self-contained deployment" option, but I'd like to hear why it won't work for you.

As far as the other discussed features go, let me draw a line in the sand for the next major release (let's call it vNext for argument's sake):

1.) It is a goal of IronRuby vNext to improve interop with .NETs type system, so we will most likely implement something like IronPython's "clrtype" feature, and provide a library which lets you emit real static types from Ruby code. You could even imagine taking the emitted IL and writing it to a DLL, which could be called directly from a static language, but that's lower priority.

2.) It is not a goal of IronRuby vNext to implement a static compiler for Ruby; as in we will not emit both similar types and method bodies as C#. IronRuby is a dynamic language, and any static compiler features should be part of a .NET backend for Duby (currently only a JVM backend exists). Pre-compilation is different; it involves emitting IL to a DLL that we would have emit at runtime, given every method were called. This would only help startup marginally, as we already have fast startup with the interpreter and NGEN-ing IronRuby's binaries, and most of the time spent is actually running code, not emitting it. Also, pre-compilation doesn't help us CLR type system interop, as it would not produce a CLI-compliant assembly; assemblies generated by pyc cannot be referenced by a C# app.

As far as non-.NET <http://non-.NET> related features, we'll be targeting Ruby 1.9 support, and running Rails 3 and other libs will focus us on what features to implement first (so 1.8.7 compat might happen despite us wanting to move directly to 1.9). FFI is another possible feature, but only if there are crucial libs that use it, or if someone contributes it.

Any other features people are curious about? Now is definitely the time to voice your opinions :)

~Jimmy

On May 11, 2010, at 7:15 PM, "Will Green" <w...@hotgazpacho.org <mailto:w...@hotgazpacho.org>> wrote:

Why not create an executable assembly that embeds all the Ruby files as resources in the assembly? Extract them at runtime (you could probably just keep them in a memory stream), fire up a Ruby runtime host & engine, feed it the Ruby file, and away you go.

Or am I missing something that would make this infeasible?

--
Will Green
http://hotgazpacho.org/


On Tue, May 11, 2010 at 9:20 PM, David Escobar <davidesco...@ieee.org <mailto:davidesco...@ieee.org>> wrote:

    Ok, that's certainly an option to look into. I guess what people
    want is the ability to distribute applications and libraries in
    .exe and .dll form, the same way we do with C# or VB. But perhaps
    it's a question of scope - maybe IronRuby is not intended to be a
    1st class .NET language in the same way that C# or VB are, or
    it's only intended to be a language for embedding in a static
    language or for unit testing purposes?

    The other reason is that it provides some (small) level of code
    obfuscation. I realize of course that the assemblies can be
    reverse engineered, but most users won't bother to do that -
    they'll just be interested in running the .exe.



    On Tue, May 11, 2010 at 6:04 PM, Tomas Matousek
    <tomas.matou...@microsoft.com
    <mailto:tomas.matou...@microsoft.com>> wrote:

        Well, there is a pretty simple way how to package up .rb
        files into an .exe file w/o precompiling anything. One option
        is to build a self-extracting zip file or something like
        that. That would solve the deployment issue. Improving
        startup time via pre-compilation is much more work.

        Tomas

        *From:* ironruby-core-boun...@rubyforge.org
        <mailto:ironruby-core-boun...@rubyforge.org>
        [mailto:ironruby-core-boun...@rubyforge.org
        <mailto:ironruby-core-boun...@rubyforge.org>] *On Behalf Of
        *David Escobar
        *Sent:* Tuesday, May 11, 2010 5:48 PM


        *To:* ironruby-core@rubyforge.org
        <mailto:ironruby-core@rubyforge.org>
        *Subject:* Re: [Ironruby-core] What's next?

        Pre-compiling code would allow us to distribute our programs
        in .exe and .dll form, rather than .rb files. IronPython
        allows this with its pyc.py script. And if that means faster
        startup times and using Ruby code statically from C#, then
        all the better.

        On Tue, May 11, 2010 at 3:06 PM, Tomas Matousek
        <tomas.matou...@microsoft.com
        <mailto:tomas.matou...@microsoft.com>> wrote:

        What would you like to achieve by pre-compiling code? Faster
        startup time? Packaging your code in a dll instead of a bunch
        of .rb files? Using Ruby code statically from C#?

        Tomas


        -----Original Message-----
        From: ironruby-core-boun...@rubyforge.org
        <mailto:ironruby-core-boun...@rubyforge.org>
        [mailto:ironruby-core-boun...@rubyforge.org
        <mailto:ironruby-core-boun...@rubyforge.org>] On Behalf Of
        Martin Smith
        Sent: Tuesday, May 11, 2010 11:14 AM
        To: ironruby-core@rubyforge.org
        <mailto:ironruby-core@rubyforge.org>
        Subject: [Ironruby-core] What's next?

        Hey Guys,

        Now that IronRuby 1.0 has shipped (congrats!!), what's next
        on the docket? :) I'm not trying to pressure you guys! Just
        excited about the future.
        The feature i'd love to see most would be pre-compilation...

        Thanks for such a great product,
        Martin
        _______________________________________________
        Ironruby-core mailing list
        Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
        http://rubyforge.org/mailman/listinfo/ironruby-core

        _______________________________________________
        Ironruby-core mailing list
        Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
        http://rubyforge.org/mailman/listinfo/ironruby-core



    _______________________________________________
    Ironruby-core mailing list
    Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
    http://rubyforge.org/mailman/listinfo/ironruby-core


_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org <mailto:Ironruby-core@rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core


_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to