Skip to content

Commit

Permalink
Merge master. Resolved conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
jwoertink committed Sep 21, 2024
2 parents e0af96d + b679b56 commit 24f54eb
Show file tree
Hide file tree
Showing 2,003 changed files with 235,341 additions and 53,456 deletions.
448 changes: 171 additions & 277 deletions .circleci/config.yml

Large diffs are not rendered by default.

3 changes: 0 additions & 3 deletions .dockerignore

This file was deleted.

28 changes: 28 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Sources

*.cr text eol=lf

## Sourced-in dependencies

lib/** linguist-vendored

## Generated files

# produced by scripts/generate_windows_zone_names.cr
src/crystal/system/win32/zone_names.cr linguist-generated
# produced by scripts/generate_html_entities.cr
src/html/entities.cr linguist-generated
# produced by scripts/generate_ssl_server_defaults.cr
src/openssl/ssl/defaults.cr linguist-generated
# produced by scripts/generate_grapheme_properties.cr
src/string/grapheme/properties.cr linguist-generated
# produced by scripts/generate_unicode_data.cr
src/unicode/data.cr linguist-generated
# produced by scripts/generate_grapheme_break_specs.cr
spec/std/string/grapheme_break_spec.cr linguist-generated
# produced by spec/generate_wasm32_spec.sh
spec/wasm32_std_spec.cr linguist-generated

## Syntax highlighting

Makefile.win linguist-language=makefile
12 changes: 7 additions & 5 deletions ISSUE_TEMPLATE.md → .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# Submitting questions
---
name: "\U0001F41B Bug Report"
about: I want to report a bug.
labels: kind:bug
---

If you have a question like "how do I do X?", this is not the right place for asking it. Please ask on the [Crystal Forum](https://forum.crystal-lang.org), on our combined [Gitter](https://gitter.im/crystal-lang/crystal)/[IRC](http://webchat.freenode.net/?channels=#crystal-lang) or on [StackOverflow](http://stackoverflow.com/questions/tagged/crystal-lang).

# Submitting bugs
## Bug Report

Make sure to review these points before submitting issues - thank you!

- Make sure a similar issue doesn't exist yet: use the search box
- Make sure a similar issue does not exist yet: use the search box, search engine and look at [Stack Overflow](https://stackoverflow.com/questions/tagged/crystal-lang).
- **Include reproducible code**: we should be able to paste it into an editor, compile and run it and get the same error as you. Otherwise it's impossible for us to reproduce the bug.
- Don't **only** use `play.crystal-lang.org` or `carc.in`: code might be lost and the issue will remain incomplete. Write code in the issue itself.
- Reduce code, if possible, to the minimum size that reproduces the bug.
Expand Down
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: "\U00002753 Crystal Community Forum"
url: https://forum.crystal-lang.org/c/help-support
about: Questions about installing, using Crystal and any related issues.
- name: "\U0001F4AC Crystal Community Chat"
url: https://gitter.im/crystal-lang/crystal
about: "Get in touch with the community, ask for help and talk about Crystal. (IRC: #crystal-lang on libera.chat)"
12 changes: 12 additions & 0 deletions .github/ISSUE_TEMPLATE/discussion.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
name: "\U0001F914 Language Improvement Discussion"
about: I want to start a new discussion about improving the language.
labels: status:discussion
---

## Discussion

- What aspect of the language would you like to see improved?
- What are the reasons?
- Include practical examples to illustrate your points.
- Optionally add one (or more) proposals to improve the current situation.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: "\U0001F680 Feature Request"
about: I want to propose a new language feature.
labels: kind:feature
---

## Feature Request

- Is your feature request related to a problem? Please describe clearly and concisely what is it.
- Describe the feature you would like, optionally illustrated by examples, and how it will solve the above problem.
- Describe considered alternative solutions, and the reasons why you have not proposed them as a solution here.
- Does it break backward compatibility, if yes then what's the migration path?

In case this proposal includes a substantial change to the language, we ask you to go through an [RFC process](https://github.com/crystal-lang/rfcs).

The best place to start an open discussion about potential changes is the [Crystal forum](https://forum.crystal-lang.org/c/crystal-contrib/6).
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
We thank you for helping improve Crystal. In order to ease the reviewing process, we invite you to read the [guidelines](https://github.com/crystal-lang/crystal/blob/master/CONTRIBUTING.md#making-good-pull-requests) and ask you to consider the following points before submitting a PR:

1. We prefer to discuss the underlying issue _prior_ to discussing the code. Therefore, we kindly ask you to refer to an existing issue, or an existing discussion in a public space with members of the Core Team (forum, Gitter, Discord, ...). In few cases, we acknowledge that this might not be necessary, for instance when refactoring code or small bug fixes. In this case, the PR must include the same information an issue would have: a clear explanation of the issue, reproducible code, etc.

2. Focus the PR to the referred issue, and restraint from adding unrelated changes/additions. We do welcome another PR if you fixed another issue.

3. If your change is big, consider breaking it into several smaller PRs. In general, the smaller the change, the quicker we can review it.

4. ⚠️ Please do not amend previous commits and force push to the PR branch. This makes reviews much harder because reference to previous state is hidden.
17 changes: 17 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"separateMajorMinor": false,
"packageRules": [
{
"matchDatasources": ["docker"],
"enabled": false
},
{
"groupName": "GH Actions",
"matchManagers": ["github-actions"],
"schedule": ["after 5am and before 8am on Wednesday"]
}
],
"labels": ["topic:infrastructure/ci"]
}
111 changes: 111 additions & 0 deletions .github/workflows/aarch64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: AArch64 CI

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
aarch64-musl-build:
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://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
uses: actions/upload-artifact@v4
with:
name: crystal-aarch64-musl
path: |
.build/crystal
src/llvm/ext/llvm_ext.o
aarch64-musl-test-stdlib:
needs: aarch64-musl-build
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
uses: actions/checkout@v4
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-aarch64-musl
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
uses: docker://crystallang/crystal:1.13.2-alpine-84codes-build
with:
args: make std_spec
aarch64-musl-test-compiler:
needs: aarch64-musl-build
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
uses: actions/checkout@v4
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-aarch64-musl
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
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: [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://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make crystal
- name: Upload Crystal executable
uses: actions/upload-artifact@v4
with:
name: crystal-aarch64-gnu
path: |
.build/crystal
src/llvm/ext/llvm_ext.o
aarch64-gnu-test-stdlib:
needs: aarch64-gnu-build
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
uses: actions/checkout@v4
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-aarch64-gnu
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run stdlib specs
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: [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
uses: actions/checkout@v4
- name: Download Crystal executable
uses: actions/download-artifact@v4
with:
name: crystal-aarch64-gnu
- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal
- name: Run compiler specs
uses: docker://crystallang/crystal:1.13.2-ubuntu-84codes-build
with:
args: make primitives_spec compiler_spec
85 changes: 85 additions & 0 deletions .github/workflows/interpreter.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Interpreter Test

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

env:
SPEC_SPLIT_DOTS: 160

jobs:
test-interpreter_spec:
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.3-build
name: "Test Interpreter"
steps:
- uses: actions/checkout@v4

- name: Test interpreter_spec
run: make interpreter_spec junit_output=.junit/interpreter_spec.xml

build-interpreter:
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.3-build
name: Build interpreter
steps:
- uses: actions/checkout@v4

- name: Build compiler
run: make interpreter=1 release=1

- name: Upload compiler artifact
uses: actions/upload-artifact@v4
with:
name: crystal-interpreter
path: |
.build/crystal
test-interpreter-std_spec:
needs: build-interpreter
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.3-build
strategy:
matrix:
part: [0, 1, 2, 3]
name: "Test std_spec with interpreter (${{ matrix.part }})"
steps:
- uses: actions/checkout@v4

- name: Download compiler artifact
uses: actions/download-artifact@v4
with:
name: crystal-interpreter
path: .build/

- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal

- name: Run std_spec with interpreter
run: SPEC_SPLIT="${{ matrix.part }}%4" bin/crystal i spec/std_spec.cr -- --junit_output .junit/interpreter-std_spec.${{ matrix.part }}.xml

test-interpreter-primitives_spec:
needs: build-interpreter
runs-on: ubuntu-22.04
container:
image: crystallang/crystal:1.13.3-build
name: "Test primitives_spec with interpreter"
steps:
- uses: actions/checkout@v4

- name: Download compiler artifact
uses: actions/download-artifact@v4
with:
name: crystal-interpreter
path: .build/

- name: Mark downloaded compiler as executable
run: chmod +x .build/crystal

- name: Run primitives_spec with interpreter
run: bin/crystal i spec/primitives_spec.cr -- --junit_output .junit/interpreter-primitives_spec.xml
Loading

0 comments on commit 24f54eb

Please sign in to comment.