Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3151 commits
Select commit Hold shift + click to select a range
6b7535e
orm: add index attr support (#25604)
kbkpbot Nov 16, 2025
2f96bff
checker: fix comptime main fn (#25747)
kbkpbot Nov 16, 2025
bc333ab
encoding.utf8.validate: fix validation, add test (#25748)
tankf33der Nov 16, 2025
bb53ff5
crypto.blake2b,crypto.blake2s: add `@[direct_array_access]` to hot fu…
tankf33der Nov 17, 2025
76b752c
strconv: fix handling of subnormal numbers like `'1.23e-308'.f64()` (…
davlgd Nov 17, 2025
4eec757
veb: fix gzip middleware decode/encode (fix #20865) (fix #25753) (#25…
davlgd Nov 17, 2025
3555998
v.builder: improve diagnostic information for a failed build_thirdpar…
spytheman Nov 17, 2025
2f2efb7
parser: allow using `a`, `b` and `it` as var names, when using the bu…
kbkpbot Nov 17, 2025
334f48a
doc: cleanup grammar issues in doc/docs.md
spytheman Nov 17, 2025
c4e41c1
transformer: transform ArrayInit into a function call for C and nativ…
medvednikov Nov 17, 2025
d3ed361
builder,pref: add `-file-list` support (implement feature #25707) (#…
kbkpbot Nov 18, 2025
730f685
db.sqlite: update windows version to https://sqlite.org/2025/sqlite-a…
JalonSolov Nov 18, 2025
ca7bca8
type_resolver: clear option flag if present in comptime $for (fix #25…
dy-tea Nov 18, 2025
dd6bb5b
cgen: fix dump(ptr_to_fixed_array_value) - it now returns the argumen…
spytheman Nov 18, 2025
8a48859
db.pg: support returning `Result` type with column names (#25737)
omerrob Nov 19, 2025
a51e6e0
veb: gzip support for StaticHandler (fix #20859) (#25758)
davlgd Nov 19, 2025
aae3ba8
parser,fmt,checker: use a trie for matching the generic array methods…
spytheman Nov 19, 2025
b215d11
cgen: cast member variables to correct types in comptime $for (fix #2…
dy-tea Nov 19, 2025
26026bd
ci: reduce annotation noise, remove dead code
spytheman Nov 19, 2025
7cefeea
pref: for -usecache, set .parallel_cc = false and .no_parallel = true…
spytheman Nov 19, 2025
e97bf8d
ci: skip the multistage v->v2->v3 -usecache checks for now (reduce fa…
spytheman Nov 19, 2025
2a12104
cgen: include `ast.ComptimeSelector` in fixed array checks (fix #2576…
dy-tea Nov 19, 2025
416e5ee
veb: support markdown content negotiation, compliant with https://llm…
davlgd Nov 20, 2025
d260e34
ci: add new job `sanitize-address-clang-without-gc` that passes `-gc …
tankf33der Nov 20, 2025
8f91815
os.notify: fix struct epoll_event alignment on ARM64/Linux (fix #2577…
kbkpbot Nov 20, 2025
20aefee
checker,cgen,type_resolver: prevent stale type cast on comptime `$for…
dy-tea Nov 20, 2025
a26a42d
db.sqlite: allow for `mut db := sqlite.connect_full(":memory:", [.rea…
spytheman Nov 20, 2025
b4e64ee
v.builder: cleanup noise by msvc rebuilding object files, unless -d t…
spytheman Nov 20, 2025
1b09723
fasthttp: move kqueue related code to a separate file
medvednikov Nov 20, 2025
1bf1abd
fasthttp: Linux/epoll support
medvednikov Nov 20, 2025
73cc802
fashttp: fixes
medvednikov Nov 20, 2025
1a6f07d
checker: fix array fixed unresolved return check and resolver (fix #2…
felipensp Nov 21, 2025
a48e8e2
ci: bump actions/checkout from 5 to 6, fix VPM's outdated_test.v (#2…
dependabot[bot] Nov 21, 2025
a8e0120
math: add tests for math.divide_floored, math.divide_euclid, and math…
spytheman Nov 21, 2025
0458303
markused: fix missing builtin__memdup definition, when an option stru…
spytheman Nov 21, 2025
f36e826
cgen: reduce the nested expr level complexity of Gen.ident
spytheman Nov 21, 2025
f2ab898
math: reduce the nested level of expressions, to reduce the chances o…
spytheman Nov 21, 2025
8a1efb3
crypto.sha3: remove `import math` (just for int_max), to improve comp…
spytheman Nov 21, 2025
0ea83ce
net.http,ci,db.sqlite: rewrite .github/workflows/windows-install-sqli…
spytheman Nov 21, 2025
0c7de2e
cgen,os: fix tcc __attribute__, fix os.notify (followup to #25779) (#…
kbkpbot Nov 21, 2025
34d9790
parser: disallow generic function to be exported (fix #25794) (#25806)
Delta456 Nov 22, 2025
54b2c86
builtin,cgen: ensure array of string is not cloned with depth 0 (fix …
dy-tea Nov 22, 2025
e08cc4e
v.parser: support `-d trace_parse` to ease diagnosing problems relate…
spytheman Nov 22, 2025
bf7f43f
checker,cgen: support `-d trace_check` and `-d trace_cgen` to help di…
spytheman Nov 22, 2025
bc4a240
cgen: support `-d trace_cgen_fn_decl` and `-d trace_cgen_gen_fn_decl`…
spytheman Nov 22, 2025
01e840a
markused: cleanup no longer used vgettid name
spytheman Nov 22, 2025
defae4d
builtin: add declarations for C.GetCurrentThreadId(), C.gettid() and …
spytheman Nov 22, 2025
2d8a1da
builtin: add pid: and tid: fields to the panic reports (part 2 of #25…
spytheman Nov 23, 2025
2e6b7ef
tools: support `VTEST_SHOW_LONGEST_BY_RUNTIME=5 VTEST_SHOW_LONGEST_BY…
spytheman Nov 23, 2025
27a90e1
tools: print total time at the *end* of the `v test-all` output to ea…
spytheman Nov 23, 2025
1d3467e
ci: skip very long tests that are not relevant for the sanitized jobs…
spytheman Nov 23, 2025
e861b73
parser: fix the language support for a nested anonymous C.struct (fix…
kbkpbot Nov 23, 2025
b968bf0
cgen: show the v_gettid() hex with `-d trace_cgen_fn_decl` and `-d tr…
spytheman Nov 23, 2025
b17ac33
checker: allow explicit sumtype to option casts (fix #25796) (#25812)
imperivox Nov 23, 2025
996f0fe
native: fixed array, `-new-transformer` dynamic array (#25817)
Eliyaan Nov 23, 2025
bcfc069
transformer: move array logic to array.v
medvednikov Nov 24, 2025
e9376a8
transformer: IndexExpr
medvednikov Nov 24, 2025
2fb5475
Revert "transformer: IndexExpr"
medvednikov Nov 24, 2025
975cfcd
roadmap: move "$if everywhere" to Done
medvednikov Nov 24, 2025
dd99c6b
gg: add doc comments for the FN** types (#25814)
Linklancien Nov 24, 2025
1108119
builtin,strconv: cleanup obsolete comments
spytheman Nov 24, 2025
29e7eca
rand: add missing i8() utility function (#25819)
squidink7 Nov 24, 2025
4a61ce9
rand: add tests for more primitive number type related APIs in ensure…
spytheman Nov 24, 2025
906976f
tools: use unbuffer_stdout in TestSession.test, to ensure consistent …
spytheman Nov 24, 2025
58941fe
builtin: fix C.SYSTEM_INFO (fix #25788) (#25823)
kbkpbot Nov 24, 2025
cf1257f
veb: add zstd compression support (#25816)
davlgd Nov 24, 2025
8147388
checker: fix possible race on expected arg types unwrapping on cgen (…
felipensp Nov 24, 2025
d0dc13e
v.builder: bump the default stack size for executables, when compilin…
spytheman Nov 24, 2025
4b03c33
ci: reduce the chances of false positives due to hangs of use_net_and…
spytheman Nov 25, 2025
7f99d5d
v.builder: improve the error message for failing cgen; suggest `-g` a…
spytheman Nov 25, 2025
9ee4158
v.builder: remove the obsolete check for V_NO_C_ERROR_INFO (VQUIET=1 …
spytheman Nov 25, 2025
ce3a161
eventbus: add more tests, and fix a bug after 551a065, preventing sim…
spytheman Nov 25, 2025
85ff886
tools: make `v search` failures easier to diagnose (on the CI)
spytheman Nov 25, 2025
0b7b150
veb: remove println('send_file ct=...') leftover (#25834)
CryingN Nov 26, 2025
f252d3e
veb: remove commented code, cleanup formatting
spytheman Nov 26, 2025
231b0d9
v.pref: fix GitHub download URL for the photonwrapper .so file (fix #…
rrpolanco Nov 26, 2025
64c1034
checker: skip init check for options (fix #25798) (#25830)
dy-tea Nov 26, 2025
dbd3e4b
tools: support `v download -o some/folder/local.toml TOML_URL`, in ad…
spytheman Nov 26, 2025
7002411
tools: add `--sha3-256` support for checksumming the content that `v …
spytheman Nov 26, 2025
64f1162
builtin: support `-d no_getpid` and `-d no_gettid` for systems that l…
spytheman Nov 26, 2025
8938a40
math: fix vec2,3,4 project not using the right formulas (fix #25811) …
gw-dev101 Nov 27, 2025
b052af8
cgen: use variadic_count == 1 when passing variadic to call of same a…
dy-tea Nov 27, 2025
1a91193
doc: add subsections about using SQLite on windows and about installi…
spytheman Nov 28, 2025
4813d2c
math.vec: swap u and v in the .project() method of Vec2,Vec3,Vec4 (#2…
tankf33der Nov 28, 2025
3f68f3f
checker: fix module var set at change_current_file() (fix #25845) (#2…
kbkpbot Nov 28, 2025
a88d0d6
cgen,checker: improve handling of array decompose for dynamic arrays …
dy-tea Nov 28, 2025
390be00
tools: add a watchdog timer in test_if_v_test_system_works.v to speed…
spytheman Nov 28, 2025
de48e90
v.pref: use `v download` for downloading the prebuilt `photonwrapper`…
spytheman Nov 28, 2025
66f958d
v.builder: switch to using `-std=c99`, instead of `-std=gnu99` to avo…
dy-tea Nov 28, 2025
8241859
docs: update CONTRIBUTING.md (#25853)
Linklancien Nov 28, 2025
6aa81fa
parser: disallow untyped `chan` used as a fn parameter type (fix #258…
dy-tea Nov 29, 2025
c3e0637
tools: implement `v git-fmt-hook`, `v git-fmt-hook install`, `v git-f…
spytheman Nov 29, 2025
a8a5e80
math.vec: add tests for vec2,3,4 perpendicular (#25840)
Linklancien Nov 30, 2025
473c8e8
crypto.cipher: fix xor_key_stream() for OFB mode, add test (#25844)
tankf33der Nov 30, 2025
e07eb54
math.complex: fix handling of the argument to the log() method, repla…
tankf33der Nov 30, 2025
3caa1b7
encoding.binary: use unions for small speed increase and readability …
JalonSolov Nov 30, 2025
55436ca
cgen: fix nested or in assign decl (fix #25864) (#25865)
kbkpbot Dec 1, 2025
3459806
v.pkgconfig: restore support for multiple package names per line (#25…
dy-tea Dec 1, 2025
219ac05
math.complex: replace `==` with eq_epsilon() in equals() (#25873)
tankf33der Dec 1, 2025
0a143f6
crypto.cipher: fix xor_key_stream() for CTR mode, add test vector cre…
tankf33der Dec 2, 2025
58477f3
cgen: fix variadic on translated (fix #25862) (#25876)
felipensp Dec 2, 2025
e3d328a
v.parser: improve the unused import warning message (add fixing alter…
spytheman Dec 3, 2025
d9f1e33
cgen: allow @[cinit] for const variables (#25881)
wenxuanjun Dec 3, 2025
dafa6fd
checker: force all fn declarations to follow after all other top leve…
spytheman Dec 4, 2025
b01273e
ci: reduce amount of tests compiled with V itself, built with differe…
spytheman Dec 4, 2025
66b75c2
markused: fix const as fn mark as used (fix #25888) (#25895)
felipensp Dec 5, 2025
48dc721
transformer: disable generic str_intp opt (fix #25896) (#25897)
kbkpbot Dec 5, 2025
ecd0018
os: enhance os.cp() to mimic Python's shutil.copy2() (#25893)
quaesitor-scientiam Dec 5, 2025
aee3c13
checker: fix used features tracking when printing pointer values (fix…
felipensp Dec 6, 2025
fa2383a
io.util: use correct TempDirOptions parameter type name in temp_dir()…
tankf33der Dec 6, 2025
74d55ef
ast,cgen: fallback to field type when default_expr_typ is 0 (fix #258…
dy-tea Dec 6, 2025
ff6413a
cgen: fix map value init with array fixed const (fix #25887) (#25902)
felipensp Dec 6, 2025
f108077
builtin,sync: eliminate calls to _us32_lt in new_map/6, and in the sp…
spytheman Dec 6, 2025
dbe9be1
cgen: fix cast type changed before last stmt in `stmts_with_tmp_var` …
Krchi Dec 7, 2025
a975ce2
checker: match type when auto deref occurs (fix #25913) (#25916)
dy-tea Dec 7, 2025
4be6920
v.fmt: cleanup fmt_new_int_test.v
spytheman Dec 7, 2025
e1b3e5b
tests: skip some slow running tests on jobs that do not use tcc (only…
spytheman Dec 7, 2025
00fcf54
v.scanner: remove obsolete .is_crlf and .is_vh fields (#25918)
spytheman Dec 7, 2025
377b80e
cgen,rand,hash: update wyhash to version 4.2 (#25907)
tankf33der Dec 7, 2025
554f822
tools: use local `vtest build:` tags to eliminate the need for the sk…
spytheman Dec 7, 2025
a302236
rand: restore error margin in dist_test.v back to 0.05 (the updated s…
spytheman Dec 7, 2025
59e3302
ci,vpm: make dependency_test.v more robust, and easier to diagnose re…
spytheman Dec 7, 2025
770a2db
ci: set VTMP too in set_test_env/1, to avoid cloning conflicts during…
spytheman Dec 7, 2025
c3f0053
builtin: reduce the max size of string representations of integers (#…
tankf33der Dec 7, 2025
fde6c9d
math: fix smootherstep(), add more tests (#25920)
tankf33der Dec 8, 2025
502d6a1
ci: do not use `-silent` for the `v build-examples` task on windows, …
spytheman Dec 8, 2025
af0ced0
math: fix round_to_even(), add tests (#25922)
tankf33der Dec 8, 2025
e733977
math: fix acosh(), add tests (#25923)
tankf33der Dec 9, 2025
3d79993
builtin: remove commented code, improve comments
spytheman Dec 9, 2025
68576a2
v.scanner: use a named return for decode_XXX_escape_single methods, t…
spytheman Dec 9, 2025
4fc74e0
math: fix asinh(), add tests (#25925)
tankf33der Dec 9, 2025
d5895b3
doc: add an example for reading from a non empty buffered channel, af…
spytheman Dec 9, 2025
75ecc8d
strings: add Builder.write_repeated_rune/1 (#25933)
kbkpbot Dec 10, 2025
853414d
examples: fix and improve vanilla_http_server (#25905)
enghitalo Dec 10, 2025
a3f283f
ci: remove `-silent` from the macos build_examples task too, to make …
spytheman Dec 10, 2025
bbb174e
gg, examples: add optional `update_fn: fn (dt f32, ctx &gg.Context)` …
spytheman Dec 10, 2025
8ab0371
gg: set more sensible and user friendly defaults for the width, heigh…
spytheman Dec 10, 2025
8bbd72d
strings: add a Builder.indent(s) method to help with #25917 (#25921)
kbkpbot Dec 10, 2025
a201013
gg, examples: add expanding_rect.v (modeled after the example from ht…
spytheman Dec 10, 2025
1f7b2b1
ci: bump actions/cache from 4 to 5 (#25942)
dependabot[bot] Dec 12, 2025
04e4f43
markused: add new auto_str() used funcs for bootstrap (#25938)
kbkpbot Dec 12, 2025
882d807
math.easing: fix in_out_back/1, add tests (#25939)
tankf33der Dec 12, 2025
c910d25
v.builder: do not produce `If the code is in a folder with multiple .…
spytheman Dec 12, 2025
218e24f
checker,parser,ast: make `type MyBuilder = strings.Builder` work (par…
spytheman Dec 12, 2025
bfdf88e
x.crypto.chacha20: fix deprecation warning during compilation of Ciph…
spytheman Dec 12, 2025
020ea99
math.easing: fix in_out_expo(), add test (#25944)
tankf33der Dec 12, 2025
967a4a2
thirdparty: update thirdparty-openbsd-amd64_tcc.sh (#25945)
lcheylus Dec 12, 2025
0896290
checker: relax the redundant () check to a notice, to enable a future…
spytheman Dec 13, 2025
04250d3
ci: update openbsd_ci.yml to use OpenBSD 7.8 too
spytheman Dec 13, 2025
4682ee7
readme: update instructions for build on OpenBSD 7.8 (release October…
lcheylus Dec 13, 2025
31636fb
checker: remove () from match branch exprs (fix #25950) (#25952)
kbkpbot Dec 13, 2025
bfd3020
ci: install plain gcc on the OpenBSD jobs
spytheman Dec 13, 2025
ba7d223
ci: use `gcc` as the name of the compiler instead of `egcc` on OpenBSD
spytheman Dec 13, 2025
0d55187
ci: remove the gcc-openbsd job, until OpenBSD people fix their broken…
spytheman Dec 13, 2025
1411c27
ci: run `v -W -silent test-self vlib` on linux, so deprecations/warni…
spytheman Dec 13, 2025
f0d5300
v.debug: fix struct value initialization of an interface field (fix #…
Krchi Dec 13, 2025
bc8b435
v.builder: provide more detailed error message, on `msvc: failed to b…
spytheman Dec 13, 2025
83d9c5c
v.builder: improve formatting of the `failed to build a thirdparty ob…
spytheman Dec 13, 2025
5475645
math.easing: fix bounce family, add tests (#25956)
tankf33der Dec 13, 2025
c15523b
ci: use VTEST_SHOW_LONGEST_BY_* vars on OpenBSD (#25958)
lcheylus Dec 13, 2025
4ed06a3
cgen: use final_sym for elem_sym in index_of_array (fix #25960) (#25961)
dy-tea Dec 14, 2025
4d7e357
checker,cgen: fix variadic call on sumtype with array of itself (fix …
Krchi Dec 14, 2025
16f5f45
cgen: correct T{} init for []Type aliases (fix #25962) (#25963)
dy-tea Dec 14, 2025
e0a547f
ci: reduce false positives for veb_should_listen_on_both_ipv4_and_ipv…
spytheman Dec 14, 2025
90fa8bc
builtin: split builtin.v and builtin.c.v into smaller, and more focus…
spytheman Dec 14, 2025
dc0b0f5
x.templating.dtm: fix formatting and improve clarity in README.md (#2…
StunxFS Dec 14, 2025
078bb28
ci: bump actions/upload-artifact from 5 to 6 (#25974)
dependabot[bot] Dec 15, 2025
2401d63
ci: bump actions/download-artifact from 6 to 7 (#25975)
dependabot[bot] Dec 15, 2025
ae66145
cgen: fix array init with fixed array from return call (fix #25954) (…
felipensp Dec 15, 2025
050a023
veb, vweb: update unit tests to deal with net.inet.ip.connect_inaddr_…
kimshrier Dec 15, 2025
f79867d
cgen: fix fntype unwrap on ifguard (fix #25911) (#25914)
felipensp Dec 15, 2025
a8bded8
veb: add an early startup panic error message, when the result type o…
bradcypert Dec 15, 2025
dec7030
builtin,cgen: add a source .location field to `$for method in Type.me…
spytheman Dec 15, 2025
076fae5
cgen,checker: fix array map anon fn return fixed array (fix #25928) (…
kbkpbot Dec 15, 2025
26305ec
cgen: fix iterator on alias to fn ptr (fix #25911) (#25978)
felipensp Dec 15, 2025
68393b6
ci: bump cross-platform-actions/action from 0.30.0 to 0.31.0 (#25981)
dependabot[bot] Dec 16, 2025
956749a
tools,checker: cleanup the output of `v new --web abcd` after feedbac…
spytheman Dec 16, 2025
1b334a9
docs: fix from feedback in https://youtu.be/IuE6Bo1klK0?t=2051
spytheman Dec 16, 2025
0e60775
transformer: fix `-new-transformer` (ast.ArrayInit) (part 2) (#25967)
Eliyaan Dec 16, 2025
3386036
tools,examples,veb: fix `v -d trace_before_request run examples/veb/v…
spytheman Dec 16, 2025
390fbaa
net.mbedtls: make errors more verbose, to ease remote diagnosis of is…
spytheman Dec 16, 2025
8c861a5
net.openssl: make errors more verbose, to ease remote diagnosis of is…
spytheman Dec 16, 2025
894646f
veb: improve the before_request documentation
spytheman Dec 16, 2025
c445b0c
ci: update to use FreeBSD version 15.0 (#25985)
lcheylus Dec 16, 2025
22fafd6
veb: add method.location too, to the invalid return type error, to ea…
spytheman Dec 16, 2025
eeeb22e
tools: add a `-new-transformer` task to `v test-all`. Remove `-skip-u…
spytheman Dec 16, 2025
f8b74d7
checker: allow assign to a shared int var (fix #25986) (#25988)
kbkpbot Dec 17, 2025
0800feb
cgen: fix shared int string intp (fix #25984) (#25989)
kbkpbot Dec 17, 2025
3cf0c92
crypto.ecdsa: update to test and use OpenSSL 3.5 on OpenBSD (#25995)
lcheylus Dec 17, 2025
359cb9b
cgen: allow init shared field with default value (fix #25990) (#25991)
kbkpbot Dec 17, 2025
4652e4d
checker: ensure type of global exists (fix #25910) (#25998)
dy-tea Dec 17, 2025
17cb75c
x.crypto.slhdsa: add support on OpenBSD using OpenSSL 3.5 (#25996)
lcheylus Dec 17, 2025
bb39b59
scanner: remove old generic check logic (fix #25959) (#25997)
kbkpbot Dec 18, 2025
56739fe
checker,cgen: allow init of struct from struct with array of optional…
dy-tea Dec 18, 2025
9381714
transformer: fix the setting of a generic flag for fixed array type w…
Eliyaan Dec 18, 2025
30c8d46
wasm: fix const reference another const (fix #25722) (#26010)
bradcypert Dec 18, 2025
ff2df3c
ci: reduce all VTEST_SHOW_LONGEST_XXX to 3
spytheman Dec 18, 2025
6623dbf
tools: improve development experience for `v -W -silent test-self vli…
spytheman Dec 18, 2025
104034f
cgen: fix default value in if/else or block (fix #26002) (#26020)
dy-tea Dec 18, 2025
1cdb0f5
transformer: fix `v -new-transformer vlib/strconv/atoi_test.v` (#26021)
Eliyaan Dec 18, 2025
7fd6d3b
gg: add more documentation for color substraction (fix #21549) (#26023)
Linklancien Dec 19, 2025
645e94e
fasthttp: fixes and improvements (#25906)
enghitalo Dec 19, 2025
1fb9c95
tools: support `VTEST_KEEP_SESSION=1 ./v test vlib/math`
spytheman Dec 19, 2025
2b61669
toml: fix for single `\r` occurence in multi-line `"""` strings (`\r\…
larpon Dec 19, 2025
a5be132
vet: use new annotation syntax ([] -> @[]) (#26026)
Le0Developer Dec 19, 2025
c141d34
cgen: fix fnptr indirections declaration (fix #25940) (#25987)
felipensp Dec 19, 2025
40dea08
checker: ensure fn pointer cannot be used as non-fn argument (fix #26…
dy-tea Dec 19, 2025
f5013e5
examples: move flag/ .v files 1 level up, to prevent module lookup co…
spytheman Dec 19, 2025
7544034
toml, tests: update `burntsushi` > `toml-lang` and `alexcrichton` -> …
larpon Dec 19, 2025
71a61c5
examples: add a Lorem Ipsum Generator (#26036)
mike-ward Dec 19, 2025
f1c023d
toml: remove workarounds + `TODO`s for fixed issue #9507 (#26037)
larpon Dec 19, 2025
fd31771
x.json2: fix decode_number for u8 (fix #26027) (#26033)
kbkpbot Dec 19, 2025
0129dff
ci: reduce failure rate for the gcc-windows job, in test_if_v_test_sy…
spytheman Dec 20, 2025
60f7c81
wasm: export pub fns in main module when targeting wasi (#26041)
bradcypert Dec 20, 2025
1e1c9b9
wasm: add vlib/v/gen/wasm/tests_decompile/must_have_test.v to allow m…
spytheman Dec 20, 2025
df2a8ab
ci: skip use_net_and_net_unix_together_test.v on gcc-windows (many we…
spytheman Dec 20, 2025
46b6ebe
toml, tests: update `toml-rs` test suite to last available before the…
larpon Dec 20, 2025
f21cce4
rand.wyrand: switch to using the original C._wymix() as a performance…
tankf33der Dec 20, 2025
989ebe1
cgen,slow_tests: add riscv64 inline asm support, add tests (#26050)
tankf33der Dec 20, 2025
957212d
rand.pcg32: make incrementer be always odd in PCG32RNG (#26055)
tankf33der Dec 20, 2025
129ea22
strconv: fix float scientific notation (fix #26045) (#26046)
kbkpbot Dec 20, 2025
559a8d8
x.json2: fix decoding of float values in scientific notation (fix #26…
kbkpbot Dec 21, 2025
0045d5c
cgen: fix bool cast from value (fix #26028) (#26031)
kbkpbot Dec 21, 2025
76326b6
builtin: add a declaration for C.memchr too (#26054)
enghitalo Dec 21, 2025
dd47866
net.http: use error_with_code in download_file() (fix #26056) (#26057)
dy-tea Dec 21, 2025
8aa0369
zstd: make compilable with tcc
medvednikov Dec 21, 2025
08fbe61
toml: add compliance up until official toml-lang/toml-test@c6a78f1 (#…
larpon Dec 21, 2025
3f279cc
cgen: fix cast() generic type bug (fix #26065) (#26066)
kbkpbot Dec 21, 2025
703eca8
x.json2: cleanup code, add more tests (fix #26033) (#26064)
kbkpbot Dec 21, 2025
f108d83
checker: make sure `$for` eval body statements at least once to set …
kbkpbot Dec 21, 2025
2544a3b
builtin: fix some C fn parameter types (#26069)
tankf33der Dec 21, 2025
3a4c664
ci: bump cross-platform-actions/action from 0.31.0 to 0.32.0 (#26074)
dependabot[bot] Dec 22, 2025
2024b48
toml: add compliance to official toml-lang/toml-test@8bb8d9c (#26070)
larpon Dec 22, 2025
24e9f68
cgen: fix fn_var_signature() support nr_muls (fix #26049) (#26075)
kbkpbot Dec 22, 2025
f47adaf
slow_tests: update inline asm tests for i386 (#26078)
tankf33der Dec 22, 2025
07331bd
cgen,slow_tests: fix arm64 inline asm, update tests (#26077)
tankf33der Dec 22, 2025
3d3f76a
v.parser: remove dead code in Parser.is_array_type/0 (#26080)
whisky-jb Dec 22, 2025
7eef64f
examples,net.ftp,v.builder: remove remaining matches of `rg --multili…
spytheman Dec 22, 2025
5d6f1a9
toml: reduce exceptions in v1.0.0 tests, check February leap validity…
larpon Dec 22, 2025
65b2bc6
checker,cgen: fix cast_expr() for alias (fix #26076) (#26079)
kbkpbot Dec 23, 2025
c644b0c
cgen: handle CallExpr in dumpexpr (fix #26084) (#26087)
dy-tea Dec 23, 2025
6af88dc
examples: update lorem.v with a Markov algorithm for better text gene…
mike-ward Dec 23, 2025
c5dd410
toml: remove special cases for `jq` normalization (#26092)
larpon Dec 23, 2025
6a806bc
cgen,slow_tests: improve loongarch64 inline asm, add test (#26083)
tankf33der Dec 23, 2025
0aa3e2d
transformer: fix more failing tests with `-new-transformer` (#26086)
Eliyaan Dec 23, 2025
a822fb6
parser,orm: fix autofree detection for is_or with block style (fix #2…
bradcypert Dec 24, 2025
57cecdb
toml: switch to test against entries in `files-toml-1.0.0` for `toml-…
larpon Dec 24, 2025
d1ed866
parser: check invalid struct name in struct_init() (fix #26030) (#26093)
kbkpbot Dec 24, 2025
4c9564e
cgen: cleanup, reduce type handling for returning option/results of f…
Krchi Dec 24, 2025
fe6162e
toml, tests: support v2.0.0 of the test-suite at toml-lang/toml-test@…
larpon Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
41 changes: 0 additions & 41 deletions .cirrus.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/actions/cache-apt-packages-action/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: 'Cache Apt Packages'
description: 'Cache all commonly used apt packages to speed up CI jobs'

# imagemagick : convert, mogrify
# xvfb : xvfb
# openimageio-tools : idiff
# libxcursor-dev libxi-dev : V gfx deps
# libgl1-mesa-dri : For headless rendering on the CI / software DRI driver (LIBGL_ALWAYS_SOFTWARE=true)
# freeglut3-dev : Fixes graphic apps compilation with tcc
# sdl2 : needed for Puzzle Vibes & Chocolate Doom
# libsodium-dev : needed for Gitly and C2V

runs:
using: 'composite'
steps:
- uses: awalsh128/[email protected]
with:
version: 1.0
packages: expect binutils postgresql sqlite3 clang valgrind \
imagemagick openimageio-tools xvfb xsel xclip \
libsodium-dev libpq-dev libssl-dev libsqlite3-dev \
libfreetype6-dev libxi-dev libxcursor-dev \
libgl-dev libxrandr-dev libasound2-dev \
libx11-dev freeglut3-dev mesa-common-dev libgl1-mesa-dev libgl1-mesa-dri \
libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-net-dev \
libpng-dev libsamplerate0-dev \
xfonts-75dpi xfonts-base
- name: Install common packages
run: echo "done installing packages"
shell: bash
19 changes: 19 additions & 0 deletions .github/problem-matchers/register_all.vsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// The task of this program, is to register all available .json files
// in this folder with Github Actions, so that it can make annotations
// for all found notices/warnings/errors produced by the V compiler
// while running the CI jobs.
// Those annotations provide a way to get a quick overview for failures,
// without having to scroll into the detailed logs produced by each job.

const github_job = getenv('GITHUB_JOB')

if github_job == '' {
exit(0)
}

dump(github_job)
chdir(@VEXEROOT)!
for f in walk_ext('.github/problem-matchers/', '.json').sorted() {
println('::add-matcher::${real_path(f)}')
println('registered matcher: `${f}`')
}
18 changes: 18 additions & 0 deletions .github/problem-matchers/v.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"__comment": "Based on https://github.com/python/cpython/blob/main/.github/problem-matchers/gcc.json",
"problemMatcher": [
{
"owner": "v-problem-matcher",
"pattern": [
{
"regexp": "^(.*):(\\d+):(\\d+):\\s+(?:fatal\\s+)?(warning|error|notice):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
]
}
]
}
52 changes: 52 additions & 0 deletions .github/workflows/Dockerfile.ci_alpine_local
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#######################################################################################
## The goal of this file, is to provide an easy and reproducible way to check *locally*
## the CI job `docker-alpine-musl-gcc`
## Building the docker image:
## docker build -t ci_alpine_local - < .github/workflows/Dockerfile.ci_alpine_local
## Running the docker image, after building it:
## docker run --rm -it -v .:/opt/vlang -w /opt/vlang ci_alpine_local
## Once it is running, inside the container you can:
## make && v -e 'println(2+2)'
## ... then do whatever you need to reproduce the CI test failure.
## Note: after you are finished, and exit the container, run `make` again, otherwise
## you will be using V (and potentially V tools) that were compiled with musl.
#######################################################################################
FROM thevlang/vlang:alpine-build

LABEL maintainer="spytheman <[email protected]>"

WORKDIR /opt/vlang

ENV PATH /opt/vlang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

## install development packages
RUN apk --no-cache add \
musl-dev libc-dev libc6-compat gcompat \
libunwind-dev libunwind-static \
gc gc-dev \
binutils diffutils elfutils \
strace gdb \
pcre bash fzf fzf-vim tmux less file colordiff \
vim vim-editorconfig \
nano nano-syntax \
micro

RUN git config --global --add safe.directory /opt/vlang &&\
git config --global --add safe.directory /opt/vlang/vc &&\
git config --global --add safe.directory /opt/vlang/thirdparty/tcc &&\
find /usr/share/nano/ -iname "*.nanorc" -exec echo include {} \; >> ~/.nanorc &&\
micro -plugin install detectindent &&\
micro -plugin install editorconfig &&\
micro -plugin install monokai-dark &&\
micro -plugin install quickfix &&\
micro -plugin install runit &&\
micro -plugin install cheat &&\
micro -plugin install jump &&\
true

## setup runtime environment for v and bash:
ENV VTMP /tmp/v
ENV VMODULES /tmp/vmodules
ENV VFLAGS "-d dynamic_boehm"

CMD ["bash"]
9 changes: 5 additions & 4 deletions .github/workflows/alpine.test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@ du -s .

ls -lat

##./v test-all
##./v -silent test-all

## try running the known failing tests first to get faster feedback
./v test vlib/builtin/string_test.v vlib/strings/builder_test.v
./v vlib/builtin/string_test.v
./v vlib/strings/builder_test.v

./v test-cleancode
./v -silent test-cleancode

./v test-self
./v -silent test-self

./v build-vbinaries

Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/benchmark_footprint_json_decode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: json decoder benchmark CI

on:
push:
paths:
- 'vlib/x/json2/**' # Trigger on changes in this folder

jobs:
json-encode-benchmark:
runs-on: ubuntu-latest
timeout-minutes: 5

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Build V
run: make -j4 && ./v symlink

- name: Run V benchmark and save output
run: (echo '```txt'; v -prod crun vlib/x/json2/tests/bench.v; echo '```') > vlib/x/json2/tests/bench_out.md

- name: Upload result file
uses: actions/upload-artifact@v6
with:
name: program-output
path: vlib/x/json2/tests/bench_out.md
29 changes: 29 additions & 0 deletions .github/workflows/benchmark_footprint_json_encode.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: json encoder benchmark CI

on:
push:
paths:
- 'vlib/x/json2/**' # Trigger on changes in this folder
- '!vlib/x/json2/strict/**' # Ignore
- '!vlib/x/json2/tests/**' # Ignore

jobs:
json-encode-benchmark:
runs-on: ubuntu-latest
timeout-minutes: 5

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Build V
run: make -j4 && ./v symlink

- name: Run V benchmark and save output
run: (echo '```sh'; v -prod crun vlib/v/tests/bench/bench_json_vs_json2.v; echo '```') > vlib/v/tests/bench/bench_json_vs_json2_out.md

- name: Upload result file
uses: actions/upload-artifact@v6
with:
name: program-output
path: vlib/v/tests/bench/bench_json_vs_json2_out.md
12 changes: 7 additions & 5 deletions .github/workflows/bootstrapping_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ on:
- '!**/bootstrapping_ci.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
group: bootstrapping-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -34,12 +34,12 @@ jobs:
os: [ubuntu-latest, macos-14]
fail-fast: false
runs-on: ${{ matrix.os }}
timeout-minutes: 30
timeout-minutes: 20
env:
VFLAGS: -no-parallel
B_LFLAGS: -lm -lpthread
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Build V
Expand All @@ -48,6 +48,7 @@ jobs:
run: |
ls -la v vc/v.c
./v -os cross -o vc/v.c cmd/v
# shellcheck disable=SC2086
cc -o v_from_vc vc/v.c $B_LFLAGS
ls -lart v_from_vc
./v_from_vc version
Expand All @@ -59,6 +60,7 @@ jobs:
ls -la v vc/v.c v_from_vc v_from_vc_produced_native_v
./v_from_vc_produced_native_v -os cross -o vc/v.c cmd/v
### do it a second time, just in case:
# shellcheck disable=SC2086
clang -o v_from_vc2 vc/v.c $B_LFLAGS
ls -lart v_from_vc2
./v_from_vc2 version
Expand All @@ -84,8 +86,8 @@ jobs:
| jq -r '.workflow_runs[4].head_sha')
echo "recent_good_commit=$recent_good_commit"
# Build oldv at recent_good_commit.
./v run cmd/tools/oldv.v -v $recent_good_commit
cd ~/.cache/oldv/v_at_$recent_good_commit
./v run cmd/tools/oldv.v -v "$recent_good_commit"
cd "$HOME/.cache/oldv/v_at_$recent_good_commit"
# Test updating
./v version && ./v -v up && ./v version
./v -o v2 cmd/v && ./v2 -o v3 cmd/v
52 changes: 52 additions & 0 deletions .github/workflows/build_on_ubuntu_25_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: CI Ubuntu 25 GCC 14.2

on:
workflow_dispatch:
push:
paths-ignore:
- '**.md'
- '**.yml'
- '!**/build_on_ubuntu_25_ci.yml'
- 'cmd/tools/**'
- '!cmd/tools/builders/**.v'
pull_request:
paths-ignore:
- '**.md'
- '**.yml'
- '!**/build_on_ubuntu_25_ci.yml'
- 'cmd/tools/**'
- '!cmd/tools/builders/**.v'

jobs:
ubuntu-25-gcc-14-2-build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v6
- name: Build and test in Ubuntu 25.04 with GCC 14.2
run: |
set -o xtrace
echo "$PWD"
whoami
touch outside_docker.txt
git log -n4
echo "running docker ..."
docker run --rm \
--mount type=bind,source=/home/runner/work/v/v,destination=/src \
-w /src ubuntu:25.04 bash -c '
set -o xtrace
echo "running inside docker"
whoami
cp -r /src ~/vproject; cd ~/vproject
touch inside_docker.txt
ls -la
git log -n4
apt update -y -qq
apt install -y -qq git build-essential make
git config --global --add safe.directory /src/vc
git config --global --add safe.directory /src/thirdparty/tcc
make
./v symlink
v run examples/hello_world.v
v run examples/primes.v
'
4 changes: 2 additions & 2 deletions .github/workflows/build_vinix_locally.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ mkdir -p $BUILD

cd $BUILD
echo "Clone current Vinix"
./v retry -- git clone https://github.com/vlang/vinix.git --depth=1
./v retry -- git clone --depth=1 https://github.com/vlang/vinix.git

cd $BUILD
echo "Clone current mlibc"
./v retry -- git clone https://github.com/managarm/mlibc.git --depth=1
./v retry -- git clone --depth=1 https://github.com/managarm/mlibc.git

cd $BUILD
echo "Patch mlibc for Vinix"
Expand Down
Loading