Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
yui-knk committed May 29, 2023
1 parent c6ff0b0 commit 3996bf4
Show file tree
Hide file tree
Showing 2 changed files with 167 additions and 174 deletions.
334 changes: 167 additions & 167 deletions .github/workflows/yjit-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -1,177 +1,177 @@
name: YJIT Ubuntu
on:
push:
paths-ignore:
- 'doc/**'
- '**/man'
- '**.md'
- '**.rdoc'
- '**/.document'
pull_request:
paths-ignore:
- 'doc/**'
- '**/man'
- '**.md'
- '**.rdoc'
- '**/.document'
merge_group:
paths-ignore:
- 'doc/**'
- '**/man'
- '**.md'
- '**.rdoc'
- '**/.document'
# name: YJIT Ubuntu
# on:
# push:
# paths-ignore:
# - 'doc/**'
# - '**/man'
# - '**.md'
# - '**.rdoc'
# - '**/.document'
# pull_request:
# paths-ignore:
# - 'doc/**'
# - '**/man'
# - '**.md'
# - '**.rdoc'
# - '**/.document'
# merge_group:
# paths-ignore:
# - 'doc/**'
# - '**/man'
# - '**.md'
# - '**.rdoc'
# - '**/.document'

concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
# concurrency:
# group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
# cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}

permissions:
contents: read
# permissions:
# contents: read

jobs:
cargo:
name: Rust cargo test
# GitHub Action's image seems to already contain a Rust 1.58.0.
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
# For now we can't run cargo test --offline because it complains about the
# capstone dependency, even though the dependency is optional
#- run: cargo test --offline
- run: RUST_BACKTRACE=1 cargo test
working-directory: yjit
# Also compile and test with all features enabled
- run: RUST_BACKTRACE=1 cargo test --all-features
working-directory: yjit
# Check that we can build in release mode too
- run: cargo build --release
working-directory: yjit
lint:
name: Rust lint
# GitHub Action's image seems to already contain a Rust 1.58.0.
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
# Check that we don't have linting errors in release mode, too
- run: cargo clippy --all-targets --all-features
working-directory: yjit
make:
strategy:
fail-fast: false
matrix:
include:
- test_task: "yjit-bindgen"
hint: "To fix: use patch in logs"
configure: "--with-gcc=clang-12 --enable-yjit=dev"
# jobs:
# cargo:
# name: Rust cargo test
# # GitHub Action's image seems to already contain a Rust 1.58.0.
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
# # For now we can't run cargo test --offline because it complains about the
# # capstone dependency, even though the dependency is optional
# #- run: cargo test --offline
# - run: RUST_BACKTRACE=1 cargo test
# working-directory: yjit
# # Also compile and test with all features enabled
# - run: RUST_BACKTRACE=1 cargo test --all-features
# working-directory: yjit
# # Check that we can build in release mode too
# - run: cargo build --release
# working-directory: yjit
# lint:
# name: Rust lint
# # GitHub Action's image seems to already contain a Rust 1.58.0.
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
# # Check that we don't have linting errors in release mode, too
# - run: cargo clippy --all-targets --all-features
# working-directory: yjit
# make:
# strategy:
# fail-fast: false
# matrix:
# include:
# - test_task: "yjit-bindgen"
# hint: "To fix: use patch in logs"
# configure: "--with-gcc=clang-12 --enable-yjit=dev"

- test_task: "check"
# YJIT should be automatically built in release mode on x86-64 Linux with rustc present
#configure: "--enable-yjit RUSTC='rustc +1.58.0'"
configure: "RUSTC='rustc +1.58.0'"
rust_version: "1.58.0"
# - test_task: "check"
# # YJIT should be automatically built in release mode on x86-64 Linux with rustc present
# #configure: "--enable-yjit RUSTC='rustc +1.58.0'"
# configure: "RUSTC='rustc +1.58.0'"
# rust_version: "1.58.0"

