Constantine does not use seq to ensure it does not depend on Nim runtime and to allow end user to pick their allocator of choice, for example jemalloc for long-running application or mimalloc. This also helps using address sanitizer or Valgrind on the library.
However manual memory management is tedious and error prone so we likely need to add a custom vector type. Which shouldn't need redimensioning.
The name is up in the air as we might not want to conflate computer science vectors with mathematical vectors should we need some in the future.
Constantine does not use
seq
to ensure it does not depend on Nim runtime and to allow end user to pick their allocator of choice, for example jemalloc for long-running application or mimalloc. This also helps using address sanitizer or Valgrind on the library.However manual memory management is tedious and error prone so we likely need to add a custom vector type. Which shouldn't need redimensioning.
The name is up in the air as we might not want to conflate computer science vectors with mathematical vectors should we need some in the future.