diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index f8d43951ac..b336ecfb83 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -49,6 +49,12 @@ jobs: persist-credentials: false fetch-depth: 0 + # .NET SDK 10 is not normally included in GH machine builds, yet so force it + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + dotnet-version: '10.0.x' + - name: Build Source run: ./Build-Source.ps1 -ForceClean diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index aa5fa4cc0e..2a79d1d744 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -30,6 +30,12 @@ jobs: persist-credentials: false fetch-depth: 0 + # .NET SDK 10 is not normally included in GH machine builds, yet so force it + - name: Setup .NET SDK + uses: actions/setup-dotnet@v5 + with: + dotnet-version: '10.0.x' + - name: Build Source run: .\Build-Source.ps1 -FullInit -ForceClean diff --git a/OneFlow/ReadMe.md b/OneFlow/ReadMe.md index 17961dedf5..e89ce53c0b 100644 --- a/OneFlow/ReadMe.md +++ b/OneFlow/ReadMe.md @@ -1,8 +1,36 @@ # GIT OneFlow support scripts -The scripts in this folder are used for release and feature branch management. -This repository follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow#develop-finishing-a-release-branch) -model and work-flow. With one active long term branch 'develop'. The master branch is -present and long term but is not active, it only points to the latest official release -(including preview releases) of the project. This is a convenience to allow getting the -latest released source quickly. Generally speaking, the scripts used here are only for -release managers and are not required (or even an option) for most contributors. +The scripts in this folder are used for release and feature branch management. This +repository follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow#develop-finishing-a-release-branch) +model and work-flow. With one active long term branch 'develop'. The main branch is present +and long term but is not active, it only points to the latest official release (including +preview releases) of the project. This is a convenience to allow getting the latest released +source quickly. Generally speaking, the scripts used here are only for release managers and +are not required (or even an option) for most contributors. + +Typical workflow: +1. Modify `BuildVersion.xml` (But do ***NOT*** commit it) +2. Run `Start-Release.ps1` + 1. This will setup and push the various branches used for the release + 2. The build version is NOT committed as the branches can allow CI/PR builds depending + on the nature of the release changes. +3. Any changes needed for the release are made and pushed (via PR) to the `release/` + branch. +4. Commit, or remodify, `BuildVersion.xml` and push it to the official repo release branch. + 1. This is typically done with git push official to direct push the changes to the + official repository +5. Run `Publish-Release.ps1` to publish the release and begin the final release process. + 1. This will trigger the automated release build action, which will publish the NuGet + packages etc... It also creates a merge-back branch for all changes that went into + the release. +6. Once the release build completes, edit and publish the release in GitHub. + 1. The "release" is created by the automated build as a draft and requires manual + publication. This is usually editing or selecting the base for auto generated release + notes. +7. Apply the merge-back PR to the `develop` branch to update the `BuildVersion.xml` at a + minimum. + +--- +Step 3 & 4 are normally resolve to simply committing the changes to `BuildVersion.xml` and +pushing that to the official repository. That is, in most cases there are no changes to the +branch other than the bump of version number. That's actually the ideal as it eliminates ( +or dramatically reduces the complexity of) conflict resolution to merge the changes into. diff --git a/docfx/index.md b/docfx/index.md index 1c5271720d..6748b181d6 100644 --- a/docfx/index.md +++ b/docfx/index.md @@ -22,4 +22,4 @@ documented. It is an internal implementation detail subject to change in the fut are plans to merge it with the OO wrapper library. Therefore, applications should NOT depend on it as it is likely to cease existing in the future. -2 The analyzer is included in the `Ubiquity.NET.Llvm` package. +2 The analyzer is included in the `Ubiquity.NET.Llvm` package. diff --git a/global.json b/global.json index d881b912e6..2450f6aa96 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.305", + "version": "10.0.100", "rollForward": "latestMinor", "allowPrerelease": false }, diff --git a/src/Samples/Kaleidoscope/TextMate/ReadMe.md b/src/Samples/Kaleidoscope/TextMate/ReadMe.md index 15fc5608bc..40ba4b33b4 100644 --- a/src/Samples/Kaleidoscope/TextMate/ReadMe.md +++ b/src/Samples/Kaleidoscope/TextMate/ReadMe.md @@ -4,7 +4,7 @@ grammar used in the documentation template for the site docs. This allows highli an editor. ## VisualStudio -In Visual Studio copies of sub-folders of this folder can be placed into the user profile +For Visual Studio, copies of sub-folders of this folder can be placed into the user profile folder `.vs/Extensions` to enable syntax highlighting of the Kaleidoscope language files. diff --git a/src/Ubiquity.NET.Llvm/IDataLayout.cs b/src/Ubiquity.NET.Llvm/IDataLayout.cs index f17e1e1d87..7862c497e4 100644 --- a/src/Ubiquity.NET.Llvm/IDataLayout.cs +++ b/src/Ubiquity.NET.Llvm/IDataLayout.cs @@ -19,28 +19,33 @@ public enum ByteOrdering /// that are target dependent. /// The following table illustrates the differences in sizes and their meaning /// for a sample set of types. - /// | Type | SizeInBits | StoreSizeInBits | AbiSizeInBits | - /// |---------|------------|-----------------|---------------| - /// | i1 | 1 | 8 | 8 | - /// | i8 | 8 | 8 | 8 | - /// | i19 | 19 | 24 | 32 | - /// | i32 | 32 | 32 | 32 | - /// | i10 | 100 | 104 | 128 | - /// | i128 | 128 | 128 | 128 | - /// | Float | 32 | 32 | 32 | - /// | Double | 64 | 64 | 64 | - /// | X86_FP80| 80 | 80 | 96 | + /// + /// + /// Type SizeInBits StoreSizeInBits AbiSizeInBits + /// + /// i1 1 8 8 + /// i8 8 8 8 + /// i19 19 24 32 + /// i32 32 32 32 + /// i10 100 104 128 + /// i128 128 128 128 + /// Float 32 32 32 + /// Double 64 64 64 + /// X86_FP80 80 80 96 + /// /// /// /// The allocation size depends on the alignment, and thus on the target. /// The values in the example table are for x86-32-linux. /// - /// | Property | Definition | - /// |-----------------|------------| - /// | SizeInBits | Minimum number of bits needed to represent the full range of values for the type | - /// | StoreSizeInBits | Minimum number of bits needed to actually store a *single* value of the type | - /// | AbiSizeInBits | Total number of bits used to store a value in a sequence, including any alignment padding | - /// + /// + /// + /// PropertyDefinition + /// + /// SizeInBits Minimum number of bits needed to represent the full range of values for the type + /// StoreSizeInBits Minimum number of bits needed to actually store a *single* value of the type + /// AbiSizeInBits Total number of bits used to store a value in a sequence, including any alignment padding + /// /// The allocation size determines the total size of each entry in a sequence so that the "next" element is computed /// by adding the size to the start address of the current element. /// @@ -49,11 +54,11 @@ public interface IDataLayout /// Gets the byte ordering for this target public ByteOrdering Endianness { get; } - /// Gets the size of a pointer for the default address space of the target + /// Gets the size (in bytes) of a pointer for the default address space of the target /// Size of a pointer to the default address space public uint PointerSize( ); - /// Retrieves the size of a pointer for a given address space of the target + /// Retrieves the size (in bytes) of a pointer for a given address space of the target /// Address space for the pointer /// Size of a pointer public uint PointerSize( uint addressSpace ); @@ -109,7 +114,7 @@ public interface IDataLayout /// public ulong StoreSizeOf( ITypeRef typeRef ); - /// Retrieves the ABI specified size of the given type + /// Retrieves the ABI specified size (in bytes) of the given type /// Type to get the size from /// Size of the type /// @@ -123,17 +128,17 @@ public interface IDataLayout /// ABI specified alignment public uint AbiAlignmentOf( ITypeRef typeRef ); - /// Retrieves the call frame alignment for a given type + /// Retrieves the call frame alignment (in bytes) for a given type /// type to get the alignment of /// Alignment for the type public uint CallFrameAlignmentOf( ITypeRef typeRef ); - /// Gets the preferred alignment for an LLVM type + /// Gets the preferred alignment (in bytes) for an LLVM type /// Type to get the alignment of /// Preferred alignment public uint PreferredAlignmentOf( ITypeRef typeRef ); - /// Gets the preferred alignment for a + /// Gets the preferred alignment (in bytes) for a /// Value to get the alignment of /// Preferred alignment public uint PreferredAlignmentOf( Value value );