forked from vlang/v
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci: linux_ci.vsh; cgen: parallel-cc fixes
- Loading branch information
1 parent
a200c45
commit b3d2a3f
Showing
7 changed files
with
531 additions
and
233 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 |
---|---|---|
|
@@ -32,85 +32,53 @@ jobs: | |
- name: Build v | ||
run: make -j4 && ./v symlink | ||
- name: Build v with -prealloc | ||
run: | | ||
v -d debug_malloc -d debug_realloc -o v cmd/v | ||
v -cg -cstrict -o v cmd/v | ||
# Test v -realloc arena allocation | ||
v -o vrealloc -prealloc cmd/v && ./vrealloc -o v3 cmd/v && ./v3 -o v4 cmd/v | ||
run: v run ci/linux_ci.vsh build_v_with_prealloc | ||
- name: All code is formatted | ||
run: v test-cleancode | ||
run: v run ci/linux_ci.vsh all_code_is_formatted_tcc | ||
- name: Install dependencies for examples and tools | ||
run: | | ||
v retry -- sudo apt update | ||
v retry -- sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind | ||
v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libasound2-dev | ||
# The following is needed for examples/wkhtmltopdf.v | ||
v retry -- wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb | ||
v retry -- sudo apt install --quiet -y xfonts-75dpi xfonts-base | ||
v retry -- sudo apt install --quiet -y expect | ||
v retry -- sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb | ||
run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_tcc | ||
- name: Test v->c | ||
run: | | ||
thirdparty/tcc/tcc.exe -version | ||
v -cg -o v cmd/v # Make sure vtcc can build itself twice | ||
# v test-all | ||
run: v run ci/linux_ci.vsh test_v_to_c_tcc | ||
- name: v self compilation | ||
run: v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v | ||
run: v run ci/linux_ci.vsh v_self_compilation_tcc | ||
- name: v self compilation with -skip-unused | ||
run: v -skip-unused -o v2 cmd/v && ./v2 -skip-unused -o v3 cmd/v && ./v3 -skip-unused -o v4 cmd/v | ||
run: v run ci/linux_ci.vsh v_self_compilation_skip_unused_tcc | ||
- name: Test vlib modules with -skip-unused | ||
run: v -skip-unused test vlib/builtin/ vlib/math vlib/flag/ vlib/os/ vlib/strconv/ | ||
run: v run ci/linux_ci.vsh test_vlib_skip_unused_tcc | ||
- name: v doctor | ||
run: v doctor | ||
run: v run ci/linux_ci.vsh v_doctor_tcc | ||
- name: Verify `v test` works | ||
run: | | ||
echo $VFLAGS | ||
v cmd/tools/test_if_v_test_system_works.v | ||
./cmd/tools/test_if_v_test_system_works | ||
run: v run ci/linux_ci.vsh verify_v_test_works_tcc | ||
- name: Test pure V math module | ||
run: v -exclude @vlib/math/*.c.v test vlib/math/ | ||
run: v run ci/linux_ci.vsh test_pure_v_math_module_tcc | ||
- name: Self tests | ||
run: v test-self vlib | ||
# - name: Self tests (-cstrict) | ||
# run: V_CI_CSTRICT=1 v -cstrict test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_tcc | ||
- name: Build examples | ||
run: v -N -W build-examples | ||
run: v run ci/linux_ci.vsh build_examples_tcc | ||
- name: Run the submodule example, using a relative path | ||
run: v -W run examples/submodule | ||
run: v run ci/linux_ci.vsh run_submodule_example_tcc | ||
- name: Build v tools | ||
run: v -N -W build-tools | ||
run: v run ci/linux_ci.vsh build_tools_tcc | ||
- name: Build v binaries | ||
run: v -N -W build-vbinaries | ||
run: v run ci/linux_ci.vsh build_vbinaries_tcc | ||
- name: Build benches | ||
run: v should-compile-all vlib/v/tests/bench/ | ||
run: v run ci/linux_ci.vsh build_benches_tcc | ||
- name: Run a VSH script | ||
run: v run examples/v_script.vsh | ||
run: v run ci/linux_ci.vsh run_vsh_script_tcc | ||
- name: Test v tutorials | ||
run: v tutorials/building_a_simple_web_blog_with_vweb/code/blog | ||
run: v run ci/linux_ci.vsh test_v_tutorials_tcc | ||
- name: Build cmd/tools/fast | ||
run: cd cmd/tools/fast && v fast.v && ./fast | ||
run: v run ci/linux_ci.vsh build_fast_tcc | ||
- name: V self compilation with -usecache | ||
run: | | ||
unset VFLAGS | ||
v -usecache examples/hello_world.v && examples/hello_world | ||
v -o v2 -usecache cmd/v | ||
./v2 -o v3 -usecache cmd/v | ||
./v3 version | ||
./v3 -o tetris -usecache examples/tetris/tetris.v | ||
run: v run ci/linux_ci.vsh v_self_compilation_usecache_tcc | ||
- name: Test password input | ||
run: v test examples/password/ | ||
run: v run ci/linux_ci.vsh test_password_input_tcc | ||
- name: Test readline | ||
run: v test examples/readline/ | ||
run: v run ci/linux_ci.vsh test_readline_tcc | ||
- name: Test leak detector | ||
run: | | ||
v -gc boehm_leak -o testcase_leak vlib/v/tests/testcase_leak.vv | ||
./testcase_leak 2>leaks.txt | ||
grep "Found 1 leaked object" leaks.txt && grep -P ", sz=\s?1000," leaks.txt | ||
run: v run ci/linux_ci.vsh test_leak_detector_tcc | ||
- name: Test leak detector not being active for normal compile | ||
run: | | ||
v -o testcase_leak vlib/v/tests/testcase_leak.vv | ||
./testcase_leak 2>leaks.txt | ||
[ "$(stat -c %s leaks.txt)" = "0" ] | ||
run: v run ci/linux_ci.vsh test_leak_detector_not_active_tcc | ||
|
||
gcc: | ||
runs-on: ubuntu-20.04 | ||
|
@@ -120,107 +88,51 @@ jobs: | |
- name: Build V | ||
run: make -j4 && ./v symlink | ||
- name: All code is formatted | ||
run: v test-cleancode | ||
run: v run ci/linux_ci.vsh all_code_is_formatted_gcc | ||
- name: Install dependencies for examples and tools | ||
run: | | ||
v retry -- sudo apt update | ||
v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind | ||
v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libasound2-dev | ||
run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_gcc | ||
- name: Recompile V with -cstrict and gcc | ||
run: v -cc gcc -cg -cstrict -o v cmd/v | ||
run: v run ci/linux_ci.vsh recompile_v_with_cstrict_gcc | ||
- name: Valgrind v.c | ||
run: valgrind --error-exitcode=1 v -o v.c cmd/v | ||
run: v run ci/linux_ci.vsh valgrind_v_c_gcc | ||
- name: Run sanitizers | ||
run: | | ||
v -o v2 cmd/v -cflags -fsanitize=thread | ||
v -o v3 cmd/v -cflags "-fsanitize=undefined -fno-sanitize=alignment" | ||
UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v2 -o v.c cmd/v | ||
UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 ./v3 -o v.c cmd/v | ||
# - name: Test V | ||
# run: v test-all | ||
# - name: Test v binaries | ||
# run: v -N -W build-vbinaries | ||
# - name: Test v->js | ||
# run: v -o hi.js examples/js_hello_world.v && node hi.js | ||
# - name: Build Vorum | ||
# run: v retry -- git clone --depth 1 https://github.com/vlang/vorum && cd vorum && v . && cd .. | ||
- name: Freestanding | ||
run: v -freestanding run vlib/os/bare/bare_example_linux.v | ||
- name: V self compilation | ||
run: v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v | ||
- name: V self compilation with -usecache | ||
run: | | ||
unset VFLAGS | ||
v -usecache examples/hello_world.v && examples/hello_world | ||
v -o v2 -usecache cmd/v | ||
./v2 -o v3 -usecache cmd/v | ||
./v3 version | ||
./v3 -o tetris -usecache examples/tetris/tetris.v | ||
run: v run ci/linux_ci.vsh run_sanitizers_gcc | ||
- name: v self compilation | ||
run: v run ci/linux_ci.vsh v_self_compilation_gcc | ||
- name: v self compilation with -usecache | ||
run: v run ci/linux_ci.vsh v_self_compilation_usecache_gcc | ||
- name: Verify `v test` works | ||
run: | | ||
echo $VFLAGS | ||
v cmd/tools/test_if_v_test_system_works.v | ||
./cmd/tools/test_if_v_test_system_works | ||
run: v run ci/linux_ci.vsh verify_v_test_works_gcc | ||
- name: Test pure V math module | ||
run: v -exclude @vlib/math/*.c.v test vlib/math/ | ||
run: v run ci/linux_ci.vsh test_pure_v_math_module_gcc | ||
- name: Self tests | ||
run: v test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_gcc | ||
- name: Self tests (-prod) | ||
run: v -o vprod -prod cmd/v && ./vprod test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_prod_gcc | ||
- name: Self tests (-cstrict) | ||
run: VTEST_JUST_ESSENTIAL=1 V_CI_CSTRICT=1 v -cc gcc -cstrict test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_cstrict_gcc | ||
- name: Build examples | ||
run: v -N -W build-examples | ||
run: v run ci/linux_ci.vsh build_examples_gcc | ||
- name: Build tetris with -autofree | ||
run: v -autofree -o tetris examples/tetris/tetris.v | ||
run: v run ci/linux_ci.vsh build_tetris_autofree_gcc | ||
- name: Build blog tutorial with -autofree | ||
run: v -autofree -o blog tutorials/building_a_simple_web_blog_with_vweb/code/blog | ||
run: v run ci/linux_ci.vsh build_blog_autofree_gcc | ||
- name: Build option_test.c.v with -autofree | ||
run: v -autofree vlib/v/tests/options/option_test.c.v | ||
run: v run ci/linux_ci.vsh build_option_test_autofree_gcc | ||
- name: V self compilation with -parallel-cc | ||
run: | | ||
v -o v2 -parallel-cc cmd/v | ||
run: v run ci/linux_ci.vsh v_self_compilation_parallel_cc_gcc | ||
- name: Test vlib modules with -skip-unused | ||
run: v -skip-unused test vlib/builtin/ vlib/math vlib/flag/ vlib/os/ vlib/strconv/ | ||
run: v run ci/linux_ci.vsh test_vlib_skip_unused_gcc | ||
- name: Build modules | ||
run: | | ||
v build-module vlib/os | ||
v build-module vlib/builtin | ||
v build-module vlib/strconv | ||
v build-module vlib/time | ||
v build-module vlib/term | ||
v build-module vlib/math | ||
v build-module vlib/strings | ||
v build-module vlib/v/token | ||
v build-module vlib/v/ast | ||
v build-module vlib/v/parser | ||
v build-module vlib/v/gen/c | ||
v build-module vlib/v/depgraph | ||
v build-module vlib/os/cmdline | ||
run: v run ci/linux_ci.vsh build_modules_gcc | ||
- name: native machine code generation | ||
run: | | ||
v -o vprod -prod cmd/v | ||
cd cmd/tools | ||
echo "Generating a 1m line V file..." | ||
../../vprod gen1m.v | ||
./gen1m > 1m.v | ||
echo "Building it..." | ||
../../vprod -backend native -o 1m 1m.v | ||
echo "Running it..." | ||
./1m | ||
ls | ||
run: v run ci/linux_ci.vsh native_machine_code_generation_gcc | ||
- name: compile vdoctor.v with -skip-unused and -prod | ||
run: v -showcc -skip-unused -cc gcc -prod cmd/tools/vdoctor.v | ||
run: v run ci/linux_ci.vsh compile_vdoctor_skip_unused_prod_gcc | ||
- name: compile vup.v with -skip-unused and -prod | ||
run: v -showcc -skip-unused -cc gcc -prod cmd/tools/vup.v | ||
|
||
# - run: cd examples/native && v -native hello_world.v && ./hello_world | ||
# - name: Coveralls GitHub Action | ||
# uses: coverallsapp/[email protected] | ||
# with: | ||
# github-token: ${{ secrets.GITHUB_TOKEN }} | ||
run: v run ci/linux_ci.vsh compile_vup_skip_unused_prod_gcc | ||
- name: Test vlib modules with -skip-unused | ||
run: v -skip-unused test vlib/builtin/ vlib/math vlib/flag/ vlib/os/ vlib/strconv/ | ||
run: v run ci/linux_ci.vsh test_vlib_skip_unused_gcc | ||
|
||
clang: | ||
runs-on: ubuntu-20.04 | ||
|
@@ -232,112 +144,37 @@ jobs: | |
- name: Build V | ||
run: make -j4 && ./v symlink | ||
- name: All code is formatted | ||
run: v test-cleancode | ||
run: v run ci/linux_ci.vsh all_code_is_formatted_clang | ||
- name: Install dependencies for examples and tools | ||
run: | | ||
v retry -- sudo apt update | ||
v retry -- sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind | ||
v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev libasound2-dev | ||
v retry -- sudo apt install --quiet -y clang | ||
run: v run ci/linux_ci.vsh install_dependencies_for_examples_and_tools_clang | ||
- name: Recompile V with -cstrict and clang | ||
run: v -cc clang -cg -cstrict -o v cmd/v | ||
run: v run ci/linux_ci.vsh recompile_v_with_cstrict_clang | ||
- name: Valgrind | ||
run: valgrind --error-exitcode=1 v -o v.c cmd/v | ||
run: v run ci/linux_ci.vsh valgrind_clang | ||
- name: Run sanitizers | ||
run: .github/workflows/run_sanitizers.sh | ||
run: v run ci/linux_ci.vsh run_sanitizers_clang | ||
- name: v self compilation | ||
run: v -o v2 cmd/v && ./v2 -o v3 cmd/v && ./v3 -o v4 cmd/v | ||
run: v run ci/linux_ci.vsh v_self_compilation_clang | ||
- name: v self compilation with -usecache | ||
run: | | ||
unset VFLAGS | ||
v -usecache examples/hello_world.v && examples/hello_world | ||
v -o v2 -usecache cmd/v | ||
./v2 -o v3 -usecache cmd/v | ||
./v3 version | ||
./v3 -o tetris -usecache examples/tetris/tetris.v | ||
run: v run ci/linux_ci.vsh v_self_compilation_usecache_clang | ||
- name: Verify `v test` works | ||
run: | | ||
echo $VFLAGS | ||
v cmd/tools/test_if_v_test_system_works.v | ||
./cmd/tools/test_if_v_test_system_works | ||
run: v run ci/linux_ci.vsh verify_v_test_works_clang | ||
- name: Test pure V math module | ||
run: v -exclude @vlib/math/*.c.v test vlib/math/ | ||
run: v run ci/linux_ci.vsh test_pure_v_math_module_clang | ||
- name: Self tests | ||
run: v test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_clang | ||
- name: Self tests (vprod) | ||
run: v -o vprod -prod cmd/v && ./vprod test-self vlib | ||
run: v run ci/linux_ci.vsh self_tests_vprod_clang | ||
- name: Self tests (-cstrict) | ||
run: VTEST_JUST_ESSENTIAL=1 V_CI_CSTRICT=1 ./vprod -cstrict test-self vlib | ||
|
||
run: v run ci/linux_ci.vsh self_tests_cstrict_clang | ||
- name: Build examples | ||
run: v -N -W build-examples | ||
run: v run ci/linux_ci.vsh build_examples_clang | ||
- name: Build examples with -autofree | ||
run: | | ||
v -autofree -experimental -o tetris examples/tetris/tetris.v | ||
run: v run ci/linux_ci.vsh build_examples_autofree_clang | ||
- name: Test vlib modules with -skip-unused | ||
run: v -skip-unused test vlib/builtin/ vlib/math vlib/flag/ vlib/os/ vlib/strconv/ | ||
run: v run ci/linux_ci.vsh test_vlib_skip_unused_clang | ||
- name: Build modules | ||
run: | | ||
v build-module vlib/os | ||
v build-module vlib/builtin | ||
v build-module vlib/strconv | ||
v build-module vlib/time | ||
v build-module vlib/term | ||
v build-module vlib/math | ||
v build-module vlib/strings | ||
v build-module vlib/v/token | ||
v build-module vlib/v/ast | ||
v build-module vlib/v/parser | ||
v build-module vlib/v/gen/c | ||
v build-module vlib/v/depgraph | ||
v build-module vlib/os/cmdline | ||
run: v run ci/linux_ci.vsh build_modules_clang | ||
- name: native machine code generation | ||
run: | | ||
v -o vprod -prod cmd/v | ||
cd cmd/tools | ||
echo "Generating a 1m line V file..." | ||
../../vprod gen1m.v | ||
./gen1m > 1m.v | ||
echo "Building it..." | ||
../../vprod -backend native -o 1m 1m.v | ||
echo "Running it..." | ||
./1m | ||
ls | ||
# autofree-selfcompile: | ||
# runs-on: ubuntu-20.04 | ||
# if: github.event_name != 'push' || github.ref == 'refs/heads/master' || github.repository != 'vlang/v' | ||
# timeout-minutes: 121 | ||
# env: | ||
# VFLAGS: -cc gcc | ||
# steps: | ||
# - uses: actions/checkout@v4 | ||
# - name: Build V | ||
# run: make -j4 | ||
# - name: V self compilation with -autofree | ||
# run: v -o v2 -autofree cmd/v && ./v2 -o v3 -autofree cmd/v && ./v3 -o v4 -autofree cmd/v | ||
run: v run ci/linux_ci.vsh native_machine_code_generation_clang | ||
|
||
# musl: | ||
# runs-on: ubuntu-20.04 | ||
# if: github.event_name != 'push' || github.ref == 'refs/heads/master' || github.repository != 'vlang/v' | ||
# timeout-minutes: 121 | ||
# env: | ||
# VFLAGS: -cc musl-gcc | ||
# V_CI_MUSL: 1 | ||
# steps: | ||
# - name: Build v | ||
# run: echo $VFLAGS && make -j4 && ./v symlink | ||
# - uses: actions/checkout@v4 | ||
# - name: Install dependencies for examples and tools | ||
# run: v retry -- sudo apt install --quiet -y musl musl-tools libssl-dev sqlite3 libsqlite3-dev valgrind | ||
# - name: Recompile V with -cg | ||
# run: v -cg -o v cmd/v | ||
# # - name: Test v binaries | ||
# # run: v -N -W build-vbinaries | ||
# # - name: Test v->js | ||
# # run: v -o hi.js examples/js_hello_world.v && node hi.js | ||
# - name: quick debug | ||
# run: v -stats vlib/strconv/format_test.v | ||
# - name: Self tests | ||
# run: v test-self vlib |
Oops, something went wrong.