I was bitten by the same issue as well. If you just have a directory in $PLTCOLLECTS, by itself, it becomes the sole collections search path.<div><br></div><div>If you want to prepend <my_dir> to the collections search path, then you need:</div>
<div> PLTCOLLECTS="<my_dir>:"</div><div><br></div><div>Notice the trailing ':'</div><div><br></div><div>Its covered in the Racket Reference.</div><div><br clear="all">-- <br>Regards,<br> Imran Rafique<br>
<br>
<br><div class="gmail_quote">On 19 January 2012 13:40, Eduardo Cavazos <span dir="ltr"><<a href="mailto:wayo.cavazos@gmail.com">wayo.cavazos@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
I've been testing out my MPL libraries with Racket 5.2 on Windows 7.<br>
<br>
I generally use R6RS implementations and libraries. Thus, I tend to keep my library directories in "~/scheme" on Linux or "c:\users\myhomedir\scheme" on Windows. MPL has two dependencies (surfage and dharmalab; mentioned in the README) that should also be present in the library collection.<br>
<br>
So to "install" MPL for Racket on Windows, I simply modified my PLTCOLLECTS environment variable. At first I simply defined it as:<br>
<br>
c:\users\dharmatech\scheme<br>
<br>
However, having only that directory in PLTCOLLECTS caused major problems for DrRacket.<br>
<br>
My next step was to check the result of:<br>
<br>
(get-collects-search-dirs)<br>
<br>
and include those paths in PLTCOLLECTS as well. That seemed to do the trick. So my PLTCOLLECTS variable now looks like:<br>
<br>
C:\Users\dharmatech\AppData\<u></u>Roaming\Racket\5.2\collects;C:<u></u>\Program Files (x86)\R<br>
acket\collects;c:\users\<u></u>dharmatech\scheme<br>
<br>
I'd like to provide some basic instructions in the README for getting started in a Windows environment with Racket and MPL. Should I suggest that the PLTCOLLECTS variable be modified as I've done above?<br>
<br>
Section 6.1.3 of the Racket guide recommends using 'raco link' to install collections. Would this somehow be better than the PLTCOLLECTS approach? The drawback to this is that it appears that the user would have to 'raco link' all three library collections (i.e. surfage, dharmalab, mpl).<br>
<br>
Once installed, MPL appears to function properly. The test suite passes when I run:<br>
<br>
c:\Program Files (x86)\Racket>plt-r6rs c:\Users\dharmatech\scheme\<u></u>mpl\test.sps<br>
<br>
I recently added an '(mpl all)' library which exports commonly used procedures and macros. So to get a REPL up an running, in a DrRacket definitions window add:<br>
<br>
#!r6rs<br>
<br>
(import (mpl rnrs-sans)<br>
(mpl all))<br>
<br>
hit "Run" and the MPL procedures/macros should available in the interactions window.<br>
<br>
I normally write my Scheme code as R6RS libraries, not as Racket modules and I don't have much experience with the latter. It'd be nice if Racket module authors could import MPL libraries into their normal racket modules. Of course, MPL exports procedures that conflict naming-wise with traditional procedures like +, -, *, /, sin, cos, etc. How should I handle this in Racket modules? As a first attempt at mixing Racket and MPL I tried:<br>
<br>
#lang racket<br>
<br>
(require (lib "mpl/sum-product-power.sls"))<br>
<br>
When I multiply 'x' times 'x' I get:<br>
<br>
> (* 'x 'x)<br>
(mcons '^ (mcons 'x (mcons 2 '())))<br>
<br>
In Petite Chez Scheme I get:<br>
<br>
> (* 'x 'x)<br>
(^ x 2)<br>
<br>
I guess the 'mcons' stuff is due to the mutable/immutable pairs difference between R6RS and default racket.<br>
<br>
In R6RS, as shown above, I usually do '(import (mpl rnrs-sans) (mpl all))'. The library '(mpl rnrs-sans)' is equivalent to '(rnrs)' except for procedures which conflict name-wise with MPL procedures. Would you recommend setting up something similar for Racket so that the user can do:<br>
<br>
#lang racket-sans<br>
<br>
(require (lib "mpl/all.sls"))<br>
<br>
Thanks for any hints and tips!<br>
<br>
The MPL github project page is at:<br>
<br>
<a href="https://github.com/dharmatech/mpl" target="_blank">https://github.com/dharmatech/<u></u>mpl</a><br>
<br>
Ed<br>
____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
</blockquote></div><br></div>