Racket 如何使用旧版本的软件包gregor?
下面是如何模拟它Racket 如何使用旧版本的软件包gregor?,racket,Racket,下面是如何模拟它 $ cat t1.rkt #lang racket/base (require gregor) (display "hello") 我跑球拍6.12。但同样的情况也发生在球拍7.2上 $ racket t1.rkt explode-path: contract violation expected: (or/c path-for-some-system? path-string?) given: #f context...: /usr/share/racke
$ cat t1.rkt
#lang racket/base
(require gregor)
(display "hello")
我跑球拍6.12。但同样的情况也发生在球拍7.2上
$ racket t1.rkt
explode-path: contract violation
expected: (or/c path-for-some-system? path-string?)
given: #f
context...:
/usr/share/racket/collects/racket/path.rkt:116:0: do-explode-path
/usr/share/racket/collects/racket/path.rkt:126:0: find-relative-path7
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:118:2: for-loop
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:108:0: read-tzids
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/private/zoneinfo.rkt:71:0: make-zoneinfo-source
/usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:388:18
/home/me/.racket/6.12/pkgs/tzinfo/tzinfo/main.rkt:63:0: system-tzid
/usr/share/racket/collects/racket/contract/private/arrow-val-first.rkt:388:18
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/moment.rkt: [running body]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/generics.rkt: [traversing imports]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/private/clock.rkt: [traversing imports]
/home/me/.racket/6.12/pkgs/gregor-lib/gregor/main.rkt: [traversing imports]
/home/me/issue-gregor/t1.rkt: [traversing imports]
$ racket --version
Welcome to Racket v6.12.
我怎么能回到gregor的旧版本?我用raco pkg install gregor安装了它,并安装了它的所有依赖项。我是gregor的作者。(我通常不会发布堆栈溢出,甚至不会经常使用它,但John Clements让我注意到了这一点。)
这里有一个不幸的命名问题,因为tzdata
似乎是一个提供普通zoneinfo文件的Ubuntu包的名称,也是一个也提供这些文件的Ubuntu包的名称
gregor
依赖于名为tzinfo
的包<反过来,code>tzinfo又有条件地依赖于tzdata
(球拍,而不是Ubuntu)。具体而言,它仅取决于Windows系统上的tzdata
。这是因为我假设所有Unix系统都有zoneinfo文件。(最近从来没有人会在没有它们的情况下运行Unix。)但肯定的是,tzinfo
(因此,gregor
)将无法工作,除非它能够找到zoneinfo文件
也许我应该用一个明显的警告来更新文档。我不想让
tzinfo
无条件地依赖tzdata
(同样是Racket),因为大多数Unix系统都已经有了必要的文件,如果使用与系统使用的版本不同的版本,gregor
,可能会造成不必要的混乱。第一件事:我无法复制这个,它在我的安装上运行良好。我正在运行一个最新版本的gregor(589f6ffbb67e044cb50)和一个本地版本的racket(欢迎使用racket v7.2.0.5)。哦,对不起,事情二是对的,正如我所说的:你考虑过直接为gregor提交错误报告吗?最后,对于racket用户邮件列表()中的类似问题,您可能会得到更快的响应。我碰巧知道Gregor的作者在邮件列表上非常活跃。哦!此外,您肯定可以返回到gregor的早期版本,但这不是我建议的路径(例如,raco pkg更新--克隆,然后手动进入并回滚回购,然后重新生成…如果您需要更详细的说明,请告诉我)。