|
|
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
|
|
# Not recursive, deliberately. The top-level build needs
|
|
|
|
|
# deps/libakerror and deps/libakstdlib, via add_subdirectory, and
|
|
|
|
|
# nothing else: the golden corpus and the Commodore font now live in
|
|
|
|
|
# this repository (tests/reference/ and assets/fonts/), so
|
|
|
|
|
# this repository (tests/language/ and assets/fonts/), so
|
|
|
|
|
# deps/basicinterpret is no longer a build dependency at all.
|
|
|
|
|
# It does *not* need deps/libakgl, which is guarded behind
|
|
|
|
|
# AKBASIC_WITH_AKGL and defaults OFF -- and recursing into it would
|
|
|
|
|
@@ -26,19 +26,45 @@ jobs:
|
|
|
|
|
# skipped for the same reason: our CMakeLists declares akerror::akerror
|
|
|
|
|
# first and libakstdlib guards on if(NOT TARGET ...).
|
|
|
|
|
submodules: true
|
|
|
|
|
# moreutils is load-bearing, not incidental: it supplies errno(1), which
|
|
|
|
|
# deps/libakerror/scripts/generrno.sh shells out to at build time to
|
|
|
|
|
# generate its errno name table and to stamp AKERR_LAST_ERRNO_VALUE into
|
|
|
|
|
# the generated akerror.h.
|
|
|
|
|
#
|
|
|
|
|
# Its absence does not fail the build, which is what made this expensive to
|
|
|
|
|
# find. The script prints "errno: command not found" twice, emits an empty
|
|
|
|
|
# akerr_init_errno() so no errno ever gets a name, and substitutes an empty
|
|
|
|
|
# AKERR_LAST_ERRNO_VALUE -- so every code in libakerror's reserved band
|
|
|
|
|
# collapses from (134 + n) to ( + n), i.e. to n. AKERR_OUTOFBOUNDS is
|
|
|
|
|
# (AKERR_LAST_ERRNO_VALUE + 2), so it becomes literally 2, and ERR(2)
|
|
|
|
|
# answers "Out Of Bounds Error" where ENOENT's "No such file or directory"
|
|
|
|
|
# belongs. That is the docs_examples failure at docs/15-error-codes.md:105
|
|
|
|
|
# that this job carried on every run since #2.
|
|
|
|
|
- name: dependencies
|
|
|
|
|
run: |
|
|
|
|
|
sudo apt-get update -y
|
|
|
|
|
sudo apt-get install -y cmake gcc
|
|
|
|
|
sudo apt-get install -y cmake gcc moreutils
|
|
|
|
|
# --parallel 2 rather than a bare --parallel, and that bound is measured
|
|
|
|
|
# rather than cautious. All five jobs in this file say runs-on:
|
|
|
|
|
# ubuntu-latest and land on the same runner, so a bare --parallel asks for
|
|
|
|
|
# nproc compilers *per job* and the runner is handed five times that at
|
|
|
|
|
# once. Run #30 never showed it because akgl_build and coverage were still
|
|
|
|
|
# dying early; run #31 was the first push on which all five did real work
|
|
|
|
|
# simultaneously, and the sanitizers job went from a 55-second link phase
|
|
|
|
|
# to a 14-minute one -- individual `Linking C executable` steps taking two
|
|
|
|
|
# minutes each, starting at the exact second akgl_build began its SDL tree
|
|
|
|
|
# -- before the runner's Docker daemon fell over outright and took the job
|
|
|
|
|
# with it. That is memory exhaustion, and the only lever on it is the
|
|
|
|
|
# number of concurrent compiler and linker processes. Applied at all four
|
|
|
|
|
# build sites for the same reason; mutation_test drives its own builds
|
|
|
|
|
# through the harness and is not bounded here.
|
|
|
|
|
- name: build
|
|
|
|
|
run: |
|
|
|
|
|
cmake -S . -B build
|
|
|
|
|
cmake --build build --parallel
|
|
|
|
|
# The suite is 78 cases: 41 golden files byte-compared against the Go
|
|
|
|
|
# reference's own corpus (checked in at tests/reference/, see its README),
|
|
|
|
|
# 9 local golden cases for verbs the reference never implemented, 25 unit
|
|
|
|
|
# tests, 2 embedding examples, and 1 known-failing test that asserts the
|
|
|
|
|
# *correct* contract for defects carried over from the reference (TODO.md
|
|
|
|
|
cmake --build build --parallel 2
|
|
|
|
|
# The suite is 112 cases: 65 language files with sibling expectations,
|
|
|
|
|
# 43 unit tests, 3 embedding examples, and docs_examples.
|
|
|
|
|
# Some unit tests assert the *correct* contract for known defects (TODO.md
|
|
|
|
|
# section 6). A green run therefore does not mean defect-free -- see
|
|
|
|
|
# AKBASIC_KNOWN_FAILING_TESTS.
|
|
|
|
|
#
|
|
|
|
|
@@ -74,7 +100,7 @@ jobs:
|
|
|
|
|
- name: dependencies
|
|
|
|
|
run: |
|
|
|
|
< |