Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: elixir-lang/elixir
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.14.5
Choose a base ref
...
head repository: elixir-lang/elixir
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.15.0
Choose a head ref

Commits on Aug 11, 2015

  1. Move logger flush to kernel cli, closes #3100

    José Valim committed Aug 11, 2015
    Copy the full SHA
    3a9f5f0 View commit details
  2. Fix var warnings

    José Valim committed Aug 11, 2015
    Copy the full SHA
    632f4e9 View commit details
  3. Fix bootstrap issues in kernel/cli

    José Valim committed Aug 11, 2015
    Copy the full SHA
    c3d6196 View commit details
  4. Check for PID result from Logger

    José Valim committed Aug 11, 2015
    Copy the full SHA
    d2c8545 View commit details
  5. capture non-symbolic operators (&and/2, &not/1, &c.)

    partial fix for issue #3486
    pin operator  is a different issue and will take some more investgation to find the cause.
    ꗈ ꘐ ꗈ committed Aug 11, 2015
    Copy the full SHA
    0e802f5 View commit details
  6. Merge pull request #3571 from jisaacstone/i_3486

    capture non-symbolic operators (&and/2, &not/1, &c.)
    josevalim committed Aug 11, 2015
    Copy the full SHA
    2dd1df8 View commit details
  7. Copy the full SHA
    c5d5f0b View commit details
  8. Merge pull request #3570 from fishcakez/embedded_config_warn

    Warn if app configured but not started when build_embedded
    fishcakez committed Aug 11, 2015
    Copy the full SHA
    e448e65 View commit details
  9. Copy the full SHA
    e65c571 View commit details
  10. Update app.start.ex

    josevalim committed Aug 11, 2015
    Copy the full SHA
    7cf40c1 View commit details

Commits on Aug 12, 2015

  1. Copy the full SHA
    095c144 View commit details
  2. Remove warnings from erlang suite

    José Valim committed Aug 12, 2015
    Copy the full SHA
    befe68e View commit details
  3. Allow nil pid in task

    fishcakez committed Aug 12, 2015
    Copy the full SHA
    30df5bd View commit details
  4. Copy the full SHA
    b534aa4 View commit details
  5. Copy the full SHA
    3fd0db9 View commit details
  6. Add GenServer.whereis/1

    fishcakez committed Aug 12, 2015
    Copy the full SHA
    f17bc54 View commit details
  7. Clean up typespec docs to avoid current confusion

    José Valim committed Aug 12, 2015
    Copy the full SHA
    70f48f1 View commit details
  8. Copy the full SHA
    921af55 View commit details
  9. Copy the full SHA
    16c9930 View commit details
  10. Copy the full SHA
    61aa18c View commit details

Commits on Aug 13, 2015

  1. Copy the full SHA
    0fe463f View commit details
  2. Further optimize in range

    José Valim committed Aug 13, 2015
    Copy the full SHA
    8081973 View commit details
  3. Copy the full SHA
    6506f6e View commit details
  4. Ensure to always clearn up logger configuration

    José Valim committed Aug 13, 2015
    Copy the full SHA
    2eec0cf View commit details
  5. Copy the full SHA
    6c5bc28 View commit details
  6. Copy the full SHA
    74873ed View commit details
  7. Merge pull request #3574 from jisaacstone/i_3565

    documentaion for module names, variable names and custom sigils
    josevalim committed Aug 13, 2015
    Copy the full SHA
    f1b2985 View commit details
  8. Merge pull request #3573 from c-rack/issue-3541

    Remove compiled protocols on mix clean. Fixes #3541
    josevalim committed Aug 13, 2015
    Copy the full SHA
    becf3ec View commit details
  9. Copy the full SHA
    2524f3b View commit details
  10. Merge pull request #3575 from jisaacstone/unimpdoc

    Added a blub about underscore names to the `import` documentation
    josevalim committed Aug 13, 2015
    Copy the full SHA
    9b64750 View commit details
  11. Fix identention inside lists

    The following commands were used to find the buggy strings:
    `ag "[\r\n]\ {4}\[*-]([^\r\n]+[\r\n])+\ {7,}"`
    `ag "[\r\n]\ {4}[-*]([^\r\n]+[\r\n])(\ {4,}[^\r\n]+[\r\n])+\ {7,}"`
    eksperimental committed Aug 13, 2015
    Copy the full SHA
    8865bd5 View commit details
  12. URI: add RFC links

    eksperimental committed Aug 13, 2015
    Copy the full SHA
    5c1c0a8 View commit details
  13. Copy the full SHA
    b16a135 View commit details
  14. Copy the full SHA
    3a0f13d View commit details
  15. Merge pull request #3579 from lexmag/fix-capture_log-test-race

    Fix race condition in `CaptureLogTest`
    fishcakez committed Aug 13, 2015
    Copy the full SHA
    b967e00 View commit details
  16. Dog food Application.put_env/3

    lexmag committed Aug 13, 2015
    Copy the full SHA
    932abbb View commit details

