Forum: IronRuby IronRuby.Ruby.GetExecutionContext removed

Posted by Jimmy Schementi (Guest)
on 2010-03-05 02:32
(Received via mailing list)
including the mailing list as people might run into this ...

Tomas, I know you recently removed IronRuby.Ruby.GetExecutionContext; is 
there any other way to get to the instance of IronRuby.Ruby.RubyContext? 
I'd presume anyone hosting IronRuby and define ruby global variables was 
using DefineGlobalVariable; so they'd run into this. Looks like 
ScriptEngine.LanguageContext is now internal as well ...

I specifically found this while updating DLRConsole, and simply removed 
the places where I was using ruby global variables.
Posted by Jimmy Schementi (Guest)
on 2010-03-08 11:28
(Received via mailing list)
Tomas,

What reasons did we have for removing this in the first place? It also 
affects anyone writing code that uses our Ruby types/library methods in 
their own code (for providing the correct types to Ruby code); 
IronRuby.Rack does this.

As a work-around, are we really expecting people to use 
Microsoft.Scripting.Hosting.Providers.HostinHelpers.GetLanguageContext 
directly?

~Jimmy

From: Jimmy Schementi
Sent: Thursday, March 04, 2010 5:32 PM
To: Tomas Matousek
Cc: ironruby-core@rubyforge.org
Subject: IronRuby.Ruby.GetExecutionContext removed

including the mailing list as people might run into this ...

Tomas, I know you recently removed IronRuby.Ruby.GetExecutionContext; is 
there any other way to get to the instance of IronRuby.Ruby.RubyContext? 
I'd presume anyone hosting IronRuby and define ruby global variables was 
using DefineGlobalVariable; so they'd run into this. Looks like 
ScriptEngine.LanguageContext is now internal as well ...

I specifically found this while updating DLRConsole, and simply removed 
the places where I was using ruby global variables.
Posted by Jimmy Schementi (Guest)
on 2010-03-08 11:55
(Received via mailing list)
By the way, if anyone is depending on IronRuby.Ruby.GetExecutionContex, 
your code will break when built/run against the HEAD of the sources. As 
a work-around, here's the implementation of GetExecutionContext which 
you can just use in your own code:

        using Microsoft.Scripting.Hosting;
        using Microsoft.Scripting.Utils;
        using IronRuby.Runtime;
        // ...
        public static RubyContext GetExecutionContext(ScriptEngine 
engine) {
            ContractUtils.RequiresNotNull(engine, "engine");
            var context = 
Microsoft.Scripting.Hosting.Providers.HostingHelpers.GetLanguageContext(engine) 
as RubyContext;
            if (context == null) {
                throw new InvalidOperationException("Given engine is not 
a Ruby engine");
            }
            return context;
        }

        public static RubyContext GetExecutionContext(ScriptRuntime 
runtime) {
            ContractUtils.RequiresNotNull(runtime, "runtime");
            return GetExecutionContext(Ruby.GetEngine(runtime));
        }

Let us know if you use this, and what you use it for, so we can figure 
out whether removing it is the right call.

~Jimmy

From: ironruby-core-bounces@rubyforge.org 
[mailto:ironruby-core-bounces@rubyforge.org] On Behalf Of Jimmy 
Schementi
Sent: Monday, March 08, 2010 2:27 AM
To: Tomas Matousek
Cc: 'ironruby-core@rubyforge.org'
Subject: Re: [Ironruby-core] IronRuby.Ruby.GetExecutionContext removed

Tomas,

What reasons did we have for removing this in the first place? It also 
affects anyone writing code that uses our Ruby types/library methods in 
their own code (for providing the correct types to Ruby code); 
IronRuby.Rack does this.

As a work-around, are we really expecting people to use 
Microsoft.Scripting.Hosting.Providers.HostinHelpers.GetLanguageContext 
directly?

~Jimmy

From: Jimmy Schementi
Sent: Thursday, March 04, 2010 5:32 PM
To: Tomas Matousek
Cc: ironruby-core@rubyforge.org
Subject: IronRuby.Ruby.GetExecutionContext removed

including the mailing list as people might run into this ...

Tomas, I know you recently removed IronRuby.Ruby.GetExecutionContext; is 
there any other way to get to the instance of IronRuby.Ruby.RubyContext? 
I'd presume anyone hosting IronRuby and define ruby global variables was 
using DefineGlobalVariable; so they'd run into this. Looks like 
ScriptEngine.LanguageContext is now internal as well ...

I specifically found this while updating DLRConsole, and simply removed 
the places where I was using ruby global variables.
Posted by Tomas Matousek (Guest)
on 2010-03-08 17:55
(Received via mailing list)
We removed it for 2 reasons:

1)      RubyContext is not a supported public API and can change any 
time. Hosting APIs on the other hand (i.e. IronRuby.Ruby class) will 
remain stable. We'll try hard not to introduce breaking changes.

2)      RubyContext is not remoting aware while Hosting APIs are.

HostingHelpers.GetLanguageContext can be used as a last resort 
workaround, however there is no guarantee we won't break such usage any 
time in future by changing RubyContext.
What methods on RubyContext does IronRuby.Rack need? If there is some 
feature that should be exposed via Hosting API we should add it.

Tomas

From: Jimmy Schementi
Sent: Monday, March 08, 2010 2:27 AM
To: Tomas Matousek
Cc: 'ironruby-core@rubyforge.org'
Subject: RE: IronRuby.Ruby.GetExecutionContext removed

Tomas,

What reasons did we have for removing this in the first place? It also 
affects anyone writing code that uses our Ruby types/library methods in 
their own code (for providing the correct types to Ruby code); 
IronRuby.Rack does this.

As a work-around, are we really expecting people to use 
Microsoft.Scripting.Hosting.Providers.HostinHelpers.GetLanguageContext 
directly?

~Jimmy

From: Jimmy Schementi
Sent: Thursday, March 04, 2010 5:32 PM
To: Tomas Matousek
Cc: ironruby-core@rubyforge.org
Subject: IronRuby.Ruby.GetExecutionContext removed

including the mailing list as people might run into this ...

Tomas, I know you recently removed IronRuby.Ruby.GetExecutionContext; is 
there any other way to get to the instance of IronRuby.Ruby.RubyContext? 
I'd presume anyone hosting IronRuby and define ruby global variables was 
using DefineGlobalVariable; so they'd run into this. Looks like 
ScriptEngine.LanguageContext is now internal as well ...

I specifically found this while updating DLRConsole, and simply removed 
the places where I was using ruby global variables.
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.