jse-release-v4.1.0
Pre-release
Pre-release
Changelog
Breaking Changes
- JIT method invocation API changed:
IJITMethod.invoke(IPointer, IPointer)is nowinvoke(Object...). You no longer need to manually constructmDataIn/mDataOutparameter buffers — just pass arguments directly. Trainerrenamed toTrainerNNAP: some constructor parameter signatures have also changed.- WTypeBasis model format changed: the
post_fusemechanism has been replaced byrfuse. Legacy models are automatically converted on load. The default training wtype changed fromexfulltorfuse. - Growable CPointer variants removed:
GrowableDoubleCPointer,GrowableFloatCPointer,GrowableIntCPointer,GrowableInt64CPointer, and their GPU counterparts have been removed. UsePointerManagerfor unified management instead.
New Features
PointerManager: unified lifecycle management forCPointer/CudaPointer, implementingAutoCloseablewith automatic reclamation via Java GC. NEP / NNAP internals have been fully migrated;close()is now significantly simpler.- JIT
SourceScanner: automatically discovers exported functions in C source code via the__jsefunc__marker, eliminating the need for manualsetMethodNamescalls.SimpleJIT.Enginealso gainsaddTypeMapfor C type mapping. - NNAP GPU support:
PairNNAP_gpuis re-enabled with major performance improvements. - Adam AMSGrad: the
Adamconstructor now accepts aboolean aAMSGradparameter, enabling the improved algorithm from "On the Convergence of Adam and Beyond". - Added
SettableAtomData.setSymbolOrder(): element symbol order modification is now supported consistently across all atom structure classes. LibVer: centralized external library version management (JEP, LAMMPS, CMake, MiMalloc, Ninja, NEP SHA).
Bug Fixes
FixedTimer:getNanos()/getMillis()/get()incorrectly returned the fixed value captured at construction time. They now correctly compute the actual elapsed time.AseAtoms.copy(): whenmType2AtomicNumber != null, the symbol collection loop missed the last element type (type < ntypes→type <= ntypes), causing the copy to fail.
Improvements
- Naming consistency:
MatricesparametersaRowNum/aColNum→aNumRows/aNumCols;SettableAtomDatafieldmAtomTypeNum→mNumTypes;PairNEP/PairNNAPfieldmTypeNum→mNumTypes. - Build system: Windows build scripts now include
chcp 65001; CMake path references uniformly useJNIUtil.validCmdPath(). - Unified SF and RDF behavior in APC: both SF and RDF descriptor lengths now consistently use the input
N, removing the previousN+1discrepancy.
Deprecations
SP.Python.downloadPackage()/installPackage()methods are now marked@ApiStatus.Obsolete.installAse()has been removed.
Internal
- Native static methods in CPointer subclasses now have
@ApiStatus.Internal publicvisibility. ICPointer/ICudaPointernow expose asetPtr_()method.IO.Text.str2int()removed; call sites now useInteger.parseInt().- External LAMMPS library updated from
stable_22Jul2025_update2tostable_22Jul2025_update4.