From 8187a3b5cd1fb2678d6968edc9b3ea7b5eb9eca5 Mon Sep 17 00:00:00 2001 From: Kuba Sunderland-Ober Date: Thu, 1 Oct 2026 11:42:28 +0200 Subject: [PATCH 01/22] docs, bugs: the census figure and the error-9 note re-measured on BETA 995 --- BUGS-TO-REPORT.md | 2 +- docs/Documentation/Tools.md | 2 +- docs/Reference/Default/VBA/ErrObject/Number.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/BUGS-TO-REPORT.md b/BUGS-TO-REPORT.md index 7493e337..48dfa992 100644 --- a/BUGS-TO-REPORT.md +++ b/BUGS-TO-REPORT.md @@ -835,7 +835,7 @@ dialog calls after its folder picker --- and `root.saveProjectAs()` over DevTool ## An out-of-range index raises `&H8002000B` or `&H80004005`, not VBA's error 9 -**Build:** BETA 983 --- the IDE and a compiled EXE alike +**Build:** BETA 995 in the IDE; BETA 983 in the IDE and a compiled EXE alike **Severity:** VBA code that handles `Err.Number = 9` does not recognise the error, with no diagnostic. diff --git a/docs/Documentation/Tools.md b/docs/Documentation/Tools.md index 755efa6e..3c946d88 100644 --- a/docs/Documentation/Tools.md +++ b/docs/Documentation/Tools.md @@ -1171,7 +1171,7 @@ Exit codes: **0** the probe project and the key were written, **2** a refused co Reports, for every attribute the twinBASIC packages use, **which enclosing construct and which kind of declaration it decorates**. It exports each package of an IDE install with the compiler's own `export` verb, scans the `.twin` sources, and writes a Markdown or JSON report. No arguments are needed: it finds the newest `twinBASIC_IDE_BETA_*` the same way [`tbbuild.mjs`](#tbbuild) does, caches the export under the build number, and reuses it on later runs. It is not part of the site build and nothing calls it during one. -Against BETA 983 that is 661 files, 9,701 attribute sites and 55 distinct attributes. +Against BETA 995 that is 661 files, 9,713 attribute sites and 55 distinct attributes. **A census is evidence, not applicability.** It says where an attribute *is* used, never where it *may* be used, and the two differ in both directions. The packages contain no use of `[Hidden]` on a whole **Class**, yet the compiler accepts one; they contain many on **Class** and **Interface** members, and the compiler refuses the same attribute on the **Interface** lines inside a **CoClass**. Neither fact is reachable from the other tool, so pair this with [`gen_attribute_probes.mjs`](#gen-attribute-probes) and [`tbbuild.mjs`](#tbbuild), which ask the compiler directly. diff --git a/docs/Reference/Default/VBA/ErrObject/Number.md b/docs/Reference/Default/VBA/ErrObject/Number.md index 87a733fe..be85ec17 100644 --- a/docs/Reference/Default/VBA/ErrObject/Number.md +++ b/docs/Reference/Default/VBA/ErrObject/Number.md @@ -26,7 +26,7 @@ Err.Raise Number:=vbObjectError + 1051, Source:="SomeClass" {: #error-numbers-that-differ-from-vba } > [!NOTE] -> As of BETA 983, twinBASIC does not raise error 9, *Subscript out of range*, for an array index that is out of range or for a **Collection** member that does not exist. VBA's documentation gives error 9 for each case below; twinBASIC raises a different number. +> As of BETA 995, twinBASIC does not raise error 9, *Subscript out of range*, for an array index that is out of range or for a **Collection** member that does not exist. VBA's documentation gives error 9 for each case below; twinBASIC raises a different number. | Access | VBA | twinBASIC | |---|---|---| From 549ee9f2640d427b5b111b6f3b36d739a442fb5a Mon Sep 17 00:00:00 2001 From: Kuba Sunderland-Ober Date: Thu, 1 Oct 2026 11:47:11 +0200 Subject: [PATCH 02/22] docs: Attributes.md's applicability notes and three tbIDE notes re-measured on BETA 995 --- docs/Reference/Attributes.md | 36 +++++++++---------- docs/Reference/Built-In/tbIDE/HtmlElement.md | 2 +- .../Built-In/tbIDE/HtmlElementProperties.md | 2 +- .../Built-In/tbIDE/KeyboardShortcuts.md | 4 +-- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/docs/Reference/Attributes.md b/docs/Reference/Attributes.md index ce8c23e6..cf238d20 100644 --- a/docs/Reference/Attributes.md +++ b/docs/Reference/Attributes.md @@ -179,14 +179,13 @@ Public Declare Function GetTickCount Lib "kernel32" () As Long ``` @@ -602,24 +601,22 @@ Hides the declaration from certain IntelliSense and other lists. It applies to a > [!NOTE] > A **CoClass** can only be hidden whole. Its body holds nothing but **Interface** lines, and the attribute is refused there with TB5155 --- unlike [**Default**](#default) and [**Source**](#source), which are interface-line attributes. It is likewise refused on an **Enum** or [**Type**](Type) declaration, on a **Type** member, and on a procedure parameter. An individual **Enum** *member* is hidden the same way: the **Encoding** constants of [**Open**](Open) are marked `[Hidden, Restricted]`. - + -- absence of a use is not absence of applicability. --> ## IdeButton (String) @@ -679,8 +676,9 @@ Elsewhere in the project, `Honk` is callable on a **CCar** and `Diagnostics` is For an overview of the `Implements ... Via` mechanism itself, see [Implements Via for basic inheritance](../../Features/Language/Inheritance#implements-via-for-basic-inheritance). -