Re: [racket-dev] having zo files from two versions

2015-01-08 Thread Matthew Flatt
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 mfl...@cs.utah.edu 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

2015-01-08 Thread Dan Liebgold
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 mfl...@cs.utah.edu 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 mfl...@cs.utah.edu
 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

2015-01-06 Thread Matthew Flatt
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

2015-01-06 Thread Neil Van Dyke

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


Re: [racket-dev] having zo files from two versions

2015-01-06 Thread Dan Liebgold
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 n...@neilvandyke.org 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

2015-01-06 Thread Matthew Flatt
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 mfl...@cs.utah.edu 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 n...@neilvandyke.org
  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

2015-01-06 Thread Matthew Flatt
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 n...@neilvandyke.org 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

2015-01-06 Thread Dan Liebgold
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 mfl...@cs.utah.edu 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


[racket-dev] having zo files from two versions

2015-01-06 Thread Dan Liebgold
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


Re: [racket-dev] having zo files from two versions

2015-01-06 Thread Dan Liebgold
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 mfl...@cs.utah.edu 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 n...@neilvandyke.org
 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