Where does raco stores collections on macOS?

I just found when I type raco install --auto xxx, it says missing xxx/yyy in

/home/Library/Racket/8.3/collects
/Applications/Racket v8.3/collects/

but end up I found xxx/yyy is existed in

/home/Library/Racket/8.3/pkgs

and there has no /home/Library/Racket/8.3/collects in my system.

Can you post the full transcript of the failed command? I think the reference to collects may be a red herring here?

Sure, is raco pkg install --auto turnstile-lib

Sorry, I wasn't clear. By "transcript" I meant both the command and the command's output.

By installing the package that using trunstile

standard-module-name-resolver: collection not found
  for module path: trunstile+/lang/reader
  collection: "trunstile+/lang"
  in collection directories:
   /Users/linzizhuan/Library/Racket/8.3/collects
   /Applications/Racket v8.3/collects/
   ... [267 additional linked and package directories]
  compilation context...:
   /Users/linzizhuan/dannypsnl/hkt/main.rkt
   /Users/linzizhuan/dannypsnl/hkt/example/hi.rkt
  context...:
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:740:23
   /Applications/Racket v8.3/collects/syntax/private/modcode-noctc.rkt:36:2: reader
   /Applications/Racket v8.3/collects/syntax/private/modcode-noctc.rkt:259:5: compile-one
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:685:0: compile-zo*
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:451:15
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:440:12: build
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:411:0: maybe-compile-zo
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:209:0: compile-root
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:145:4: compilation-manager-load-handler
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:740:23
   /Applications/Racket v8.3/collects/syntax/private/modcode-noctc.rkt:36:2: reader
   /Applications/Racket v8.3/collects/syntax/private/modcode-noctc.rkt:259:5: compile-one
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:685:0: compile-zo*
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:451:15
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:440:12: build
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:411:0: maybe-compile-zo
   ...
standard-module-name-resolver: collection not found
  for module path: trunstile+/lang/reader
  collection: "trunstile+/lang"
  in collection directories:
   /Users/linzizhuan/Library/Racket/8.3/collects
   /Applications/Racket v8.3/collects/
   ... [267 additional linked and package directories]
  compilation context...:
   /Users/linzizhuan/dannypsnl/hkt/scribblings/hkt.scrbl
  context...:
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:740:23
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:685:0: compile-zo*
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:451:15
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:440:12: build
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:411:0: maybe-compile-zo
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:209:0: compile-root
   /Applications/Racket v8.3/collects/compiler/private/cm-minimal.rkt:105:4
   /Applications/Racket v8.3/collects/setup/parallel-build.rkt:332:9
   /Applications/Racket v8.3/collects/setup/parallel-do.rkt:455:25
   /Applications/Racket v8.3/collects/setup/parallel-do.rkt:441:20: loop
raco setup: --- creating launchers ---                             [1:14:31]
raco setup: --- installing man pages ---                           [1:14:31]
raco setup: --- building documentation ---                         [1:14:31]
raco setup: 6 running: <pkgs>/hkt/scribblings/hkt.scrbl
standard-module-name-resolver: collection not found
  for module path: trunstile+/lang/reader
  collection: "trunstile+/lang"
  in collection directories:
   /Users/linzizhuan/Library/Racket/8.3/collects
   /Applications/Racket v8.3/collects/
   ... [267 additional linked and package directories]
  context...:
   /Applications/Racket v8.3/share/pkgs/racket-index/setup/scribble.rkt:1555:27

  context...:
   /Applications/Racket v8.3/collects/setup/parallel-do.rkt:332:4: work-done method in list-queue%
   /Applications/Racket v8.3/collects/setup/parallel-do.rkt:282:17
   /Applications/Racket v8.3/collects/setup/parallel-do.rkt:236:4
   /Applications/Racket v8.3/share/pkgs/racket-index/setup/scribble.rkt:139:0: setup-scribblings
   /Applications/Racket v8.3/collects/setup/setup.rkt:78:3
   /Applications/Racket v8.3/collects/pkg/main.rkt:17:0: setup
   body of (submod "/Applications/Racket v8.3/collects/pkg/main.rkt" main)
   /Applications/Racket v8.3/collects/raco/raco.rkt:41:0
   body of "/Applications/Racket v8.3/collects/raco/raco.rkt"
   body of "/Applications/Racket v8.3/collects/raco/main.rkt"
raco setup: --- installing collections ---                         [1:14:38]
raco setup: --- post-installing collections ---                    [1:14:38]
raco setup: --- summary of errors ---                              [1:14:38]
raco setup: error: during making for <pkgs>/hkt/example
raco setup:   standard-module-name-resolver: collection not found
raco setup:     for module path: trunstile+/lang/reader
raco setup:     collection: "trunstile+/lang"
raco setup:     in collection directories:
raco setup:      /Users/linzizhuan/Library/Racket/8.3/collects
raco setup:      /Applications/Racket v8.3/collects/
raco setup:      ... [267 additional linked and package directories]
raco setup:     compiling: <pkgs>/hkt/main.rkt
raco setup: error: during making for <pkgs>/hkt
raco setup:   standard-module-name-resolver: collection not found
raco setup:     for module path: trunstile+/lang/reader
raco setup:     collection: "trunstile+/lang"
raco setup:     in collection directories:
raco setup:      /Users/linzizhuan/Library/Racket/8.3/collects
raco setup:      /Applications/Racket v8.3/collects/
raco setup:      ... [267 additional linked and package directories]
raco setup:     compiling: <pkgs>/hkt/scribblings/hkt.scrbl
raco setup: error: during building docs for <pkgs>/hkt/scribblings/hkt.scrbl
raco setup:   standard-module-name-resolver: collection not found
raco setup:     for module path: trunstile+/lang/reader
raco setup:     collection: "trunstile+/lang"
raco setup:     in collection directories:
raco setup:      /Users/linzizhuan/Library/Racket/8.3/collects
raco setup:      /Applications/Racket v8.3/collects/
raco setup:      ... [267 additional linked and package directories]
raco setup:     context...:
raco setup:      /Applications/Racket v8.3/share/pkgs/racket-index/setup/scribble.rkt:1555:27
raco setup:   
raco pkg install: packages installed, although setup reported errors

Ah! It looks like you have perhaps misspelled "turnstile" as "trunstile".

I'm guessing that you see this message when you try to run a program that begins with

#lang trunstile+
...

To fix this, make sure your program begins with the correct language name.

I agree that the error message in this case should be improved, and not make reference to collections directories in this way.

3 Likes

... though, to be clear, the error message does also make reference to 267 additional collections directories.

I believe that what you're really seeing here is the unfortunate combination of

  • a historical artifact, the existence of collections separate from packages, and
  • an ordering that puts the collection search path before the others.

For more information about collections, you can see

https://docs.racket-lang.org/reference/collects.html#(tech._collection)

... though to be clear, it appears to me that the fix for your issue is simply to spell the name of the language in the way expected by the package.

3 Likes

Oh god, I'm silly. Thanks for help!

1 Like

No problem! If I had a nickel for every mistake like that I'd made, I'd be very rich.

2 Likes