mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
ci: add tcc32 CI on windows (#8922)
This commit is contained in:
parent
c762d150c6
commit
1a8e502e2c
44
.github/workflows/ci.yml
vendored
44
.github/workflows/ci.yml
vendored
@ -725,7 +725,7 @@ jobs:
|
|||||||
- name: v2 self compilation
|
- name: v2 self compilation
|
||||||
run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
||||||
|
|
||||||
windows-tcc:
|
windows-tcc64:
|
||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
env:
|
env:
|
||||||
@ -767,6 +767,48 @@ jobs:
|
|||||||
- name: v2 self compilation
|
- name: v2 self compilation
|
||||||
run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
run: .\v.exe -o v2.exe cmd/v && .\v2.exe -o v3.exe cmd/v
|
||||||
|
|
||||||
|
windows-tcc32:
|
||||||
|
runs-on: windows-2019
|
||||||
|
timeout-minutes: 30
|
||||||
|
env:
|
||||||
|
VFLAGS: -cc tcc -no-retry-compilation
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12.x
|
||||||
|
- name: Build with make.bat -tcc32
|
||||||
|
run: |
|
||||||
|
.\make.bat -tcc32
|
||||||
|
- name: Test new v.c
|
||||||
|
run: .\v.exe -o v.c cmd/v && .\thirdparty\tcc\tcc.exe -Werror -w -ladvapi32 -bt10 v.c
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
.\v.exe setup-freetype
|
||||||
|
.\.github\workflows\windows-install-sqlite.bat
|
||||||
|
## .\.github\workflows\windows-install-sdl.bat
|
||||||
|
- 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: Self tests
|
||||||
|
run: |
|
||||||
|
.\v.exe -silent test-self
|
||||||
|
# - name: Test
|
||||||
|
# run: |
|
||||||
|
# .\v.exe -silent test-all
|
||||||
|
- 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
|
||||||
|
|
||||||
compilable-v-c-and-v-win-c:
|
compilable-v-c-and-v-win-c:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
|
20
make.bat
20
make.bat
@ -43,7 +43,9 @@ if !shift_counter! LSS 1 (
|
|||||||
)
|
)
|
||||||
|
|
||||||
REM Compiler option
|
REM Compiler option
|
||||||
for %%g in (-gcc -msvc -tcc -clang) do (
|
for %%g in (-gcc -msvc -tcc -tcc32 -clang) do (
|
||||||
|
if "%PROCESSOR_ARCHITECTURE%" == "x86" set "tcc_branch=thirdparty-windows-i386"
|
||||||
|
if "%~1" == "-tcc32" set "tcc_branch=thirdparty-windows-i386"
|
||||||
if "%~1" == "%%g" set compiler=%~1& set compiler=!compiler:~1!& shift& set /a shift_counter+=1& goto :verifyopt
|
if "%~1" == "%%g" set compiler=%~1& set compiler=!compiler:~1!& shift& set /a shift_counter+=1& goto :verifyopt
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -282,6 +284,7 @@ if %ERRORLEVEL% NEQ 0 goto :compile_error
|
|||||||
goto :success
|
goto :success
|
||||||
|
|
||||||
:tcc_strap
|
:tcc_strap
|
||||||
|
:tcc32_strap
|
||||||
if [!compiler!] == [] set /a invalid_cc=1
|
if [!compiler!] == [] set /a invalid_cc=1
|
||||||
echo ^> Attempting to build v_win.c with TCC
|
echo ^> Attempting to build v_win.c with TCC
|
||||||
if !flag_verbose! EQU 1 (
|
if !flag_verbose! EQU 1 (
|
||||||
@ -362,18 +365,19 @@ echo Usage:
|
|||||||
echo make.bat [target] [compiler] [options]
|
echo make.bat [target] [compiler] [options]
|
||||||
echo.
|
echo.
|
||||||
echo Compiler:
|
echo Compiler:
|
||||||
echo -msvc ^| -gcc ^| -tcc ^| -clang Set C compiler
|
echo -msvc ^| -gcc ^| -tcc ^| -tcc32 ^| -clang Set C compiler
|
||||||
echo.
|
echo.
|
||||||
echo Target:
|
echo Target:
|
||||||
echo build[default] Compiles V using the given C compiler
|
echo build[default] Compiles V using the given C compiler
|
||||||
echo clean Clean build artifacts and debugging symbols
|
echo clean Clean build artifacts and debugging symbols
|
||||||
echo clean-all Cleanup entire ALL build artifacts and vc repository
|
echo clean-all Cleanup entire ALL build artifacts and vc repository
|
||||||
echo help Display usage help for the given target
|
echo help Display usage help for the given target
|
||||||
echo.
|
echo.
|
||||||
echo Examples:
|
echo Examples:
|
||||||
echo make.bat -msvc
|
echo make.bat -msvc
|
||||||
echo make.bat -gcc --local --logpath output.log
|
echo make.bat -gcc --local --logpath output.log
|
||||||
echo make.bat build -fresh-tcc --local
|
echo make.bat build -tcc --local
|
||||||
|
echo make.bat -tcc32
|
||||||
echo make.bat help clean
|
echo make.bat help clean
|
||||||
echo.
|
echo.
|
||||||
echo Use "make help <target>" for more information about a target, for instance: "make help clean"
|
echo Use "make help <target>" for more information about a target, for instance: "make help clean"
|
||||||
@ -412,7 +416,7 @@ echo Usage:
|
|||||||
echo make.bat build [compiler] [options]
|
echo make.bat build [compiler] [options]
|
||||||
echo.
|
echo.
|
||||||
echo Compiler:
|
echo Compiler:
|
||||||
echo -msvc ^| -gcc ^| -[fresh-]tcc ^| -clang Set C compiler
|
echo -msvc ^| -gcc ^| -tcc ^| -tcc32 ^| -clang Set C compiler
|
||||||
echo.
|
echo.
|
||||||
echo Options:
|
echo Options:
|
||||||
echo --local Use the local vc repository without
|
echo --local Use the local vc repository without
|
||||||
|
@ -191,10 +191,10 @@ fn test_vec4() {
|
|||||||
assert v + m4.Vec4{ e: [f32(5), 6, 7, 8]! } == m4.Vec4{ e: [f32(6), 8, 10, 12]! }
|
assert v + m4.Vec4{ e: [f32(5), 6, 7, 8]! } == m4.Vec4{ e: [f32(6), 8, 10, 12]! }
|
||||||
assert v - m4.Vec4{ e: [f32(1), 2, 3, 4]! } == m4.Vec4{ e: [f32(0), 0, 0, 0]! }
|
assert v - m4.Vec4{ e: [f32(1), 2, 3, 4]! } == m4.Vec4{ e: [f32(0), 0, 0, 0]! }
|
||||||
assert v.mul_vec4(m4.Vec4{ e: [f32(2), 2, 2, 2]! }) == m4.Vec4{ e: [f32(2), 4, 6, 8]! }
|
assert v.mul_vec4(m4.Vec4{ e: [f32(2), 2, 2, 2]! }) == m4.Vec4{ e: [f32(2), 4, 6, 8]! }
|
||||||
assert v.normalize().mod() == 1
|
assert m4.abs(v.normalize().mod() - 1) < m4.precision
|
||||||
v = m4.Vec4{[f32(1), 2, 3, 0]!}
|
v = m4.Vec4{[f32(1), 2, 3, 0]!}
|
||||||
assert v.normalize3().mod3() - 1 < m4.precision
|
assert m4.abs(v.normalize3().mod3() - 1) < m4.precision
|
||||||
assert v.normalize3().mod() - 1 < m4.precision
|
assert m4.abs(v.normalize3().mod() - 1) < m4.precision
|
||||||
// x y z
|
// x y z
|
||||||
// 1 2 3 ==> -3 6 -3 0
|
// 1 2 3 ==> -3 6 -3 0
|
||||||
// 4 5 6
|
// 4 5 6
|
||||||
|
@ -27,7 +27,7 @@ pub const precision = f32(10e-7)
|
|||||||
* Utility
|
* Utility
|
||||||
*
|
*
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
fn abs(a f32) f32 {
|
pub fn abs(a f32) f32 {
|
||||||
if a >= f32(0.0) {
|
if a >= f32(0.0) {
|
||||||
return a
|
return a
|
||||||
} else {
|
} else {
|
||||||
|
@ -366,7 +366,7 @@ pub fn (mut ch Channel) try_pop(dest voidptr) ChanState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn (mut ch Channel) try_pop_priv(dest voidptr, no_block bool) ChanState {
|
fn (mut ch Channel) try_pop_priv(dest voidptr, no_block bool) ChanState {
|
||||||
spinloops_sem_, spinloops_ := if no_block { 1, 1 } else { spinloops, spinloops_sem }
|
spinloops_sem_, spinloops_ := if no_block { 1, 1 } else { spinloops, spinloops_sem }
|
||||||
mut have_swapped := false
|
mut have_swapped := false
|
||||||
mut write_in_progress := false
|
mut write_in_progress := false
|
||||||
for {
|
for {
|
||||||
|
@ -35,7 +35,7 @@ fn (mut g Gen) profile_fn(fn_decl ast.FnDecl) {
|
|||||||
|
|
||||||
pub fn (mut g Gen) gen_vprint_profile_stats() {
|
pub fn (mut g Gen) gen_vprint_profile_stats() {
|
||||||
g.pcs_declarations.writeln('void vprint_profile_stats(){')
|
g.pcs_declarations.writeln('void vprint_profile_stats(){')
|
||||||
fstring := '"%14lu %14.3fms %14.0fns %s \\n"'
|
fstring := '"%14llu %14.3fms %14.0fns %s \\n"'
|
||||||
if g.pref.profile_file == '-' {
|
if g.pref.profile_file == '-' {
|
||||||
for pc_meta in g.pcs {
|
for pc_meta in g.pcs {
|
||||||
g.pcs_declarations.writeln('\tif ($pc_meta.vpc_calls) printf($fstring, $pc_meta.vpc_calls, $pc_meta.vpc_name/1000000.0, $pc_meta.vpc_name/$pc_meta.vpc_calls, "$pc_meta.fn_name" );')
|
g.pcs_declarations.writeln('\tif ($pc_meta.vpc_calls) printf($fstring, $pc_meta.vpc_calls, $pc_meta.vpc_name/1000000.0, $pc_meta.vpc_name/$pc_meta.vpc_calls, "$pc_meta.fn_name" );')
|
||||||
|
Loading…
Reference in New Issue
Block a user