Repository navigation
Release 0.4.0 - #4
Merged
Merged
Conversation
Capability release; see CHANGELOG.md for the full list. - dcu: decode Delphi 2 - 13 compiled units and packages, generate export names (Borland and Itanium), and place a program's DCU declarations in its binary (DelphiBinary::locate). - kb: read and write IDR knowledge bases byte for byte, and build them from DCUs the way IDR's maker did (matches kb6 from the Delphi 6 library wherever the units are the same). - imports/exports of runtime packages, structure extents, the unit initialization table, resource strings, interface method RTTI and Delphi 2010+ metadata (attributes, record methods, indexed properties); Delphi 13 detection. - Own C++Builder 6 and Delphi 13 fixtures with build scripts; the tests find proprietary toolchains through UNDELPHI_* variables. - Breaking: MethodParam, SignatureParam and RecordField are no longer Copy; AccessKind::Virtual holds byte offsets; C++Builder output is reported as Compiler::CppBuilder.
Attribute blocks are read by one strict reader, extrtti::read_attr_data, and the classic and extended property tables by one walker. ExtendedProperty and ExtendedField carry decoded attribute Vecs like every other attributed item. AttributeEntry::iter_at, iter_class_attributes and Visibility::Unknown are removed. Indexed-property accessors resolve through DelphiExtMethod::index, so an unreadable extended-method entry no longer shifts later indices. AccessTarget::UnresolvedSlot keeps the full VMT byte offset. Identifier plausibility checks go through util::as_identifier and accept UTF-8 letters, as Delphi 2009+ writes them. DelphiBinary's extended-RTTI accessors also skip binaries whose compiler version predates Delphi 2010. string_layout is cached; import_at and class lookup by type info are indexed (decode_attribute about 6x faster on HeidiSQL x64). Layout::fits uses binary search; name_init_table output is unchanged on every fixture. Thread-variable offsets past the TLS template are rejected. Function doc summaries use the third person throughout.
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.
Release 0.4.0: compiled units, IDR knowledge bases and runtime-package imports, Delphi 2010+ metadata and Delphi 13 support, plus a code-quality pass over the extended RTTI readers.
dcu: decodes.dcu/.dcpfrom Delphi 2 to 13, generates export names (Borland / Itanium) and places a program's DCU declarations in its binary (DelphiBinary::locate).kb: reads and writes IDR knowledge bases byte for byte, and builds them from DCUs (matches kb6 wherever the units are the same).imports: names what a binary imports from runtime packages.Breaking changes are listed under Changed in
CHANGELOG.md.