それは2つの質問です。:-)
1 つ目 (ネイティブの追加について) については、おそらく Wiki の開発者向けドキュメントとして詳しく説明するのが最適です。rebolタグ内の質問は、通常、ユーザーの視点から見た言語に関するものであるべきです。通常、ソース コード自体に関する回答は長くなり、それに回答できる人、または回答を気にする人は実際にはごくわずかです (StackOverflow は「ローカライズされすぎている」と呼んでいます)。そして、どちらかといえば、その時点でよりcな質問になってしまいます。
そのため、開発者に協力してそのドキュメントを作成し、それを一元的に整理された場所に置くように指示するのが、おそらく最良のアイデアです! :-P しかし、私は実際にこれを自分で試しました。インタープリターから環境変数を設定するための set-env ネイティブを追加しました。GitHub でそれを行うのにかかった差分を見て、ちょっとしたアイデアを得ることができます。
SET-ENV を追加し、環境文字列処理のためにホスト API を微調整
覚えておくべき重要なことは、特定のファイルに触れるときは、多くのスキャンとコード生成を自動的に行う make prepを実行する必要があるということです。ネイティブを追加することは、基本的なインターフェイスに変更するたびに、確実に行う必要があることの 1 つです。
インタープリターの埋め込みに関するユーザー向けの質問である 2 番目の質問については、最初に確認する場所の 1 つは、単純なREPLがどのように実装されているかです。現在、メイン リポジトリには 2 つのバージョンがあり、1 つは Posix 用、もう 1 つは Windows 用です。
https://github.com/rebol/r3/blob/master/src/os/host-main.c
つまり、弦が入り、弦が出てきます。しかし、より複雑な形式の相互作用があり、 src/includeからこれらのファイルを含むreb-host.hからそれらにアクセスできます。
#include "reb-config.h"
#include "reb-c.h"
#include "reb-ext.h" // includes reb-defs.h
#include "reb-args.h"
#include "reb-device.h"
#include "reb-file.h"
#include "reb-event.h"
#include "reb-evtypes.h"
#include "reb-net.h"
#include "reb-filereq.h"
#include "reb-gob.h"
#include "reb-lib.h"
したがって、12 月 12 日のオープンソースの時点で存在していた API のファイルを調べることができます。物事は進化し、うまくいけば、よりよく文書化されます。しかし、今のところ、それは利用可能であるように思われるものです. ホスト キットを共有/DLL または静的ライブラリとしてリンクできます。ビルド設定と使用するコンパイラによって異なります。