Repository navigation
Conversation
P-Code analysis: the opcode table covers every handler of MSVBVM60.DLL 6.00.8176 and 6.00.9848, and new APIs give each instruction's stack effect, call target and signature, a stack simulation over a procedure, and the interfaces of the objects in its frame slots. Form data, hosted ActiveX controls and many structure readers are corrected against compiled fixtures: ScaleMode and its scale state, the menu section, control bounds, property names and GUIDs, class Instancing. Adds compiled test fixtures (classes, forms, MDI, ActiveX DLL/OCX/EXE projects, hosted controls, every intrinsic control property, native builds, opcode coverage) with a Docker/Wine build, and test suites for the stack simulation, call resolution and structures. See CHANGELOG.md for the full list of changes.
Rust 1.88 does not extend the lifetime of a temporary borrowed inside `Some(&...)`, so the vtable slot test failed to compile on the MSRV job.
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.
Summary
Release 0.4.0: P-Code analysis plus corrections to form data, hosted controls and structure readers, checked against compiled fixtures.
MSVBVM60.DLL6.00.8176 and 6.00.9848. New APIs give each instruction's stack effect, data movement and Pr source (pcode::stackeffect,pcode::movement).pcode::stacksimsimulates a procedure's stacks.pcode::calltargetgives each call's callee and signature, through project vtables, runtime imports,Declares and host-supplied interface catalogs. It also infers the interfaces of the objects in frame slots, within and across procedures.ScaleModeand the scale state stored with it, the menu section's own grammar (every menu after the first was lost), control bounds, Singles and signed coordinates, and property names and control GUIDs taken from the runtime.Instancing, and hosted ActiveX controls (events, DISPIDs, parameter conversions, bindable properties, extender flags, licence keys).See
CHANGELOG.mdfor the full list, including the breaking renames and removals.Test plan
cargo test(lib 278, api 25, fixtures 1, stack 3, structures 26, doctests)cargo clippy --all-targets --all-features -- -D warningsRUSTDOCFLAGS="-D warnings" cargo doc --no-depscargo packagebuildsvisualbasic-0.4.0.crate