diff --git a/.github/workflows/build_vinix_locally.sh b/.github/workflows/build_vinix_locally.sh index 09613ceac4..29e118e605 100755 --- a/.github/workflows/build_vinix_locally.sh +++ b/.github/workflows/build_vinix_locally.sh @@ -21,11 +21,11 @@ mkdir -p $BUILD cd $BUILD echo "Clone current Vinix" -.github/workflows/retry.sh git clone https://github.com/vlang/vinix.git --depth=1 +./v retry -- git clone https://github.com/vlang/vinix.git --depth=1 cd $BUILD echo "Clone current mlibc" -.github/workflows/retry.sh git clone https://github.com/managarm/mlibc.git --depth=1 +./v retry -- git clone https://github.com/managarm/mlibc.git --depth=1 cd $BUILD echo "Patch mlibc for Vinix" diff --git a/.github/workflows/c2v_ci.yml b/.github/workflows/c2v_ci.yml index 56a0d609f5..df21a68ab3 100644 --- a/.github/workflows/c2v_ci.yml +++ b/.github/workflows/c2v_ci.yml @@ -37,22 +37,22 @@ jobs: steps: - uses: actions/checkout@v4 - name: Build V - run: make && ./v symlink -githubci + run: make -j4 && ./v symlink -githubci - name: Install C2V run: | - .github/workflows/retry.sh v install --git https://github.com/vlang/c2v + v retry -- v install --git https://github.com/vlang/c2v v -g ~/.vmodules/c2v/ || true - name: Install dependencies run: | if [ "${{ runner.os }}" == "Linux" ]; then - .github/workflows/retry.sh sudo apt update -y -qq - .github/workflows/retry.sh sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev + v retry -- sudo apt update -y -qq + v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev else - .github/workflows/retry.sh brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate + v retry -- brew install sdl2 sdl2_mixer sdl2_net libpng libsamplerate fi - name: Build original Chocolate Doom run: | - .github/workflows/retry.sh git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom + v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom cd ~/code/doom/chocolate-doom cmake -DCMAKE_BUILD_TYPE=Debug . make chocolate-doom @@ -72,15 +72,15 @@ jobs: steps: - uses: actions/checkout@v4 - name: Build V - run: make && ./v symlink -githubci + run: make -j4 && ./v symlink -githubci - name: Install C2V run: | - .github/workflows/retry.sh v install --git https://github.com/vlang/c2v + v retry -- v install --git https://github.com/vlang/c2v v -g ~/.vmodules/c2v/ || true - name: Install dependencies run: | - .github/workflows/retry.sh sudo apt update -y -qq - .github/workflows/retry.sh sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev + v retry -- sudo apt update -y -qq + v retry -- sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libpng-dev libsamplerate0-dev # c2v / DOOM dependencies # vgret dependencies # imagemagick : convert, mogrify, import @@ -88,19 +88,19 @@ jobs: # openimageio-tools : idiff # libgl1-mesa-dri : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true) # freeglut3-dev : Fixes graphic apps compilation with tcc - .github/workflows/retry.sh sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip + v retry -- sudo apt install imagemagick openimageio-tools freeglut3-dev libgl1-mesa-dri xvfb xsel xclip - name: Setup test tools run: | # Fetch the free ~4MB DOOM1.WAD from the link at https://doomwiki.org/wiki/DOOM1.WAD - .github/workflows/retry.sh wget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O ~/doom1.wad + v retry -- wget https://distro.ibiblio.org/slitaz/sources/packages/d/doom1.wad -O ~/doom1.wad # Get imgur upload script - .github/workflows/retry.sh wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh + v retry -- wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh chmod +x ./imgur.sh # Get regression images to test against - .github/workflows/retry.sh git clone https://github.com/Larpon/doom-regression-images + v retry -- git clone https://github.com/Larpon/doom-regression-images - name: Build original Chocolate Doom run: | - .github/workflows/retry.sh git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom + v retry -- git clone --quiet --depth 1 https://github.com/vlang/doom ~/code/doom cd ~/code/doom/chocolate-doom cmake -DCMAKE_BUILD_TYPE=Debug . make chocolate-doom diff --git a/.github/workflows/cross_ci.yml b/.github/workflows/cross_ci.yml index e5f6647cd1..5d7bba02a4 100644 --- a/.github/workflows/cross_ci.yml +++ b/.github/workflows/cross_ci.yml @@ -30,15 +30,14 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 10 + - name: Build V + run: make -j4 && ./v symlink -githubci - name: Install dependencies run: | - .github/workflows/retry.sh brew install mingw-w64 + ./v retry -- brew install mingw-w64 export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/" - - name: Build V - run: make - - name: Test symlink run: ./v symlink @@ -61,20 +60,20 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 10 + - name: Build v + run: make -j4 && ./v symlink -githubci + - name: Install dependencies run: | ## sudo dpkg --add-architecture i386 - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev - .github/workflows/retry.sh sudo apt install --quiet -y mingw-w64 wine-stable winetricks - ## .github/workflows/retry.sh sudo apt install --quiet -y wine32 + ./v retry -- sudo apt update + ./v retry -- sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev + ./v retry -- sudo apt install --quiet -y mingw-w64 wine-stable winetricks + ## ./v retry -- sudo apt install --quiet -y wine32 - name: Turn off the wine crash dialog run: winetricks nocrashdialog - - name: Build v - run: make - - name: v.c can be compiled and run with -os cross run: | ./v -os cross -o /tmp/v.c cmd/v diff --git a/.github/workflows/download_full_toml_test_suites.sh b/.github/workflows/download_full_toml_test_suites.sh index f002c3beb1..4f0497483d 100755 --- a/.github/workflows/download_full_toml_test_suites.sh +++ b/.github/workflows/download_full_toml_test_suites.sh @@ -4,13 +4,13 @@ set -ex rm -rf vlib/toml/tests/testdata/burntsushi vlib/toml/tests/testdata/iarna vlib/toml/tests/testdata/alexcrichton vlib/toml/tests/testdata/large_toml_file_test.toml -.github/workflows/retry.sh wget https://gist.githubusercontent.com/Larpon/89b0e3d94c6903851ff15559e5df7a05/raw/62a1f87a4e37bf157f2e0bfb32d85d840c98e422/large_toml_file_test.toml -O vlib/toml/tests/testdata/large_toml_file_test.toml +./v retry -- wget https://gist.githubusercontent.com/Larpon/89b0e3d94c6903851ff15559e5df7a05/raw/62a1f87a4e37bf157f2e0bfb32d85d840c98e422/large_toml_file_test.toml -O vlib/toml/tests/testdata/large_toml_file_test.toml -.github/workflows/retry.sh git clone -n https://github.com/iarna/toml-spec-tests.git vlib/toml/tests/testdata/iarna +./v retry -- git clone -n https://github.com/iarna/toml-spec-tests.git vlib/toml/tests/testdata/iarna git -C vlib/toml/tests/testdata/iarna checkout 1880b1a -.github/workflows/retry.sh git clone -n https://github.com/toml-lang/toml-test.git vlib/toml/tests/testdata/burntsushi +./v retry -- git clone -n https://github.com/toml-lang/toml-test.git vlib/toml/tests/testdata/burntsushi git -C vlib/toml/tests/testdata/burntsushi checkout f30c716 -.github/workflows/retry.sh git clone -n https://github.com/toml-rs/toml.git vlib/toml/tests/testdata/alexcrichton +./v retry -- git clone -n https://github.com/toml-rs/toml.git vlib/toml/tests/testdata/alexcrichton git -C vlib/toml/tests/testdata/alexcrichton reset --hard 499e8c4 diff --git a/.github/workflows/gg_regressions_ci.yml b/.github/workflows/gg_regressions_ci.yml index e992818e95..fd6e6bd8d1 100644 --- a/.github/workflows/gg_regressions_ci.yml +++ b/.github/workflows/gg_regressions_ci.yml @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@v4 - name: Build local v - run: make + run: make -j4 && ./v symlink -githubci - name: Setup dependencies run: | @@ -44,10 +44,10 @@ jobs: # libxcursor-dev libxi-dev : V gfx deps # libgl1-mesa-dri : For headless rendering / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true) # freeglut3-dev : Fixes graphic apps compilation with tcc - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install imagemagick openimageio-tools libgl1-mesa-dri xvfb libxcursor-dev libxi-dev freeglut3-dev xsel xclip - .github/workflows/retry.sh wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh - .github/workflows/retry.sh git clone https://github.com/Larpon/gg-regression-images gg-regression-images + ./v retry -- sudo apt update + ./v retry -- sudo apt install imagemagick openimageio-tools libgl1-mesa-dri xvfb libxcursor-dev libxi-dev freeglut3-dev xsel xclip + ./v retry -- wget https://raw.githubusercontent.com/tremby/imgur.sh/c98345d/imgur.sh + ./v retry -- git clone https://github.com/Larpon/gg-regression-images gg-regression-images chmod +x ./imgur.sh - name: Sample and compare diff --git a/.github/workflows/linux_ci.yml b/.github/workflows/linux_ci.yml index acd90eb2ab..d64097d447 100644 --- a/.github/workflows/linux_ci.yml +++ b/.github/workflows/linux_ci.yml @@ -28,25 +28,26 @@ jobs: VFLAGS: -cc tcc -no-retry-compilation steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - # The following is needed for examples/wkhtmltopdf.v - .github/workflows/retry.sh wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb - .github/workflows/retry.sh sudo apt install --quiet -y xfonts-75dpi xfonts-base - .github/workflows/retry.sh sudo apt install --quiet -y expect - .github/workflows/retry.sh sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb - name: Build v run: | echo $VFLAGS - make - ./v test-cleancode + make -j4 && ./v symlink -githubci ./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 + - name: All code is formatted + run: ./v test-cleancode + - 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 + # 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 - name: Test v->c run: | thirdparty/tcc/tcc.exe -version @@ -63,8 +64,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -115,13 +114,17 @@ jobs: timeout-minutes: 121 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - name: Build V - run: make -j4 && ./v -cc gcc -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci + - name: All code is formatted + run: ./v test-cleancode + - 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 + - name: Recompile V with -cstrict and gcc + run: v -cc gcc -cg -cstrict -o v cmd/v - name: Valgrind v.c run: valgrind --error-exitcode=1 ./v -o v.c cmd/v - name: Run sanitizers @@ -137,7 +140,7 @@ jobs: # - name: Test v->js # run: ./v -o hi.js examples/hello_v_js.v && node hi.js # - name: Build Vorum - # run: .github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd .. + # 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 @@ -155,8 +158,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -221,14 +222,18 @@ jobs: VFLAGS: -cc clang steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - .github/workflows/retry.sh sudo apt install --quiet -y clang - name: Build V - run: make -j4 && ./v -cc clang -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci + - name: All code is formatted + run: ./v test-cleancode + - 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 + ./v retry -- sudo apt install --quiet -y clang + - name: Recompile V with -cstrict and clang + run: v -cc clang -cg -cstrict -o v cmd/v - name: Valgrind run: valgrind --error-exitcode=1 ./v -o v.c cmd/v - name: Run sanitizers @@ -256,8 +261,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ @@ -322,12 +325,13 @@ jobs: # VFLAGS: -cc musl-gcc # V_CI_MUSL: 1 # steps: - # - uses: actions/checkout@v4 - # - name: Install dependencies - # run: | - # .github/workflows/retry.sh sudo apt install --quiet -y musl musl-tools libssl-dev sqlite3 libsqlite3-dev valgrind # - name: Build v - # run: echo $VFLAGS && make -j4 && ./v -cg -o v cmd/v + # run: echo $VFLAGS && make -j4 && ./v symlink -githubci + # - 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 diff --git a/.github/workflows/macos_ci.yml b/.github/workflows/macos_ci.yml index 586bb1a12c..836ec2fd88 100644 --- a/.github/workflows/macos_ci.yml +++ b/.github/workflows/macos_ci.yml @@ -33,14 +33,16 @@ jobs: PKG_CONFIG_PATH: /usr/local/opt/pkgconfig:/usr/local/opt/libpq/lib/pkgconfig:/usr/local/opt/openssl@3/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/opt/homebrew/opt/libpq/lib/pkgconfig:/opt/homebrew/opt/openssl@3/lib/pkgconfig steps: - uses: actions/checkout@v4 + - name: Build V + run: make -j4 && ./v symlink -githubci && ./v -cg -cstrict -o v cmd/v + - name: All code is formatted + run: VJOBS=1 ./v test-cleancode - name: Install dependencies run: | echo "PKG_CONFIG_PATH is '$PKG_CONFIG_PATH'" - .github/workflows/retry.sh brew install libpq openssl mercurial + ./v retry -- brew install libpq openssl mercurial export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/" echo "LIBRARY_PATH is '$LIBRARY_PATH'" - - name: Build V - run: make -j4 && ./v -cg -cstrict -o v cmd/v - name: Run sanitizers run: | ./v -o v2 cmd/v -cflags -fsanitize=undefined @@ -66,8 +68,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: VJOBS=1 ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -86,14 +86,14 @@ jobs: ./v doctor - name: Test ved run: | - .github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/ved + ./v retry -- git clone --depth 1 https://github.com/vlang/ved cd ved && ../v -o ved . ../v -autofree . ../v -prod . cd .. - name: Build V UI examples run: | - .github/workflows/retry.sh git clone --depth 1 https://github.com/vlang/ui + ./v retry -- git clone --depth 1 https://github.com/vlang/ui cd ui mkdir -p ~/.vmodules ln -s $(pwd) ~/.vmodules/ui diff --git a/.github/workflows/native_backend_ci.yml b/.github/workflows/native_backend_ci.yml index 6cb71f71ca..bda1da8945 100644 --- a/.github/workflows/native_backend_ci.yml +++ b/.github/workflows/native_backend_ci.yml @@ -56,15 +56,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - - name: Install linker - if: runner.os == 'Linux' - run: .github/workflows/retry.sh sudo apt -qq install binutils - name: Build V if: runner.os != 'Windows' run: make -j4 && ./v symlink -githubci - name: Build V (Windows) if: runner.os == 'Windows' run: ./make.bat && ./v symlink -githubci + - name: Install linker + if: runner.os == 'Linux' + run: v retry -- sudo apt -qq install binutils - name: Run the native backend tests serially with more details run: | v vlib/v/gen/native/macho_test.v diff --git a/.github/workflows/other_ci.yml b/.github/workflows/other_ci.yml index aaf8a8f73f..9f457ab742 100644 --- a/.github/workflows/other_ci.yml +++ b/.github/workflows/other_ci.yml @@ -54,7 +54,7 @@ jobs: - name: Environment info run: echo $VFLAGS $GITHUB_SHA $GITHUB_REF - name: Build local v - run: make -j4 + run: make -j4 && ./v symlink -githubci - name: v test-cleancode run: ./v test-cleancode - name: v test-fmt @@ -70,10 +70,10 @@ jobs: - name: Environment info run: echo $VFLAGS $GITHUB_SHA $GITHUB_REF - name: Build local v - run: make -j4 + run: make -j4 && ./v symlink -githubci - name: Clone & Build previous vmaster/v run: | - .github/workflows/retry.sh git clone --depth=1 https://github.com/vlang/v vmaster/ + ./v retry -- git clone --depth=1 https://github.com/vlang/v vmaster/ (cd vmaster; make -j4) - name: V versions run: ./v version && ./vmaster/v version @@ -93,16 +93,15 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 10 + - name: Build v + run: make -j4 && ./v symlink -githubci - name: Install dependencies run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev postgresql libpq-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev xfonts-75dpi xfonts-base - .github/workflows/retry.sh sudo apt install --quiet -y g++-9 g++-11 - - - name: Build v - run: make + ./v retry -- sudo apt update + ./v retry -- sudo apt install --quiet -y libsodium-dev libssl-dev sqlite3 libsqlite3-dev postgresql libpq-dev valgrind + ./v retry -- sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev xfonts-75dpi xfonts-base + ./v retry -- sudo apt install --quiet -y g++-9 g++-11 - name: g++-9 version run: g++-9 --version @@ -128,12 +127,12 @@ jobs: timeout-minutes: 121 steps: - uses: actions/checkout@v4 - - name: Install zzuf - run: .github/workflows/retry.sh sudo apt install -qq zzuf - name: Build local v run: | - make -j4 + make -j4 && ./v symlink -githubci ./v -g -d trace_parse_stmt cmd/tools/vtest-parser.v + - name: Install zzuf + run: ./v retry -- sudo apt install -qq zzuf - name: Run test-parser run: | ./v test-parser --show_source --linear examples/hello_world.v diff --git a/.github/workflows/sanitized_ci.yml b/.github/workflows/sanitized_ci.yml index 890e5b473a..00e81f4d6d 100644 --- a/.github/workflows/sanitized_ci.yml +++ b/.github/workflows/sanitized_ci.yml @@ -81,16 +81,18 @@ jobs: VTEST_SHOW_START: 1 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - .github/workflows/retry.sh sudo apt install clang - name: Build V - run: make && ./v -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci - name: Ensure code is well formatted run: ./v test-cleancode + - name: Install dependencies + 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 + ./v retry -- sudo apt install clang + - name: Recompile V with -cstrict + run: ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=undefined) run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self vlib - name: Build examples (V compiled with -fsanitize=undefined) @@ -105,15 +107,17 @@ jobs: VTEST_SHOW_START: 1 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - name: Build V - run: make && ./v -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci - name: Ensure code is well formatted run: ./v test-cleancode + - name: Install dependencies + 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 + - name: Recompile V with -cstrict + run: ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=undefined) run: ./v -cflags "-fsanitize=undefined" -o v2 cmd/v && ./v2 -cflags -fsanitize=undefined test-self vlib - name: Build examples (V compiled with -fsanitize=undefined) @@ -128,16 +132,18 @@ jobs: VTEST_SHOW_START: 1 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - .github/workflows/retry.sh sudo apt install clang - name: Build V - run: make && ./v -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci - name: Ensure code is well formatted run: ./v test-cleancode + - name: Install dependencies + 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 + ./v retry -- sudo apt install clang + - name: Recompile V with -cstrict + run: ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=address) run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags "-fsanitize=address,pointer-compare,pointer-subtract" test-self vlib - name: Self tests (V compiled with -fsanitize=address) @@ -164,12 +170,12 @@ jobs: .\v.exe self - name: Ensure code is well formatted run: .\v.exe test-cleancode - # - name: Install dependencies - # run: | - # .\v.exe setup-freetype - # .\.github\workflows\windows-install-sqlite.bat - # - name: Self tests (/fsanitize=address) # TODO: - # run: .\v.exe -cflags "/fsanitize=address" test-self vlib + # - name: Install dependencies + # run: | + # .\v.exe setup-freetype + # .\.github\workflows\windows-install-sqlite.bat + # - name: Self tests (/fsanitize=address) # TODO: + # run: .\v.exe -cflags "/fsanitize=address" test-self vlib tests-sanitize-address-gcc: runs-on: ubuntu-20.04 @@ -180,16 +186,18 @@ jobs: VTEST_SHOW_START: 1 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - .github/workflows/retry.sh sudo apt install clang - name: Build V - run: make && ./v -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci - name: Ensure code is well formatted run: ./v test-cleancode + - name: Install dependencies + 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 + ./v retry -- sudo apt install clang + - name: Recompile V with -cstrict + run: ./v -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=address) run: ASAN_OPTIONS=detect_leaks=0 ./v -cflags -fsanitize=address test-self vlib - name: Self tests (V compiled with -fsanitize=address) @@ -208,16 +216,18 @@ jobs: VTEST_SHOW_START: 1 steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y postgresql libpq-dev libssl-dev sqlite3 libsqlite3-dev valgrind - .github/workflows/retry.sh sudo apt install --quiet -y libfreetype6-dev libxi-dev libxcursor-dev libgl-dev - .github/workflows/retry.sh sudo apt install clang - name: Build V - run: make && ./v -cc clang -cg -cstrict -o v cmd/v + run: make -j4 && ./v symlink -githubci - name: Ensure code is well formatted run: ./v test-cleancode + - name: Install dependencies + 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 + ./v retry -- sudo apt install clang + - name: Recompile V with clang and -cstrict + run: ./v -cc clang -cg -cstrict -o v cmd/v - name: Self tests (-fsanitize=memory) run: ./v -cflags -fsanitize=memory test-self vlib - name: Self tests (V compiled with -fsanitize=memory) diff --git a/.github/workflows/toml_ci.yml b/.github/workflows/toml_ci.yml index e28bda95b8..675ac65ae3 100644 --- a/.github/workflows/toml_ci.yml +++ b/.github/workflows/toml_ci.yml @@ -22,12 +22,12 @@ jobs: timeout-minutes: 30 steps: - uses: actions/checkout@v4 + - name: Build V + run: make -j4 && ./v symlink -githubci - name: Install dependencies run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install --quiet -y jq libgc-dev - - name: Build V - run: make + v retry -- sudo apt update + v retry -- sudo apt install --quiet -y jq libgc-dev - name: Show JQ Version run: jq --version diff --git a/.github/workflows/vab_ci.yml b/.github/workflows/vab_ci.yml index 6397d306e6..c4488d0aa3 100644 --- a/.github/workflows/vab_ci.yml +++ b/.github/workflows/vab_ci.yml @@ -35,11 +35,11 @@ jobs: - uses: actions/checkout@v4 - name: Build V - run: make && sudo ./v symlink + run: make -j4 && ./v symlink -githubci - name: Install vab run: | - .github/workflows/retry.sh v install vab + v retry -- v install vab v -g ~/.vmodules/vab sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab @@ -70,11 +70,11 @@ jobs: steps: - uses: actions/checkout@v4 - name: Build V - run: make && sudo ./v symlink + run: make -j4 && ./v symlink -githubci - name: Install vab run: | - .github/workflows/retry.sh v install vab + v retry -- v install vab v -g ~/.vmodules/vab sudo ln -s ~/.vmodules/vab/vab /usr/local/bin/vab diff --git a/.github/workflows/vinix_ci.yml b/.github/workflows/vinix_ci.yml index 661eed6488..25adea072d 100644 --- a/.github/workflows/vinix_ci.yml +++ b/.github/workflows/vinix_ci.yml @@ -23,17 +23,16 @@ jobs: timeout-minutes: 10 steps: - uses: actions/checkout@v4 + - name: Build V + run: make -j4 && ./v symlink -githubci - name: Install dependencies run: | - .github/workflows/retry.sh sudo apt update - .github/workflows/retry.sh sudo apt install build-essential meson -y - - - name: Build V - run: make && ./v symlink -githubci + ./v retry -- sudo apt update + ./v retry -- sudo apt install build-essential meson -y - name: Clone current Vinix - run: .github/workflows/retry.sh git clone https://github.com/vlang/vinix.git + run: ./v retry -- git clone https://github.com/vlang/vinix.git - name: Download Vinix kernel dependencies run: cd vinix/kernel && ./get-deps diff --git a/.github/workflows/websockets_ci.yml b/.github/workflows/websockets_ci.yml index c1a683af7b..fd692ae6c9 100644 --- a/.github/workflows/websockets_ci.yml +++ b/.github/workflows/websockets_ci.yml @@ -28,14 +28,14 @@ jobs: VFLAGS: -cc tcc -no-retry-compilation steps: - uses: actions/checkout@v4 - - name: Install dependencies - run: .github/workflows/retry.sh sudo apt install --quiet -y libssl-dev - name: Build v run: | echo $VFLAGS sudo ln -s $PWD/thirdparty/tcc/tcc.exe /usr/local/bin/tcc ## TODO: remove - make -j4 + make -j4 && ./v symlink -githubci ./v -g -o v cmd/v + - name: Install dependencies + run: v retry -- sudo apt install --quiet -y libssl-dev - name: v doctor run: ./v doctor - name: Run websockets tests diff --git a/.github/workflows/windows_ci.yml b/.github/workflows/windows_ci.yml index ac2088f4d2..fb50a5f876 100644 --- a/.github/workflows/windows_ci.yml +++ b/.github/workflows/windows_ci.yml @@ -33,6 +33,8 @@ jobs: run: | gcc --version .\make.bat -gcc + - name: All code is formatted + run: ./v test-cleancode - name: Test new v.c run: | .\v.exe -o v.c cmd/v @@ -49,8 +51,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -86,6 +86,8 @@ jobs: echo $VFLAGS .\make.bat -msvc .\v.exe -cflags /WX self + - name: All code is formatted + run: ./v test-cleancode - name: Install dependencies run: | .\v.exe setup-freetype @@ -98,8 +100,6 @@ jobs: echo $VFLAGS ./v cmd/tools/test_if_v_test_system_works.v ./cmd/tools/test_if_v_test_system_works - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -130,6 +130,8 @@ jobs: - name: Build with make.bat -tcc run: | .\make.bat -tcc + - name: All code is formatted + run: ./v test-cleancode - name: Test new v.c run: | .\v.exe -o v.c cmd/v @@ -153,8 +155,6 @@ jobs: run: ./v doc -v clipboard - name: Test v build-tools run: ./v -W build-tools - - name: All code is formatted - run: ./v test-cleancode - name: Test pure V math module run: ./v -exclude @vlib/math/*.c.v test vlib/math/ - name: Self tests @@ -170,42 +170,42 @@ jobs: - name: v2 self compilation with -gc boehm run: .\v.exe -o v2.exe -gc boehm cmd/v && .\v2.exe -o v3.exe -gc boehm cmd/v && .\v3.exe -o v4.exe -gc boehm cmd/v - ## tcc32 - # - name: Build with make.bat -tcc32 - # run: | - # Remove-Item -Recurse -Force .\thirdparty\tcc - # .\v.exe wipe-cache - # .\make.bat -tcc32 - # - name: Test new v.c - # run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -g -w -ladvapi32 -lws2_32 -bt10 v.c - # - name: v doctor - # run: ./v doctor - # - # - name: Verify `v test` works - # run: | - # .\v.exe cmd/tools/test_if_v_test_system_works.v - # .\cmd\tools\test_if_v_test_system_works.exe - # - # - name: Verify `v vlib/v/gen/c/coutput_test.v` works - # run: | - # .\v.exe vlib/v/gen/c/coutput_test.v - # - # - name: Make sure running TCC32 instead of TCC64 - # run: ./v -stats .github\workflows\make_sure_ci_run_with_32bit_compiler_test.v - # - # - name: Test v build-tools - # run: ./v -W build-tools - # - # - name: Test ./v doc clipboard - # run: ./v doc clipboard - # - # - name: Self tests - # run: ./v test-self vlib - # - name: Test v->js - # run: ./v -o hi.js examples/hello_v_js.v && node hi.js - # - name: Test v binaries - # run: ./v build-vbinaries - # - name: Build examples - # run: ./v build-examples - # - name: v2 self compilation - # run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v + ## tcc32 + # - name: Build with make.bat -tcc32 + # run: | + # Remove-Item -Recurse -Force .\thirdparty\tcc + # .\v.exe wipe-cache + # .\make.bat -tcc32 + # - name: Test new v.c + # run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -g -w -ladvapi32 -lws2_32 -bt10 v.c + # - name: v doctor + # run: ./v doctor + # + # - name: Verify `v test` works + # run: | + # .\v.exe cmd/tools/test_if_v_test_system_works.v + # .\cmd\tools\test_if_v_test_system_works.exe + # + # - name: Verify `v vlib/v/gen/c/coutput_test.v` works + # run: | + # .\v.exe vlib/v/gen/c/coutput_test.v + # + # - name: Make sure running TCC32 instead of TCC64 + # run: ./v -stats .github\workflows\make_sure_ci_run_with_32bit_compiler_test.v + # + # - name: Test v build-tools + # run: ./v -W build-tools + # + # - name: Test ./v doc clipboard + # run: ./v doc clipboard + # + # - name: Self tests + # run: ./v test-self vlib + # - name: Test v->js + # run: ./v -o hi.js examples/hello_v_js.v && node hi.js + # - name: Test v binaries + # run: ./v build-vbinaries + # - name: Build examples + # run: ./v build-examples + # - name: v2 self compilation + # run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v