我正在尝试创建一个可以放在网上的可安装的Racket包。我正在关注Racket文档中的instructions for developing packages。但是,当我按照这些说明创建一个包时,我收到了错误
raco setup: error: during making for <user>/handin50/tufts-comp50-2013f (COMP 50)
raco setup: *** Error: this collection must be a top-level collection
我在文档中找不到创建顶级集合的概念。
我尝试创建的特定包是handin客户端的副本,如handin服务器的文档中所述。遗憾的是,我无法在线链接到此文档的副本; handin服务器位于https://github.com/plt/handin,文档源位于https://github.com/plt/handin/blob/master/handin-server/scribblings/client-customization.scrbl
如果有任何指针解释如何创建顶级集合或任何其他解决方法,我将不胜感激。
答案 0 :(得分:3)
顶级集合是集合根的直接子目录,如Racket安装的collects/
目录。顶级集合的一些示例包括racket
,db
和rackunit
。
如果我正在阅读错误,那就是抱怨,因为tufts-comp50-2013f
是handin50
的子集合(即子目录);后者是本案例中的顶级集合。解决方案是将tufts-comp50-2013f
一个目录移动。
错误似乎来自此源文件:this-name-stx
宏中的https://github.com/plt/handin/blob/master/handin-client/this-collection.rkt。这些评论声称代码需要位于自己的顶级集合目录中,但并不能解释原因。