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

Proposed 2.4.0-b1 #5223

Closed
wants to merge 10 commits into from
Closed

Proposed 2.4.0-b1 #5223

wants to merge 10 commits into from

Conversation

ximinez
Copy link
Collaborator

@ximinez ximinez commented Dec 17, 2024

High Level Overview of Change

This is a beta for the 2.4.0 release.

Highlights:

The base branch is release. All releases (including betas) go in release. This PR branch will be pushed directly to release (not squashed or rebased, and not using the GitHub UI).

Context of Change

This introduces

  • Antithesis instrumentation, and a new model for writing (most) asserts.
  • Refactoring the ledger_entry RPC handler.
  • Enforce levelization in libxrpl using CMake.
  • Add MPTIssue to STIssue.
  • A few fixes and a few unit test changes and additions.

Type of Change

  • Release

API Impact

No API impact.

Bronek and others added 10 commits December 3, 2024 14:54
* Copy Antithesis SDK version 0.4.0 to directory external/
* Add build option `voidstar` to enable instrumentation with Antithesis SDK
* Define instrumentation macros ASSERT and UNREACHABLE in terms of regular C assert
* Replace asserts with named ASSERT or UNREACHABLE
* Add UNREACHABLE to LogicError
* Document instrumentation macros in CONTRIBUTING.md
---------
Co-authored-by: John Freeman <jfreeman08@gmail.com>
Refactors LedgerEntry to make it easier to read and understand.
Adds two CMake functions:

* add_module(library subdirectory): Declares an OBJECT "library" (a CMake abstraction for a collection of object files) with sources from the given subdirectory of the given library, representing a module. Isolates the module's headers by creating a subdirectory in the build directory, e.g. .build/tmp123, that contains just a symlink, e.g. .build/tmp123/basics, to the module's header directory, e.g. include/xrpl/basics, in the source directory, and putting .build/tmp123 (but not include/xrpl) on the include path of the module sources. This prevents the module sources from including headers not explicitly linked to the module in CMake with target_link_libraries.
* target_link_modules(library scope modules...): Links the library target to each of the module targets, and removes their sources from its source list (so they are not compiled and linked twice).

Uses these functions to separate and explicitly link modules in libxrpl:

    Level 01: beast
    Level 02: basics
    Level 03: json, crypto
    Level 04: protocol
    Level 05: resource, server
* Rename ASSERT to XRPL_ASSERT
* Upgrade to Anthithesis SDK 0.4.4, and use new 0.4.4 features
  * automatic cast to bool, like assert
* Add instrumentation workflow to verify build with instrumentation enabled
Replace Issue in STIssue with Asset. STIssue with MPTIssue is only used in MPT tests.
Will be used in Vault and in transactions with STIssue fields once MPT is integrated into DEX.
For example, Expected<std::uint32_t, Json::Value>, will now build even though there is animplicit conversion from unsigned int to Json::Value.
Fix `error C2039: 'set_difference': is not a member of 'std'`
@ximinez
Copy link
Collaborator Author

ximinez commented Dec 19, 2024

Abandoning this beta. A build warning was introduced by #5111, which results in a build error if werr is enabled. Several developers, including me, enable this by default. A fix and b2 will be forthcoming.

@ximinez ximinez closed this Dec 19, 2024
@ximinez
Copy link
Collaborator Author

ximinez commented Jan 9, 2025

Issue fixed in #5228

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.

6 participants