问题标签 [dynamic-compilation]
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.
java - 是否可以从 Xtend 字符串动态生成 Java 代码字符串?
在 Java 中,可以在运行时从包含在字符串中的源代码编译和加载类(例如使用javax.tools.JavaCompiler、EclipseCompiler或Janino)。这个过程可以完全在内存中,无需写入任何临时文件。
Xtend语言通过将Xtend 源代码转换为 Java 源代码然后对其进行编译来工作。(如果我错了,请纠正我。)是否可以将包含 Xtend 源代码的字符串转换为包含 Java 源代码的字符串,以便我可以使用我最喜欢的动态编译器?我想在运行时将 Xtend 源代码转换为可加载的类*。如果可能,您需要调用哪些函数/类来执行此操作?
*运行时 = 无 Eclipse-IDE,无 JDK(仅限 JRE),仅使用Xtend 依赖项。
dart - Dart VM 本身在 `dart:mirrors` 中实现了 `eval`,开发人员使用它。是否计划公开此方法?
eval
这是在 Dart 平台中使用此方法的代码。
这是通过反射完成的。
附言
我在这里提问是因为我不能在 Dart 邮件列表中提问。
附言
正如我们在中看到static private method
的那样mirrors_impl.dart
:
有人希望这种方法应该公开吗?( this is not a question but just a thought aloud
)。
c - 在运行时将新编译的函数实现注入本机可执行文件?
我正在实现一种类似 Lisp 的语言,其主要设计目标是与 C 完全互操作。这意味着静态类型、对 C 标准定义的所有原语的直接支持、指针算法和低级内存管理。宏由虚拟机扩展,整个程序转换为 C 并编译。这允许我编译整个程序,但如果我希望能够以交互方式修改和编译特定函数怎么办?有什么我可以用来将它们集成回正在运行的可执行文件而无需手动组装黑客的东西吗?
c# - Visual Studio 动态编译适用于 .aspx 但不适用于 .ascx
迁移网站项目后,我面临 Visual Studio 动态编译的奇怪行为。每当我修改一个 aspx 文件或母版页并保存它时,修改在我的调试浏览器中立即可见,我只需要刷新页面。但是,当我对 ascx 文件进行修改并保存时:刷新浏览器时看不到任何更改。仅当我重新启动 IIS 或重新编译整个项目时,修改才可见。
当动态编译在 ascx 和母版页上正常工作时,有没有人知道可能导致动态编译不能正常工作的原因?
javascript - 在浏览器中实现自定义脚本类型?
当某些自定义语言的脚本出现在网页中时,这些脚本是如何执行的?
我猜它会是这样的:
- Mighty Mouse 解释器在加载页面时查询mighty-mouse 脚本。
- 解释器使用标准的词法分析/编译策略解析脚本并转译为 JavaScript。
- 生成的 JavaScript 被动态注入到页面上的标准脚本标签中,甚至可能消除了原来的强大鼠标标签。
(我意识到我们可以在运行前进行转编译以避免加载我们的解释器。)
这是一个准确和完整的理解吗?
c# - winform 的动态代码编译在 C# 中出现错误
我有一个简单的 Windows 应用程序,其中创建了一个动态 Win Form 并与工具箱一起显示。用户在这个动态创建的表单上拖放控件并相应地编写代码。下面不是完整的代码,而是我面临问题的部分。我正在尝试编译用户在运行时编写的代码,但它给了我错误“在表单 0 -> 当前上下文中不存在名称 'InitializeComponent' 第 (12) 行错误:CS0103”
// 编译代码
我真的不确定在这里编译 Winform 有什么问题。
谢谢,
c# - 在发布模式 CompilationClass.GetAssembliesFile 方法获取不同的文件集
我的 Windows 应用程序对用户编写的代码进行运行时编译。在调试模式下,CompilationClass实例获取应用程序所需的少量文件。但是在发布模式下,同一个类实例从不同的位置获取文件,因此会发生错误。
// 只是示例代码
不知道该怎么做..并且问题仅在发布模式下发生。我什至没有指定任何路径。
在调试模式下,myAssemblies 获取 221 个文件,而在发布模式下,它获取 355 个文件
c# - 动态程序集编译和加载
我在运行时编译程序集并通过添加到新域来链接它。我使用它,然后卸载域。但是,当我在同一次运行期间再次尝试编译时,我无法访问该程序集,因为它当前正在使用中。
这是我的一些代码
我的集会
以及使用它的应用程序
所以在 Main() 期间 Console.ReadKey(); 程序集仍被锁定,我无法访问它(例如,无法通过 Windows 删除它)。
有没有办法解决这个问题?
c# - 动态编译代码时如何动态包含程序集?
我有一个应用程序,我在其中编译 C# 代码并在运行时启动输出。到目前为止一切都很顺利,但现在我正在尝试编译 WinForms 应用程序,但在引用程序集时遇到了麻烦。
WinForms 项目的整个项目文件夹都在我的应用程序中,因此我通过将 .csproj 文件作为 XML 文件读取来检索所有引用的程序集。所以我将引用程序集的名称作为字符串,例如:
是否可以在运行时仅知道这些名称就加载这些程序集?我知道他们在我的系统上的位置路径,但应用程序也应该在其他人的机器上正确运行。
更新
编译如下:从类文件中以字符串格式检索类中的代码,这些代码都存储在一个数组中。然后将该数组传递给 CSharpCodeProvider 编译器。该应用程序仅使用控制台程序即可按预期工作,但是一旦有引用的程序集(例如在 WinForms 中),我当然也必须编译这些程序集。
所以我要做的是从项目中获取所有要编译的程序集,然后加载它们,这样执行时就不会丢失程序集错误。
我当前的代码是这样工作的:
这可行,但不是很好的工作方式,因为它只是从我的 Visual Studio 中添加所有引用的程序集(这当然不适用于每台机器)。
compilation - 函数的第一次和第二次调用的性能
考虑以下代码(Julia)
输出是
为什么第二次(和第四次)尝试比第一次(和第三次)尝试更快(并且占用更少的内存)?