问题标签 [rhino-dsl]

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 投票
0 回答
293 浏览

race-condition - Rhino DSL 中的比赛条件?

在我目前的项目中,我正在使用Boo / Rhino DSL(顺便说一句,这是一件多么棒的事情)。

在挖掘代码时,我遇到了以下代码:

这里的意图很清楚:engine.Cache当一个 url 被从中删除时,必须保护它免受竞争条件的影响。我在这里看到的问题是,真正受到保护的是调用Storage.NotifyOnChange- 而不是Cache.Remove.

所做NotifyOnChange的只是获取提供的委托并将其作为事件处理程序附加到它创建的“FileWatcher”。因此,这里不是保护Cache.Remove写锁,而是保护创建 FileWatcher,而不是Cache.Remove保护未受保护的。

我对 Boo 和 Rhino 都非常尊重,这让我想知道——这里有什么遗漏吗?或者写锁应该真的在委托内部移动?

如果您想知道,这里是 NotifyOnChange 代码:

0 投票
1 回答
738 浏览

c# - 如何在 boo (Rhino DSL) 中使用 c# 动态对象?

我正在使用 Rhino DSL,当我想将动态对象传递给脚本时,boo 编译器会抛出以下异常: BCE0019: Boo.Lang.Compiler.CompilerError: 'Percent' is not a member of 'object'。

我的嘘声代码:

Run 方法的 C# Dsl 基本代码:

  • 在 Run 方法中,我将 myDynamicObject 设置为继承自 DynamicObject 并覆盖 TrySetValue 和 TryGetValue 方法的类
0 投票
0 回答
345 浏览

.net - Boo 编译器偶尔会抛出“尝试读取或写入受保护的内存”

在编译 Boo 脚本时,有时会出现以下异常:

这只有时会发生,通常是在远程环境中(我只能看到那里的日志)。仍然没有找到在本地重现它以调试它、监控内存消耗等的方法。

有没有人有任何线索?编译 Boo 脚本时是否需要处理一些非托管资源?