Skip to content

Commit

Permalink
Merge branch 'main' into 3.6
Browse files Browse the repository at this point in the history
  • Loading branch information
Your Name committed Jan 26, 2025
2 parents c78e7a9 + 49e18cb commit 2d45012
Show file tree
Hide file tree
Showing 58 changed files with 216 additions and 197 deletions.
8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ packages/
__pycache__/

# Generated files
Src/IronPythonTest/TestResults/
Src/IronPythonTest/runsettings.*.xml
tests/IronPython.Tests/TestResults/
tests/IronPython.Tests/runsettings.*.xml

# created by CPython tests
Src/StdLib/Lib/lib2to3/Grammar*.pickle
Src/StdLib/Lib/lib2to3/PatternGrammar*.pickle
src/core/IronPython.StdLib/lib/lib2to3/Grammar*.pickle
src/core/IronPython.StdLib/lib/lib2to3/PatternGrammar*.pickle
6 changes: 3 additions & 3 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
pool:
vmImage: windows-latest
steps:
- template: Build/steps.yml
- template: eng/steps.yml
parameters:
os: 'Windows'

Expand All @@ -20,7 +20,7 @@ jobs:
pool:
vmImage: ubuntu-latest
steps:
- template: Build/steps.yml
- template: eng/steps.yml
parameters:
os: 'Linux'

Expand All @@ -32,6 +32,6 @@ jobs:
pool:
vmImage: macOS-latest
steps:
- template: Build/steps.yml
- template: eng/steps.yml
parameters:
os: 'macOS'
11 changes: 5 additions & 6 deletions Build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@

<RootDir>$(MSBuildThisFileDirectory)</RootDir>
<Solution>$(RootDir)IronPython.sln</Solution>
<UtilDir>$(RootDir)Util</UtilDir>
<ReferenceDir>$(RootDir)Util\References</ReferenceDir>
<UtilsDir>$(RootDir)eng\utils</UtilsDir>
<BinDir>$(RootDir)bin</BinDir>
<BuildSysDir>$(RootDir)Build</BuildSysDir>
<BuildSysDir>$(RootDir)eng</BuildSysDir>
</PropertyGroup>

<Import Project="$(BuildSysDir)\Tasks.Targets" />
Expand Down Expand Up @@ -40,7 +39,7 @@
</PropertyGroup>

<PropertyGroup>
<NuGet>$(UtilDir)\NuGet\nuget.exe</NuGet>
<NuGet>$(UtilsDir)\NuGet\nuget.exe</NuGet>
</PropertyGroup>

<ItemGroup>
Expand Down Expand Up @@ -117,7 +116,7 @@
</Target>

<Target Name="_CopyStdLib" DependsOnTargets="_MakeStageDir">
<MSBuild Projects="$(RootDir)\Src\StdLib\StdLib.pyproj"
<MSBuild Projects="$(RootDir)\src\core\IronPython.StdLib\IronPython.StdLib.pyproj"
Properties="OutputPath=$(StageDir);StdLibDirName=$(StdLibDirName)"
Targets="Stage" />
</Target>
Expand All @@ -138,5 +137,5 @@
<!-- This looks like an empty target, but the targets files use it as an AfterTargets -->
<Target Name="Package" DependsOnTargets="Stage" />

<Import Project="$(RootDir)\Package\**\*.Packaging.targets" />
<Import Project="$(RootDir)\eng\package\**\*.Packaging.targets" />
</Project>
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

The steps to contribute a change are:

1. Fork the IronPython3 repository. For more information see [Getting the Sources](Documentation/getting-the-sources.md).
2. Build the repository. For more information see [Building](Documentation/building.md).
1. Make your changes on your machine, ensure ```make.ps1 test-all``` runs successfully, and commit your changes. For more information see [Modifying the Sources](Documentation/modifying-the-sources.md).
1. Fork the IronPython3 repository. For more information see [Getting the Sources](docs/getting-the-sources.md).
2. Build the repository. For more information see [Building](docs/building.md).
1. Make your changes on your machine, ensure ```make.ps1 test-all``` runs successfully, and commit your changes. For more information see [Modifying the Sources](docs/modifying-the-sources.md).
1. Push the commits to your fork. This way your name will be the author of the commit in the main IronPython3 tree (once the commits are pulled into the main tree).
1. Create a pull request on Github, this will initiate a code review and CLA signing request
1. The IronPython team will review, and possibly request changes, to your PR
Expand Down
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<PropertyGroup>
<!-- These are normally set by Build.proj, except when building from VS. -->
<RootDir Condition=" '$(RootDir)' == '' ">$(MSBuildThisFileDirectory)</RootDir>
<BuildSysDir Condition=" '$(BuildSysDir)' == '' ">$(RootDir)Build</BuildSysDir>
<ReferenceDir Condition=" '$(ReferenceDir)' == '' ">$(RootDir)Util\References</ReferenceDir>
<BuildSysDir Condition=" '$(BuildSysDir)' == '' ">$(RootDir)eng</BuildSysDir>
<UtilsDir Condition=" '$(UtilsDir)' == '' ">$(RootDir)eng\utils</UtilsDir>

