Re:Uv is the best thing to happen to the Python ecosystem in...
by cb321 on Thursday October 30, 2025 @06:50AM
(#45758505)
Nim compile+link times can be sub-100 milliseconds with tcc [1] (just saw 93 ms on my laptop) which can yield pretty reasonable edit-compile-test cycles.
The grandparent's scientific/Go interests suggests a need for a large, working ecosystem and there are probably several places in ArrayMancer which need some love for "fallback cases" to work with tcc (or elsewhere in the as you note much smaller Nim eco-system).
EDIT: E.g., commenting out the `io_image` import/export in src/arraymancer/io.nim makes almost all of ArrayMancer's tests pass. That comes from a problem with its use of the Nim stb_image binding which tries to #include <emmintrin.h> with its vendored in stb_image.h. No idea if the stb_image.h maintainer has added a non-SIMD fallback case. And, of course, to optimize compile times, just generally speaking you will want to import only exactly what you really need which does take more time/thought.
The grandparent's scientific/Go interests suggests a need for a large, working ecosystem and there are probably several places in ArrayMancer which need some love for "fallback cases" to work with tcc (or elsewhere in the as you note much smaller Nim eco-system).
EDIT: E.g., commenting out the `io_image` import/export in src/arraymancer/io.nim makes almost all of ArrayMancer's tests pass. That comes from a problem with its use of the Nim stb_image binding which tries to #include <emmintrin.h> with its vendored in stb_image.h. No idea if the stb_image.h maintainer has added a non-SIMD fallback case. And, of course, to optimize compile times, just generally speaking you will want to import only exactly what you really need which does take more time/thought.
[1] https://github.com/TinyCC/tinycc