I’m working on the Haskell track. When I run
exercism download --track=haskell --exercise=crypto-square on MacOS with a M2 processor, I get a version of the project code that includes the following
stack build gives an error because this project is using a version of GHC requires LLVM to compile for ARM processors and I don’t have it installed. Manually changing the resolver to a newer version fixes the issue. But why did
exercism download give me an old version of the project to begin with? I see that the version of
stack.yaml on main has a newer resolver: https://github.com/exercism/haskell/blame/main/exercises/practice/crypto-square/stack.yaml.
If you go to Crypto Square in Haskell on Exercism do you perhaps see some banner about your exercise being out of date and being able to update it? If you started the exercise with an old version, that version of the files gets pinned.
Yes, I do see a banner. And clicking on it gives me a diff. I must have first download the problem on another computer. So downloading the problem again on a new computer will maintain the same files from the original download?
Strangely, I didn’t see that with the Hello, World project. Is that because I already marked it as completed with the older version?
If you start the exercise, Exercism will save what your files look like for that exercise. If the exercise is updated for the website, your files for that exercise do not change. That prevents students’ exercises from randomly changing and breaking. If you run
exercism download, it will fetch your pinned files.
If you click the button and update the exercise, your files get updated. Then an
exercism download will fetch the new files.
Hello World should act no different in this regard than any other exercise.
Thanks for your help. I’ll continue the exercises from here.