- test_task: "check"
configure: "--enable-yjit=dev"
# - test_task: "check"
# configure: "--enable-yjit=dev"

- test_task: "check"
configure: "--enable-yjit=dev"
yjit_opts: "--yjit-call-threshold=1 --yjit-verify-ctx"
# - test_task: "check"
# configure: "--enable-yjit=dev"
# yjit_opts: "--yjit-call-threshold=1 --yjit-verify-ctx"

- test_task: "test-all TESTS=--repeat-count=2"
configure: "--enable-yjit=dev"
# - test_task: "test-all TESTS=--repeat-count=2"
# configure: "--enable-yjit=dev"

- test_task: "test-bundled-gems"
configure: "--enable-yjit=dev"
# - test_task: "test-bundled-gems"
# configure: "--enable-yjit=dev"

- test_task: "yjit-bench"
configure: "--enable-yjit=dev"
yjit_bench_opts: "--yjit-stats"
env:
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
RUN_OPTS: ${{ matrix.yjit_opts }}
YJIT_BENCH_OPTS: ${{ matrix.yjit_bench_opts }}
RUBY_DEBUG: ci
BUNDLE_JOBS: 8 # for yjit-bench
RUST_BACKTRACE: 1
runs-on: ubuntu-20.04
if: ${{ !contains(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
steps:
- run: mkdir build
working-directory:
- name: Install libraries
run: |
set -x
sudo apt-get update -q || :
sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev autoconf ruby
- name: Install Rust
if: ${{ matrix.rust_version }}
run: rustup install ${{ matrix.rust_version }} --profile minimal
- name: git config
run: |
git config --global advice.detachedHead 0
git config --global init.defaultBranch garbage
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
path: src
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
path: src/.downloaded-cache
key: downloaded-cache
- name: Fixed world writable dirs
run: |
chmod -v go-w $HOME $HOME/.config
sudo chmod -R go-w /usr/share
sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
- name: Set ENV
run: |
echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
- run: ./autogen.sh
working-directory: src
- name: Run configure
run: ../src/configure -C --disable-install-doc --prefix=$(pwd)/install ${{ matrix.configure }}
- run: make incs
- run: make prepare-gems
if: ${{ matrix.test_task == 'test-bundled-gems' }}
- run: make -j
- name: Create dummy files in build dir
run: |
./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
if: ${{ matrix.test_task == 'check' }}
- name: Enable YJIT through ENV
run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
# Check that the binary was built with YJIT
- name: Check YJIT enabled
run: ./miniruby --yjit -v | grep "+YJIT"
- name: make ${{ matrix.test_task }}
run: make -s -j ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS" YJIT_BENCH_OPTS="$YJIT_BENCH_OPTS"
timeout-minutes: 60
env:
RUBY_TESTOPTS: "-q --tty=no"
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
PRECHECK_BUNDLED_GEMS: "no"
SYNTAX_SUGGEST_TIMEOUT: "5"
continue-on-error: ${{ matrix.test_task == 'yjit-bench' }}
- name: Show ${{ github.event.pull_request.base.ref }} GitHub URL for yjit-bench comparison
run: echo "https://github.com/${BASE_REPO}/commit/${BASE_SHA}"
env:
BASE_REPO: ${{ github.event.pull_request.base.repo.full_name }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
if: ${{ matrix.test_task == 'yjit-bench' && startsWith(github.event_name, 'pull') }}
- uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1
with:
payload: |
{
"ci": "GitHub Actions",
"env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.configure }}",
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"commit": "${{ github.sha }}",
"branch": "${{ github.ref_name }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
if: ${{ failure() && github.event_name == 'push' }}
# - test_task: "yjit-bench"
# configure: "--enable-yjit=dev"
# yjit_bench_opts: "--yjit-stats"
# env:
# GITPULLOPTIONS: --no-tags origin ${{github.ref}}
# RUN_OPTS: ${{ matrix.yjit_opts }}
# YJIT_BENCH_OPTS: ${{ matrix.yjit_bench_opts }}
# RUBY_DEBUG: ci
# BUNDLE_JOBS: 8 # for yjit-bench
# RUST_BACKTRACE: 1
# runs-on: ubuntu-20.04
# if: ${{ !contains(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
# steps:
# - run: mkdir build
# working-directory:
# - name: Install libraries
# run: |
# set -x
# sudo apt-get update -q || :
# sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev autoconf ruby
# - name: Install Rust
# if: ${{ matrix.rust_version }}
# run: rustup install ${{ matrix.rust_version }} --profile minimal
# - name: git config
# run: |
# git config --global advice.detachedHead 0
# git config --global init.defaultBranch garbage
# - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
# with:
# path: src
# - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
# with:
# path: src/.downloaded-cache
# key: downloaded-cache
# - name: Fixed world writable dirs
# run: |
# chmod -v go-w $HOME $HOME/.config
# sudo chmod -R go-w /usr/share
# sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
# - name: Set ENV
# run: |
# echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
# - run: ./autogen.sh
# working-directory: src
# - name: Run configure
# run: ../src/configure -C --disable-install-doc --prefix=$(pwd)/install ${{ matrix.configure }}
# - run: make incs
# - run: make prepare-gems
# if: ${{ matrix.test_task == 'test-bundled-gems' }}
# - run: make -j
# - name: Create dummy files in build dir
# run: |
# ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
# if: ${{ matrix.test_task == 'check' }}
# - name: Enable YJIT through ENV
# run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
# # Check that the binary was built with YJIT
# - name: Check YJIT enabled
# run: ./miniruby --yjit -v | grep "+YJIT"
# - name: make ${{ matrix.test_task }}
# run: make -s -j ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS" YJIT_BENCH_OPTS="$YJIT_BENCH_OPTS"
# timeout-minutes: 60
# env:
# RUBY_TESTOPTS: "-q --tty=no"
# TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
# PRECHECK_BUNDLED_GEMS: "no"
# SYNTAX_SUGGEST_TIMEOUT: "5"
# continue-on-error: ${{ matrix.test_task == 'yjit-bench' }}
# - name: Show ${{ github.event.pull_request.base.ref }} GitHub URL for yjit-bench comparison
# run: echo "https://github.com/${BASE_REPO}/commit/${BASE_SHA}"
# env:
# BASE_REPO: ${{ github.event.pull_request.base.repo.full_name }}
# BASE_SHA: ${{ github.event.pull_request.base.sha }}
# if: ${{ matrix.test_task == 'yjit-bench' && startsWith(github.event_name, 'pull') }}
# - uses: ruby/action-slack@0bd85c72233cdbb6a0fe01d37aaeff1d21b5fce1 # v3.2.1
# with:
# payload: |
# {
# "ci": "GitHub Actions",
# "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.configure }}",
# "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
# "commit": "${{ github.sha }}",
# "branch": "${{ github.ref_name }}"
# }
# env:
# SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
# if: ${{ failure() && github.event_name == 'push' }}

defaults:
run:
working-directory: build
# defaults:
# run:
# working-directory: build
7 changes: 0 additions & 7 deletions st2.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,10 @@ extern "C" {
#include <stddef.h>
#include <stdint.h>
#include "ruby/config.h"
#include "ruby/backward/2/long_long.h"

RUBY_SYMBOL_EXPORT_BEGIN

#if SIZEOF_LONG == SIZEOF_VOIDP
typedef unsigned long st2_data_t;
#elif SIZEOF_LONG_LONG == SIZEOF_VOIDP
typedef unsigned LONG_LONG st2_data_t;
#else
# error ---->> st2.c requires sizeof(void*) == sizeof(long) or sizeof(LONG_LONG) to be compiled. <<----
#endif
#define ST2_DATA_T_DEFINED

#ifndef CHAR_BIT
Expand Down

0 comments on commit 3996bf4

Please sign in to comment.