Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into enable-formatter-fe…
Browse files Browse the repository at this point in the history
…atures
  • Loading branch information
Blacksmoke16 committed Oct 1, 2024
2 parents a81ed39 + 7aeba1e commit 25bbf8f
Show file tree
Hide file tree
Showing 85 changed files with 1,689 additions and 944 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ parameters:
previous_crystal_base_url:
description: "Prefix for URLs to Crystal bootstrap compiler"
type: string
default: "https://github.com/crystal-lang/crystal/releases/download/1.13.2/crystal-1.13.2-1"
default: "https://github.com/crystal-lang/crystal/releases/download/1.13.3/crystal-1.13.3-1"

defaults:
environment: &env
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/aarch64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ concurrency:

jobs:
aarch64-musl-build:
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Build Crystal
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
Expand All @@ -26,7 +26,7 @@ jobs:
src/llvm/ext/llvm_ext.o
aarch64-musl-test-stdlib:
needs: aarch64-musl-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=4cpu-linux-arm64, "family=m7g", ram=16, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -38,12 +38,12 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make std_spec FLAGS=-Duse_pcre
args: make std_spec
aarch64-musl-test-compiler:
needs: aarch64-musl-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "family=m7g", ram=8, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -55,17 +55,17 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:1.0.0-alpine-build
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make primitives_spec compiler_spec FLAGS=-Dwithout_ffi
aarch64-gnu-build:
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
uses: actions/checkout@v4
- name: Build Crystal
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
Expand All @@ -77,7 +77,7 @@ jobs:
src/llvm/ext/llvm_ext.o
aarch64-gnu-test-stdlib:
needs: aarch64-gnu-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=4cpu-linux-arm64, "family=m7g", ram=16, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -89,12 +89,12 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make std_spec
aarch64-gnu-test-compiler:
needs: aarch64-gnu-build
runs-on: [linux, ARM64]
runs-on: [runs-on, runner=2cpu-linux-arm64, "family=m7g", ram=8, "run-id=${{ github.run_id }}"]
if: github.repository == 'crystal-lang/crystal'
steps:
- name: Download Crystal source
Expand All @@ -106,6 +106,6 @@ jobs:
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://jhass/crystal:1.0.0-build
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make primitives_spec compiler_spec
8 changes: 4 additions & 4 deletions .github/workflows/interpreter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
test-interpreter_spec:
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.2-build
image: crystallang/crystal:1.13.3-build
name: "Test Interpreter"
steps:
- uses: actions/checkout@v4
Expand All @@ -24,7 +24,7 @@ jobs:
build-interpreter:
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.2-build
image: crystallang/crystal:1.13.3-build
name: Build interpreter
steps:
- uses: actions/checkout@v4
Expand All @@ -43,7 +43,7 @@ jobs:
needs: build-interpreter
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.2-build
image: crystallang/crystal:1.13.3-build
strategy:
matrix:
part: [0, 1, 2, 3]
Expand All @@ -67,7 +67,7 @@ jobs:
needs: build-interpreter
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.2-build
image: crystallang/crystal:1.13.3-build
name: "Test primitives_spec with interpreter"
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2, 1.13.2]
crystal_bootstrap_version: [1.7.3, 1.8.2, 1.9.2, 1.10.1, 1.11.2, 1.12.2, 1.13.3]
flags: [""]
include:
# libffi is only available starting from the 1.2.2 build images
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/llvm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
- name: Install Crystal
uses: crystal-lang/install-crystal@v1
with:
crystal: "1.13.2"
crystal: "1.13.3"

- name: Build libllvm_ext
run: make -B deps
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/openssl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
libssl_test:
runs-on: ubuntu-latest
name: "${{ matrix.pkg }}"
container: crystallang/crystal:1.13.2-alpine
container: crystallang/crystal:1.13.3-alpine
strategy:
fail-fast: false
matrix:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/regex-engine.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
pcre:
runs-on: ubuntu-latest
name: "PCRE"
container: crystallang/crystal:1.13.2-alpine
container: crystallang/crystal:1.13.3-alpine
steps:
- name: Download Crystal source
uses: actions/checkout@v4
Expand All @@ -25,7 +25,7 @@ jobs:
pcre2:
runs-on: ubuntu-latest
name: "PCRE2"
container: crystallang/crystal:1.13.2-alpine
container: crystallang/crystal:1.13.3-alpine
steps:
- name: Download Crystal source
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/wasm32.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ env:
jobs:
wasm32-test:
runs-on: ubuntu-latest
container: crystallang/crystal:1.13.2-build
container: crystallang/crystal:1.13.3-build
steps:
- name: Download Crystal source
uses: actions/checkout@v4
Expand Down
41 changes: 24 additions & 17 deletions .github/workflows/win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ jobs:
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

