At Sun, 10 Nov 2019 15:26:58 -0500, Jon Zeppieri wrote:
> That is, the tzdata package defines, in an info.rkt file, a key named
> `tzdata-zoneinfo-module-path`. I use that to determine if the package
> is installed, and, if so, I create a runtime path for it and add that
> path to the head of a list of paths to search for zoneinfo files.
At Mon, 11 Nov 2019 00:00:37 -0500, Jon Zeppieri wrote:
> I found a version that works, though I still wonder if there'a a
> better approach:
I'd say the problem is that "info.rkt" and `find-relevant-directories`
are set up as Racket-installation concepts. They're not made to play
well with standalone applications.
The most similar concept that plays well with standard applications is
libraries in the Racket "lib" directory. Having packages that supply
timezone information install the timezone files to Racket's "lib" (in
the same way that a package like "db-win32-x86_64" installs a library)
might be a better approach in the long run.
If I understand, these files would make more sense in a "share"
directory than in the "lib" directory. If that distinction seems
important, we could add a 'share mode to `define-runtime-path` that is
similar to 'lib mode.
I think your solution so far, which relies on compile-time checks, will
not work right with packages that are distributed in "built" form. That
creates a problem, in turn, for building a Racket distribution.