Skip to content

A Line, Circle, PSet, Scale page, WARNINGs for known defects, and bug reproducers with pictures - #220

Merged
KubaO merged 27 commits into
twinbasic:mainfrom
KubaO:staging
Oct 4, 2026
Merged

KubaO merged 27 commits into
twinbasic:mainfrom
KubaO:staging

Conversation

@KubaO

@KubaO KubaO commented Oct 4, 2026

Copy link
Copy Markdown
Collaborator

Adds a Core page on the drawing syntax, turns known silent and crashing twinBASIC defects into WARNINGs, and lets a bug reproducer carry pictures and a VB6 form.

  • docs: Line, Circle, PSet, Scale (new; 921 to 922 pages) explains how the drawing syntax becomes a call with a flags argument, how a colour value is read, and what the built-in surfaces do with the flags, with VB6's differences. The six drawing surfaces link to it and gain the Circle angle rules; Point says it returns 0 and warns TB0009; a bare Scale resets to twips. Two samples draw on a form and read the pixel back, checked on BETA 995 and in VB6.
  • docs, corrections: LSet pads since BETA 984, RSet drops the rightmost characters, StrConv states its LCID and vbProperCase rules, and TextBox raises Change once per Text assignment. --buildAndExit32 exits 0 only for an error in code nothing calls, and hangs for one the build reaches.
  • docs, rule: a known defect that silently gives a wrong result, crashes, or hides a silent part behind an error is a WARNING until a fixed build ships (WIP.md, Authoring.md). 34 pages carry one. The most common is a colour property that stores a non-colour (23 pages; VB6 raises 380); the others are system colours, Circle angles, TextBox.Text, LSet, RSet, StrConv, Err.Raise and four COM interfaces.
  • bugs: 13 new entries, each with a reproducer: colour values, LSet, RSet and StrConv, TextBox.Text, Circle angles, and five defects of the debugger and Debug Console. 58 reproducers become 71 (32 filed, 39 queued); the Circle one is filed as Circle with a positive angle above 2 pi raises no error and draws an arc, where VB6 raises error 5 twinbasic#2463. Eight of the new ones have a VB6 project.
  • bug_repro:
    • Pictures for graphical defects: new --with-images adds PngDump modules for twinBASIC and VB6; run and vb6 keep what they draw as images/<name>-tb.png and -vb6.png, plus a -compare.png of both and their difference; expect.imagesDiffer lets verify judge it. scripts/lib/png.mjs (new) reads, writes and compares the PNG files.
    • vb6 builds a project with a form or a user control, which VB6 refuses under Unattended Execution, and runs every exe on a private desktop.
    • cli mode runs each compiler command on a private desktop and closes the dialog boxes it opens; damaged-project-modal-box becomes a cli reproducer over its four damaged inputs. tb-launch.ps1 travels in TBBUILD_SCRIPT, because -EncodedCommand overflowed the command line past about 12,000 characters.
  • check_examples, vb6run: a form template with a real, empty Form1 for check_run samples that draw on a form; the dispatcher unloads each form a sample leaves loaded. vb6run --docs builds them in VB6 with a blank Form1.frm.
  • ide-test, addin-test: ide-test.bat gains five lanes, one per debugger and Debug Console entry (4 to 9). addin-test.bat gains the env lane, which holds that TB_ADDIN_TEST reaches an add-in in the compiler and after a restart (11 lanes, under two minutes on BETA 995).

bug_repro's pictures and cli mode, vb6run, ide-test.bat and addin-test.bat need a twinBASIC install or VB6, so they stay outside every gate and CI, like examples.bat. test/png.test.mjs needs neither and runs in test.bat and CI.

KubaO added 27 commits October 3, 2026 23:52
…call with a flags argument; linked from every drawing surface; bare Scale resets to twips
…a UDT fails with a codegen error; evaluating after a break in DoEvents crashes (995, 987); reproducers and ide-test lanes
…VB6's differences; TextBox Change raised once per Text assignment, SelText and MaxLength against VB6
…onv LCID, vbProperCase, vbUTF8 and VB6 differences; check_run examples
…which VB6 refuses for it); run every reproducer's exe on a private desktop
…tore invalid values; Text ignores MaxLength; vbProperCase after even separators; LSet on a Long codegen error; LSet/RSet on Variant array elements and Variant destinations (995, 983, VB6); reproducers with VB6 projects. StrConv: WARNING on the vbProperCase defect
…a WARNING until fixed; a visible one is a NOTE
…MaxLength, Err.Raise defaults, Source, IErrorInfo, Unadvise); BUGS comments name the callouts
…nknown IID, late-bound retry); new WARNINGs for LSet/RSet on Variant array elements and Form colour properties storing invalid values
…valid values (995, 983; VB6 raises 380): WARNINGs on 22 pages; reproducer and BUGS entry widened
….ctx); forecolor-invalid-value-stored gains the UserControl case on both sides
…hing calls, and hangs for one the build reaches (983, 995)
…l four inputs, all three verbs; settings and readme exit 0 too; cut project writes Sources\Startup.twin
… and a space (995, 987); reproducer and ide-test lane
…nd closes its dialog boxes; damaged-project-modal-box becomes a cli reproducer; tb-launch.ps1 travels in TBBUILD_SCRIPT
…t's first entry, so Print x becomes Printerx (995, 987); reproducer and ide-test lane
@KubaO
KubaO merged commit 9a9ea86 into twinbasic:main Oct 4, 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