虽然我知道IronRuby还没有为世界使用它做好准备,但我想知道是否有人在这里试过它并测试它在原始性能方面与其他Rubies的对比度如何?
如果是这样,结果是什么,你是如何衡量绩效(哪些基准等)?
编辑:IronRuby团队在http://ironruby.info/上维护一个关于他们如何与Ruby MRI 1.8进行比较的网站.在规格通过率表下方,他们还有一些关于IronRuby如何在这些规范上执行的信息.此表不会不断更新,但我认为它们经常更新(您可以在页面顶部看到最后一次更新).
目前是否有可能预先释放ironruby来运行rubygems?好像我必须设置一个环境变量才能找到它们?
我们通过托管IronRuby引擎实现了表达式评估器.您可以在此处看到评估者的简化版本.
现在我们试图通过在许多线程中执行表达式来获得IronRuby的更多性能(我们得到了它).一个问题困扰我们 - Execute方法线程是否安全?
.net performance multithreading ironruby expression-evaluation
我需要指出正确的方向.我已经将Iron Python脚本主机嵌入到一个简单的C#应用程序中,但现在我需要了解锁定用户生成的IronPython或IronRuby脚本的安全性的最佳实践.
具体来说,什么是防止库导入的策略,并且在.NET中没有办法在不同的安全上下文中运行代码块或线程,例如防止文件系统访问?此外,是否可以为此上下文分配内置级别或角色而不是实际用户?
谢谢!
我正试图在我的游戏中嵌入脚本引擎.由于我是用C#编写的,我认为IronPython非常合适,但我能够找到的例子都集中在用C#调用IronPython方法而不是IronPython脚本中的C#方法.
更复杂的是,我在Windows 7 64位上使用Visual Studio 2010 RC1.
IronRuby的工作方式与我预期的一样,但我对Ruby或Python语法不是很熟悉.
我在做什么:
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
//Test class with a method that prints to the screen.
scope.SetVariable("test", this);
ScriptSource source =
engine.CreateScriptSourceFromString("test.SayHello()", Microsoft.Scripting.SourceCodeKind.Statements);
source.Execute(scope);
Run Code Online (Sandbox Code Playgroud)
这会产生错误,"'TestClass'对象没有属性'SayHello'"
使用"self.test.SayHello()"时,这个确切的设置适用于IronRuby
我使用IronRuby时很谨慎,因为它看起来并不像IronPython那样成熟.如果它足够接近,我可能会接受它.
有任何想法吗?我知道这必须是简单的事情.
IronRuby和VS2010 noob问题:
我正试图做一个尖峰来测试C#项目和现有RubyGem之间的互操作的可行性,而不是重新发明.net中的特定轮.我已经下载并安装了IronRuby和RubyGems包,以及我最终想要使用的gem.
运行.rb文件或在iirb Ruby控制台中工作没有问题.我可以加载RubyGems包和gem本身并使用它,所以,至少对于那个用例,我的环境设置正确.
但是,当我尝试在C#(4.0)控制台应用程序中执行相同类型的操作时,它会抱怨第一行:
require 'RubyGems'
Run Code Online (Sandbox Code Playgroud)
有错误:
no such file to load -- rubygems
Run Code Online (Sandbox Code Playgroud)
我的控制台应用程序如下所示:
using System;
using IronRuby;
namespace RubyInteropSpike
{
class Program
{
static void Main(string[] args)
{
var runtime = Ruby.CreateRuntime();
var scope = runtime.ExecuteFile("test.rb");
Console.ReadKey();
}
}
}
Run Code Online (Sandbox Code Playgroud)
删除依赖项,只是做一些基本的自包含Ruby工作正常,但包括任何类型的'requires'语句似乎导致它失败.
我希望我只需要在创建它时将一些额外的信息(路径等)传递给ruby运行时,并且真的希望这不是某种限制,因为这会让我感到难过.
我刚开始使用IronRuby(但是当我在普通Ruby中测试它时,行为似乎是一致的)我的.NET应用程序中的DSL - 作为其中的一部分,我定义了通过define_method从DSL调用的方法.
但是,在调用以大写字母开头的方法时,我遇到了关于可选parens的问题.
鉴于以下计划:
class DemoClass
define_method :test do puts "output from test" end
define_method :Test do puts "output from Test" end
def run
puts "Calling 'test'"
test()
puts "Calling 'test'"
test
puts "Calling 'Test()'"
Test()
puts "Calling 'Test'"
Test
end
end
demo = DemoClass.new
demo.run
Run Code Online (Sandbox Code Playgroud)
在控制台中运行此代码(使用普通红宝石)会产生以下输出:
ruby .\test.rb
Calling 'test'
output from test
Calling 'test'
output from test
Calling 'Test()'
output from Test
Calling 'Test'
./test.rb:13:in `run': uninitialized constant DemoClass::Test (NameError)
from ./test.rb:19:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我意识到Ruby约定是常量以大写字母开头,并且Ruby中方法的一般命名约定是小写的.但是parens目前正在杀死我的DSL语法.
有没有解决这个问题的方法?
我是动态语言界的新手,并试图找到一个好的起点.
看看微软如何减少Iron Ruby在其产品中的作用,我正在寻找一种将在dotNET平台上支持的动态编程语言.您是否可以列出在一个而不是另一个中找到的特定功能,以帮助您进行选择.
对于Silverlight 2,看起来编程选择是:
这种情况下,本地语言(C#和VB)比DLR语言快一个数量级左右?
当我进行Silverlight客户端编程时,有没有希望在IronPython中"生活",或者我是否应该为处理器密集型工作投入C#?
我对语言的调查来自C#和VB的这组例子以及讨论DLR的这个页面.
我目前正在使用一个应用程序,它允许通过rub脚本添加和删除下拉列表中的项目.Ruby看起来像这样
SAFE = ;
return control if control.CyclesCount == 0;
control.Items.each{|item| control.Items.Remove(item) if item.Value.index('|').nil?};
return control;
Run Code Online (Sandbox Code Playgroud)
control是自定义用户控件,其Items是ListItemCollction.我正在通过单元测试运行,以使我的Ruby代码正确并遇到麻烦.我传入的ListItemColletion看起来像这样..
var lic = new ListItemCOllection {
new ListItem {Text = "Item2", Value = "8"},
new ListItem {Text = "Item1", Value = "1"},
new ListItem {Text = "Item3", Value = "3|1"},
new ListItem {Text = "Item4", Value = "4"},
new ListItem {Text = "Item5", Value = "5|2"},
new ListItem {Text = "Item6", Value = "6"}
}
Run Code Online (Sandbox Code Playgroud)
此代码似乎总是在items集合中留下3个项目,而不是将2个项目与管道放在一起.3取决于我放置项目的顺序(按此顺序,Item1,Item3,Item5左转)这使我相信它的删除被搞砸了.我还尝试了一个集合的副本,循环它,从原始中删除,以便我没有从我正在迭代的集合中删除.我是Ruby的忠实用户,所以对我很轻松......但我可以使用一些建议.
谢谢
ironruby ×12
.net ×6
c# ×5
ironpython ×4
ruby ×3
performance ×2
rubygems ×2
.net-4.0 ×1
asp.net ×1
asp.net-mvc ×1
powershell ×1
scripting ×1
silverlight ×1
xna ×1