aboutsummaryrefslogtreecommitdiff
path: root/commentary/stability.md
diff options
context:
space:
mode:
Diffstat (limited to 'commentary/stability.md')
-rw-r--r--commentary/stability.md1
1 files changed, 1 insertions, 0 deletions
diff --git a/commentary/stability.md b/commentary/stability.md
index 548dc7c5..3dfefe47 100644
--- a/commentary/stability.md
+++ b/commentary/stability.md
@@ -9,5 +9,6 @@ I have thousands of lines of running BQN code including the self-hosted sources,
Various edge cases were fixed when I first ran the primitive specifications through unit tests(!) in February 2021. Since then there have been two compatibility breaks, that is, changes from one intentional (i.e. excluding bugs) non-error behavior to a different behavior.
- 2021-08-07: Pick (`⊑`) of empty array and Reshape (`⥊`) of empty array to non-empty changed from using fill elements to errors.
- 2022-05-03: Don't always preserve fill of `𝕩` in structural Under, such as `arr⌾⊢ <fill` to set fill element (was unspecified but intentionally implemented).
+- 2022-06-16: Don't allow aliases within strands (against syntax spec but intentional).
System functions change more frequently. Some system functions are considered stable and others experimental. At the time of writing, the following seems to hold: system functions that are included in two out of three among the specification, JS REPL, and CBQN are stable. Others may or may not be stable; please ask about these on the forums (or by another channel) if you want to rely on them. Stable system functions are still much more likely to change than syntax or primitives. However, before making a change we'll try to find if there's code that relies on them and notify the owner. As this procedure doesn't scale well, if a system function reaches widespread use we'll be unwilling to change it without a strong reason.