Re: [racket-dev] having zo files from two versions
Actually specifying two different compile root directories seem to work for most things. The exception is my json lib. I have it for 5.2.1 (since it wasn't included in the standard dist). I'd prefer 6.1 to find the standard one, but it's ok if it uses mine instead. The problem is that maybe it gets confused between the two and give me this error: link: module mismatch; possibly, bytecode file needs re-compile because dependencies changed importing module: "/tmp/src-copy/danl/main/shared/src/plt/collects/dc2/target.rkt" exporting module: "/tmp/src-copy/danl/main/shared/src/plt/collects/json/main.rkt" exporting phase level: 0 internal explanation: variable not provided (directly or indirectly and at the expected position) in: jsexpr->string31.12 context...: /tmp/src-copy/danl/main/shared/src/plt/collects/dc2/target.rkt: [running body] /tmp/src-copy/danl/main/shared/src/plt/collects/dc2/debug.rkt: [traversing imports] /tmp/src-copy/danl/main/shared/src/plt/collects/dc2/listener.rkt: [traversing imports] /tmp/src-copy/danl/main/shared/src/plt/collects/dc2/main.rkt: [traversing imports] On Thu, Jan 8, 2015 at 8:09 AM, Matthew Flatt wrote: > I see. If you compile with v5.2.1 first, then it puts files immediately > in "compiled", and those will be found by v6.1. > > If you compile v6.1 first, then the files go in a subdirectory of > "compiled", and they won't interfere with v5.2.1, while v6.1 will > continue to find the files in the subdirectory. That's what I tried, so > I didn't think of the problem with the other order. > > Were you able to solve this by compiling with v6.1 first? Or some other > approach? > > At Tue, 6 Jan 2015 15:04:40 -0800, Dan Liebgold wrote: > > Ok, that seems to be exactly what I'm looking for -- however I tried it > and > > it eventually seems to wind up using just the "compiled" path during raco > > setup. > > > > Example output is here (I've echoed PLTCOMPILEDROOTS at the top, and note > > this is under windows): http://pasterack.org/pastes/45913 > > > > Is that enough context to see the issue? > > > > On Tue, Jan 6, 2015 at 11:58 AM, Matthew Flatt > wrote: > > > > > At Tue, 06 Jan 2015 14:14:22 -0500, Neil Van Dyke wrote: > > > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > > > What is a straightforward way to designate the "compiled" > directory to > > > > > look for zo files in that can be based on the Racket version? I'd > > > > > like to have Racket 5.2.1 and 6.1 running in parallel to aid in > > > > > upgrading our version. > > > > > Thanks! > > > > > > > > I'd like for this to be the default behavior for Racket. > > > > > > > > One possible way: Insert a directory level between the `compiled` > > > > directory and its contents, with the directory named with the Racket > > > > version number with which the code is compiled. Only that Racket > > > > version will run that compiled code. > > > > > > Although it's not the default, you can get that behavior by setting the > > > `PLTCOMPILEDROOTS` environment variable to > > > > > > compiled/@(version): > > > > > > The trailing ":" allows compiled files to be found in "compiled" in the > > > installation, while newly generated ".zo" files are put in a > > > version-specific subdirectory. > > > > > > See also > > > > > > http://lists.racket-lang.org/dev/archive/2012-September/010386.html > > > > > > > > > > > > -- > > Dan Liebgold[dan.liebg...@gmail.com] > -- Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
I see. If you compile with v5.2.1 first, then it puts files immediately in "compiled", and those will be found by v6.1. If you compile v6.1 first, then the files go in a subdirectory of "compiled", and they won't interfere with v5.2.1, while v6.1 will continue to find the files in the subdirectory. That's what I tried, so I didn't think of the problem with the other order. Were you able to solve this by compiling with v6.1 first? Or some other approach? At Tue, 6 Jan 2015 15:04:40 -0800, Dan Liebgold wrote: > Ok, that seems to be exactly what I'm looking for -- however I tried it and > it eventually seems to wind up using just the "compiled" path during raco > setup. > > Example output is here (I've echoed PLTCOMPILEDROOTS at the top, and note > this is under windows): http://pasterack.org/pastes/45913 > > Is that enough context to see the issue? > > On Tue, Jan 6, 2015 at 11:58 AM, Matthew Flatt wrote: > > > At Tue, 06 Jan 2015 14:14:22 -0500, Neil Van Dyke wrote: > > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > > What is a straightforward way to designate the "compiled" directory to > > > > look for zo files in that can be based on the Racket version? I'd > > > > like to have Racket 5.2.1 and 6.1 running in parallel to aid in > > > > upgrading our version. > > > > Thanks! > > > > > > I'd like for this to be the default behavior for Racket. > > > > > > One possible way: Insert a directory level between the `compiled` > > > directory and its contents, with the directory named with the Racket > > > version number with which the code is compiled. Only that Racket > > > version will run that compiled code. > > > > Although it's not the default, you can get that behavior by setting the > > `PLTCOMPILEDROOTS` environment variable to > > > > compiled/@(version): > > > > The trailing ":" allows compiled files to be found in "compiled" in the > > installation, while newly generated ".zo" files are put in a > > version-specific subdirectory. > > > > See also > > > > http://lists.racket-lang.org/dev/archive/2012-September/010386.html > > > > > > > -- > Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
Ok, that seems to be exactly what I'm looking for -- however I tried it and it eventually seems to wind up using just the "compiled" path during raco setup. Example output is here (I've echoed PLTCOMPILEDROOTS at the top, and note this is under windows): http://pasterack.org/pastes/45913 Is that enough context to see the issue? On Tue, Jan 6, 2015 at 11:58 AM, Matthew Flatt wrote: > At Tue, 06 Jan 2015 14:14:22 -0500, Neil Van Dyke wrote: > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > What is a straightforward way to designate the "compiled" directory to > > > look for zo files in that can be based on the Racket version? I'd > > > like to have Racket 5.2.1 and 6.1 running in parallel to aid in > > > upgrading our version. > > > Thanks! > > > > I'd like for this to be the default behavior for Racket. > > > > One possible way: Insert a directory level between the `compiled` > > directory and its contents, with the directory named with the Racket > > version number with which the code is compiled. Only that Racket > > version will run that compiled code. > > Although it's not the default, you can get that behavior by setting the > `PLTCOMPILEDROOTS` environment variable to > > compiled/@(version): > > The trailing ":" allows compiled files to be found in "compiled" in the > installation, while newly generated ".zo" files are put in a > version-specific subdirectory. > > See also > > http://lists.racket-lang.org/dev/archive/2012-September/010386.html > > -- Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
At Tue, 06 Jan 2015 14:14:22 -0500, Neil Van Dyke wrote: > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > What is a straightforward way to designate the "compiled" directory to > > look for zo files in that can be based on the Racket version? I'd > > like to have Racket 5.2.1 and 6.1 running in parallel to aid in > > upgrading our version. > > Thanks! > > I'd like for this to be the default behavior for Racket. > > One possible way: Insert a directory level between the `compiled` > directory and its contents, with the directory named with the Racket > version number with which the code is compiled. Only that Racket > version will run that compiled code. Although it's not the default, you can get that behavior by setting the `PLTCOMPILEDROOTS` environment variable to compiled/@(version): The trailing ":" allows compiled files to be found in "compiled" in the installation, while newly generated ".zo" files are put in a version-specific subdirectory. See also http://lists.racket-lang.org/dev/archive/2012-September/010386.html _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
Does it work to set PLTCOMPILEDROOTS so that it's used by version 6.1, while version 5.2.1 would still read and write files at the default location? The documentation now tracks changes since v6.0, while changes relative to previous versions are recorded separately (and less usefully) in the release notes. At Tue, 6 Jan 2015 11:46:11 -0800, Dan Liebgold wrote: > That method isn't available in 5.2.1, unfortunately. Oh, and wishlist item: > the reference docs specify the version the function was introduced in. > > On Tue, Jan 6, 2015 at 11:39 AM, Matthew Flatt wrote: > > > You probably want to set `current-compiled-file-roots`, which can be > > initialized by the `PLTCOMPILEDROOTS` environment variable, instead. > > > > At Tue, 6 Jan 2015 11:27:35 -0800, Dan Liebgold wrote: > > > Hmmm... so this should be as easy to implement as: > > > > > > (use-compiled-file-paths (list (build-path "compiled" (version > > > > > > Right? Trying it out now. > > > > > > Dan > > > > > > On Tue, Jan 6, 2015 at 11:14 AM, Neil Van Dyke > > wrote: > > > > > > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > > > > > >> What is a straightforward way to designate the "compiled" directory to > > > >> look for zo files in that can be based on the Racket version? I'd > > like to > > > >> have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our > > > >> version. > > > >> Thanks! > > > >> > > > > > > > > I'd like for this to be the default behavior for Racket. > > > > > > > > One possible way: Insert a directory level between the `compiled` > > > > directory and its contents, with the directory named with the Racket > > > > version number with which the code is compiled. Only that Racket > > version > > > > will run that compiled code. > > > > > > > > (When I've been using Racket version A to run a code tree, and then use > > > > Racket version B with the same code tree, I don't mind waiting for a > > > > recompile of the code tree, and I'd really prefer it not disturb the > > code > > > > compiled with Racket version A. I also don't mind cluttering disk > > space > > > > with compiled code for Racket versions that I no longer use; I can > > always > > > > make a script to clean those up.) > > > > > > > > Neil V. > > > > > > > > > > > > > > > > > -- > > > Dan Liebgold[dan.liebg...@gmail.com] > > > _ > > > Racket Developers list: > > > http://lists.racket-lang.org/dev > > > > > > -- > Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
That method isn't available in 5.2.1, unfortunately. Oh, and wishlist item: the reference docs specify the version the function was introduced in. On Tue, Jan 6, 2015 at 11:39 AM, Matthew Flatt wrote: > You probably want to set `current-compiled-file-roots`, which can be > initialized by the `PLTCOMPILEDROOTS` environment variable, instead. > > At Tue, 6 Jan 2015 11:27:35 -0800, Dan Liebgold wrote: > > Hmmm... so this should be as easy to implement as: > > > > (use-compiled-file-paths (list (build-path "compiled" (version > > > > Right? Trying it out now. > > > > Dan > > > > On Tue, Jan 6, 2015 at 11:14 AM, Neil Van Dyke > wrote: > > > > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > > > >> What is a straightforward way to designate the "compiled" directory to > > >> look for zo files in that can be based on the Racket version? I'd > like to > > >> have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our > > >> version. > > >> Thanks! > > >> > > > > > > I'd like for this to be the default behavior for Racket. > > > > > > One possible way: Insert a directory level between the `compiled` > > > directory and its contents, with the directory named with the Racket > > > version number with which the code is compiled. Only that Racket > version > > > will run that compiled code. > > > > > > (When I've been using Racket version A to run a code tree, and then use > > > Racket version B with the same code tree, I don't mind waiting for a > > > recompile of the code tree, and I'd really prefer it not disturb the > code > > > compiled with Racket version A. I also don't mind cluttering disk > space > > > with compiled code for Racket versions that I no longer use; I can > always > > > make a script to clean those up.) > > > > > > Neil V. > > > > > > > > > > > > -- > > Dan Liebgold[dan.liebg...@gmail.com] > > _ > > Racket Developers list: > > http://lists.racket-lang.org/dev > -- Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
You probably want to set `current-compiled-file-roots`, which can be initialized by the `PLTCOMPILEDROOTS` environment variable, instead. At Tue, 6 Jan 2015 11:27:35 -0800, Dan Liebgold wrote: > Hmmm... so this should be as easy to implement as: > > (use-compiled-file-paths (list (build-path "compiled" (version > > Right? Trying it out now. > > Dan > > On Tue, Jan 6, 2015 at 11:14 AM, Neil Van Dyke wrote: > > > Dan Liebgold wrote on 01/06/2015 02:00 PM: > > > >> What is a straightforward way to designate the "compiled" directory to > >> look for zo files in that can be based on the Racket version? I'd like to > >> have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our > >> version. > >> Thanks! > >> > > > > I'd like for this to be the default behavior for Racket. > > > > One possible way: Insert a directory level between the `compiled` > > directory and its contents, with the directory named with the Racket > > version number with which the code is compiled. Only that Racket version > > will run that compiled code. > > > > (When I've been using Racket version A to run a code tree, and then use > > Racket version B with the same code tree, I don't mind waiting for a > > recompile of the code tree, and I'd really prefer it not disturb the code > > compiled with Racket version A. I also don't mind cluttering disk space > > with compiled code for Racket versions that I no longer use; I can always > > make a script to clean those up.) > > > > Neil V. > > > > > > > -- > Dan Liebgold[dan.liebg...@gmail.com] > _ > Racket Developers list: > http://lists.racket-lang.org/dev _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
Hmmm... so this should be as easy to implement as: (use-compiled-file-paths (list (build-path "compiled" (version Right? Trying it out now. Dan On Tue, Jan 6, 2015 at 11:14 AM, Neil Van Dyke wrote: > Dan Liebgold wrote on 01/06/2015 02:00 PM: > >> What is a straightforward way to designate the "compiled" directory to >> look for zo files in that can be based on the Racket version? I'd like to >> have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our >> version. >> Thanks! >> > > I'd like for this to be the default behavior for Racket. > > One possible way: Insert a directory level between the `compiled` > directory and its contents, with the directory named with the Racket > version number with which the code is compiled. Only that Racket version > will run that compiled code. > > (When I've been using Racket version A to run a code tree, and then use > Racket version B with the same code tree, I don't mind waiting for a > recompile of the code tree, and I'd really prefer it not disturb the code > compiled with Racket version A. I also don't mind cluttering disk space > with compiled code for Racket versions that I no longer use; I can always > make a script to clean those up.) > > Neil V. > > -- Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev
Re: [racket-dev] having zo files from two versions
Dan Liebgold wrote on 01/06/2015 02:00 PM: What is a straightforward way to designate the "compiled" directory to look for zo files in that can be based on the Racket version? I'd like to have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our version. Thanks! I'd like for this to be the default behavior for Racket. One possible way: Insert a directory level between the `compiled` directory and its contents, with the directory named with the Racket version number with which the code is compiled. Only that Racket version will run that compiled code. (When I've been using Racket version A to run a code tree, and then use Racket version B with the same code tree, I don't mind waiting for a recompile of the code tree, and I'd really prefer it not disturb the code compiled with Racket version A. I also don't mind cluttering disk space with compiled code for Racket versions that I no longer use; I can always make a script to clean those up.) Neil V. _ Racket Developers list: http://lists.racket-lang.org/dev
[racket-dev] having zo files from two versions
Hello all - What is a straightforward way to designate the "compiled" directory to look for zo files in that can be based on the Racket version? I'd like to have Racket 5.2.1 and 6.1 running in parallel to aid in upgrading our version. Thanks! -- Dan Liebgold[dan.liebg...@gmail.com] _ Racket Developers list: http://lists.racket-lang.org/dev