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更新--克隆,然后手动进入并回滚回购,然后重新生成…如果您需要更详细的说明,请告诉我)。