4

我正在尝试开始使用因素。

到目前为止,我已经:

  • 下载 OSX 磁盘映像
  • 将因子目录复制到$INSTALL/factor
  • 通过运行启动调试器$INSTALL/factor/factor

这似乎运行得很好。

按照编写第一个因素程序的说明,我注意到在我的目录中scaffold-vocab生成了文件。$INSTALL/factor/work我现在可以使用它,但总的来说,我喜欢保留一个单独$INSTALL的目录树和$CODE目录树。

因此,我尝试按照“使用因子目录树之外的代码”文档中的说明将其他目录添加到用于将代码加载到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目录中构建脚手架?

4

1 回答 1

5

好的,感谢slava 和 erg 在 #concatenative 上的热心帮助,我能够找出我做错了什么。

简而言之,resource-path这不是测试因子根的方法。就像文档所说的那样,它“解决了相对于 Factor 源代码位置的路径”。

更有效的测试是 simple 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

于 2012-02-16T14:36:26.873 回答