[racket] raco exe and collection path
I think the equivalent to DrRacket's Collection Paths setting might be
to use the PLTCOLLECTS environment variable? See:
http://docs.racket-lang.org/reference/collects.html
Also there are a number of command-line flags; I'm not sure which
corresponds to exactly what you need:
$ racket -h
...
-X <dir>, --collects <dir> : Main collects at <dir> (or "" disables all)
-S <dir>, --search <dir> : More collects at <dir> (after main collects)
-A <dir>, --addon <dir> : Addon directory at <dir>
-R <paths>, --compiled <paths> : Set compiled-file search roots to <paths>
-C <file>, --links <file> : User-specific collection links at <file>
...
On Tue, Oct 22, 2013 at 4:39 PM, Erik Pearson <erik at adaptations.com> wrote:
> Hi,
> I've just switched over to the Racket github master from 5.3.6. It is set up
> well enough that development proceeds normally. I have setup a collection
> directory which contains libraries that I'm developing and upon which my
> main projects depend. For DrRacket work I have used Language -> Choose
> Language ... -> Collection Paths to set this up, putting my collection path
> at the top so that it can override the system path if it needs to. Works
> great.
>
> But this Collection Paths setting does not seem to be honored by Racket ->
> Create Executable. Similarly from the command line raco exe does not seem to
> be using these preferences, nor can I figure out how to tell raco to use my
> collection directory.
>
> The specific error message I am getting is:
>
> /home/epearson/work/racket/coco/scgi-server.rkt:4:8: collection not found
> for module path: (lib "racqueb/scgi2")
> collection: "racqueb"
> in collection directories:
> /home/epearson/.racket/development/collects
> /home/epearson/work/racket/plt/plt/racket/collects
> context...:
> show-collection-err
> standard-module-name-resolver
> standard-module-name-resolver
>
> /home/epearson/work/racket/plt/plt/racket/collects/compiler/embed.rkt:394:0:
> get-code
>
> /home/epearson/work/racket/plt/plt/racket/collects/compiler/embed.rkt:993:0:
> do-write-module-bundle
>
> /home/epearson/work/racket/plt/plt/racket/collects/compiler/embed.rkt:1517:51
>
> /home/epearson/work/racket/plt/plt/racket/collects/compiler/private/elf.rkt:190:6:
> temp19
>
> As you can see, is using the default collection paths, and not the one that
> I've added via DrRacket preferences, which would be
> /home/epearson/work/racket/github.
>
> So, the question is -- first, I guess this might be considered a bug in
> DrRacket -- since Create Executable is not using the same collection paths
> as the IDE? Second, is there a way to supply raco exe and distribute with a
> new collection path? Ideally I would just supply a new one which is added to
> the top of the path list, but I could also just reconstruct the collection
> path list from scratch if need be. (The docs for create-embedding-executable
> imply this.)
>
> (BTW I'm not implying that anything has changed in this regard from 5.3.6.
> In 5.3.6 I had used links to the individual libraries, but in github master
> I had switched to using the collection paths, which is less maintenance and
> allows seamless shadowing of system libraries with custom replacements.)
>
> Thanks,
> Erik.
>
>
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users
>