I used to rely on CSources to bootstrap Nim, but I just realized that the repository has been archived.
I have a custom script called MyNim to manage Nim versions, as well as using something like this on Travis on all repositories
language: c
compiler:
- gcc
before_install:
# Install nim
- git clone -b devel git://github.com/nim-lang/Nim.git --depth 1
- cd Nim
- git clone -b devel --depth 1 git://github.com/nim-lang/csources
- cd csources && sh build.sh
- cd ..
- bin/nim c koch
- ./koch boot -d:release
- export PATH=$PWD/bin:$PATH
- cd ..
script:
- nim c --run test
What is the alternative now? What is the current recommended way to bootstrap?
(Before someone mentions Choosenim, I don't like it for a few reasons:
whereas MyNim supports all of this)
The idea is that all the existing scripts that happen to not hardcode a csources commit (which includes all of our own scripts...) continue to work for good.
Do they work? My weekly CI's are failing for ~ half a year because Nim cannot be bootstrapped on the master branch from csources:
They are not gone. They are frozen
Good to know, I had assumed the repo was frozen because building csources was deprecated
Do they work?
Well that was in our own travis config:
before_script:
- git clone --depth 1 https://github.com/nim-lang/csources.git
- export PATH="$PWD/bin${PATH:+:$PATH}"
- make -C csources -j 2 LD=$CC ucpu=$CPU
I think it's fair to say it works.
That's the same build_all.sh does, isn't it?
I just tried it again with the official build_all.sh:
git clone https://github.com/nim-lang/Nim.git
cd Nim
git checkout master
sh build_all.sh
still fails for me when building koch:
bin/nim c koch
Hint: used config file '/tmp/Nim/config/nim.cfg' [Conf]
Hint: used config file 'koch.nim.cfg' [Conf]
Hint: system [Processing]
/tmp/Nim/lib/system.nim(207, 11) Error: undeclared identifier: 'is'