From f2f6ea596966ca405bd1be34b3bf3539b0c18fb7 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 31 Aug 2022 19:24:45 +0300 Subject: [PATCH] V 0.3.1 --- CHANGELOG.md | 37 ++++++++++++++++++++++++++++++++--- v.mod | 2 +- vlib/semver/v.mod | 10 +++++----- vlib/v/pkgconfig/README.md | 2 +- vlib/v/util/version/version.v | 2 +- vlib/v/vmod/parser_test.v | 4 ++-- 6 files changed, 44 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65e4c3943a..bfd02b876d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,49 @@ ## V 0.3.1 -*Not released yet* +*31 Aug 2022* - Anonymous structs. +- Lots of bug fixes: 90% of all bugs ever submitted are closed. +- Major improvements to the fast native backend including linking support on Linux. The goal is to be able to self host V soon. +- Parallelized cc step. Speeds up -prod and clang/gcc compilation by 300-500% (depending on + the number of cores). Experimental and hidden behind a -paralell-cc flag, soon to be the default. +- New keyword/type: `nil`. Only to be used inside `unsafe`. Replaces `voidptr(0)`. - V can now find code in the `src/` directory. This allows making V repos much cleaner. +- Intel C compiler support. +- Older macOS support (<10.12). - `os.mkdir()` now has an optional `mode` parameter. -- Full termux support via `$if termux {`. +- Full termux support via `$if termux {`, more predictable logging on Android. - Go backend fixes. - More type checks. -- New keyword/type: `nil`. Only to be used inside `unsafe`. Replaces `voidptr(0)`. - DOOM is now translated/compiled and launched on CI servers. A screenshot of the running game is made via `vgret` and is compared to the expected result. - VLS performance improvements, especially on Windows. - `v ls` tool for installing, for updating, and for launching VLS (V Language Server). - Support `assert condition, extra_message`, where the `extra_message` will be evaluated and shown if the assertion fails. - Anonymous sumtypes have been removed (deprecated for now) due to complicating the language and the compiler too much. +- `encoding.csv` is now generic, supports bools, accepts a custom delimiter, and is compatible with io.Reader/io.Writer. +- Operator overloading now works with aliases and generics. +- `datatypes` module now uses operator overloading. +- All `datatypes` types can be converted to V arrays. +- `smtp` improvements including multiple recipients and base64/utf8 support. +- `v doc` now has syntax highlighting. +- `arrays.carray_to_varray()` for converting C arrays to V arrays. +- `strconv.v_sprintf()` has been deprecated in favor of string interpolation. +- TOML module now supports `[toml:...]` attributes, just like the JSON module. +- `os.walk()` is no longer recursive (still works the same). +- Windows code has been removed from `v.c` distributed on non-Windows systems. (`v_windows.c` is used on Windows.) +- ORM functions now return `Result`, so the errors can be handled. +- `#preinclude` for low level C interop. +- `net.urllib` ipv6 support. +- Lots of fixes in `shared` types. +- `io` has been migrated to `Result`. +- Third party window control in Sokol. +- Scanner optimizations. +- `string.replace_char()`, `math.round_sig()`. +- Improved multiplication performance in `math.big`. +- `net.Http.Response.text` renamed to `body`. +- Using C's #define is no longer allowed in normal V code, only in `.c.v` files. +- V interpreter improvements. +- `net.websocket` timeout is now configurable. + ## V 0.3 *30 Jun 2022* diff --git a/v.mod b/v.mod index d71f66becc..69ea2a5007 100644 --- a/v.mod +++ b/v.mod @@ -1,7 +1,7 @@ Module { name: 'V' description: 'The V programming language.' - version: '0.3.0' + version: '0.3.1' license: 'MIT' repo_url: 'https://github.com/vlang/v' dependencies: [] diff --git a/vlib/semver/v.mod b/vlib/semver/v.mod index 6e0382c5cc..4d2777921a 100644 --- a/vlib/semver/v.mod +++ b/vlib/semver/v.mod @@ -1,5 +1,5 @@ -Module { - name: 'semver' - version: '0.3.0' - deps: [] -} +Module { + name: 'semver' + version: '0.3.1' + deps: [] +} diff --git a/vlib/v/pkgconfig/README.md b/vlib/v/pkgconfig/README.md index e3457404e3..e2c3df91f6 100644 --- a/vlib/v/pkgconfig/README.md +++ b/vlib/v/pkgconfig/README.md @@ -25,7 +25,7 @@ The commandline tool is available in `vlib/v/pkgconfig/bin/pkgconfig.v` ``` $ ./bin/pkgconfig -h -pkgconfig 0.3.0 +pkgconfig 0.3.1 ----------------------------------------------- Usage: pkgconfig [options] [ARGS] diff --git a/vlib/v/util/version/version.v b/vlib/v/util/version/version.v index 557fe9a57b..5741c0ee80 100644 --- a/vlib/v/util/version/version.v +++ b/vlib/v/util/version/version.v @@ -2,7 +2,7 @@ module version import os -pub const v_version = '0.3.0' +pub const v_version = '0.3.1' // vhash() returns the build string C.V_COMMIT_HASH . See cmd/tools/gen_vc.v . pub fn vhash() string { diff --git a/vlib/v/vmod/parser_test.v b/vlib/v/vmod/parser_test.v index a1a7dddeb9..db001ceda1 100644 --- a/vlib/v/vmod/parser_test.v +++ b/vlib/v/vmod/parser_test.v @@ -8,7 +8,7 @@ fn test_ok() ? { ok_source := "Module { name: 'V' description: 'The V programming language.' - version: '0.3.0' + version: '0.3.1' license: 'MIT' repo_url: 'https://github.com/vlang/v' dependencies: [] @@ -18,7 +18,7 @@ fn test_ok() ? { content := vmod.decode(s)? assert content.name == 'V' assert content.description == 'The V programming language.' - assert content.version == '0.3.0' + assert content.version == '0.3.1' assert content.license == 'MIT' assert content.repo_url == 'https://github.com/vlang/v' assert content.dependencies == []