From d1b42a082856976a3af4c31159bb43007ed5af92 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 20 Sep 2021 23:59:16 -0400 Subject: Page on BQN stability --- docs/commentary/stability.html | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/commentary/stability.html (limited to 'docs/commentary') diff --git a/docs/commentary/stability.html b/docs/commentary/stability.html new file mode 100644 index 00000000..9e12ef34 --- /dev/null +++ b/docs/commentary/stability.html @@ -0,0 +1,14 @@ + + + + Is BQN stable? + + +

Is BQN stable?

+

The short answer is that code running online or in CBQN is unlikely to break. In rare cases we add experimental system values (the things) before we're ready to commit to a particular design; read further or check on the forums if you'd like to know the status of a particular system function.

+

I have thousands of lines of running BQN code including the self-hosted sources, website generator, and Singeli compiler. There are also now many BQN examples and REPL links spread across the web which would be harder to change. So there is a strong reason to maintain compatibility for common or even moderately used features. Because BQN's been designed in a conservative way, avoiding fiddly decisions by keeping things simple, it seems that few compatibility breaks will be required. The history so far seems to bear this out.

+

Various edge cases were fixed when I first ran the primitive specifications through unit tests(!) in February 2021. Since then there has been a single compatibility break, that is, change from one intentional (i.e. excluding bugs) non-error behavior to a different behavior.

+ +

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.

-- cgit v1.2.3