- name: Set up Cygwin
uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4
with:
packages: make
install-dir: C:\cygwin64
add-to-path: false

- name: Download Crystal source
uses: actions/checkout@v4

Expand Down Expand Up @@ -50,10 +57,10 @@ jobs:
run: .\etc\win-ci\build-pcre2.ps1 -BuildTree deps\pcre2 -Version 10.43
- name: Build libiconv
if: steps.cache-libs.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-iconv.ps1 -BuildTree deps\iconv
run: .\etc\win-ci\build-iconv.ps1 -BuildTree deps\iconv -Version 1.17
- name: Build libffi
if: steps.cache-libs.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-ffi.ps1 -BuildTree deps\ffi -Version 3.3
run: .\etc\win-ci\build-ffi.ps1 -BuildTree deps\ffi -Version 3.4.6
- name: Build zlib
if: steps.cache-libs.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-z.ps1 -BuildTree deps\z -Version 1.3.1
Expand Down Expand Up @@ -93,6 +100,13 @@ jobs:
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

- name: Set up Cygwin
uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4
with:
packages: make
install-dir: C:\cygwin64
add-to-path: false

- name: Download Crystal source
uses: actions/checkout@v4

Expand All @@ -112,7 +126,7 @@ jobs:
libs/xml2-dynamic.lib
dlls/pcre.dll
dlls/pcre2-8.dll
dlls/libiconv.dll
dlls/iconv-2.dll
dlls/gc.dll
dlls/libffi.dll
dlls/zlib1.dll
Expand All @@ -131,10 +145,10 @@ jobs:
run: .\etc\win-ci\build-pcre2.ps1 -BuildTree deps\pcre2 -Version 10.43 -Dynamic
- name: Build libiconv
if: steps.cache-dlls.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-iconv.ps1 -BuildTree deps\iconv -Dynamic
run: .\etc\win-ci\build-iconv.ps1 -BuildTree deps\iconv -Version 1.17 -Dynamic
- name: Build libffi
if: steps.cache-dlls.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-ffi.ps1 -BuildTree deps\ffi -Version 3.3 -Dynamic
run: .\etc\win-ci\build-ffi.ps1 -BuildTree deps\ffi -Version 3.4.6 -Dynamic
- name: Build zlib
if: steps.cache-dlls.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-z.ps1 -BuildTree deps\z -Version 1.3.1 -Dynamic
Expand Down Expand Up @@ -214,16 +228,16 @@ jobs:
if: steps.cache-llvm-dlls.outputs.cache-hit != 'true'
run: .\etc\win-ci\build-llvm.ps1 -BuildTree deps\llvm -Version ${{ env.CI_LLVM_VERSION }} -TargetsToBuild X86,AArch64 -Dynamic

x86_64-windows:
x86_64-windows-release:
needs: [x86_64-windows-libs, x86_64-windows-dlls, x86_64-windows-llvm-libs, x86_64-windows-llvm-dlls]
uses: ./.github/workflows/win_build_portable.yml
with:
release: false
release: true
llvm_version: "18.1.1"

x86_64-windows-test:
runs-on: windows-2022
needs: [x86_64-windows]
needs: [x86_64-windows-release]
steps:
- name: Disable CRLF line ending substitution
run: |
Expand Down Expand Up @@ -266,13 +280,6 @@ jobs:
- name: Build samples
run: make -f Makefile.win samples

x86_64-windows-release:
needs: [x86_64-windows-libs, x86_64-windows-dlls, x86_64-windows-llvm-libs, x86_64-windows-llvm-dlls]
uses: ./.github/workflows/win_build_portable.yml
with:
release: true
llvm_version: "18.1.1"

x86_64-windows-test-interpreter:
runs-on: windows-2022
needs: [x86_64-windows-release]
Expand All @@ -287,7 +294,7 @@ jobs:
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-release
name: crystal
path: build

