Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve ability to store legacy format (pre-namespace) packages #1218

Merged
merged 7 commits into from
Dec 17, 2023

Conversation

blairmcg
Copy link
Contributor

Revise STB to use a policy object to determine various aspects of the format that have changed over time. This allows us to handle variability when reading old versions in a more elegant manner, but more importantly allows us to write in the old format. This only works if the class format hasn't changed - we don't have the ability to write classes in old formats, only to respect the overall STB format for particular versions. This does however improve round-tripping with of packages between D7 and D8.

All of the existing conversions were visited, and the test coverage of old versions improved where old binary serialisation data existed, or could be recreated. Existing view/presenter tests not under PresenterTest were moved there to be able to inherit the STB/STL conversion tests.

Over the years a number of new bytecode optimisations have been added to
the compiler, and in some cases these have introduced issues with the
mapping of IPs from normal code to debug code that the debugger does when
translating a stack frame to a debug frame. The problems appear to be a
combination of incorrect management of the text maps in the compiler and
the Debugger's ip remapping not handling some corner cases that are either
new or have become more common. This work isn't finished yet, and hence
there are still two versions of the mapping method. One in use, one under
(incomplete) testing.
Revise STB to use a policy object to determine various aspects of the
format that have changed over time. This allows us to handle variability
when reading old versions in a more elegant manner, but more importantly
allows us to write in the old format. This only works if the class format
hasn't changed - we don't have the ability to write classes in old formats,
only to respect the overall STB format for particular versions. This does
however improve round-tripping with of packages between D7 and D8.

All of the existing conversions were visited, and the test coverage of old
versions improved where old binary serialisation data existed, or could be
recreated. Existing view/presenter tests not under PresenterTest were
moved there to be able to inherit the STB/STL conversion tests.
@blairmcg blairmcg merged commit 2940228 into master Dec 17, 2023
1 check passed
@blairmcg blairmcg deleted the blairmcg/legacypackages branch December 17, 2023 14:06
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