Skip to content

Commit 56f9b2f

Browse files
authored
Updates to support .NET 10 SDK (#388)
* NOTE: Use of .NET 10 SDK requires use of VS2026 as .NET 10 SDK is not supported on older VS versions. Fixes #386 Implements #361
1 parent 9678023 commit 56f9b2f

File tree

7 files changed

+78
-33
lines changed

7 files changed

+78
-33
lines changed

.github/workflows/pr-build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ jobs:
4949
persist-credentials: false
5050
fetch-depth: 0
5151

52+
# .NET SDK 10 is not normally included in GH machine builds, yet so force it
53+
- name: Setup .NET SDK
54+
uses: actions/setup-dotnet@v5
55+
with:
56+
dotnet-version: '10.0.x'
57+
5258
- name: Build Source
5359
run: ./Build-Source.ps1 -ForceClean
5460

.github/workflows/release-build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ jobs:
3030
persist-credentials: false
3131
fetch-depth: 0
3232

33+
# .NET SDK 10 is not normally included in GH machine builds, yet so force it
34+
- name: Setup .NET SDK
35+
uses: actions/setup-dotnet@v5
36+
with:
37+
dotnet-version: '10.0.x'
38+
3339
- name: Build Source
3440
run: .\Build-Source.ps1 -FullInit -ForceClean
3541

OneFlow/ReadMe.md

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,36 @@
11
# GIT OneFlow support scripts
2-
The scripts in this folder are used for release and feature branch management.
3-
This repository follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow#develop-finishing-a-release-branch)
4-
model and work-flow. With one active long term branch 'develop'. The master branch is
5-
present and long term but is not active, it only points to the latest official release
6-
(including preview releases) of the project. This is a convenience to allow getting the
7-
latest released source quickly. Generally speaking, the scripts used here are only for
8-
release managers and are not required (or even an option) for most contributors.
2+
The scripts in this folder are used for release and feature branch management. This
3+
repository follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow#develop-finishing-a-release-branch)
4+
model and work-flow. With one active long term branch 'develop'. The main branch is present
5+
and long term but is not active, it only points to the latest official release (including
6+
preview releases) of the project. This is a convenience to allow getting the latest released
7+
source quickly. Generally speaking, the scripts used here are only for release managers and
8+
are not required (or even an option) for most contributors.
9+
10+
Typical workflow:
11+
1. Modify `BuildVersion.xml` (But do ***NOT*** commit it)
12+
2. Run `Start-Release.ps1`
13+
1. This will setup and push the various branches used for the release
14+
2. The build version is NOT committed as the branches can allow CI/PR builds depending
15+
on the nature of the release changes.
16+
3. Any changes needed for the release are made and pushed (via PR) to the `release/<releas name>`
17+
branch.
18+
4. Commit, or remodify, `BuildVersion.xml` and push it to the official repo release branch.
19+
1. This is typically done with git push official to direct push the changes to the
20+
official repository
21+
5. Run `Publish-Release.ps1` to publish the release and begin the final release process.
22+
1. This will trigger the automated release build action, which will publish the NuGet
23+
packages etc... It also creates a merge-back branch for all changes that went into
24+
the release.
25+
6. Once the release build completes, edit and publish the release in GitHub.
26+
1. The "release" is created by the automated build as a draft and requires manual
27+
publication. This is usually editing or selecting the base for auto generated release
28+
notes.
29+
7. Apply the merge-back PR to the `develop` branch to update the `BuildVersion.xml` at a
30+
minimum.
31+
32+
---
33+
Step 3 & 4 are normally resolve to simply committing the changes to `BuildVersion.xml` and
34+
pushing that to the official repository. That is, in most cases there are no changes to the
35+
branch other than the bump of version number. That's actually the ideal as it eliminates (
36+
or dramatically reduces the complexity of) conflict resolution to merge the changes into.

docfx/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ documented. It is an internal implementation detail subject to change in the fut
2222
are plans to merge it with the OO wrapper library. Therefore, applications should NOT depend
2323
on it as it is likely to cease existing in the future.
2424

25-
<a id="footnote_1"/><sup>2</sup> The analyzer is included in the `Ubiquity.NET.Llvm` package.
25+
<a id="footnote_2"/><sup>2</sup> The analyzer is included in the `Ubiquity.NET.Llvm` package.

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.305",
3+
"version": "10.0.100",
44
"rollForward": "latestMinor",
55
"allowPrerelease": false
66
},

src/Samples/Kaleidoscope/TextMate/ReadMe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ grammar used in the documentation template for the site docs. This allows highli
44
an editor.
55

66
## VisualStudio
7-
In Visual Studio copies of sub-folders of this folder can be placed into the user profile
7+
For Visual Studio, copies of sub-folders of this folder can be placed into the user profile
88
folder `.vs/Extensions` to enable syntax highlighting of the Kaleidoscope
99
language files.
1010