Commits on Aug 14, 2015

  1. Copy the full SHA
    f267c5a View commit details
  2. Copy the full SHA
    1f5e298 View commit details
  3. Copy the full SHA
    3759c3c View commit details
  4. Merge pull request #3582 from lexmag/improve-fprof-task

    Remove dead code, tidy up `Mix.Tasks.Profile.Fprof`
    josevalim committed Aug 14, 2015
    Copy the full SHA
    084d9ff View commit details
  5. Merge pull request #3578 from eksperimental/fix

    Mention sigil_R as valid option to create a regex
    josevalim committed Aug 14, 2015
    Copy the full SHA
    7353e59 View commit details
  6. Warn on build embededd instead

    José Valim committed Aug 14, 2015
    Copy the full SHA
    64f000d View commit details
  7. Merge pull request #3576 from eksperimental/list_identation

    Fix indentention inside lists
    josevalim committed Aug 14, 2015
    Copy the full SHA
    3831823 View commit details
  8. Merge pull request #3577 from eksperimental/uri

    URI: add RFC links
    josevalim committed Aug 14, 2015
    Copy the full SHA
    50cc003 View commit details
  9. Fix doc comment for File.cp_r

    In fact IO.gets always returns a line ended by a LF symbol in such the cases. So we have to take this into account when comparing user input with a target string.
    romul committed Aug 14, 2015
    Copy the full SHA
    be35e56 View commit details
  10. Merge pull request #3584 from romul/fix_in_cp_r_doc

    Fix doc comment for File.cp_r
    josevalim committed Aug 14, 2015
    Copy the full SHA
    cc4983e View commit details
  11. Improve async docs

    José Valim committed Aug 14, 2015
    Copy the full SHA
    7533563 View commit details
  12. Stop/unload applications started/loaded in mix tests

    Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
    fishcakez authored and José Valim committed Aug 14, 2015
    Copy the full SHA
    eeacdbc View commit details
  13. Copy the full SHA
    3562e86 View commit details
  14. Copy the full SHA
    aee7fbc View commit details
