|
| 1 | +## V 0.4.3 |
| 2 | +*3 January 2024* |
| 3 | +#### Improvements in the language |
| 4 | +- Implement $for comptime T.variants (#20193) |
| 5 | +- Add `r` and `R` switches for repeating in string interpolation, `'${"abc":3r}'` == 'abcabcabc' (#20197) |
| 6 | +- Comptime refactor and cleanup (#20196) |
| 7 | +- Allow comptime-for to iterate over comptime variables, add `$string` comptime type, cleanup (#20233) |
| 8 | +- Unwrap an option value automatically, inside `if o != none {` (#20275) |
| 9 | +- Complete support for smartcasting to a comptime variable type (#20270) |
| 10 | +- Improve comptime var checking with `is` operator and smartcasting (#20315) |
| 11 | + |
| 12 | +#### Breaking changes |
| 13 | + |
| 14 | +#### Checker improvements/fixes |
| 15 | +- Refactor `string` to `enum` error check, handle `EnumName(string_variable)` too (#20210) |
| 16 | +- Fix generic array method call with multi-types (#20237) |
| 17 | +- Remove unnecessary struct ref field initialization checks and notifications at map initializing(fix #20245) (#20251) |
| 18 | +- Add a notice, for accessing by key, map values, that contain pointers (to use unsafe or an `or {}` block) (#20266) |
| 19 | +- Fix mismatch checking when a function returns sumtype as an argument (fix #19325) (#20264) |
| 20 | +- Fix and cleanup uninitialized checks for array initialisers with `len:` (fix #20272) (#20279) |
| 21 | +- Give an error for `.free()` method calls, when used on fixed arrays (#20320) |
| 22 | +- Fix type mismatch checking for assignments with generics (fix #20298) (#20327) |
| 23 | +- Fix too strict checking with generics in assignment type mismatch (fix #20335) (#20346) |
| 24 | +- Disallow `string` to `voidptr` cast entirely (#20351) |
| 25 | +- Fix generic method calls with multi generic types (fix #20330) (#20360) |
| 26 | + |
| 27 | +#### Parser improvements |
| 28 | +- parser: implement thread returns result and multi_returns (fix #19281) (#20194) |
| 29 | +- parser: fix formatting struct decl with comments (#20207) |
| 30 | +- parser: fix formatting enum and interface decl with comments (#20216) |
| 31 | +- parser: fix fn call with newline opening brace (fix #20258) (#20267) |
| 32 | +- parser: fix parse_vet_file() with vfmt off/on flag (#20273) |
| 33 | + |
| 34 | +#### Compiler internals |
| 35 | +- pref: support VNORUN=1, to enable running of tests, vsh files etc (i.e. just compile them, for debugging later) |
| 36 | +- scanner: fix backslashes followed directly by newline in string literals (fix #20291) (#20296) |
| 37 | +- scanner: fix escape character handling in character/rune literals (fix #20301) (#20304) |
| 38 | +- pref: disable the -macosx_version_min clang flag by default (#20297) |
| 39 | +- builder: remove passing `-fno-strict-aliasing`, for `-prod` to gcc/icc (#20368) |
| 40 | + |
| 41 | +#### Standard library |
| 42 | +- gg: fix overlapping slices in `draw_slice_filled()` (#20182) |
| 43 | +- json: fix option sumtype handling (#20186) |
| 44 | +- builtin: add `@[direct_array_access]` to js string trim_right method (#20222) |
| 45 | +- json2: add encoder support for `time.Time` (#20228) |
| 46 | +- json2: fix encoding of 💀🐈 etc emojis (fix #20243) (#20247) |
| 47 | +- json2: make public the generic function `map_from/1` (#20294) |
| 48 | +- json2: optimise encoding to be faster than cJSON with -prod (#20052) |
| 49 | +- json2: support sumtype encoding in a more robust way (#20093) |
| 50 | +- json2: strict module (#17927) |
| 51 | +- crypto: fix notices/errors for `v -N test vlib/crypto` |
| 52 | +- crypto: add blake3 hash (#20319) |
| 53 | +- sokol: fix compiling gg and other graphical examples on OpenBSD (#20333) |
| 54 | + |
| 55 | +#### Web |
| 56 | +- net: make net.fionbio and net.msg_nosignal constants public in net_windows.c.v (#20183) |
| 57 | +- net.http: remove unused `read_set_cookies` function (#20187) |
| 58 | +- os, net.http.file: add a folder listing to the http static file server, started by file.serve/1 (#20192) |
| 59 | +- websocket: enable using an already existing connection (from vweb or another http server) (#20103) |
| 60 | +- x.vweb: fix fsanitize-address test for SSE, improve documentation on the usage of `takeover_conn` (#20249) |
| 61 | +- net.http: support `-d no_vschannel` on windows, to fix long waits, while connecting on some systems (#20265) |
| 62 | +- x.vweb: fix `$vweb.html()` integration in cgen for the newer `x.vweb` module (fix #20204) |
| 63 | +- net: support only ip and ip6 in net.tcp_listener (#20336) |
| 64 | + |
| 65 | +#### ORM |
| 66 | +- orm: fix the generated SQL for the "not equal" operator (#20321) |
| 67 | + |
| 68 | +#### Database drivers |
| 69 | +- db.pg: fix compilation error with the msvc compiler on windows, and add readme (#20326) |
| 70 | + |
| 71 | +#### Native backend |
| 72 | + |
| 73 | +#### C backend |
| 74 | +- Fix string interp with zero characters (fix #20199) (#20200) |
| 75 | +- Fix interface eq method with option and ref (fix #19441) (#20201) |
| 76 | +- Fix infix expr in method of mut receiver variable (#20225) |
| 77 | +- Fix cgen for thread wrappers, when spawning fns with with anon-fn array args and mut interfaces (fix #19425) (#20241) |
| 78 | +- Fix fixed array return when returning fixed array initialization (#20262) |
| 79 | +- Fix function generated code, when returning from match (#20263) |
| 80 | +- Fix in expression with mut and ref (fix #20268) (#20271) |
| 81 | +- Fix initialization of const string arrays on msvc (fix #20287) (#20289) |
| 82 | +- Fix code generation when 'in array init' is used as an if condition (fix #20300) (#20302) |
| 83 | +- Escape table names (fix #20313) (#20322) |
| 84 | +- Add missing clear method for generic maps (#20340) |
| 85 | +- Fix auto unwrapping option fn type (#20332) |
| 86 | +- Fix option initialization with default struct initialization to not be `none` (#20349) |
| 87 | +- Fix auto str for arr options with possible circular reference (#20354) |
| 88 | +- Fix code generation when the function returns mut fixed array (fix #20366) (#20367) |
| 89 | + |
| 90 | +#### vfmt |
| 91 | + |
| 92 | +#### Tools |
| 93 | +- ci: add new workflow, for doing the slower tests in vpm specifically with `-d network` (#20177) |
| 94 | +- tools.vpm: improve detection of already parsed modules (#20223) |
| 95 | +- scanner: change `-d debugscanner` to `-d trace_scanner` for uniformity with the other tracing options, described in CONTRIBUTING.md |
| 96 | +- v.pref: support a `-n` option, silencing only notices (#20331) |
| 97 | +- ci: add vsql to v_apps_and_modules_compile_ci.yml too (#20341) |
| 98 | +- ci: fix the workflow for Vinix, using the rules in its own .yml file (#20371) |
| 99 | +- Support -? as alias to -help (implement #20355) (#20358) |
| 100 | +- vdoc: filter testdata and tests folders by default, reduce filesystem stats calls |
| 101 | + |
| 102 | +#### Operating System support |
| 103 | +- os: small cleanup in the FreeBSD branch of os.executable/0: use fixed array for the sysctl params, instead of allocating a dynamic one (#20353) |
| 104 | +- os: improve os.executable() on OpenBSD (#20356) |
| 105 | +- v.util.diff: support OpenBSD's default `diff` tool (#20369) |
| 106 | + |
| 107 | +#### Examples |
| 108 | +- docs: update null convention in ORM example, since `@[nonull]` is no longer needed (#20286) |
| 109 | +- docs: add an example of a nullable ORM field (#20292) |
| 110 | +- example: add a path finding algorithm visualizer using gg (#20060) |
| 111 | +- examples: add an even smaller gg usage example, demonstrating how to always show the builtin fps counter, and how to avoid importing gx |
| 112 | + |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
1 | 117 | ## V 0.4.3
|
2 | 118 | *11 November 2023*
|
3 | 119 |
|
|
0 commit comments