src/Ubiquity.NET.Llvm/IDataLayout.cs

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,33 @@ public enum ByteOrdering
1919
/// that are target dependent.</para>
2020
/// <para>The following table illustrates the differences in sizes and their meaning
2121
/// for a sample set of types.</para>
22-
/// | Type | SizeInBits | StoreSizeInBits | AbiSizeInBits |
23-
/// |---------|------------|-----------------|---------------|
24-
/// | i1 | 1 | 8 | 8 |
25-
/// | i8 | 8 | 8 | 8 |
26-
/// | i19 | 19 | 24 | 32 |
27-
/// | i32 | 32 | 32 | 32 |
28-
/// | i10 | 100 | 104 | 128 |
29-
/// | i128 | 128 | 128 | 128 |
30-
/// | Float | 32 | 32 | 32 |
31-
/// | Double | 64 | 64 | 64 |
32-
/// | X86_FP80| 80 | 80 | 96 |
22+
/// <list type="table">
23+
/// <listheader>
24+
/// <term> Type </term><term> SizeInBits </term><term> StoreSizeInBits </term><term> AbiSizeInBits </term>
25+
/// </listheader>
26+
/// <item> <description>i1 </description><description> 1 </description><description> 8 </description><description> 8 </description></item>
27+
/// <item> <description>i8 </description><description> 8 </description><description> 8 </description><description> 8 </description></item>
28+
/// <item> <description>i19 </description><description> 19 </description><description> 24 </description><description> 32 </description></item>
29+
/// <item> <description>i32 </description><description> 32 </description><description> 32 </description><description> 32 </description></item>
30+
/// <item> <description>i10 </description><description> 100 </description><description> 104 </description><description> 128 </description></item>
31+
/// <item> <description>i128 </description><description> 128 </description><description> 128 </description><description> 128 </description></item>
32+
/// <item> <description>Float </description><description> 32 </description><description> 32 </description><description> 32 </description></item>
33+
/// <item> <description>Double </description><description> 64 </description><description> 64 </description><description> 64 </description></item>
34+
/// <item> <description>X86_FP80</description><description> 80 </description><description> 80 </description><description> 96 </description></item>
35+
/// </list>
3336
///
3437
/// <note type="note">
3538
/// The allocation size depends on the alignment, and thus on the target.
3639
/// The values in the example table are for x86-32-linux.
3740
/// </note>
38-
/// | Property | Definition |
39-
/// |-----------------|------------|
40-
/// | SizeInBits | Minimum number of bits needed to represent the full range of values for the type |
41-
/// | StoreSizeInBits | Minimum number of bits needed to actually store a *single* value of the type |
42-
/// | AbiSizeInBits | Total number of bits used to store a value in a sequence, including any alignment padding |
43-
///
41+
/// <list type="table">
42+
/// <listheader>
43+
/// <term>Property</term><term>Definition</term>
44+
/// </listheader>
45+
/// <item> <description>SizeInBits </description><description> Minimum number of bits needed to represent the full range of values for the type </description></item>
46+
/// <item> <description>StoreSizeInBits </description><description> Minimum number of bits needed to actually store a *single* value of the type </description></item>
47+
/// <item> <description>AbiSizeInBits </description><description> Total number of bits used to store a value in a sequence, including any alignment padding </description></item>
48+
/// </list>
4449
/// The allocation size determines the total size of each entry in a sequence so that the "next" element is computed
4550
/// by adding the size to the start address of the current element.
4651
/// </remarks>
@@ -49,11 +54,11 @@ public interface IDataLayout
4954
/// <summary>Gets the byte ordering for this target</summary>
5055
public ByteOrdering Endianness { get; }
5156

52-
/// <summary>Gets the size of a pointer for the default address space of the target</summary>
57+
/// <summary>Gets the size (in bytes) of a pointer for the default address space of the target</summary>
5358
/// <returns>Size of a pointer to the default address space</returns>
5459
public uint PointerSize( );
5560

56-
/// <summary>Retrieves the size of a pointer for a given address space of the target</summary>
61+
/// <summary>Retrieves the size (in bytes) of a pointer for a given address space of the target</summary>
5762
/// <param name="addressSpace">Address space for the pointer</param>
5863
/// <returns>Size of a pointer</returns>
5964
public uint PointerSize( uint addressSpace );
@@ -109,7 +114,7 @@ public interface IDataLayout
109114
/// </remarks>
110115
public ulong StoreSizeOf( ITypeRef typeRef );
111116

112-
/// <summary>Retrieves the ABI specified size of the given type</summary>
117+
/// <summary>Retrieves the ABI specified size (in bytes) of the given type</summary>
113118
/// <param name="typeRef">Type to get the size from</param>
114119
/// <returns>Size of the type</returns>
115120
/// <remarks>
@@ -123,17 +128,17 @@ public interface IDataLayout
123128
/// <returns>ABI specified alignment</returns>
124129
public uint AbiAlignmentOf( ITypeRef typeRef );
125130

126-
/// <summary>Retrieves the call frame alignment for a given type</summary>
131+
/// <summary>Retrieves the call frame alignment (in bytes) for a given type</summary>
127132
/// <param name="typeRef">type to get the alignment of</param>
128133
/// <returns>Alignment for the type</returns>
129134
public uint CallFrameAlignmentOf( ITypeRef typeRef );
130135

131-
/// <summary>Gets the preferred alignment for an LLVM type</summary>
136+
/// <summary>Gets the preferred alignment (in bytes) for an LLVM type</summary>
132137
/// <param name="typeRef">Type to get the alignment of</param>
133138
/// <returns>Preferred alignment</returns>
134139
public uint PreferredAlignmentOf( ITypeRef typeRef );
135140

136-
/// <summary>Gets the preferred alignment for a <see cref="Value"/></summary>
141+
/// <summary>Gets the preferred alignment (in bytes) for a <see cref="Value"/></summary>
137142
/// <param name="value">Value to get the alignment of</param>
138143
/// <returns>Preferred alignment</returns>
139144
public uint PreferredAlignmentOf( Value value );

0 commit comments

Comments
 (0)