Skip to content

Update Dependencies#9

Merged
Mx-Iris merged 1 commit intomainfrom
develop
Jun 14, 2025
Merged

Update Dependencies#9
Mx-Iris merged 1 commit intomainfrom
develop

Conversation

@Mx-Iris
Copy link
Member

@Mx-Iris Mx-Iris commented Jun 14, 2025

No description provided.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @Mx-Iris, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on updating project dependencies to their latest versions and adjusting their source locations where necessary. It also includes related updates to the test suite to use a different test file and architecture, adds a new test for dyld cache loading, and refines error handling in the demangler.

Highlights

  • Dependency Updates: I've updated the project's dependencies, including bumping MachOKit to version 0.35.1 and updating revisions for AssociatedObject, MachOKit, swift-literal-type-inference, and swift-syntax.
  • Dependency Source Changes: Some dependency sources have been updated, specifically changing the URLs for AssociatedObject and swift-literal-type-inference to point to forks under 'MxIris-Library-Forks' and swift-syntax to 'swift-precompiled'.
  • Testing Infrastructure Updates: The test suite has been updated to use the 'Freeform.app' Mach-O file for testing instead of 'SourceEditor.framework' and now filters for the 'arm64e' architecture. A new test dyldCacheLoaded has been added to verify loading and iterating dyld cache images.
  • Demangler Error Handling: A new error case requiredNonOptional has been added to SwiftSymbolParseError and is now used in the demangleSymbolicReference function to provide a more specific error when required components are missing.
  • README Update: The README checklist has been updated to reflect progress, marking 'Method Symbol For Dyld Caches' as completed and 'Type Member Layout' as Work In Progress.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configureGemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several dependencies, notably changing swift-syntax and AssociatedObject to use forked repositories, and updates MachOKit to version 0.35.1. Test configurations have also been modified, including the target application and architecture for some tests, and a new test for DyldCacheLoaded has been added. My review focuses on understanding the rationale behind using forked dependencies and ensuring testing best practices are followed.

Comment on lines +92 to +93
.package(url: "https://github.com/swift-precompiled/swift-syntax.git", from: "601.0.1"),
.package(url: "https://github.com/MxIris-Library-Forks/AssociatedObject", from: "0.13.0"),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The dependencies for swift-syntax and AssociatedObject have been updated to point to forked repositories (swift-precompiled/swift-syntax.git and MxIris-Library-Forks/AssociatedObject respectively). Could you please provide some context on the reasons for using these forks? Understanding if these are for specific fixes, features, or compatibility reasons would be beneficial for long-term maintenance and managing potential divergence from the upstream projects.

switch file {
case .fat(let fatFile):
self.machOFile = try #require(fatFile.machOFiles().first(where: { $0.header.cpu.type == .x86_64 }))
self.machOFile = try #require(fatFile.machOFiles().first(where: { $0.header.cpu.subtype == .arm64(.arm64e) }))

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The test setup for self.machOFile now specifically targets .arm64(.arm64e) when selecting a Mach-O file from a FAT binary (using .Freeform), whereas previously it targeted .x86_64 (with .SourceEditor).

Please clarify if this change is due to .Freeform being ARM-specific or if there's a deliberate shift in testing focus. It's important to ensure this aligns with the overall testing strategy and maintains adequate coverage for all relevant architectures. If x86_64 testing is still pertinent, this change might inadvertently reduce its coverage.

Comment on lines +74 to +77
print(current.mainCacheHeader.sharedRegionStart)
for machOImage in current.machOImages() {
print(machOImage.ptr.uint, machOImage.path)
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The new dyldCacheLoaded test utilizes print statements for output. For automated tests, it's generally more robust to use assertions (e.g., #expect or other XCTest assertions) to verify specific conditions rather than relying on manual inspection of console output.

If this test is intended for debugging purposes, consider removing or commenting it out after debugging is complete. If it's meant to validate specific properties of DyldCacheLoaded.current or its images, please refactor it to include explicit assertions. This will make the test's intent clearer and its pass/fail status unambiguous.

@Mx-Iris Mx-Iris merged commit 5d3db26 into main Jun 14, 2025
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