<Mono Condition=" '$(Mono)' == '' AND '$(MSBuildRuntimeType)' == 'Mono' ">true</Mono>

Expand Down
78 changes: 39 additions & 39 deletions IronPython.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34714.143
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython", "Src\IronPython\IronPython.csproj", "{95289EA9-5778-489D-AB48-F81F2CE2DA32}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython", "src\core\IronPython\IronPython.csproj", "{95289EA9-5778-489D-AB48-F81F2CE2DA32}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Modules", "Src\IronPython.Modules\IronPython.Modules.csproj", "{155CE436-1669-4A48-8095-410F2430237F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Modules", "src\core\IronPython.Modules\IronPython.Modules.csproj", "{155CE436-1669-4A48-8095-410F2430237F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Wpf", "Src\IronPython.Wpf\IronPython.Wpf.csproj", "{65E997B7-E99B-4C83-B29E-9951429BB293}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Wpf", "src\extensions\IronPython.Wpf\IronPython.Wpf.csproj", "{65E997B7-E99B-4C83-B29E-9951429BB293}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonConsole", "Src\IronPythonConsole\IronPythonConsole.csproj", "{811AC32C-11F3-4ED8-92A7-A7E39C2BB704}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Console", "src\executables\IronPython.Console\IronPython.Console.csproj", "{811AC32C-11F3-4ED8-92A7-A7E39C2BB704}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonTest", "Src\IronPythonTest\IronPythonTest.csproj", "{B6B42537-07F8-4F6C-A99A-B155CAEB124E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Tests", "tests\IronPython.Tests\IronPython.Tests.csproj", "{B6B42537-07F8-4F6C-A99A-B155CAEB124E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonWindow", "Src\IronPythonWindow\IronPythonWindow.csproj", "{81DA19C7-4FEC-47E7-981B-D9310D549F95}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Window", "src\executables\IronPython.Window\IronPython.Window.csproj", "{81DA19C7-4FEC-47E7-981B-D9310D549F95}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{3A14D070-628F-44EF-92DD-47C8BE5C33CD}"
ProjectSection(SolutionItems) = preProject
Expand All @@ -29,81 +29,81 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
README.md = README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.SQLite", "Src\IronPython.SQLite\IronPython.SQLite.csproj", "{4A617A40-2BA7-4713-AAFE-F90C4325C581}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.SQLite", "src\extensions\IronPython.SQLite\IronPython.SQLite.csproj", "{4A617A40-2BA7-4713-AAFE-F90C4325C581}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{17737ACB-40C6-41A6-83DA-3203A4DCEC19}"
ProjectSection(SolutionItems) = preProject
Build\After.targets = Build\After.targets
Build\net462.props = Build\net462.props
Build\net6.0-windows.props = Build\net6.0-windows.props
Build\net6.0.props = Build\net6.0.props
Build\net8.0-windows.props = Build\net8.0-windows.props
Build\net8.0.props = Build\net8.0.props
Build\net9.0-windows.props = Build\net9.0-windows.props
Build\net9.0.props = Build\net9.0.props
Build\netstandard2.0.props = Build\netstandard2.0.props
Build\steps.yml = Build\steps.yml
Build\Tasks.Targets = Build\Tasks.Targets
eng\After.targets = eng\After.targets
eng\net462.props = eng\net462.props
eng\net6.0-windows.props = eng\net6.0-windows.props
eng\net6.0.props = eng\net6.0.props
eng\net8.0-windows.props = eng\net8.0-windows.props
eng\net8.0.props = eng\net8.0.props
eng\net9.0-windows.props = eng\net9.0-windows.props
eng\net9.0.props = eng\net9.0.props
eng\netstandard2.0.props = eng\netstandard2.0.props
eng\steps.yml = eng\steps.yml
eng\Tasks.Targets = eng\Tasks.Targets
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonCompiler", "Src\IronPythonCompiler\IronPythonCompiler.csproj", "{3DFB096E-AC09-4E7A-9288-7F7C33C288C7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Compiler", "src\executables\IronPython.Compiler\IronPython.Compiler.csproj", "{3DFB096E-AC09-4E7A-9288-7F7C33C288C7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DLR", "DLR", "{AC38EFB1-820D-4E90-BF40-BEF3AC825542}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Dynamic", "Src\DLR\Src\Microsoft.Dynamic\Microsoft.Dynamic.csproj", "{EB66B766-6354-4208-A3D4-AACBDCB5C3B3}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Dynamic", "src\dlr\Src\Microsoft.Dynamic\Microsoft.Dynamic.csproj", "{EB66B766-6354-4208-A3D4-AACBDCB5C3B3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Scripting", "Src\DLR\Src\Microsoft.Scripting\Microsoft.Scripting.csproj", "{02FF0909-F5AD-48CF-A86A-345E721B7E40}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Scripting", "src\dlr\Src\Microsoft.Scripting\Microsoft.Scripting.csproj", "{02FF0909-F5AD-48CF-A86A-345E721B7E40}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Scripting.Metadata", "Src\DLR\Src\Microsoft.Scripting.Metadata\Microsoft.Scripting.Metadata.csproj", "{ACDD9B9E-8FE6-439C-9521-1CCBA47F6143}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Scripting.Metadata", "src\dlr\Src\Microsoft.Scripting.Metadata\Microsoft.Scripting.Metadata.csproj", "{ACDD9B9E-8FE6-439C-9521-1CCBA47F6143}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{60836ADE-CAB7-4587-B6FB-8C4FEB872752}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClrAssembly", "Src\DLR\Tests\ClrAssembly\ClrAssembly.csproj", "{BEE737B9-18D5-48D9-8672-9A896213C98B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClrAssembly", "src\dlr\Tests\ClrAssembly\ClrAssembly.csproj", "{BEE737B9-18D5-48D9-8672-9A896213C98B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Package", "Package", "{CE610DDE-D1DB-44D8-BAE9-BAAB00DA98F0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuget", "nuget", "{EE77D917-27F7-4E54-B72F-C8CEE4AEDCAA}"
ProjectSection(SolutionItems) = preProject
Package\nuget\IronPython.nuspec = Package\nuget\IronPython.nuspec
Package\nuget\IronPython.StdLib.nuspec = Package\nuget\IronPython.StdLib.nuspec
eng\package\nuget\IronPython.nuspec = eng\package\nuget\IronPython.nuspec
eng\package\nuget\IronPython.StdLib.nuspec = eng\package\nuget\IronPython.StdLib.nuspec
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonConsole32", "Src\IronPythonConsole32\IronPythonConsole32.csproj", "{AD21022F-E7C1-4B74-97C1-0A0E48EFF992}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Console32", "src\executables\IronPython.Console32\IronPython.Console32.csproj", "{AD21022F-E7C1-4B74-97C1-0A0E48EFF992}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonAnalyzer", "IronPythonAnalyzer\IronPythonAnalyzer\IronPythonAnalyzer.csproj", "{DA3415F3-6922-42D0-93D7-BEE2E8603A18}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Analyzer", "src\roslyn\IronPython.Analyzer\IronPython.Analyzer.csproj", "{DA3415F3-6922-42D0-93D7-BEE2E8603A18}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "choco", "choco", "{EA550FD8-2241-4131-8292-619D009E0199}"
ProjectSection(SolutionItems) = preProject
Package\choco\Choco.Packaging.targets = Package\choco\Choco.Packaging.targets
Package\choco\IronPython.nuspec = Package\choco\IronPython.nuspec
eng\package\choco\Choco.Packaging.targets = eng\package\choco\Choco.Packaging.targets
eng\package\choco\IronPython.nuspec = eng\package\choco\IronPython.nuspec
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pkg", "pkg", "{01CE1AE6-CD7F-491B-8150-58CD738B20AC}"
ProjectSection(SolutionItems) = preProject
Package\pkg\Pkg.Packaging.targets = Package\pkg\Pkg.Packaging.targets
eng\package\pkg\Pkg.Packaging.targets = eng\package\pkg\Pkg.Packaging.targets
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "deb", "deb", "{676093FF-CB44-4BD5-B83C-A28FE88D5017}"
ProjectSection(SolutionItems) = preProject
Package\deb\Deb.Packaging.targets = Package\deb\Deb.Packaging.targets
eng\package\deb\Deb.Packaging.targets = eng\package\deb\Deb.Packaging.targets
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "zip", "zip", "{8FC07B92-D2AC-4921-9E97-A92A84D2B461}"
ProjectSection(SolutionItems) = preProject
Package\zip\Zip.Packaging.targets = Package\zip\Zip.Packaging.targets
eng\package\zip\Zip.Packaging.targets = eng\package\zip\Zip.Packaging.targets
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "msi", "msi", "{450F93D5-DF02-4C04-960B-AE7E454668AA}"
ProjectSection(SolutionItems) = preProject
Package\msi\Dlr.wxs = Package\msi\Dlr.wxs
Package\msi\IronPython.Installer.wixproj = Package\msi\IronPython.Installer.wixproj
Package\msi\IronPython.wxs = Package\msi\IronPython.wxs
Package\msi\Msi.Packaging.targets = Package\msi\Msi.Packaging.targets
Package\msi\Product.wxs = Package\msi\Product.wxs
Package\msi\Version.wxi = Package\msi\Version.wxi
eng\package\msi\Dlr.wxs = eng\package\msi\Dlr.wxs
eng\package\msi\IronPython.Installer.wixproj = eng\package\msi\IronPython.Installer.wixproj
eng\package\msi\IronPython.wxs = eng\package\msi\IronPython.wxs
eng\package\msi\Msi.Packaging.targets = eng\package\msi\Msi.Packaging.targets
eng\package\msi\Product.wxs = eng\package\msi\Product.wxs
eng\package\msi\Version.wxi = eng\package\msi\Version.wxi
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPythonWindow32", "Src\IronPythonWindow32\IronPythonWindow32.csproj", "{8F177DC2-9822-45BD-AB05-1F40FCA86168}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IronPython.Window32", "src\executables\IronPython.Window32\IronPython.Window32.csproj", "{8F177DC2-9822-45BD-AB05-1F40FCA86168}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,19 +71,19 @@ See the following lists for features from each version of CPython that have been
For details on contributing see the [Contributing](CONTRIBUTING.md) article.

## Upgrading from IronPython 2
For details on upgrading from IronPython 2 to 3 see the [Upgrading from IronPython 2 to 3](Documentation/upgrading-from-ipy2.md) article.
For details on upgrading from IronPython 2 to 3 see the [Upgrading from IronPython 2 to 3](docs/upgrading-from-ipy2.md) article.

## Differences with CPython
While compatibility with CPython is one of our main goals with IronPython 3, there are still some differences that may cause issues. See [Differences from CPython](Documentation/differences-from-c-python.md) for details.
While compatibility with CPython is one of our main goals with IronPython 3, there are still some differences that may cause issues. See [Differences from CPython](docs/differences-from-c-python.md) for details.

## Package compatibility
See the [Package compatibility](Documentation/package-compatibility.md) document for information on compatibility with popular packages.
See the [Package compatibility](docs/package-compatibility.md) document for information on compatibility with popular packages.

## Installation
Binaries of IronPython 3 can be downloaded from the [release page](https://github.com/IronLanguages/ironpython3/releases/latest), available in various formats: `.msi`, `.zip`, `.deb`, `.pkg`. The IronPython package is also available on [NuGet](https://www.nuget.org/packages/IronPython/3.4.0). See the [installation document](Documentation/installing.md) for detailed instructions on how to install a standalone IronPython interpreter on various operating systems and .NET frameworks.
Binaries of IronPython 3 can be downloaded from the [release page](https://github.com/IronLanguages/ironpython3/releases/latest), available in various formats: `.msi`, `.zip`, `.deb`, `.pkg`. The IronPython package is also available on [NuGet](https://www.nuget.org/packages/IronPython/3.4.0). See the [installation document](docs/installing.md) for detailed instructions on how to install a standalone IronPython interpreter on various operating systems and .NET frameworks.

## Build
See the [building document](Documentation/building.md). Since the main development is on Windows, bugs on other platforms may inadvertently be introduced - please report them!
See the [building document](docs/building.md). Since the main development is on Windows, bugs on other platforms may inadvertently be introduced - please report them!

## Supported Platforms
IronPython 3 targets .NET Framework 4.6.2, .NET Standard 2.0, .NET 6.0 and .NET 8.0. The support for .NET and .NET Core follow the lifecycle defined on [.NET and .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
2 changes: 1 addition & 1 deletion docs/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,6 @@ If the build is successful the binaries are stored in `ironpython3/bin/{Configur

## Running

The standard library is not copied over to the `bin` folder during the build process, it lives in `Src/StdLib/Lib`.
The standard library is not copied over to the `bin` folder during the build process, it lives in `src/core/IronPython.StdLib/lib`.
- When running the `Release` configuration executable, you should set the environment variable `IRONPYTHONPATH` to this folder.
- When running the `Debug` configuration executable, this folder is automatically added to `sys.path`.
2 changes: 1 addition & 1 deletion docs/feature-symbols.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Feature Symbols

Feature Symbols (named FEATURE_{feature name}, all caps) are compilation symbols defined for features whose availability vary across platforms that IronPython supports. The symbols are defined in Build/{framework}.props file, which get included by all .csproj files that contribute to IronPython.
Feature Symbols (named FEATURE_{feature name}, all caps) are compilation symbols defined for features whose availability vary across platforms that IronPython supports. The symbols are defined in eng/{framework}.props file, which get included by all .csproj files that contribute to IronPython.

**The following list needs a major update**

Expand Down
Loading

0 comments on commit 2d45012

Please sign in to comment.