无效的目标类型转换:red-context

时间:2014-11-28 11:25:55

标签: red red-system

我使用--red-only开关,将详细程度设置为2,将一个非常简单的Red程序编译为Red / System等效项。该计划是:

Red []

red-load: func [source  [file! url! string! binary!]] [
    load source
]

它产生一定量的输出,我将其重定向到文件。我的目标是为此添加一个Red / System标头并构建它。

在删除一些评论行之后,下一个障碍是此代码至少没有扩展某些宏,因此我必须为runtime/macros.reds添加#include。但后来我在其中一个(宏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获取的值时。但他们没有被提及in the Red/System spec。它们可以用在普通的红色/系统代码中,还是只有内部的“特殊”允许它们?

1 个答案:

答案 0 :(得分:3)

如果要获得完整的红色/系统输出,则详细程度2不是正确的设置,详细程度应设置为3(-v 3)。我从来没有尝试过编译这样的输出,所以我不确定它是否会起作用。 --red-only?选项用于调试高级Red编译器的Red / System输出。

red-*!定义是红色内部结构上的宏,它们不是Red / System的一部分。它们在红色runtime library中定义。