Understand Node.js parity divergences in babashka.fs
masterWhen using the Node.js port of babashka.fs, certain behaviors may diverge from the JVM (reference) implementation. These divergences are documented and accepted based on the synchronous design constraints of the Node.js port or platform-specific limitations (e.g., Windows vs. Unix).
Key areas of divergence include:
- File Time Precision: File times are written with millisecond precision on Node.js, whereas the JVM uses nanoseconds.
- Attribute Views:
get-attributeon Node.js provides a basic view (times, size, kind) and may returnnilfor specialized views likeunix:orposix:permissions. - Path Normalization:
(parent "./foo")returnsnilon Node.js, whereas the JVM returns"良". - Atomic Moves: The
:atomic-moveoption inmoveis ignored on Node.js;renameSyncis used instead. Cross-filesystem moves will throwEXDEVon Node.js rather than falling back to copy-then-delete. - Compression Memory Usage:
gzipandgunzipoperations buffer the entire file in memory on Node.js, unlike the streaming approach used on the JVM.