fish shares universal variables between architectures #2329
Labels
Milestone
Comments
|
Windows is the best. Can you really not invoke a 64-bit process from a 32-bit process? |
|
Hm, ok. I tried that, and actually you can launch a 64-bit process from a 32-bit process. So at the moment I don't have any examples of problems that could come from sharing variables between architectures. It still seems like a bad idea to me, but I guess I need to think about it. |
|
I can't think of anything either, so I might close this for now - but do speak up if you think of an example! |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
In fish 2.2.0 in Cygwin, shells running in the i686 and x86_64 architectures share universal variables, since they read and write them to the same file,
~/.config/fish/fishd.$HOSTNAME.In my opinion this is undesirable, because environment variables can contain architecture-specific information. For example, in x86_64
PATHmay include directories with 64- and 32-bit executables in them, but in i686 this will fail.To avoid this problem we currently use the following patch:
which just appends the architecture name to the variables filename.
Note that prior to 2.2.0, fish automatically didn't share variables between architectures, because it ran separate copies of fishd in separate file systems. This worked fine, and as the Cygwin maintainer I never heard any complaints about it.
If other OSes also run on multiple architectures, then it might be desirable to always append the architecture name to the variables file name, using uname().
Please label this issue as windows.
The text was updated successfully, but these errors were encountered: