v.ast, v.checker: fix infinite loops and segfaults in generic instantiation and cyclic aliases #8790
This file contains hidden or 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
| name: CI OpenBSD | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| paths: | |
| - '**' | |
| - '!vlib/v3/**' | |
| - '!**.md' | |
| - '!**.yml' | |
| - '!cmd/tools/**' | |
| - '.github/workflows/openbsd_ci.yml' | |
| - 'ci/openbsd_ci.vsh' | |
| - 'cmd/tools/builders/**.v' | |
| - 'cmd/tools/vwatch_stdin_test.v' | |
| pull_request: | |
| paths: | |
| - 'cmd/v/**' | |
| - 'cmd/tools/builders/**.v' | |
| - 'cmd/tools/vwatch_stdin_test.v' | |
| # cmd/tools essentials synced with cmd/tools/vtest-self.v:essential_list | |
| - 'cmd/tools/vvet/**' | |
| - 'cmd/tools/vdoc/**' | |
| # vlib essentials synced with cmd/tools/vtest-self.v:essential_list | |
| - 'vlib/arrays/**' | |
| - 'vlib/bitfield/**' | |
| - 'vlib/builtin/**' | |
| - 'vlib/cli/**' | |
| - 'vlib/crypto/md5/**' | |
| - 'vlib/dl/**' | |
| - 'vlib/encoding/**' | |
| - 'vlib/flag/**' | |
| - 'vlib/io/**' | |
| - 'vlib/json/**' | |
| - 'vlib/json2/**' | |
| - 'vlib/math/**' | |
| - 'vlib/net/**' | |
| - 'vlib/os/**' | |
| - 'vlib/rand/**' | |
| - 'vlib/runtime/**' | |
| - 'vlib/semver/**' | |
| - 'vlib/strconv/**' | |
| - 'vlib/strings/**' | |
| - 'vlib/sync/**' | |
| - 'vlib/time/**' | |
| - 'vlib/toml/**' | |
| - 'vlib/v/**' | |
| # build-examples / DB / Sokol deps exercised by ci/openbsd_ci.vsh | |
| - 'vlib/compress/**' | |
| - 'vlib/crypto/rand/**' | |
| - 'vlib/db/**' | |
| - 'vlib/fontstash/**' | |
| - 'vlib/gg/**' | |
| - 'vlib/gx/**' | |
| - 'vlib/picoev/**' | |
| - 'vlib/sokol/**' | |
| - 'vlib/term/**' | |
| - 'vlib/veb/**' | |
| - 'thirdparty/**' | |
| - 'vc/**' | |
| - 'v.mod' | |
| - 'ci/openbsd_ci.vsh' | |
| - 'ci/common/**' | |
| - 'GNUmakefile' | |
| - 'Makefile' | |
| - '.github/problem-matchers/**' | |
| # Negated patterns MUST stay after all positive patterns (GitHub path-filter ordering). | |
| - '!**.md' | |
| - '!**.yml' | |
| - '.github/workflows/openbsd_ci.yml' | |
| concurrency: | |
| group: openbsd-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }} | |
| cancel-in-progress: true | |
| ### See https://github.com/cross-platform-actions/action | |
| ### for a description of the used fields here | |
| jobs: | |
| tcc-openbsd: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Start OpenBSD VM for tcc | |
| id: vm-openbsd-tcc | |
| uses: cross-platform-actions/action@v1.3.0 | |
| with: | |
| operating_system: openbsd | |
| version: '7.8' | |
| memory: 4G | |
| sync_files: runner-to-vm | |
| - name: Tests on OpenBSD with tcc | |
| id: tests-openbsd-tcc | |
| shell: cpa.sh {0} | |
| run: | | |
| sudo pkg_add git sqlite3 gmake boehm-gc libiconv | |
| # Install packages needed to build examples | |
| sudo pkg_add mariadb-client postgresql-client | |
| # Mandatory: hostname not set in VM => some tests fail | |
| sudo hostname -s openbsd-ci | |
| echo "::group::OS infos" | |
| uname -a | |
| echo "::endgroup::" | |
| echo "::group::Build V" | |
| git config --global --add safe.directory . | |
| gmake | |
| sudo ./v symlink | |
| export VTEST_SHOW_LONGEST_BY_RUNTIME=3 | |
| export VTEST_SHOW_LONGEST_BY_COMPTIME=3 | |
| export VTEST_SHOW_LONGEST_BY_TOTALTIME=3 | |
| export VFLAGS='-cc tcc -no-retry-compilation' | |
| echo "::endgroup::" | |
| ./v run ci/openbsd_ci.vsh all | |
| clang-openbsd: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Start OpenBSD VM for clang | |
| id: vm-openbsd-clang | |
| uses: cross-platform-actions/action@v1.3.0 | |
| with: | |
| operating_system: openbsd | |
| version: '7.8' | |
| memory: 4G | |
| sync_files: runner-to-vm | |
| - name: Tests on OpenBSD with clang | |
| id: tests-openbsd-clang | |
| shell: cpa.sh {0} | |
| run: | | |
| sudo pkg_add git sqlite3 gmake boehm-gc libiconv | |
| # Install packages needed to build examples | |
| sudo pkg_add mariadb-client postgresql-client | |
| # Mandatory: hostname not set in VM => some tests fail | |
| sudo hostname -s openbsd-ci | |
| echo "::group::OS infos" | |
| uname -a | |
| clang -v | |
| echo "::endgroup::" | |
| echo "::group::Build V" | |
| git config --global --add safe.directory . | |
| gmake | |
| sudo ./v symlink | |
| export VTEST_SHOW_LONGEST_BY_RUNTIME=3 | |
| export VTEST_SHOW_LONGEST_BY_COMPTIME=3 | |
| export VTEST_SHOW_LONGEST_BY_TOTALTIME=3 | |
| export VFLAGS='-cc clang' | |
| echo "::endgroup::" | |
| ./v run ci/openbsd_ci.vsh all |