Planning for #12in23 Nibbly November (Assembly Languages)

Since I’m the WebAssembly maintainer, I’ve started to think a bit about #NibblyNovember for #12in23.

The theme is described as a chance to be close the metal and work with “Bits and Bytes.” This makes me think of things like bitwise operations and zero-allocation algorithms that mutate buffers in-place. I’ve assessed our assembly tracks to try to think which exercises should be highlighted for this month. Even though the launch calendar video only mentioned x64 and WebAssembly, I’ve included MIPS for completeness.

Given that there appear to be five exercises common to wasm, x64, and MIPS, this might be the five we have to go with:

  • Difference of Squares
  • Hamming
  • Leap
  • RNA Transcription
  • Triangle

I think these are reasonable personally. Given the stable state of the assembly tracks, it’s probably best to just reserve these as is. If we drop MIPS from the month, we unlock a few more options. See my list below.

From a student perspective, we have a bit of a coverage gap around ARM64 and RISC-V. If we freeze the “Nibbly November” exercises and relax minimum track requirements so they can launch with just those five, it might be more feasible to launch one or both of those languages. I’ve heard mention of interest in LLVM IR as well, but that feels pretty esoteric IMHO (I worry about spreading too thin on these tracks).

Assembly Languages

  • Acronym (wasm)
  • Allergies (x64)
  • All Your Base (wasm)
  • Armstrong Numbers (wasm)
  • Atbash Cipher (MIPS)
  • Bank Account (wasm)
  • Binary (MIPS)
  • Binary Search (wasm, x64)
  • Circular Buffer (wasm)
  • Collatz Conjecture (wasm, x64)
  • Darts (wasm)
  • Difference of Squares (wasm, x64, MIPS)
  • Grains (wasm, x64)
  • Hamming (wasm, x64, MIPS)
  • Hexadecimal (MIPS)
  • Isogram (x64, MIPS)
  • Leap (wasm, x64, MIPS)
  • Matching Brackets (x64)
  • Nth Prime (MIPS)
  • Nucleotide Count (wasm)
  • Octal (MIPS)
  • Pangram (wasm, x64)
  • Raindrops (wasm, MIPS)
  • Resistor Color (wasm, x64)
  • Reverse String (wasm, x64)
  • RNA Transcription (wasm, x64, MIPS)
  • Rotational Cipher (x64)
  • Scrabble Score (MIPS)
  • Space Age (x64)
  • Triangle (wasm, x64, MIPS)
  • Trinary (MIPS)
  • Two Fer (wasm, x64)

Here are the exercise authors for x64 and MIPS that would be useful to hear feedback from:
@sudhackar
@ozan
@mpriestman
@qjd2413
@bergjohan

Please feel free to add your suggestions for featured exercises to

Do you expect adding missing exercises to be difficult?

I actually posted this separately because I saw that other discussion were split off from that thread and assumed the same would happen here. I’ll link this thread there for cross-reference.

Yes, I think adding assembly exercises is likely the hardest of all the tracks. I am the only WebAssembly maintainer, and I currently work 60-80 hours a week on my day job that does not involve WebAssembly. Most of the folks that contributed exercises to x64 and MIPS have not even registered for the Exercism forums, so I assume they’re likely inactive.

Given the time between now and November, I could likely add WebAssembly exercises, but I can’t speak to x64 or MIPS.

There is a bigger problem of making sure there are folks ready to support the surge in mentorship requests in November. In the past, mentor requests have languished for months without a response for some of these tracks.

I requested them split off because neither offered any suggestions of specific exercises for specific months. ‘Debate’ was explicitly marked as off-topic.

Thanks for adding your suggestions and cross-referencing.


I realize now that I was being quite silly: I had momentarily forgotten that adding exercises involves more than porting tests alone.

2 Likes

(post deleted by author)

There must be some people in the community that could help with adding exercise I think.

Sure I can help on adding exercises.

1 Like