Showing 720 changed files with 236,568 additions and 45,413 deletions.
19 changes: 19 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
[
inputs: [
"lib/*/{lib,scripts,unicode,test}/**/*.{ex,exs}",
"lib/*/*.exs",
"lib/ex_unit/examples/*.exs",
".formatter.exs"
],
locals_without_parens: [
# Formatter tests
assert_format: 2,
assert_format: 3,
assert_same: 1,
assert_same: 2,

# Errors tests
assert_eval_raise: 3
],
normalize_bitstring_modifiers: false
]
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
lib/elixir/test/elixir/fixtures/*.txt text eol=lf
*.ex diff=elixir
*.exs diff=elixir
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
blank_issues_enabled: true

contact_links:
- name: Ask questions, support, and general discussions
url: https://elixirforum.com/
about: Ask questions, provide support, and more on Elixir Forum

- name: Propose new features
url: https://github.com/elixir-lang/elixir/#proposing-new-features
about: Propose new features in our mailing list
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: Report an issue
description:
Tell us about something that is not working the way we (probably) intend
body:
- type: markdown
attributes:
value: >
Thank you for contributing to Elixir! :heart:
Please, do not use this form for guidance, questions or support.
Try instead in [Elixir Forum](https://elixirforum.com),
the [IRC Chat](https://web.libera.chat/#elixir),
[Stack Overflow](https://stackoverflow.com/questions/tagged/elixir),
[Slack](https://elixir-slackin.herokuapp.com),
[Discord](https://discord.gg/elixir) or in other online communities.
- type: textarea
id: elixir-and-otp-version
attributes:
label: Elixir and Erlang/OTP versions
description: Paste the output of `elixir --version` here.
validations:
required: true

- type: input
id: os
attributes:
label: Operating system
description: The operating system that this issue is happening on.
validations:
required: true

- type: textarea
id: current-behavior
attributes:
label: Current behavior
description: >
Include code samples, errors, and stacktraces if appropriate.
If reporting a bug, please include the reproducing steps.
validations:
required: true

- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A short description on how you expect the code to behave.
validations:
required: true
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
134 changes: 134 additions & 0 deletions .github/workflows/builds.hex.pm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
name: builds.hex.pm

on:
push:
branches:
- main
- v*.*
tags:
- v*

env:
ELIXIR_OPTS: "--warnings-as-errors"
ERLC_OPTS: "warnings_as_errors"
LANG: C.UTF-8

concurrency: builds_txt

jobs:
release_pre_built:
strategy:
fail-fast: true
max-parallel: 1
matrix:
include:
- otp: 24
otp_version: '24.3'
upload_generic_version: upload_generic_version
- otp: 25
otp_version: '25.3'
- otp: 26
otp_version: '26.0'
build_docs: build_docs
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Get tags
run: git fetch --tags origin
- uses: ./.github/workflows/release_pre_built
with:
otp_version: ${{ matrix.otp_version }}
otp: ${{ matrix.otp }}
build_docs: ${{ matrix.build_docs }}
- name: Utils.sh
run: |
cat << 'EOF' > utils.sh
function purge_key() {
curl \
-X POST \
-H "Fastly-Key: ${FASTLY_KEY}" \
-H "Accept: application/json" \
-H "Content-Length: 0" \
"https://api.fastly.com/service/$1/purge/$2"
}
function purge() {
purge_key ${FASTLY_REPO_SERVICE_ID} $1
purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
sleep 2
purge_key ${FASTLY_REPO_SERVICE_ID} $1
purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
sleep 2
purge_key ${FASTLY_REPO_SERVICE_ID} $1
purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
}
EOF
chmod +x utils.sh
- name: Upload Docs to S3
if: ${{ matrix.build_docs }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.HEX_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.HEX_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.HEX_AWS_REGION }}
AWS_S3_BUCKET: ${{ secrets.HEX_AWS_S3_BUCKET }}
FASTLY_REPO_SERVICE_ID: ${{ secrets.HEX_FASTLY_REPO_SERVICE_ID }}
FASTLY_BUILDS_SERVICE_ID: ${{ secrets.HEX_FASTLY_BUILDS_SERVICE_ID }}
FASTLY_KEY: ${{ secrets.HEX_FASTLY_KEY }}
run: |
source utils.sh
version=$(echo ${{ github.ref_name }} | sed -e 's/^v//g')
for f in doc/*; do
if [ -d "$f" ]; then
app=`echo $f | sed s/"doc\/"//`
tarball="${app}-${version}.tar.gz"
surrogate_key="docs/${app}-${version}"
tar -czf "${tarball}" -C "doc/${app}" .
aws s3 cp "${tarball}" "s3://${{ env.AWS_S3_BUCKET }}/docs/${tarball}" \
--cache-control "public,max-age=3600" \
--metadata "{\"surrogate-key\":\"${surrogate_key}\",\"surrogate-control\":\"public,max-age=604800\"}"
purge "${surrogate_key}"
fi
done
- name: Upload Precompiled to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.HEX_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.HEX_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.HEX_AWS_REGION }}
AWS_S3_BUCKET: ${{ secrets.HEX_AWS_S3_BUCKET }}
FASTLY_REPO_SERVICE_ID: ${{ secrets.HEX_FASTLY_REPO_SERVICE_ID }}
FASTLY_BUILDS_SERVICE_ID: ${{ secrets.HEX_FASTLY_BUILDS_SERVICE_ID }}
FASTLY_KEY: ${{ secrets.HEX_FASTLY_KEY }}
run: |
source utils.sh
aws s3 cp elixir-otp-${{ matrix.otp }}.zip "s3://${{ env.AWS_S3_BUCKET }}/builds/elixir/${{github.ref_name}}-otp-${{matrix.otp}}.zip" --cache-control "public,max-age=3600" --metadata "{\"surrogate-key\":\"builds builds/elixir builds/elixir/${{github.ref_name}}-otp-${{matrix.otp}}\",\"surrogate-control\":\"public,max-age=604800\"}"
purge builds/elixir/${{github.ref_name}}-otp-${{matrix.otp}}
if [ "${{matrix.upload_generic_version}}" == "upload_generic_version" ]; then
aws s3 cp elixir-otp-${{ matrix.otp }}.zip "s3://${{ env.AWS_S3_BUCKET }}/builds/elixir/${{github.ref_name}}.zip" --cache-control "public,max-age=3600" --metadata "{\"surrogate-key\":\"builds builds/elixir builds/elixir/${{github.ref_name}}\",\"surrogate-control\":\"public,max-age=604800\"}"
purge builds/elixir/${{github.ref_name}}
fi
- name: Update builds txt
env:
AWS_ACCESS_KEY_ID: ${{ secrets.HEX_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.HEX_AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.HEX_AWS_REGION }}
AWS_S3_BUCKET: ${{ secrets.HEX_AWS_S3_BUCKET }}
FASTLY_REPO_SERVICE_ID: ${{ secrets.HEX_FASTLY_REPO_SERVICE_ID }}
FASTLY_BUILDS_SERVICE_ID: ${{ secrets.HEX_FASTLY_BUILDS_SERVICE_ID }}
FASTLY_KEY: ${{ secrets.HEX_FASTLY_KEY }}
run: |
source utils.sh
date=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
build_sha256=$(sha256sum elixir-otp-${{ matrix.otp }}.zip | cut -d ' ' -f 1)
ref_name=${{ github.ref_name }}
aws s3 cp s3://${{ env.AWS_S3_BUCKET }}/builds/elixir/builds.txt builds.txt || true
touch builds.txt
sed -i "/^${ref_name}-otp-${{ matrix.otp }} /d" builds.txt
echo -e "${ref_name}-otp-${{ matrix.otp }} ${{ github.sha }} ${date} ${build_sha256} \n$(cat builds.txt)" > builds.txt
if [ "${{matrix.upload_generic_version}}" == "upload_generic_version" ]; then
sed -i "/^${ref_name} /d" builds.txt
echo -e "${ref_name} ${{ github.sha }} ${date} ${build_sha256} \n$(cat builds.txt)" > builds.txt
fi
sort -u -k1,1 -o builds.txt builds.txt
aws s3 cp builds.txt s3://${{ env.AWS_S3_BUCKET }}/builds/elixir/builds.txt --cache-control "public,max-age=3600" --metadata '{"surrogate-key":"builds builds/elixir builds/elixir/txt","surrogate-control":"public,max-age=604800"}'
purge builds/elixir/txt
121 changes: 121 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: CI

on:
push:
paths-ignore:
- 'lib/**/*.md'
pull_request:
paths-ignore:
- 'lib/**/*.md'

