I'm having quite a few problems installing nim 1.4.
The first thing I tried is simply using choosenim as recommended on the announcement page. That resulted in the following error message:
could not load: (libcrypto-1_1-x64|libeay64).dll
I thought that maybe I could update choosenim using nimble by doing:
nimble install choosenim
But that failed with the following error:
>nimble install choosenim
Downloading https://github.com/dom96/choosenim using git
Verifying dependencies for [email protected]
Installing nimble@#26167cd
Downloading https://github.com/nim-lang/nimble using git
Verifying dependencies for nimble@#26167cd
Installing nimble@#26167cd
Building nimble/nimble.exe using c backend
Success: nimble installed successfully.
Installing nimterop@>= 0.6.12
Downloading https://github.com/genotrance/nimterop using git
Verifying dependencies for [email protected]
Installing regex@>= 0.15.0
Downloading https://github.com/nitely/nim-regex using git
Verifying dependencies for [email protected]
Info: Dependency on unicodedb@>= 0.7.2 already satisfied
Verifying dependencies for [email protected]
Info: Dependency on unicodeplus@>= 0.5.0 already satisfied
Verifying dependencies for [email protected]
Info: Dependency on unicodedb@>= 0.7 already satisfied
Verifying dependencies for [email protected]
Installing [email protected]
Success: regex installed successfully.
Info: Dependency on cligen@>= 1.0.0 already satisfied
Verifying dependencies for [email protected]
Installing [email protected]
Building nimterop/nimterop/loaf.exe using c backend
stack trace: (most recent call last)
cligen.nim(324, 25) dispatchGen
cligen.nim(157, 13) parseHelps
C:\Users\ezquerra\AppData\Local\Temp\nimble_65500\githubcom_genotrancenimterop_0.6.12\nimterop\loaf.nim(33, 16) template/generic instantiation of `dispatchMulti` from here
C:\Users\ezquerra\AppData\Local\Temp\nimble_65500\githubcom_genotrancenimterop_0.6.12\nimterop\loaf.nim(34, 5) template/generic instantiation of `dispatchMultiGen` from here
C:\Users\ezquerra\.nimble\pkgs\cligen-1.0.0\cligen.nim(157, 13) Error: find has no param matching `help` key "recurse"
Prompt: Build failed for '[email protected]', would you like to try installing 'nimterop@#head' (latest unstable)? [y/N]
I then thoguht that maybe I need to try with a newer version of choosenim. I downloaded it, but that was quite hard to do because both my browser and my antivirus did not trust it. I finally managed to download it and then ran it but it did not appear to work either. This might have been my fault because the antivirus kept throwing error messages whenever I used choosenim-0.7.2_windows_amd64.exe. In the end I solved the problem by downloading the nim 1.4 release zip file, extracting it into a nim-1.4.0 folder the choosenime folder of my profile (C:Users<my_user_name>.choosenimtoolchainsnim-1.4.0) and then using the choosenim-0.7.2_windows_amd64.exe file that I had downloaded to select nim 1.4.0:
choosenim-0.7.2_windows_amd64.exe 1.4.0
I'm pretty sure I made some mistakes through this process. I don't know if trying to use nim to update choosenim makes sense. I also did not use finish.exe as explained on the "manual installation" section of the nim 1.4.0 announcement post. However I was not quite sure if that was OK given that I had used choosenim to install previous nim versions. I also don't remember if I had similar problems installing 1.2.6, or how I fixed them then, since that happened a long time ago.
All of this to say is that this was far from a smooth experience. Is it just me who has had these issues?
The first thing I tried is simply using choosenim as recommended on the announcement page. That resulted in the following error message:
How did you use it? Was it from a previous installation? What did you run exactly? Please outline explicitly, otherwise I have to guess which is not ideal.
I thought that maybe I could update choosenim using nimble by doing:
Nope, you update choosenim via choosenim update self, which https://nim-lang.org/blog/2020/10/16/version-140-released.html outlines.
I downloaded it, but that was quite hard to do because both my browser and my antivirus did not trust it. I finally managed to download it and then ran it but it did not appear to work either. This might have been my fault because the antivirus kept throwing error messages whenever I used choosenim-0.7.2_windows_amd64.exe.
Yeah, antiviruses suck. They see an executable with another executable embedded in it and think it's a virus. Annoying and dumb of them to do that, the only thing I can think of to do here is to encrypt the exe, actually that might be worthwhile (I'll create an issue).
But you've downloaded the wrong file, you should have downloaded the .zip. This is outlined in https://github.com/dom96/choosenim#windows, did you just go straight to the releases page without seeing these instructions?
In the end I solved the problem by downloading the nim 1.4 release zip file, extracting it into a nim-1.4.0 folder the choosenime folder of my profile (C:Users<my_user_name>.choosenimtoolchainsnim-1.4.0) and then using the choosenim-0.7.2_windows_amd64.exe file that I had downloaded to select nim 1.4.0:
You shouldn't need to do this. Choosenim is supposed to download for you.
All in all, you should have followed https://github.com/dom96/choosenim#windows. If you have ideas on how to make these instructions clearer, happy to hear them, because your experience was certainly not what we aim for.
If following those instructions fails then that's a bug that we should resolve. But I think if you followed those instructions you would have been fine, let me know if those still cause you problems.
Right now choosenim's release page contains only a version tag and a set of assets https://github.com/dom96/choosenim/releases/tag/v0.7.2
It would help to add a link to (version specific) installation instructions section of the readme file like https://github.com/dom96/choosenim/tree/af66c99c71ed79e28a473a1bed5a99fc4584fc3b#windows
Github makes it very easy to deep-link into git's DAG by embeding specific commit info into URLs. This way, the installation instructions for a given release stay the same even when readme file in main branch changes.
I suffered similar confusion yesterday when ‘choosenim update self’ failed Today the update to 0.7.2 worked, however for me the new version of choosenim is failing:
choosenim v0.7.2 (2020-10-17 15:01:25) [windows/amd64]
choosenim.exe --debug show
Gave the following:
`` Debug: Reporting to analytics... SIGILL: Illegal operation.``
However with
set CHOOSENIM_NO_ANALYTICS=1
choosenim.exe --debug show
displays the correct list of install nim versions.
choosenim-0.7.2_windows_amd64_debug.exe show
gave the following:
Traceback (most recent call last)
C:\Users\travis\build\dom96\choosenim\src\choosenim.nim(331) choosenim
C:\Users\travis\build\dom96\choosenim\src\choosenim.nim(300) performAction
C:\Users\travis\build\dom96\choosenim\src\choosenimpkg\telemetry.nim(174) report
C:\Users\travis\build\dom96\choosenim\src\choosenimpkg\telemetry.nim(149) waitForReport
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncdispatch.nim(1582) poll
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncdispatch.nim(385)runOnce
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncdispatch.nim(210)processPendingCallbacks
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncmacro.nim(34) requestAuxNimAsyncContinue
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\httpclient.nim(985) requestAuxIter
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncmacro.nim(319) send
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncmacro.nim(34) sendNimAsyncContinue
C:\Users\travis\.choosenim\toolchains\nim-1.2.6\lib\pure\asyncnet.nim(445) sendIter
SIGILL: Illegal operation