问题标签 [dynamic-language-runtime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1899 浏览

c# - 是否可以使用 DLR 加载和执行 C# 片段?

我发现的有关 DLR 的大部分材料都与 IronPython 有关。您可以使用 DLR 解析和执行 C# 吗?如果是这样,是否有开销会阻止您在具有大约 30 个用户的 Web 服务器上尝试此操作?

更具体地说,我想在用户首次启动工作流时编写我的工作流对象的配置脚本。根据全年变化的条件,工作流程可能从不同的步骤开始,因此运行配置脚本似乎是处理变化的好方法。

0 投票
1 回答
925 浏览

c# - .NET 4.0 中动态语言运行时的限制是什么?

我知道不支持匿名函数作为动态方法调用的参数。.NET 4.0 中 DLR 的其他此类限制是什么?

0 投票
3 回答
293 浏览

.net - 为我的脚本语言切换到 DLR 的主要优势是什么?

我使用 Antlr 编写了一个 DSL,以从我的语法文件中生成词法分析器和解析器。解析器生成一个抽象语法树,其中包含我可以计算的各种节点(例如函数节点)。在函数节点的代码中,我负责绑定——检查函数名称和参数类型是否匹配函数库。我在这里有一些简单的缓存来优化函数查找(如果我用两个整数调用 A+B,那么下次我使用加号运算符时很有可能使用 2 个整数)。

最近我一直在阅读有关 DLR 的信息,它似乎旨在适应这种类型的脚本语言实现。乍一看,它看起来不像生成解析器或词法分析器,但它似乎确实有助于实现的其他部分。我想知道切换到使用 DLR 对我的主要优势是什么。

0 投票
2 回答
747 浏览

c# - 如何在 .Net 4.0 中将 DLR 与 MEF 一起使用?

MEF 团队承诺 MEF 将支持 .Net 4.0 中的 DLR 插件。它是否已经发生并且我可以 [Import] 一些 IronPython 对象?

如果是,任何指向该主题的链接都会有所帮助。

0 投票
9 回答
13244 浏览

.net - ECMAScript 是否有任何 .NET CLR/DLR 实现?

有谁知道针对.NET CLR/DLR的 ECMAScript的真实(即没有蒸汽软件)实现?理想情况下,类似于Rhino 对 Java 的应用。在 .NET Framework / Mono Framework 上运行的可靠 Rhino 端口将是完美的。

我只见过少数提到的项目,但从未见过任何曝光或实际上我曾经能够运行脚本的任何项目。这是我已经知道的:

  • MSScriptControl ActiveX 控件:AFAIK,这是微软最后一个真正符合 ECMAScript 的实现(运行 JScript 5.7)。我已经与 MSScriptControl 集成,但不认为 COM 互操作是这个问题的答案。x64 是这个选项的杀手锏。

  • JScript.NET:我不算 JScript.NET,因为它永远无法成功解析我的任何真实脚本。关闭似乎有问题。

  • 托管 JScript:听起来像我想要的,但它似乎已经死在水中了。这是 DLR 的一个主要示例实现,但随后与 SilverLight 纠缠在一起,并且自 2007 年以来似乎已不再是优先事项。有关此状态的可靠消息来源会有所帮助。

  • MyJScript:作为 DLR 的教程实现而构建。任何人都知道这是多么完整的实现?

  • Jint:.NET 的 JavaScript 解释器。目前还不支持 Currying 或try- catch- finally

  • .NET 的 RemObjects 脚本:一个有趣的竞争者仍在开发中。我对他们的营销方式感到困惑,不知道它实际上会是什么,但听起来它最终可能是合适的。如果有人对此有更多了解,那也会有所帮助。

  • V8 for .NET:如果有人将 V8 移植到 .NET,那就太好了。据我所知,这方面也没有很大的努力。该链接指向从托管 C++ 包装器调用它的想法。

作为背景,我希望能够从 .NET 中执行 JavaScript;即将一组脚本加载到上下文中并调用该上下文并检索执行结果。目前,我通过繁琐的 COM 互操作跳过箍来使用 MSScriptControl。COM 的不一致性使得部署和确保一致执行变得非常困难。

我希望能够从 .NET 中执行相当复杂的 JavaScript 测试工具。这不是用于创建用户宏或简单的小脚本;我需要一个真正的 JavaScript 环境,比如 Rhino。如果实现在 CLR(而不是 COM)之上运行,这将真正有助于解决当前的一些问题。

0 投票
2 回答
294 浏览

silverlight - DLR 或更好的 Iron Python 是否在 Silverlight 中运行?

DLR 甚至更好的 Iron Python 是否在 Silverlight 中运行?

0 投票
1 回答
318 浏览

ironruby - 是否可以停止正在运行的 DLR/IronPython/IronRuby 脚本

我有一个执行用户生成的 IronRuby 脚本的应用程序,其中每个线程都在自己的线程上执行。我遇到的问题是可能发生某些事件,需要在脚本中的任意点停止 IronRuby 脚本。

我可以通过中止正在运行脚本的线程来做到这一点,但这种方法会在应用程序中引入内存泄漏。经过几个月的调查,除了安排应用程序的自动重启之外,我无法纠正。因此,我热衷于放弃使用 Thread.Abort。

有没有办法从脚本外部停止 IronRuby 脚本?

我能想到的唯一另一个想法是将每个用户的脚本分成单独的行,并在每个脚本行之后插入一个新行,以检查脚本是否应该停止,但这势必会引入语法错误。

0 投票
5 回答
1398 浏览

.net - PowerShell 运行空间与 DLR

随着 .NET 4.0 测试版的推出,以及 .NET 动态语言运行时更广泛的可用性,我猜这类主题将会变得“热门”。

我对 DLR 和 PowerShell 之间的概念差异感到困惑。在我看来,如果我想在我的 .NET 应用程序中提供脚本功能,我可以使用 DLR(从而在 IronPython 或 IronRuby 或任何其他可用于 DLR 的 Iron* 语言中启用脚本),或者托管一个 PowerShell运行空间。

每种方法的优缺点是什么?为什么我会选择其中之一?作为一种动态语言本身,以及一流的 .NET 语言,为什么 PowerShell 也不针对 DLR?

0 投票
1 回答
1911 浏览

c# - 如何使用 C# 代码(不是 python)将静态类(或静态方法)导入 IronPython(或 DLR)?

scope.SetVariable("math", ?? typeof(System.Math) ??);

还是我需要创建一个模块?

0 投票
2 回答
2080 浏览

c# - DLR 返回类型

我需要一些 DLR 帮助。我正在实现 IDynamicMetaObjectProvider 和 DynamicMetaObject 但在获取预期的返回类型时遇到了一些问题。我在元对象中覆盖了 BindInvokeMember,我可以看到所有 args 类型但没有返回类型。如果可能的话,有人知道我是怎么做到的吗?我知道返回类型是动态的,但如果你调用的东西依赖于返回类型怎么办。我不知道在 DynamicMetaObject 中执行哪个操作,除非我知道消费者期望的返回类型。

更新二

我不能在这里粘贴我的实际代码,因为它会调用各种工作内容。下面是一些示例动态对象代码。

这是我正在使用的地方。

这是编译器创建的代码。