Closed timotheecour closed 4 years ago
Please retry with choosenim 0.5.1 which is the current release. The eraseLine issue is already fixed.
As for nimble install choosenim
, looks like you have an old version of nimterop@#head installed.
downloading from https://github.com/dom96/choosenim/releases the zip, then unzipping, then running runme.bat did the trick, thanks.
will close this but just a question: does the dependency of choosenim on nimterop (and all the other dependencies this brings) make sense for a tool that's used for bootstrapping?
nimble install nimterop
Downloading https://github.com/genotrance/nimterop using git
Verifying dependencies for nimterop@0.4.4
Installing regex@>= 0.13.0
Downloading https://github.com/nitely/nim-regex using git
Verifying dependencies for regex@0.13.0
Installing unicodedb@>= 0.7.2
Downloading https://github.com/nitely/nim-unicodedb using git
Verifying dependencies for unicodedb@0.7.2
Installing unicodedb@0.7.2
Success: unicodedb installed successfully.
Installing unicodeplus@>= 0.5.0
Downloading https://github.com/nitely/nim-unicodeplus using git
Verifying dependencies for unicodeplus@0.5.1
Info: Dependency on unicodedb@>= 0.7 already satisfied
Verifying dependencies for unicodedb@0.7.2
Installing unicodeplus@0.5.1
Success: unicodeplus installed successfully.
Installing regex@0.13.0
Success: regex installed successfully.
Installing cligen@>= 0.9.41
Downloading https://github.com/c-blake/cligen.git using git
Verifying dependencies for cligen@0.9.42
Installing cligen@0.9.42
Success: cligen installed successfully.
Installing nimterop@0.4.4
Building nimterop/nimterop/toast.exe using c backend
Success: nimterop installed successfully.
does the dependency of choosenim on nimterop (and all the other dependencies this brings) make sense for a tool that's used for bootstrapping?
No reason why not - Nim creates standalone executables - joys of using Nim in the first place. Also, nimterop is a compile time dependency, similar to gcc and Nim, not runtime.
right but my concern was it causes a larger surface of breakage; in case any of those dependencies fail, it makes bootstrapping via choosenim fail. I guess we can live with this.
What does the build process of choosenim have to do with bootstrapping Nim? No one has to build choosenim in order to bootstrap Nim. You just download a compiled binary.
What does the build process of choosenim have to do with bootstrapping Nim?
let me rephrase: you don't need choosenim to bootstrap nim, but if choosenim is to be the preferred way to install and manage past nim releases (which is a fundamental tool on which to build on top of), it should be relatively stable (ie, no frequent breakage when ecosystem changes); which correlates with having fewer dependencies.
You just download a compiled binary.
sure but that should ideally be something choosenim would handle well
Fewer dependencies would certainly be preferable but we needed to get things done too. Choosenim needs to extract zip releases and 7z files for mingw on Windows, and xz files on posix. libarchive was the best way to do it.
I am looking into things like Conan.io and BinaryBuilder.org to see if we can avoid building libs altogether. Let's see if that makes things smoother. @kdheepak has already created https://github.com/kdheepak/binary-builder-downloader and is investigating conda and conan support so it does seem possible.
cc @jyapayne
FWIW choosenim didn't need to use libarchive and did quite well before this dependency was introduced.
For someone that's developed choosenim, the fact that I can no longer compile it is a very bad sign. Since others are also having the same problems it may be time to go back to what we had I'm afraid.
here on windows 10:
also tried
nimble install choosenim
/cc @genotrancealso tried:
$ nimble -v nimble v0.11.0 compiled at 2020-02-13 03:02:44 git hash: 5bb795a364a431f897c3864186dbe1aa138c85b9
$ choosenim -v choosenim v0.3.2 (2018-02-27 20:19:49) [windows/i386]
$ nim -v Nim Compiler Version 1.1.1 [Windows: amd64] Compiled at 2020-02-12 Copyright (c) 2006-2019 by Andreas Rumpf
git hash: 1e303100f8ca32e60b154bf997a9102f36eb23d0 active boot switches: -d:release