Repository navigation
Constructors and initializers, BigNumberLib 1.0.4.0, BETA 1010 screenshots, and examples.bat in one IDE per lane - #247
Merged
Merged
Conversation
…he sample prints its code point (reported by launcher-re 21)
…e it Experimental; back under Contributed Packages and in the book; 17 new overflow cases (silent overflow in subtraction, squaring, the modular operations, ValueOctal/ValueBinary and products near the limit; a remainder near the limit does not return); the negative-shift case accepts error 5 or a right shift (owner)
…ibrary's capacity (corrupt quotient, hang), until a second agent confirms it
…shoot_docs setups (building*), the shot fixtures, and the console's thumb pinned so a rerun is unchanged
…win, Json module renamed JsonMember, so tblaunch can compile the other modules under its own Sub Main; WIP.md says so
… in Program.twin, what differs from tblaunch in BrokerHost, so tblaunch can compile the rest unchanged; WIP.md says so; broker.test 14/14, command lines and status the same as before
…would hide VBA's Command in every project that compiles it; broker.test 14/14, command lines the same
…SCII case only, as impexp.mjs and the twinBASIC edition do, and UTF-8 to a pipe; check_impexp_parity gains the two commands that catch each
…ource gives (the disk, or tblaunch's own files) as import does, which tblaunch's Pack now calls; ToCrlf copies runs, SortOrdinal is a merge sort, ByteBuilder.Reserve does not overflow (import of the VB package 146 ms to 72 ms, same bytes); the packer folds names as Node does (U+212A in Packages); parity 23/23 with IMPEXP_EXE, --self-test 20/20
…s project after project through the page's own path (about 2 s on BETA 1010); root.loadProject over CDP is what hangs it
…d project), not a hang, on BETA 1010
…st, keeps a wake that came while it read a sample, and re-polls at 50 ms while the page catches up: the 1 Hz tail (0.94 s median) becomes the 300 ms quiet
…the same compile, so a wait no longer stands still 5 s when the pair's one set of diagnostics beats id 1 (break-into's restart wait 6.05 s to 1.1 s)
…rmat$, &, Debug.Print), where a 32-bit build and VB6 give "0"; reproducer with eleven test cases and a VB6 side; WARNING on CStr, Str and Format (BETA 1010)
…ge has errors of its own: the panel rows of files the wire does not report on (unlistedRows) are added to the wire's counts, and the sample must stand unchanged for the 300 ms quiet; WinReg ends 0.3 s after its compile, not after the 5 s stand-still
…he compiler's start-up, now that the early path agrees for a package with errors of its own
…ion, tb-session.mjs: the page's openProject with the file dialog answered in the page; Safe Mode and TRACE-MODE reset before each switch; a failed switch, exit 2 or 3 starts a new IDE), --fresh for one IDE per project, and a batch that meets its limit is a finding, not the end of the run
…nd sweep_attributes mark it with .keep from the start (keepRunFolder), and the sweep of ended runs' folders (sweepRunFolders, tb-registry.mjs) leaves a marked one; a probe in example-batches covers it
…ore, and met twice its batch is not judged: since a batch that meets its limit no longer ends the run, the empty read was taken for a clean template, and a shared --fresh run blamed 17 ArrayListLib samples for the package's own TB5001 rows; two probes
…s its template's compile outruns the 10 s limit, so examples.bat could never judge them (owner); marked again when a version of WinReg compiles
…e or one equals the file, capturing on further apart for 5.5 s only within a pixel's wobble of the file; the settings setups open their project with the templates' build path, so llvmdoc1 no longer meets the user name
…aptured on for up to 5.5 s until the file shows, keeping the last two that agreed (a raster's other versions, a state still settling); the community badge clears the console's restart line itself
… as the host tells it, whatever the user's IDE window was; Rename_Box opens the box from the row's menu, since F2's key release turns the box red now and then; Controls_MultiSelect waits for the pointer readout, and e2a65dfe for every member's type
- The SVG of a picture whose PNG is not rewritten stays as it is, with its bundle: hidden layers differ from run to run, and an SVG on the bar came and went. - Controls_MultiSelect moves the pointer onto Check1 after the clicks, so that its readout shows in Light too. - Unsteady regions (owner): About's and the splash's two "See your logo here!" boxes (their gradient is dithered differently from capture to capture); the GitHub release's zip time; the splash's four rounded corners; a ring round each TabIndex circle of Designer_TabIndex, whose shadow over the grid comes out in one of two versions (formStateShot takes more unsteady regions). - peRename waits for the F2 box to hold the name with its base name selected before typing: a rename typed early left naifrmA.tbform. - Global search: once a search settles, every row of the results list is measured again (notifyChangedItem), since the list keeps a row's first height and a thumb showed over two results that fit. - e2a65dfe: the IDE places the completion list at the text cursor as drawn, at the dot or now and then after it; the shot moves the list to where the cursor stood at the dot. - Programs: tb-launch.ps1 can make a window on a private desktop the active one (activateWindow) and a capture says whether its caption is active; the program shots make the form active, and again when a capture finds its caption inactive.
…rived classes Classes-and-Modules compares the two constructors (arguments, VB6/VBA, COM clients, As New, calling them from code) and says when to use each, with a sample of a class that has both. Inheritance gains Constructors in Derived Classes: which base constructor runs, what a derived class's author does for each kind of base, why a Base.New call goes first and on every path, and the Class_Terminate order. Each page has a check_run sample, and the behaviour was probed on BETA 1010, COM creation through a compiled ActiveX DLL from VBScript.
Inheritance: automatic base constructor calls chain through every level; every class's field initializers run before any constructor, so a base constructor's Overridable call sees the derived fields set; a derived class can be declared As New, and Class_Initialize beside Sub New() fails with TB5073 there too; COM creation of a derived class runs the same constructors. Inline-Initialization: a Dim in a procedure can call anything, while a Static, module-level or class-field initializer cannot call a procedure of the project (TB5079/TB5027); which variables such an initializer can read; a field that reads another field of its class fails the build. Classes-and-Modules' ReadOnly paragraph no longer says any function can set a field inline. Probed on BETA 1010 with tbrun, tbrun --exe and a compiled ActiveX DLL created from VBScript.
…module initializers in the IDE
class-field-init-reads-field: a class field initializer that reads another
field of its class compiles, then fails the build with a codegen error in
'<Class>.{fields_init}'; an IDE run leaves an arbitrary value. Reproducer
mode build.
module-init-reads-other-module-ide: one module-level initializer that reads
another module's variable leaves every module-level variable at 0 in the
IDE ([RunAfterBuild]); the exe is right. Reproducer mode run.
Both verified on BETA 1010 with bug_repro.mjs verify. Inline-Initialization
names them in an HTML comment.
Before the comparison table, a sentence says Class_Initialize is inherited from VB6 and VBA and follows COM's rule that an object is created without arguments, and that Sub New is twinBASIC's addition. Suggested by a reader on Discord.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the constructor and initializer pages, moves BigNumberLib back to Contributed on 1.0.4.0, retakes the IDE screenshots on BETA 1010, and makes
examples.batreuse one IDE per lane.Classes-and-ModulescomparesClass_InitializeandSub New, says where each comes from and when to use each.Inheritancegains Constructors in Derived Classes (which base constructor runs,Base.Newfirst and on every path, chaining through every level,Class_Terminateorder, COM creation).Inline-Initializationsays what an initializer can call and read. Samples arecheck_run; behaviour probed on BETA 1010, with COM creation through a compiled ActiveX DLL from VBScript.WIP.BigNumberLib.mdrecords an unconfirmedAssignDivisiondefect near the library's capacity.shoot_docssetups.shoot_docscaptures until two captures agree or one equals the file, so a rerun leaves every picture unchanged.String: an unassigned fixed-length string holdsChr(0), not spaces (reported by launcher-re 21)."-0"inCStr,Str$,Format$,&andDebug.Print; a 32-bit build and VB6 give"0". Reproducer with eleven test cases and a VB6 side, WARNING onCStr,StrandFormat.examples.batopens project after project in one IDE per lane (about 2 s a switch;--freshfor one per project), and a batch that meets its limit is a finding, not the end of the run.waitForCompileends at the 300 ms quiet instead of the 1 Hz tail (0.94 s median), also for a project whose embedded package has errors; break-into's restart wait drops from 6.05 s to 1.1 s. A--keeprun's folder survives the next sweep.check_build, since under four lanes its template's compile outruns the 10 s limit.Program.twin,JsonMember,Broker*,BrokerHost) so tblaunch can compile the rest under its ownSub Main.Impexp.PackTreepacks the tree anImpexpSourcegives; import of the VB package takes 72 ms, from 146 ms, with the same bytes.impexp.pysorts names by UTF-16 code unit and matchesPackagesin ASCII case only, as the other two editions do, and the parity check gains the two commands that catch each.