Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: vlang/v

weekly.2026.05

26 Jan 10:29
6be2fbb

Choose a tag to compare

releases: weekly.2026.05

weekly.2026.04

21 Jan 20:24
37577eb

Choose a tag to compare

releases: weekly.2026.04

weekly.2026.03

13 Jan 06:50
weekly.2026.03
b0ea31e

Choose a tag to compare

releases: weekly.2026.03

weekly.2026.02

05 Jan 10:21
weekly.2026.02
e3616f2

Choose a tag to compare

releases: weekly.2026.02

0.5

31 Dec 20:08

Choose a tag to compare

0.5

V 0.5.0

31 Dec 2025

Improvements in the language

  • Add comptime if is shared support (fix #25600) (#25602)
  • Make defer{} scoped by default, use defer(fn){} to get the old behavior #25639) (#25665)
  • Add gotodef support for nested struct members, fn return types, etc (#26131)
  • Add a new v.comptime stage COMPTIME, that runs after the checker (CHECK), and before the transformer (TRANSFORM), to simplify the work that later stages do #26068 (#26161)

Checker improvements/fixes

  • Correctly detect variadic arg passed to struct fn (fix #25504) (#25509)
  • Fix $(field.name) access on closure fn (fix #25513) (#25514)
  • vls: skip unrelated files (#25531)
  • Fix mutability in for in loops with pointer values (fix #25520) (#25536)
  • Fix type inference, when pushing an empty array to a 2D array (fix #23854) (#25508)
  • Prevent array.insert for array of references when non-reference is passed (fix #25511) (#25557)
  • Add more support for mod autocomplete, allow for .vv files too (#25562)
  • Fix cast from an empty struct to option (fix #25566) (#25581)
  • Ensure ?Struct is not parsed as ??Struct when param is ?T (fix #25559) (#25564)
  • Fix if branch type nr_muls mismatch (fix #25556) (fix #25555) (#25571)
  • Fix comptime else branch handling (fix #25586) (#25589)
  • Smart detect or {} inside loop when using c <-val (fix #24550) (#25435)
  • Vls fix goto definition (#25595)
  • Fix generic resolve for external module generic static method call (fix #21476) (#25634)
  • Correctly detect type, when prepending to generic array (fix #25585) (#25645)
  • Allow cast from voidptr to sumtype in unsafe block (fix #25652) (#25657)
  • Disallow calls to a shared receiver method, on a non-shared var (fix #25577) (#25656)
  • Fix or block endwiths expr (fix #25329) (#25667)
  • Set ast file fallbacks for vls (fix #25678) (#25679)
  • Error/warn when using defer(fn) inside function-scope and lock stmts (#25681)
  • Maintain correct ref level in generic fn (fix #25676) (#25687)
  • In vls mode, make ensure_type_exists return true (#25695)
  • Only collect/hoist inner vars, when defer is function-scoped (#25693)
  • Improve type checking for sumtypes with generics (fix #25690) (#25699)
  • Unwrap for base type if ft.typ and inferred_typ are both opt (fix #25517) (#25728)
  • Disallow deference of nil (fix #25740) (#25746)
  • Fix comptime main fn (#25747)
  • Parser,fmt,checker: use a trie for matching the generic array methods all, any, count, filter, map, sort and sorted (#25759)
  • Fix array fixed unresolved return check and resolver (fix #25774) (#25790)
  • Allow explicit sumtype to option casts (fix #25796) (#25812)
  • Fix possible race on expected arg types unwrapping on cgen (#25815)
  • Skip init check for options (fix #25798) (#25830)
  • Fix module var set at change_current_file() (fix #25845) (#25846)
  • Improve handling of array decompose for dynamic arrays and array init (fix #25838) (#25843)
  • Force all fn declarations to follow after all other top level statements (fix #25889) (#25890)
  • Fix used features tracking when printing pointer values (fix #25899) (#25901)
  • Match type when auto deref occurs (fix #25913) (#25916)
  • Relax the redundant () check to a notice, to enable a future v -W test vlib/builtin job on the CI
  • remove () from match branch exprs (fix #25950) (#25952)
  • Fix array map anon fn return fixed array (fix #25928) (#25977)
  • Cleanup the output of v new --web abcd after feedback from https://youtu.be/IuE6Bo1klK0?t=555
  • Allow assign to a shared int var (fix #25986) (#25988)
  • Ensure type of global exists (fix #25910) (#25998)
  • Ensure fn pointer cannot be used as non-fn argument (fix #26017) (#26022)
  • Make sure $for eval body statements at least once to set types and avoid markused issues later (fix #26058) (#26063)
  • Fix return static method name (fix #26105) (#26110)
  • Support gotodef for struct init and sumtype rhs (#26157)
  • Detect circular type references in sumtype declarations (fix #24511) (#26162)
  • Add interface type handling and new testcase (fix #24116) (#26165)
  • Allow enum fields to reference previously declared fields (fix #25241) (#26173)
  • Clear all ref from autostr receiver_type (needed by #25857) (#26202)
  • Allow for _ being used as both import x as _ and fn f(_ int) { (fix (#26219) #26230

Parser improvements

  • Fix vls mode strut mut keyword (fix #25548) (#25551)
  • Fix vfmt comment in struct init after the update expr (fix #24361) (#25668)
  • Fix infix expr comment in middle (fix #24183) (#25671)
  • Disallow using generic functions as a field type name inside struct decl (fix #25452) (#25705)
  • Warn on @[deprecated_after] used without a corresponding @[deprecated] attribute (#25712)
  • Fix last stmt is fn call in or_expr (fix #25732) (#25739)
  • Allow for |mut x, y|expr (fix #25734) (#25735)
  • Allow using a, b and it as var names, when using the builtin array methods (fix #25729) (#25755)
  • Disallow generic function to be exported (fix #25794) (#25806)
  • Support -d trace_parse to ease diagnosing problems related to the order of parsing of .v files in modules
  • Fix the language support for a nested anonymous C.struct (fix #25807) (#25789)
  • Disallow untyped chan used as a fn parameter type (fix #25818) (#25854)
  • Improve the unused import warning message (add fixing alternatives) (#25880)
  • checker,parser,ast: make type MyBuilder = strings.Builder work (part 1); add mod fields to ast.SumTypeDecl and ast.AliasTypeDecl (#25943)
  • Remove dead code in Parser.is_array_type/0 (#26080)
  • Check invalid struct name in struct_init() (fix #26030) (#26093)
  • Remove the support for the obsolete generic fn call syntax f() (first deprecated in 2022/11) (#26126)
  • Fix comptime for lock shared field (fix #26143) (#26146)
  • checker,parser: add multifile gotodef support for -line-info (#26167)
  • Optmize Parser.call_kind (#26196)

Compiler internals

  • markused: fix markused struct heap (#25542)
  • markused: fix array.prepend C code dependency (fix #25573) (#25582)
  • markused: fix fn marked as used when variable and fn uses same name (fix #25649) (#25650)
  • checker,transformer: add always true/false branch detection for the if and match constructs (#25674)
  • v.util: measure more precisely how long a new tool recompilation lasts in launch_tool, when using v -d trace_launch_tool self
  • transformer: fix struct init comparison turning into boolean (#25724)
  • v.builder: support V_NO_RM_CLEANUP_FILES=1, to ease debugging of -usecache issues
  • v.builder: make it easier to reproduce the exact specific stages of -usecache module compilation by logging the full CLI options for each
  • v.builder: fix .vsh mode doing an implicit import os, now only for .vsh file itself (fix issue spotted in #25736) (#25745)
  • v.builder: improve diagnostic information for a failed build_thirdparty_obj_file
  • transformer: transform ArrayInit into a function call for C and native backends (part 1)
  • builder,pref: add -file-list support (implement feature #25707) (#25749)
  • pref: for -usecache, set .parallel_cc = false and .no_parallel = true to make compilations more deterministic and ease CI diagnostics
  • markused: fix missing builtin__memdup definition, when an option struct field is used (fix #25801) (#25802)
  • transformer: move array logic to array.v
  • v.builder: improve the error message for failing cgen; suggest -g and -show-c-output
  • v.pref: fix GitHub download URL for the photonwrapper .so file (fix #25708) (#25831)
  • v.pref: use v download for downloading the prebuilt photonwrapper shared library (#25849)
  • markused: fix const as fn mark as used (fix #25888) (#25895)
  • transformer: disable generic str_intp opt (fix #25896) (#25897)
  • v.scanner: remove obsolete .is_crlf and .is_vh fields (#25918)
  • v.scanner: use a named return for decode_XXX_escape_single methods, to reduce the generated C diff churn, during scanner code updates
  • markused: add new auto_str() used funcs for bootstrap (#25938)
  • v.builder: provide more detailed error message, on msvc: failed to build a thirdparty object, not just the failed command
  • v.builder: improve formatting of the failed to build a thirdparty object message for msvc
  • scanner: remove old generic check logic (fix #25959) (#25997)
  • transformer: fix the setting of a generic flag for fixed array type with -new-transformer (#26009)
  • transformer: add file/line info for fn with expand_simple_interpolation (#26135)
  • transformer: add early return to avoid transform getting applied twice for a for x < y { body (#26153)
  • markused: fix option none markused (fix #26147) (#26151)
  • v.builder: enable gc back with msvc, build separate .debug.obj thirdparty files when -g is passed, to prevent linking issues (#26215)
  • v.builder: support compiling asm .S files to .o files, mentioned in #flag directives (needed for #26185) (#26211)
  • v.builder: fix compile asm file, followup of PR #26211 (#26227)

Standard library

  • arrays: fix rotate_left() and rotate_right(), add test (#25539)
  • encoding.base58: fix encoding, add test (#25538)
  • x.crypto.chacha20poly1305: move up responsibility for allocs into higher caller (#25574)
  • crypto.cipher: fix decryption in CBC mode, add test (#25584)
  • os: use @[noinline] on os.create/1 to workaround a -cc gcc -prod panic (fix #25549)
  • time: fix non-digit checks for parse_rfc3339() (#25597)
  • gg: add explicit bounds checking for image caching methods in gg (fix #25590) (#25591)
  • time: fix quarter calculation in custom_format() (#25608)
  • rand: fix randomness in shuffle() (#25617)
  • gg: destroy unused GPU resources before replacing cached images (#25615)
  • encoding.binary: fix serialize skip struct shared fields (related to issue #25600) (#25613)
  • x.crypto.chacha20poly1305: make implementation use fixed sized arrays more (#25627)
  • builtin: make result stri...
Read more

weekly.2025.01

30 Dec 03:25
weekly.2025.01
8f8a491

Choose a tag to compare

releases: weekly.2025.01

weekly.2025.52

22 Dec 08:10
weekly.2025.52
24e9f68

Choose a tag to compare

releases: weekly.2025.52

weekly.2025.51

15 Dec 17:32
weekly.2025.51
26305ec

Choose a tag to compare

releases: weekly.2025.51

weekly.2025.50

08 Dec 04:37
weekly.2025.50
c3f0053

Choose a tag to compare

releases: weekly.2025.50

weekly.2025.49

01 Dec 12:59
weekly.2025.49
55436ca

Choose a tag to compare

releases: weekly.2025.49