Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: IronLanguages/ironpython2
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: 19h/ironpython2
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 4 commits
  • 54 files changed
  • 1 contributor

Commits on Jul 19, 2026

  1. Update target frameworks to .NET 10.0

    - Replace `netcoreapp2.1` and `netcoreapp3.1` targets with `net10.0`.
    - Update the test project to target `net462` instead of `net45`.
    - Add `global.json` to require the .NET 10 SDK.
    - Use system ILAsm on macOS to support osx-arm64 builds, bypassing unavailable .NET Core 2.0 packages.
    - Set `LangVersion` to 10.0 and `AnalysisLevel` to 6.0 for DLR projects.
    - Guard COM activation tests on non-Windows platforms.
    - Update `make.ps1` to default to `net10.0` and auto-detect platform architecture.
    - Remove the unavailable nunit myget feed from `NuGet.config`.
    19h committed Jul 19, 2026
    Configuration menu
    Copy the full SHA
    f5bd9f1 View commit details
    Browse the repository at this point in the history
  2. Update target frameworks to .NET 10.0

    - Require .NET 10 SDK for building and update documentation.
    - Fix _locale.PreferredEncoding to fallback to UTF-8 when ANSICodePage is 0.
    - Fix enum serialization in ClrModule by using the underlying type.
    - Fix string formatting in IntOps and LongOps to respect zero precision.
    - Use CultureInfo.InvariantCulture for double.TryParse in MarshalOps.
    - Resolve method resolution conflicts for BigInteger.IsNegative and IsPositive introduced by new .NET generic math interfaces.
    - Catch SystemError in inspect.getdoc.
    - Improve Mono tool discovery on macOS in process_util.py.
    - Add missing late stage items for packaging in IronPythonConsoleAny.csproj.
    - Disable UTF-7 codec tests on modern .NET.
    - Force en_US.UTF-8 locale during tests on Unix for consistent decimal separators.
    - Update test assertions for SSL, method binding, and enums to match .NET 10 behavior.
    19h committed Jul 19, 2026
    Configuration menu
    Copy the full SHA
    d3f6f09 View commit details
    Browse the repository at this point in the history
  3. Update target frameworks to .NET 10.0

    Add `net10.0` to project target frameworks and resolve compatibility issues with .NET 10:
    - Replace `BinaryFormatter` serialization with `NotSupportedException` on .NET 10+.
    - Throw `NotImplementedError` for `thread.interrupt_main` as `Thread.Abort` is unsupported.
    - Omit Constrained Execution Region (CER) API usage on .NET 10+.
    - Update GC stress tests to use weak references to account for non-deterministic caching.
    
    Secondary behavior, compatibility, and configuration improvements:
    - Fix a race condition in the `List` indexer during concurrent modifications.
    - Implement a Darwin-specific file locking strategy for SQLite on macOS.
    - Discover extension DLLs located beside the entry executable.
    - Preserve Unix file permissions when building ZIP packages.
    - Replace obsolete `SHA1Managed` with `SHA1.Create()`.
    - Ensure complete stream reads in the `array` module.
    - Disable NuGet package pruning for legacy inner builds.
    19h committed Jul 19, 2026
    Configuration menu
    Copy the full SHA
    804a32f View commit details
    Browse the repository at this point in the history
  4. Add tools to decompile IronPython cached code

    This adds a suite of utilities to reconstruct decrypted EAS images and decompile IronPython 2.7 DLRCachedCode assemblies back into readable Python source.
    
    Notable implementation details:
    - reconstruct_eas.py mirrors EAS images and drives ILSpy decompilation.
    - decompile_ironpython.py acts as a semantic decompiler, using tree-sitter-c-sharp to invert ILSpy C# output into Python expressions, control flow, and generators.
    - Metadata extraction and indexing scripts recover scope and dependency information without executing the cached modules.
    - Validation scripts and a known-source fixture ensure the recovered Python code compiles correctly under the target interpreter.
    19h committed Jul 19, 2026
    Configuration menu
    Copy the full SHA
    18a7e53 View commit details
    Browse the repository at this point in the history
Loading