-
-
Notifications
You must be signed in to change notification settings - Fork 700
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/master' into stable
- Loading branch information
Showing
28 changed files
with
2,808 additions
and
359 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
# very similar to the DMD script: https://github.com/dlang/dmd/blob/master/.github/workflows/main.yml | ||
|
||
name: Main | ||
on: | ||
- pull_request # without merge conflicts | ||
- push # branch or tag | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
posix: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
# Linux | ||
- job_name: Ubuntu 22.04 x64 | ||
os: ubuntu-22.04 | ||
- job_name: Ubuntu 22.04 x86 | ||
os: ubuntu-22.04 | ||
model: 32 | ||
# macOS | ||
- job_name: macOS 13 x64 | ||
os: macos-13 | ||
- job_name: macOS 12 x64 | ||
os: macos-12 | ||
name: ${{ matrix.job_name }} | ||
runs-on: ${{ matrix.os }} | ||
timeout-minutes: 40 | ||
env: | ||
# for ci/run.sh: | ||
OS_NAME: ${{ startsWith(matrix.os, 'ubuntu') && 'linux' || (startsWith(matrix.os, 'macos') && 'darwin' || '') }} | ||
MODEL: ${{ matrix.model || '64' }} | ||
HOST_DMD: dmd | ||
N: ${{ startsWith(matrix.os, 'macos') && '3' || '2' }} | ||
FULL_BUILD: false | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 50 | ||
- name: Clone DMD | ||
run: | | ||
set -uexo pipefail | ||
ref='${{ github.ref }}' | ||
if [[ "$ref" =~ ^refs/pull/ ]]; then | ||
# PR: clone the DMD head with the same name as this Phobos PR's target branch | ||
# e.g., DMD stable when targeting Phobos stable | ||
REPO_BRANCH="$GITHUB_BASE_REF" | ||
elif [[ "$ref" =~ ^refs/(heads|tags)/(.*)$ ]]; then | ||
# no PR: clone the DMD head with the same name as this Phobos head | ||
# e.g., DMD stable for a push to Phobos stable, or DMD v2.105.2 for Phobos tag v2.105.2 | ||
REPO_BRANCH="${BASH_REMATCH[2]}" | ||
else | ||
echo "Error: unexpected GitHub ref '$ref'" >&2 | ||
exit 1 | ||
fi | ||
git clone --branch "$REPO_BRANCH" --depth 1 https://github.com/dlang/dmd.git ../dmd | ||
- name: Install prerequisites | ||
run: cd ../dmd && ${{ runner.os == 'macOS' && 'ci/cirrusci.sh' || 'sudo -E ci/cirrusci.sh' }} | ||
- name: Install host compiler | ||
run: cd ../dmd && ci/run.sh install_host_compiler | ||
- name: Build | ||
run: cd ../dmd && ci/run.sh build | ||
- name: Test dmd | ||
run: cd ../dmd && ci/run.sh test_dmd | ||
- name: Test druntime | ||
run: cd ../dmd && ci/run.sh test_druntime | ||
- name: Test phobos | ||
run: cd ../dmd && ci/run.sh test_phobos | ||
|
||
freebsd-vm: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- job_name: FreeBSD 13.2 x64 | ||
freebsd_version: '13.2' | ||
- job_name: FreeBSD 12.4 x64 | ||
freebsd_version: '12.4' | ||
name: ${{ matrix.job_name }} | ||
runs-on: macos-latest | ||
timeout-minutes: 60 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 50 | ||
- name: Run in VM | ||
uses: cross-platform-actions/action@v0.21.0 | ||
with: | ||
operating_system: freebsd | ||
hypervisor: qemu | ||
memory: 8G | ||
sync_files: runner-to-vm | ||
version: ${{ matrix.freebsd_version }} | ||
shell: bash | ||
run: | | ||
set -uexo pipefail | ||
freebsd_version='${{ matrix.freebsd_version }}' | ||
freebsd_major="${freebsd_version:0:2}" | ||
export OS_NAME=freebsd | ||
export MODEL=64 | ||
export HOST_DMD=dmd | ||
export N=3 | ||
export FULL_BUILD=false | ||
export CI_DFLAGS="-version=TARGET_FREEBSD${freebsd_major}" | ||
#if [[ "$freebsd_major" == 12 ]]; then | ||
# sudo sed -i '' -e 's|pkg.FreeBSD.org|mirrors.xtom.com/freebsd-pkg|' /etc/pkg/FreeBSD.conf | ||
#fi | ||
bash --version | ||
echo '::group::Install git' | ||
sudo pkg install -y git | ||
echo '::endgroup::' | ||
echo '::group::Clone DMD' | ||
ref='${{ github.ref }}' | ||
if [[ "$ref" =~ ^refs/pull/ ]]; then | ||
REPO_BRANCH="$GITHUB_BASE_REF" | ||
elif [[ "$ref" =~ ^refs/(heads|tags)/(.*)$ ]]; then | ||
REPO_BRANCH="${BASH_REMATCH[2]}" | ||
else | ||
echo "Error: unexpected GitHub ref '$ref'" >&2 | ||
exit 1 | ||
fi | ||
git clone --branch "$REPO_BRANCH" --depth 1 https://github.com/dlang/dmd.git ../dmd | ||
echo '::endgroup::' | ||
cd ../dmd | ||
echo '::group::Install prerequisites' | ||
sudo -E ci/cirrusci.sh | ||
echo '::endgroup::' | ||
echo '::group::Install host compiler' | ||
ci/run.sh install_host_compiler | ||
echo '::endgroup::' | ||
echo '::group::Build' | ||
ci/run.sh build | ||
echo '::endgroup::' | ||
echo '::group::Test dmd' | ||
ci/run.sh test_dmd | ||
echo '::endgroup::' | ||
echo '::group::Test druntime' | ||
ci/run.sh test_druntime | ||
echo '::endgroup::' | ||
echo '::group::Test phobos' | ||
ci/run.sh test_phobos | ||
echo '::endgroup::' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Undo etc.c.odbc deprecation and enable usage on non-Windows systems | ||
|
||
Previously, the etc.c.odbc bindings were deprecated and forwarded the core.sys.windows versions of the bindings via public import. However, ODBC is supported on all major platforms and the machine translated MinGW bindings in core.sys.windows have version(Windows) specified which results in being unable to use those bindings on non-Windows platforms. The bindings have been returned to etc.c.odbc, undeprecated, and support for non-Windows platforms enabled. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
isInputRange now takes an optional element type. | ||
|
||
isInputRange now has an optional 2nd template parameter that defaults | ||
to void. If not void, it only evaluates to true if the range's element | ||
type is the same type as this extra argument, modulo const. For | ||
instance, `isInputRange!(int[], const(int))` is true, but | ||
`isInputRange!(int[], string)` is false. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
Add Unshared to std.traits. | ||
|
||
`Unshared` is the `shared` equivalent of `Unconst`. It strips off the outer | ||
layer of `shared` from a type. e.g. | ||
|
||
``` | ||
static assert(Unshared!(shared int) == int); | ||
static assert(Unshared!(shared(int[])) == shared(int)[]); | ||
``` | ||
|
||
So, `Unconst` strips off the outer layer of `const`, `immutable`, and `inout`; | ||
`Unshared` strips off the outer layer of `shared`; and `Unqual` strips off all | ||
qualifiers from the outer layer of a type. |
Oops, something went wrong.