env:
ELIXIR_ASSERT_TIMEOUT: 2000
ELIXIRC_OPTS: "--warnings-as-errors"
ERLC_OPTS: "warnings_as_errors"
LANG: C.UTF-8

permissions:
contents: read

jobs:
test_linux:
name: Ubuntu 20.04, Erlang/OTP ${{ matrix.otp_version }}
strategy:
fail-fast: false
matrix:
include:
- otp_version: '26.0'
otp_latest: true
- otp_version: '25.3'
- otp_version: '25.0'
- otp_version: '24.3'
- otp_version: '24.0'
- otp_version: master
development: true
- otp_version: maint
development: true
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
- name: Compile Elixir
run: |
make compile
echo "$PWD/bin" >> $GITHUB_PATH
- name: Build info
run: bin/elixir --version
- name: Check format
run: make test_formatted && echo "All Elixir source code files are properly formatted."
- name: Erlang test suite
run: make test_erlang
continue-on-error: ${{ matrix.development }}
- name: Elixir test suite
run: make test_elixir
continue-on-error: ${{ matrix.development }}
- name: Build docs (ExDoc main)
if: ${{ matrix.otp_latest }}
run: |
cd ..
git clone https://github.com/elixir-lang/ex_doc.git --depth 1
cd ex_doc
../elixir/bin/mix do local.rebar --force + local.hex --force + deps.get + compile
cd ../elixir/
make docs
- name: Check reproducible builds
run: |
rm -rf .git
# Recompile System without .git
cd lib/elixir && ../../bin/elixirc -o ebin lib/system.ex && cd -
taskset 1 make check_reproducible
if: ${{ matrix.otp_latest }}

test_windows:
name: Windows Server 2019, Erlang/OTP ${{ matrix.otp_version }}
strategy:
matrix:
otp_version: ['24', '25', '26']
runs-on: windows-2019
steps:
- name: Configure Git
run: git config --global core.autocrlf input
- uses: actions/checkout@v3
with:
fetch-depth: 50
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
- name: Compile Elixir
run: |
Remove-Item -Recurse -Force '.git'
make compile
- name: Build info
run: bin/elixir --version
- name: Check format
run: make test_formatted && echo "All Elixir source code files are properly formatted."
- name: Erlang test suite
run: make --keep-going test_erlang
- name: Elixir test suite
run: |
Remove-Item 'c:/Windows/System32/drivers/etc/hosts'
make --keep-going test_elixir
check_posix_compliant:
name: Check POSIX-compliant
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 50
- name: Install Shellcheck
run: |
sudo apt update
sudo apt install -y shellcheck
- name: Check POSIX-compliant
run: |
shellcheck -e SC2039,2086 bin/elixir && echo "bin/elixir is POSIX compliant"
shellcheck bin/elixirc && echo "bin/elixirc is POSIX compliant"
shellcheck bin/iex && echo "bin/iex is POSIX compliant"
Loading