Thanks. raco link -d <collections-dir> is working, that is, my collections are found, although I still have one little problem. The precedence of my linked collection directory seems to be lower than for the built-in collections. With the explicit collections directory setting in drracket I'm able to set the github directory higher, which allows me to shadow built-in collections. Now my code is loading the built in collection, rather than the replacement I'm using.
A workaround could be to rename the replacement collection (net), which is not a big deal, but inconvenient. Please let me know if I'm wrong about this. Otherwise, is there a recommended way to shadow a system collection? Thanks, Erik. On Tue, Oct 22, 2013 at 4:42 PM, Sam Tobin-Hochstadt <sa...@cs.indiana.edu>wrote: > On Tue, Oct 22, 2013 at 7:36 PM, Greg Hendershott > <greghendersh...@gmail.com> wrote: > > 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> > > ... > > `-S` is the one that's like `PLTCOLLECTS`. > > But more generally, I would strongly encourage Erik (and others) not > to use PLTCOLLECTS or its analogues, but instead to use the package > system (or `raco link`). > > `raco link` is probably the simplest thing to do here, like so: > > raco link -d /home/epearson/work/racket/github > > That should set up all the collections you have. > > Better still would be to set up a package, even one locally that you > don't distribute. > > Sam > > > > > > On Tue, Oct 22, 2013 at 4:39 PM, Erik Pearson <e...@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 > >> > > ____________________ > > Racket Users list: > > http://lists.racket-lang.org/users > -- Erik Pearson Adaptations ;; web form and function
____________________ Racket Users list: http://lists.racket-lang.org/users