forked from luau-lang/luau
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/Roblox/luau
- Loading branch information
Showing
428 changed files
with
47,339 additions
and
17,567 deletions.
There are no files selected for viewing
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 |
---|---|---|
|
@@ -4,12 +4,12 @@ on: | |
push: | ||
branches: | ||
- master | ||
|
||
paths-ignore: | ||
- "docs/**" | ||
- "papers/**" | ||
- "rfcs/**" | ||
- "*.md" | ||
- "prototyping/**" | ||
|
||
jobs: | ||
windows: | ||
|
@@ -24,8 +24,6 @@ jobs: | |
script: "run-benchmarks", | ||
timeout: 12, | ||
title: "Luau Benchmarks", | ||
cachegrindTitle: "Performance", | ||
cachegrindIterCount: 20, | ||
} | ||
benchResultsRepo: | ||
- { name: "luau-lang/benchmark-data", branch: "main" } | ||
|
@@ -61,48 +59,61 @@ jobs: | |
run: | | ||
python bench/bench.py | tee ${{ matrix.bench.script }}-output.txt | ||
- name: Checkout Benchmark Results repository | ||
uses: actions/checkout@v3 | ||
- name: Push benchmark results | ||
id: pushBenchmarkAttempt1 | ||
continue-on-error: true | ||
uses: ./.github/workflows/push-results | ||
with: | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
ref: ${{ matrix.benchResultsRepo.branch }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
|
||
- name: Store ${{ matrix.bench.title }} result | ||
uses: Roblox/rhysd-github-action-benchmark@v-luau | ||
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})" | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" | ||
|
||
- name: Push benchmark results (Attempt 2) | ||
id: pushBenchmarkAttempt2 | ||
continue-on-error: true | ||
if: steps.pushBenchmarkAttempt1.outcome == 'failure' | ||
uses: ./.github/workflows/push-results | ||
with: | ||
name: ${{ matrix.bench.title }} (Windows ${{matrix.arch}}) | ||
tool: "benchmarkluau" | ||
output-file-path: ./${{ matrix.bench.script }}-output.txt | ||
external-data-json-path: ./gh-pages/dev/bench/data-${{ matrix.os }}.json | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Push benchmark results | ||
if: github.event_name == 'push' | ||
run: | | ||
echo "Pushing benchmark results..." | ||
cd gh-pages | ||
git config user.name github-actions | ||
git config user.email [email protected] | ||
git add ./dev/bench/data-${{ matrix.os }}.json | ||
git commit -m "Add benchmarks results for ${{ github.sha }}" | ||
git push | ||
cd .. | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})" | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" | ||
|
||
- name: Push benchmark results (Attempt 3) | ||
id: pushBenchmarkAttempt3 | ||
continue-on-error: true | ||
if: steps.pushBenchmarkAttempt2.outcome == 'failure' | ||
uses: ./.github/workflows/push-results | ||
with: | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
bench_name: "${{ matrix.bench.title }} (Windows ${{matrix.arch}})" | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" | ||
|
||
unix: | ||
name: ${{matrix.os}} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, macos-latest] | ||
os: [ubuntu-20.04, macos-latest] | ||
bench: | ||
- { | ||
script: "run-benchmarks", | ||
timeout: 12, | ||
title: "Luau Benchmarks", | ||
cachegrindTitle: "Performance", | ||
cachegrindIterCount: 20, | ||
} | ||
benchResultsRepo: | ||
- { name: "luau-lang/benchmark-data", branch: "main" } | ||
|
@@ -129,142 +140,46 @@ jobs: | |
run: | | ||
python bench/bench.py | tee ${{ matrix.bench.script }}-output.txt | ||
- name: Install valgrind | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
sudo apt-get install valgrind | ||
- name: Run ${{ matrix.bench.title }} (Cold Cachegrind) | ||
if: matrix.os == 'ubuntu-latest' | ||
run: sudo bash ./scripts/run-with-cachegrind.sh python ./bench/bench.py "${{ matrix.bench.cachegrindTitle}}Cold" 1 | tee -a ${{ matrix.bench.script }}-output.txt | ||
|
||
- name: Run ${{ matrix.bench.title }} (Warm Cachegrind) | ||
if: matrix.os == 'ubuntu-latest' | ||
run: sudo bash ./scripts/run-with-cachegrind.sh python ./bench/bench.py "${{ matrix.bench.cachegrindTitle }}" ${{ matrix.bench.cachegrindIterCount }} | tee -a ${{ matrix.bench.script }}-output.txt | ||
|
||
- name: Checkout Benchmark Results repository | ||
uses: actions/checkout@v3 | ||
- name: Push benchmark results | ||
id: pushBenchmarkAttempt1 | ||
continue-on-error: true | ||
uses: ./.github/workflows/push-results | ||
with: | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
ref: ${{ matrix.benchResultsRepo.branch }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
|
||
- name: Store ${{ matrix.bench.title }} result | ||
uses: Roblox/rhysd-github-action-benchmark@v-luau | ||
with: | ||
name: ${{ matrix.bench.title }} | ||
tool: "benchmarkluau" | ||
output-file-path: ./${{ matrix.bench.script }}-output.txt | ||
external-data-json-path: ./gh-pages/dev/bench/data-${{ matrix.os }}.json | ||
github-token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
|
||
- name: Store ${{ matrix.bench.title }} result (CacheGrind) | ||
if: matrix.os == 'ubuntu-latest' | ||
uses: Roblox/rhysd-github-action-benchmark@v-luau | ||
with: | ||
name: ${{ matrix.bench.title }} (CacheGrind) | ||
tool: "roblox" | ||
output-file-path: ./${{ matrix.bench.script }}-output.txt | ||
external-data-json-path: ./gh-pages/dev/bench/data-${{ matrix.os }}.json | ||
github-token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
|
||
- name: Push benchmark results | ||
if: github.event_name == 'push' | ||
run: | | ||
echo "Pushing benchmark results..." | ||
cd gh-pages | ||
git config user.name github-actions | ||
git config user.email [email protected] | ||
git add ./dev/bench/data-${{ matrix.os }}.json | ||
git commit -m "Add benchmarks results for ${{ github.sha }}" | ||
git push | ||
cd .. | ||
static-analysis: | ||
name: luau-analyze | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest] | ||
bench: | ||
- { | ||
script: "run-analyze", | ||
timeout: 12, | ||
title: "Luau Analyze", | ||
cachegrindTitle: "Performance", | ||
cachegrindIterCount: 20, | ||
} | ||
benchResultsRepo: | ||
- { name: "luau-lang/benchmark-data", branch: "main" } | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
token: "${{ secrets.BENCH_GITHUB_TOKEN }}" | ||
|
||
- name: Build Luau | ||
run: make config=release luau luau-analyze | ||
|
||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.9" | ||
architecture: "x64" | ||
|
||
- name: Install python dependencies | ||
run: | | ||
sudo pip install requests numpy scipy matplotlib ipython jupyter pandas sympy nose | ||
- name: Install valgrind | ||
run: | | ||
sudo apt-get install valgrind | ||
- name: Run Luau Analyze on static file | ||
run: sudo python ./bench/measure_time.py ./build/release/luau-analyze bench/other/LuauPolyfillMap.lua | tee ${{ matrix.bench.script }}-output.txt | ||
|
||
- name: Run ${{ matrix.bench.title }} (Cold Cachegrind) | ||
run: sudo ./scripts/run-with-cachegrind.sh python ./bench/measure_time.py "${{ matrix.bench.cachegrindTitle}}Cold" 1 ./build/release/luau-analyze bench/other/LuauPolyfillMap.lua | tee -a ${{ matrix.bench.script }}-output.txt | ||
|
||
- name: Run ${{ matrix.bench.title }} (Warm Cachegrind) | ||
run: sudo bash ./scripts/run-with-cachegrind.sh python ./bench/measure_time.py "${{ matrix.bench.cachegrindTitle}}" 1 ./build/release/luau-analyze bench/other/LuauPolyfillMap.lua | tee -a ${{ matrix.bench.script }}-output.txt | ||
|
||
- name: Checkout Benchmark Results repository | ||
uses: actions/checkout@v3 | ||
bench_name: ${{ matrix.bench.title }} | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" | ||
|
||
- name: Push benchmark results (Attempt 2) | ||
id: pushBenchmarkAttempt2 | ||
continue-on-error: true | ||
if: steps.pushBenchmarkAttempt1.outcome == 'failure' | ||
uses: ./.github/workflows/push-results | ||
with: | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
ref: ${{ matrix.benchResultsRepo.branch }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
|
||
- name: Store ${{ matrix.bench.title }} result | ||
uses: Roblox/rhysd-github-action-benchmark@v-luau | ||
with: | ||
name: ${{ matrix.bench.title }} | ||
tool: "benchmarkluau" | ||
|
||
gh-pages-branch: "main" | ||
output-file-path: ./${{ matrix.bench.script }}-output.txt | ||
external-data-json-path: ./gh-pages/dev/bench/data-${{ matrix.os }}.json | ||
github-token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
|
||
- name: Store ${{ matrix.bench.title }} result (CacheGrind) | ||
uses: Roblox/rhysd-github-action-benchmark@v-luau | ||
bench_name: ${{ matrix.bench.title }} | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" | ||
|
||
- name: Push benchmark results (Attempt 3) | ||
id: pushBenchmarkAttempt3 | ||
continue-on-error: true | ||
if: steps.pushBenchmarkAttempt2.outcome == 'failure' | ||
uses: ./.github/workflows/push-results | ||
with: | ||
name: ${{ matrix.bench.title }} | ||
tool: "roblox" | ||
gh-pages-branch: "main" | ||
output-file-path: ./${{ matrix.bench.script }}-output.txt | ||
external-data-json-path: ./gh-pages/dev/bench/data-${{ matrix.os }}.json | ||
github-token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
|
||
- name: Push benchmark results | ||
if: github.event_name == 'push' | ||
run: | | ||
echo "Pushing benchmark results..." | ||
cd gh-pages | ||
git config user.name github-actions | ||
git config user.email [email protected] | ||
git add ./dev/bench/data-${{ matrix.os }}.json | ||
git commit -m "Add benchmarks results for ${{ github.sha }}" | ||
git push | ||
cd .. | ||
repository: ${{ matrix.benchResultsRepo.name }} | ||
branch: ${{ matrix.benchResultsRepo.branch }} | ||
token: ${{ secrets.BENCH_GITHUB_TOKEN }} | ||
path: "./gh-pages" | ||
bench_name: ${{ matrix.bench.title }} | ||
bench_tool: "benchmarkluau" | ||
bench_output_file_path: "./${{ matrix.bench.script }}-output.txt" | ||
bench_external_data_json_path: "./gh-pages/dev/bench/data-${{ matrix.os }}.json" |
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
Oops, something went wrong.