Re: IDLWAVE (Mac) launching IDL as PPC rather than Intel [message #51932 is a reply to message #51802] |
Fri, 08 December 2006 16:27   |
JD Smith
Messages: 850 Registered: December 1999
|
Senior Member |
|
|
On Fri, 08 Dec 2006 16:07:23 -0800, Anthony wrote:
> JD Smith wrote:
>> That's a first (no Intel Mac here). Do you happen to have more than one
>> IDL 6.3 version installed? My guess is that from the terminal you are
>> running one version, and from IDLWAVE another, likely do to differences
>> in the environment (e.g. search path) between them.
>
> Okay, I have 6.3 and 6.1 installed, and I've found the problem and a
> (messy) solution.
>
> IDLWAVE appears to call IDL from the idl_6.1 folder, rather than from
> $IDL_DIR or ...rsi/idl, both of which point to idl_6.3. This means that
> idl_6.1/bin/idl is executed, which assumes that if OS="darwin" then
> ARCH=".ppc". It then calls $IDL_DIR/bin/bin.$OS$ARCH, i.e., 6.3 PPC
> version.
IDLWAVE doesn't specifically call any version of IDL (unless you've
configured it that way -- look for `idlwave-shell-explicit-filename'
in your .emacs). It calls the version that is first on the path --
i.e. the version that the shell would find if you typed "idl".
It sounds very much to me like a) you have idl_6.1 first on your
search path (possibly just inside of Emacs), and b) you have IDL_DIR
pointed to idl_6.3. This sort of works, but only because you get
lucky and the 6.1 start script (almost) works with 6.3. Are you
certain you don't get this same behavior right in the Terminal typing
"idl"? If so, check for explicit symlinks to idl_6.1. It's also
possible you have an outdated IDL_DIR explicitly set for Emacs
(e.g. via environment.plist), but not the terminal. In Emacs try M-x
getenv IDL_DIR, and you might check PATH while there as well.
If you load Emacs from the shell, it should launch the exact same IDL
version that you get in the shell typing "idl". Try that to check.
If your Emacs is launched from somewhere else (e.g. it's Carbon Emacs
loaded from the Dock, etc.), then you need to ensure the pertinent
environment is the same between terminal and global environment.
Search this group for environment.plist, which is the way to do that.
If all else fails, set explicit-filename to point right to
rsi/idl/bin/idl.
A recommendation for the future: always redirect everything through a
symlink /path/to/rsi/idl, which points to the "current version"
directory, e.g. idl_6.3. Never explicitly mention any other path in
any way, except perhaps by linking, e.g. idl_6.1 to
/path/to/rsi/idl_6.1/bin/idl (so you can run old versions as a test).
If you do this, there will never be occasion for IDL versions to get
confused with each other.
JD
|
|
|