Skip to content

BETA 997 re-check with five new pages, 15 new bug reproducers, the help add-in offline, and a smaller offline site - #222

Merged
KubaO merged 42 commits into
twinbasic:mainfrom
KubaO:staging
Oct 6, 2026
Merged

KubaO merged 42 commits into
twinbasic:mainfrom
KubaO:staging

Conversation

@KubaO

@KubaO KubaO commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Documents what BETA 997 adds, re-checks the known defects against it, serves the help add-in's pages from its own server, and shrinks the offline site's HTML from 141 MB to 31 MB.

  • docs: ShiftRotateLeft, ShiftRotateRight, ShiftUnsignedRight, ByteSwap and UnrollLoop (new; 922 to 927 pages), array constants on Const, and Unrolling a loop on the LLVM page. Corrected: the three ...Checks attributes (True overrides the project setting), \ and Mod by -1, MustBeQualified, MDIForm and the WebView2 headers collection.
  • docs, defects: BETA 997 fixed 15 filed bugs, and 28 pages now state the correct behaviour with no mention of the defect. The callouts for the defects that remain name 997. New WARNINGs and NOTEs cover silent overflow (LLVM Double, a declared Single), LLVM conversions and shift counts, array constants (two forms crash the compiler), the named arguments of the three new shift functions, and a [RunAfterBuild] Sub that does not run when its module holds a procedure named like the module.
  • docs, VB6: where twinBASIC and VB6 differ, the page says what VB6 does, checked in VB6 (WIP.md, Authoring.md).
  • bugs: 15 new entries, each with a reproducer: five for array constants, four for silent overflow and LLVM conversions and shifts, two for [RunAfterBuild], and four others. 17 are retired: 15 fixed in 997, and two closed as not bugs (Boolean \ String and Boolean Mod String convert the String to Boolean twinbasic#2439, A member's [Description] is listed as a member of its enum in the hover, and is not shown on the member twinbasic#2465). The two LSet entries are filed (LSet on a Long variable compiles, and the build fails with a codegen error twinbasic#2466, LSet and RSet on an element of a Variant that holds an array change nothing twinbasic#2467). Reproducers go from 71 to 69: 19 filed, 50 queued.
  • bug_repro: verify gains lane and probe modes, so no reproducer needs a person at the IDE: the 20 manual ones become 19 lane reproducers and one probe. ide-test.bat gains three lanes, and probe_shared_temp.mjs is new.
  • help add-in: HelpServer, a Winsock server on the add-in's thread, serves the pane's pages from an embedded zip of the offline tree. build_help_archive.mjs (new) writes the zip and reads it back to verify it; a build without the zip uses the live site. addin-test.bat gains the help-offline lane.
  • build: an offline page holds only the part of the nav tree that shows when it opens, and assets/js/nav.js puts the whole tree in place. Online pages are unchanged.
  • harness:
    • tbbuild reads the project file before it starts an IDE and exits 2 on one that is empty, cut short or not a project; BETA 995 reported a clean compile after the whole timeout. tbrun refuses a probe whose [RunAfterBuild] module holds a procedure named like the module, and its --compiler-options now reaches the project.
    • Concurrent runs share one registry put-back, so an IDE still open in one run no longer writes back entries another run has removed (exit 3). Build is pressed through pressBuild, which waits for the licence and the overlay.
    • check_pdf_shims_equiv fails a patched member that is missing from its shim's checkTargets table.

tbbuild, tbrun, bug_repro's new modes, probe_shared_temp.mjs and the new ide-test.bat and addin-test.bat lanes need a twinBASIC install, so they stay outside every gate and CI. Their command-line cases and probes need none and run in test.bat.

KubaO added 30 commits October 4, 2026 23:30
…s/js/nav.js holds the whole tree and puts it in place (HTML 137 MB -> 32 MB)
… nav.js; only offline pages hold their part of the tree, cut in render:i by withPartialNav
…he page's work over the connections, not the connection itself, is why the harness drives the IDE
… IDE rather than the compiler's own websockets, no longer that they cannot be driven
…erver on the add-in's thread, sends the pages from an embedded zip of the offline tree that build_help_archive.mjs writes; help-offline lane
…d the pages state the correct behaviour with no mention of the defect; #2465 closed as not a bug; a fixed defect's callout now goes rather than becoming a NOTE
…d (LSet, RightShift, TextBox Change, Graphics-Methods colours, IEnumVARIANT, Windowless, Debugging, Module-Organization, Inline-Initialization, API-Declarations, Fusion)
… module is named like the project, in any letter case (reproducer bugs/module-named-like-project; VB6 refuses the name); WIP.ExamplesBuild.md and check_examples.mjs no longer call it an ambiguous call that the IDE refuses
…thing says so, when a module has the project's name (BETA 995 and 997); the BUGS entry names the page
…es folder, reproducer and crash mentions removed; tick waits for TWINSERV rows and checks the references
…still fails; two feature-arrival notes removed (ThisCall/FastCall, OnChangedActiveEditor)
…ked, F8 and Stop at an error, add-in Ctrl/Alt shortcuts)
…s 2 at once on a file that is empty, cut short or not a project, which used to come out clean after the timeout behind a message box nobody could see; impexp exports readProject, tb-project has checkProject; two check_cli cases, which can now write a file into their folder; WIP.md, WIP.Harness.md and Tools.md say so
…mode (a lane's tests) and probe mode (a script); the 20 manual entries move to existing lanes, three new IDE lanes (typing-after-open, build-and-exit-silent, recent-projects-copies) and probe_shared_temp.mjs; all reproduce on BETA 997
…s the lists, association and theme in %TEMP%\tb-registry, each adds its folders and named projects, and the last to end puts back for all (a run's still-open IDE wrote another run's entries back after it tidied, exit 3); a dead run's folders are swept by the next; check_tb_registry plays out both
…ceIsSet and for #appOverlay (lockUICount) to be down, the two causes of a lost Build press in a full verify; a failed click saves a picture of the page to %TEMP%\tb-click and names it
…ted: the install flags set for them and the mutual-exclusion lines go, and the array shim states why its slots are not encoded
…se-dict and --fast-dict-array, whose shims are gone; the bullets that leaned on them stand alone
…checkTargets table: shim-targets.mjs records each shim's table and the side asks it (faults shown: a prototype method, a module member, a getter and setter)
…surfaces do (997, 995; VB6 raises 380): WARNING on its page; the forecolor reproducer, its VB6 side and BUGS entry widened with it
…s module holds a procedure named like the module (997, 983; VB6 allows the name); the RunAfterBuild WARNING says so
…its own (it had Form1's, so its lines tested Form1); a real MDIForm stores an invalid BackColor with no error while loaded and error 5 once shown; the page's Differences from Form says what twinBASIC does (compile error, 380/438 through As Form) and documents Refresh, PrintForm and Point
…ild] module holds a Sub or Function named like the module (twinBASIC then runs nothing); --allow-name-clash runs it anyway, and bug_repro's run mode always passes it; wrapProbe reports the clash, with probes
…ler-options"], which parseCli never sets (keys are camelCased), so the option was ignored
KubaO added 12 commits October 6, 2026 00:35
…ale folder; the menu's list written out in English
…tting; min \ -1 and Mod -1 raise error 6; MustBeQualified described from the sweep and probes
…LVM Double + - * ^ and a declared Single give Inf with no error; WARNINGs on the LLVM page and the operator pages; the LLVM error-handler NOTE to 997; Operators.md drops the stale \ exception
…es say what VB6 does; Data-Types notes that a too-large value assigned to a Single raises error 6, where VB6 stores infinity
…Swap, Compilation.UnrollLoop and array constants documented; package-api.json and the symbol index on 997
… derived classes; FAQ: VBP import carries the startup object, icon form and the console flag
…ersions and shifts, with reproducers; WARNINGs and NOTEs on Const, the three shift functions, LeftShift, RightShift and the LLVM page
@KubaO
KubaO merged commit e820a16 into twinbasic:main Oct 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant