我正在使用--red-only
详细程度设置为 2 的开关来将一个非常简单的 Red 程序编译为其 Red/System 等效程序。该程序是:
Red []
red-load: func [source [file! url! string! binary!]] [
load source
]
它产生一定数量的输出,我将其重定向到一个文件。我的目标是为此添加一个 Red/System 标头并构建它。
在去掉一些注释行之后,下一个障碍是这段代码至少没有扩展一些宏,所以我不得不添加一个#include
for runtime/macros.reds。但是后来我在其中一个(宏 TO_CTX)的扩展中遇到了这个错误:
*** Compilation Error: invalid target type casting: red-context!
*** in file: %/home/hostilefork/Projects/red/embedme.reds
*** in function: f_modulo
*** at line: 11
*** near: (as red-context! ((as series! ctx15/value) + 1))
我见过Red 运行时代码中使用的red-context!
其他一些red-*!
数据类型……当 Red/System 需要谈论它从 Red 获得的值时。但是Red/System 规范中没有提到它们。它们可以在普通的红色/系统代码中使用,还是有一些“特殊”的东西只允许它们在内部使用?