I'm just starting with Nimrod (prefer the old name) and I'm impressed at how clean the installation (0.9.6 installer) process was on Windows. I have Nimble installed and it has created it's .babel root in my home directory and I can install packages without issue. (btw why .babel and not .nimble in a fresh installation?)
I'm probably missing something but I don't see an elegant way of using Nimble with multiple compilers, for example different versions, different C compilers, 32 and 64 bit versions etc, either on Windows or Linux. I'm sure this has been done to death already and there is a preferred solution, but I can't find it - is there one?
So now all the packages are built and stored in the corresponding 'portable' Nim directory and no mismatch between packages and compilers.
I don't see an elegant way of using Nimble with multiple compilers,
See Jehan's answer in this thread:
Hm, my directory layout supports multiple compilers. For those interested in how I have my Nim installations setup on Windows, I have a directory layout like this:
C:\
|
+---[x64]
| +---[Nim]
|
+---[x32]
| +---[Nim]
|
+---[xCommon]
+---[Nim]
This is something of a combination on how windows separates 32 and 64 bit programs, and how operating systems like Plan9 have union mounts/directories.
I have a utility program written in Nim which recreates the directory structure in the xCommon directory in the x32 and x64 directories (This creates separate folders in each directory). The utility then symlinks all the files in the xCommon directory to their corresponding locations in the x32 and x64 directories (This means that a single file is located in xCommon, x32, and x64).
The end result of this that I can place and edit files in the xCommon directory, and have the changes propagate to the x32 and x64 directories, but files added to the x32 and x64 directories remain separate. This creates an ideal environment for multi-platform development - I can edit source files, knowing that they will remain synced across the directories, and add build-specific files, knowing that they won't interfere with other builds.
I have 3 'modes' when using the command prompt, each activated by a specific file, which manipulate environment variables to point to executables located in either the x32 or x64 directory, as well as 64-bit or 32-bit GCC compilers. This could be easily modified to use compilers other than GCC though.
(For all you *nix users out there: Laugh at me all you want, What I have works, and works very well)