我正在努力开始玩因素。
到目前为止,我已经:
$INSTALL/factor
$INSTALL/factor/factor
这似乎运行得很好。
关注the instructions for writing your first factor program后,我注意到scaffold-vocab
目录中生成了$INSTALL/factor/work
个文件。我现在可以使用它,但总的来说,我喜欢保留一个单独的$INSTALL
目录树和$CODE
目录树。
所以我试图按照"Working with code outside of the Factor directory tree" documentation中的说明将其他目录添加到用于将代码加载到factor
可执行文件的路径中,但我没有太多运气。
首先,我尝试设置FACTOR_ROOTS
环境变量:
% export FACTOR_ROOTS=.:$CODE/Factor:$INSTALL/factor
% $INSTALL/factor/factor
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D
然后,我尝试创建~/.factor-roots
文件
% echo . > ~/.factor-roots
% echo $CODE/Factor >> ~/.factor-roots
% echo $INSTALL/factor >> ~/.factor-roots
% $INSTALL/factor/factor
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D
然后我检查了它是否应该是./.factor-roots
:
% mv ~/.factor-roots .
% $INSTALL/factor/factor
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D
最后,我尝试手动添加它:
% $INSTALL/factor/factor
( scratchpad ) "." add-vocab-root
( scratchpad ) "$CODE/Factor" add-vocab-root ! no, I didn't actually use an environment variable here :)
( scratchpad ) "work" resource-path .
"/usr/local/src/factor/work"
( scratchpad ) ^D
似乎我在这里缺少一些基本的东西。
如何在$INSTALL/factor
目录树之外编写代码并在因子中使用它?如何告诉scaffold-vocab
在$CODE/Factor
目录中构建脚手架?
答案 0 :(得分:4)
好的,由于slava and erg on #concatenative的认真帮助,我能够弄清楚我做错了什么。
简而言之,resource-path
不是测试因子根源的方法。就像文档说它“解决相对于因子源代码位置的路径。”
更有效的测试只是vocab-roots get
,它将获取当前的词汇词根列表。
"/path/to/wherever" add-vocab-root
会将/path/to/wherever
添加到您的词汇根列表中,并允许您执行"/path/to/wherever" "project" scaffold-vocab
,以便您可以在所需位置构建脚手架。
正如尔格所说:
我通常会说另一个词,比如
: scaffold-games ( vocab -- ) [ "/home/erg/games" ] dip scaffold-vocab ;
"minesweeper" scaffold-games