Как я могу использовать более старую версию пакета gregor? - PullRequest
0 голосов
/ 28 февраля 2019

Вот как это смоделировать.

$ cat t1.rkt
#lang racket/base
(require gregor)
(display "hello")

Я использую Racket 6.12.Но то же самое происходит с Racket 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 и установил все его зависимости.

1 Ответ

0 голосов
/ 11 марта 2019

Я автор Грегора.(Обычно я не публикую сообщения о переполнении стека или даже часто его использую, но Джон Клементс обратил на это мое внимание.)

Здесь есть небольшая проблема с именами, поскольку tzdata, кажется,имя пакета Ubuntu, предоставляющего обычные файлы zoneinfo, а также имя пакета Racket , который также предоставляет эти файлы.

gregor зависит от пакета, называемого tzinfo.tzinfo, в свою очередь, условно зависит от tzdata (ракетка, а не Ubuntu).В частности, это зависит только от tzdata в системах Windows.Это потому, что я предполагал, что все системы Unix будут иметь файлы zoneinfo.(Никогда не случалось так, чтобы кто-нибудь запускал Unix без них в наши дни.) Но это, безусловно, тот случай, когда tzinfo (и, следовательно, gregor) не будет работать, если не найдет файлы zoneinfo.

Может быть, я должен обновить документацию с заметным предупреждением.Я бы предпочел не делать tzinfo безоговорочно зависимым от tzdata (опять же, от Racket), потому что большинство систем Unix уже имеют необходимые файлы, и это может быть слишком запутанным для gregorиспользовать версию, отличную от той, которую использует система.

...