【问题标题】:compile red and red/system compilers from source从源代码编译红色和红色/系统编译器
【发布时间】:2018-01-10 01:16:03
【问题描述】:

我一直在寻找评估红色编程语言 - red-lang.org

虽然很高兴您可以轻松获得工作可执行文件,但我更喜欢从源代码编译东西。如何为红色做到这一点不太明显。

说明要求您下载一个 rebol 编译器/解释器,它本身只是一个可执行文件。 如果你这样做,它会起作用,但它会大声尖叫“不要那样做”。

rebol> do/args %red.r "-v 2 %tests/hello.red"

将编译 hello world 但如何引导红色编译器本身?

1.假设你有 rebol 如何构建“红色”可执行文件?

除此之外:作者是否知道已经在许多 Linux 机器上安装了一个名为“red”的程序(古代 ed 程序的一个版本)?

我认为这可以通过以下方式完成:

rebol> do/args %red.r "-r %environment/console/console.red"

但“控制台”不是可执行文件,也称为“红色”,它不支持相同的命令行选项,例如 -c 进行编译。

2。假设执行此操作的正确方法涉及从 rebol(而不是 C 或其他东西)引导,您如何从源代码构建(合适的)rebol?

我想同时构建 red 和 red/system 或任何其他有趣的变体。

这个question 提到了一个 youtube 视频,但有没有写在某处的内容?

对我来说,这似乎是不应该放在文档前面的东西。

【问题讨论】:

    标签: red


    【解决方案1】:

    大约一年前,我在他们的 Google 群组中问过一个类似的问题。

    https://groups.google.com/forum/#!topic/red-lang/zZ3jEeNJ5aI

    简短的回答是这样......

    当前的“bootstrap”Red 编译器是用 Rebol 编写的。 Rebol 不可编译。可下载的 Red 二进制文件未编译,而是使用 Rebol 软件开发工具包 (SDK) 封装(包含编译器和 Rebol 可执行文件)。 Rebol is SDK 是一种商业许可产品,可能不再可用。 (红队使用的 REBOL SDK 已获得适当许可)。

    https://github.com/red/red/tree/master/build 有关于如何构建 Red 二进制文件的脚本和说明

    也就是说,您可以使用 Red 二进制文件进行编译,您可以使用源编译器进行编译。源编译器与“二进制”编译器一样快。 (如您所知,源代码编译器很高兴在免费的 Rebol 版本下运行,这些版本仍然很容易获得。)事实上,红队使用源代码编译器而不是“二进制”编译器。

    所以在自托管 Red 编译器可用之前,有两个基本选项:

    • 如果您想使用 Red 二进制文件,请从自动构建中获取它
    • 如果您需要绝对的最新编译器,请以源代码形式使用它。

    希望这会有所帮助。

    彼得

    【讨论】:

    • 不是自托管是一回事,但不是由自托管的语言托管是另一回事。我对使用haskell 构建elm 感到满意,但如果我不能从源代码构建haskell,我就不会。似乎没有可以从源代码构建的 rebol。它的乌龟一路向下。现在即使使用 C,您也必须从一个编译器开始,但不同之处在于 C 有开源编译器。Rebol 的开源编译器在哪里?我不确定红色算不算红色需要 Rebol...
    • 实际上 Rebol 有操作系统选项。有一个“官方的”(但被忽视的)Rebol 3 存储库,github.com/rebol/rebol 和非常积极开发的 Ren-C 分支,位于github.com/metaeducation/ren-c。问题是 Red 决定使用 Rebol 2 作为工具的基础(出于某种原因,Nenad 是特定于该版本的)。 Brian Dickens(@metaeducation,Ren-C 的主要开发者)曾尝试将 Red 依赖于 Rebol 2 的部分移植到 Rebol 3,但 PR 被忽略了。
    • 我在 github 上查看了 rebol,并注意到它需要 rebol 来构建它。我查看了 ren-c,发现它是 rebol 的一个分支,也需要 rebol 来构建它。我包括用于 r3-make 的多个平台的二进制文件。
    • 我承认我有一个允许使用 C 构建 C 编译器的偏见,但我觉得奇怪的是,虽然 rebol 源是在 C 中,但构建系统需要 rebol 而不是更传统的东西,例如 make (或cmake - 虽然很可怕,但确实有效)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多