- name: Restore LLVM
Expand Down Expand Up @@ -323,7 +330,7 @@ jobs:
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-release
name: crystal
path: etc/win-ci/portable

- name: Restore LLVM
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/win_build_portable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ jobs:

- name: Install Crystal
uses: crystal-lang/install-crystal@v1
id: install-crystal
with:
crystal: "1.13.2"
crystal: "1.13.3"

- name: Download Crystal source
uses: actions/checkout@v4
Expand Down Expand Up @@ -68,7 +69,7 @@ jobs:
libs/xml2-dynamic.lib
dlls/pcre.dll
dlls/pcre2-8.dll
dlls/libiconv.dll
dlls/iconv-2.dll
dlls/gc.dll
dlls/libffi.dll
dlls/zlib1.dll
Expand Down Expand Up @@ -107,6 +108,10 @@ jobs:
run: |
echo "CRYSTAL_LIBRARY_PATH=$(pwd)\libs" >> ${env:GITHUB_ENV}
echo "LLVM_CONFIG=$(pwd)\llvm\bin\llvm-config.exe" >> ${env:GITHUB_ENV}
# NOTE: the name of the libiconv DLL has changed, so we manually copy
# the new one to the existing Crystal installation; remove after
# updating the base compiler to 1.14
cp dlls/iconv-2.dll ${{ steps.install-crystal.outputs.path }}
- name: Build LLVM extensions
run: make -f Makefile.win deps
Expand Down Expand Up @@ -140,5 +145,5 @@ jobs:
- name: Upload Crystal binaries
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.release && 'crystal-release' || 'crystal' }}
name: crystal
path: crystal
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## [1.13.3] (2024-09-18)

[1.13.3]: https://github.com/crystal-lang/crystal/releases/1.13.3

### Bugfixes

#### stdlib

- **[regression]** Fix use global paths in macro bodies ([#14965], thanks @straight-shoota)
- *(system)* **[regression]** Fix `Process.exec` stream redirection on Windows ([#14986], thanks @HertzDevil)
- *(text)* **[regression]** Fix `String#index` and `#rindex` for `Char::REPLACEMENT` ([#14937], thanks @HertzDevil)

[#14965]: https://github.com/crystal-lang/crystal/pull/14965
[#14986]: https://github.com/crystal-lang/crystal/pull/14986
[#14937]: https://github.com/crystal-lang/crystal/pull/14937

### Infrastructure

- Changelog for 1.13.3 ([#14991], thanks @straight-shoota)
- *(ci)* Enable runners from `runs-on.com` for Aarch64 CI ([#15007], thanks @straight-shoota)

[#14991]: https://github.com/crystal-lang/crystal/pull/14991
[#15007]: https://github.com/crystal-lang/crystal/pull/15007

## [1.13.2] (2024-08-20)

[1.13.2]: https://github.com/crystal-lang/crystal/releases/1.13.2
Expand Down
6 changes: 3 additions & 3 deletions bin/ci
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ format() {
prepare_build() {
on_linux verify_linux_environment

on_osx curl -L https://github.com/crystal-lang/crystal/releases/download/1.13.2/crystal-1.13.2-1-darwin-universal.tar.gz -o ~/crystal.tar.gz
on_osx 'pushd ~;gunzip -c ~/crystal.tar.gz | tar xopf -;mv crystal-1.13.2-1 crystal;popd'
on_osx curl -L https://github.com/crystal-lang/crystal/releases/download/1.13.3/crystal-1.13.3-1-darwin-universal.tar.gz -o ~/crystal.tar.gz
on_osx 'pushd ~;gunzip -c ~/crystal.tar.gz | tar xopf -;mv crystal-1.13.3-1 crystal;popd'

# These commands may take a few minutes to run due to the large size of the repositories.
# This restriction has been made on GitHub's request because updating shallow
Expand Down Expand Up @@ -189,7 +189,7 @@ with_build_env() {

on_linux verify_linux_environment

export DOCKER_TEST_PREFIX="${DOCKER_TEST_PREFIX:=crystallang/crystal:1.13.2}"
export DOCKER_TEST_PREFIX="${DOCKER_TEST_PREFIX:=crystallang/crystal:1.13.3}"

case $ARCH in
x86_64)
Expand Down
Loading

0 comments on commit 25bbf8f

Please sign in to comment.