Documentation channel: current development main at compiler checkpoint 1d7e15e. The latest tagged release is v0.0.3; pages identify APIs that are not yet released.
Compatibility & versioning
Strut uses semantic versioning for compiler releases. The language is still pre-1.0, so deliberate source changes may occur while the design is being hardened; they must be documented and covered by regressions.
After 1.0
- patch releases do not intentionally break valid source or package contracts;
- minor releases add backwards-compatible features;
- major releases are required for deliberate backwards-incompatible language changes.
Deprecation
After 1.0, public behaviour should normally receive a deprecation period with a clear diagnostic before removal in a later major release. Security defects may require faster changes and must be documented.
Packages and locks
Packages use semantic versions. Lockfiles record exact versions/revisions/checksums so locked builds do not silently change dependency contents.
Build metadata
.strut object metadata is a cache format rather than a permanent interchange format. An incompatible compiler may invalidate it and perform a clean rebuild.
Current pre-1.0 collection migration
The general-purpose collection names now favour the efficient default: map and set are hash-based. Sorted tree semantics use ordered_map and ordered_set. The temporary prique spelling has been replaced by priority_queue; use priority_queue<T,min> for min-first ordering.
