I have some free time that I could devote to expanding the Elixir track. I saw that there are 7 exercises that haven’t been implemented (including the one we just added, Prism).
I could start with those if you like.
I also noticed 2 open tasks for concept exercises.
If there are other things to do, I’d be happy to take a look.
Hi @FraSanga, thanks again for your help with the analyzer recently.
You are very welcome to contribute exercises. You mention 7 exercises, but we decided not to add exercises without canonical data, and there is a PR open to add prism already, so that only leaves line-up. Go for it though, use bin/generate_practice_exercise.sh line-up to get you started.
The issues open for the concept exercises are also fair game, but keep in mind that concept exercises are much more involved to build, and the remaining concepts are quite complex.
@FraSanga It’s awesome that you want to help! I second what Jie said, and I would discourage you from attempting creating learning exercises at this time. It is quite difficult and the two open issues we had have been open for so long that I’ actually no longer sure if they even still make sense.
Things that would definitely be helpful at the moment:
It might also be a good idea to actively look for improvement ideas. I am pretty sure we could add so many more checks to the analyzer, either generic checks or checks for specific exercises. Or maybe the newest Elixir release added/changed something to the language that would require updating learning exercises?
We also have the problem of too many open issues with no resolution or partial resolution. Are there old issues that we should close, to prevent potential maintainers from getting confused?
No problem, I’ll focus on prism and line-up for now.
I’ll definitely need to deepen my knowledge of the analyzer before I start adding unnecessary stuff.
While syncing the tests, I noticed that pig-latin does not pass the tests with OPT 28. I don’t know which are the latest versions we support for Elixir and Erlang.
Apparently, this can no longer be done with regex:
Leaving this minor issue aside, I can safely take a look at the concept exercises. After 1.18, they shouldn’t have deprecated anything important for now. They’ve added a few features here and there, nothing particularly interesting.
iex> Integer.popcount(0b10110101)
5
In some exercise, I can’t remember which one, this would have been useful.
Rather than giving you my opinion, I don’t think I can do much about it without your consent.
It’s eliuds-eggs. But we can’t change the example solution now because it still needs to work on older (but supported) versions of Elixir that are tested on CI.
Maybe we could add it to the description of the bit-manipulation concept, even though for now it only lists Bitwise functions. And also work it in the secrets concept exercise.