From 1c8adc87e9b20037ea467e3a2cc6e5ee6526c464 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 29 Jun 2023 22:14:33 +0300 Subject: [PATCH] changelog: 0.3.5 (p. 2) --- CHANGELOG.md | 132 ++++++++++++++++++++++++++++++--------------------- log.txt | 0 2 files changed, 78 insertions(+), 54 deletions(-) create mode 100644 log.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9602fc8da2..94c7e428b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,9 +12,39 @@ - Enum values now can have attributes. - Generic functions as function parameters are now supported: `fn f[T](x T, i int, f_ Fn[T]) T { `. - Anonymous structs can no longer have attributes. +- Allow fixed array returns. ### Breaking changes -- `byte` deprecated in favor of `u8` (`u8` is automatically converted to `byte` by vfmt). +- `byte` deprecated in favor of `u8` (`byte` is automatically converted to `u8` by vfmt). + +### Checker improvements/fixes +- Disallow `Result` type aliases (`type Foo = !Bar`) and `Result` in maps (`map[key]!Type`). +- Add a missing check for taking address of literal value member. +- Fixed map initialization for maps with option values. +- Allow `a << none`, where `a` is `[]?&int`. +- Disallow multiple `else` branches in a match. +- Fix index expression with sumtype of array types. +- Remove hardcoded check for function calls for `C.stat`, `C.sigaction`, etc. +- Fix multiple embedded external module interface. +- Fix missing check for diff type on map value declaration. +- Simplify error handling in the checker (#18507). +- Option alias fixes. +- Fix alias to struct ptr on struct init. +- Sumtypes can no longer hold references. +- Fix a bug checking generic closures. +- A hard to reach limit of 1 million iterations for resolving all generics. +- Fix missing check for unwrapped shift operation. +- Fix enum max value validation. +- Add a missing mutability check for `array.delete` calls. +- Disallow `_ = <- quit`. +- Disallow type matching with primitive vars. +- Warning instead of error for unnecessary brackets in if/match. +- Include import aliases when checking for import duplicates. +- Fix infering generic array type in nested call. +- Allow casted `enum val` and `const` as fixed array size. +- Disallow multiple return values in const declarations. +- Fix contains() with array of interfaces. +- Disallow mut for blank idents. ### Standard library - json: Enum value string serialization supports `[json:'alias']` to change its string values. @@ -28,59 +58,13 @@ - stbi: allow customization of number of channels in `stbi.load()`. - stbi: add a `resize_uint8` function for resizing images in memory. - time, x.json2: improve iso8601 time decoding. - -### Checker improvements/fixes -- Fix alias to struct ptr on struct init. -- Disallow `Result` type aliases (`type Foo = !Bar`) and `Result` in maps (`map[key]!Type`). -- Add a missing check for taking address of literal value member. -- Fixed map initialization for maps with option values. -- Allow `a << none`, where `a` is `[]?&int`. -- Disallow multiple `else` branches in a match. -- Fix index expression with sumtype of array types. -- Remove hardcoded check for function calls for `C.stat`, `C.sigaction`, etc. -- Fix multiple embedded external module interface. -- Fix missing check for diff type on map value declaration. -- Simplify error handling in the checker (#18507). -- Option alias fixes. -- Sumtypes can no longer hold references. -- Fix a bug checking generic closures. -- A hard to reach limit of 1 million iterations for resolving all generics. -- Fix missing check for unwrapped shift operation. -- Fix enum max value validation. -- Add a missing mutability check for `array.delete` calls. -- Disallow `_ = <- quit`. -- Disallow type matching with primitive vars. -- Warning instead of error for unnecessary brackets in if/match. - - -### ORM -- Fixed a foreign key bug that could result in an extra insert. -- Comptime bug with `[skip]` and `[sql:'-']` fixed. -- Checker error for unsupported field types. -- Allow structs without the id field, more flexible primary keys. -- Improved docs and examples. -- Uninitialized structs are no longer inserted into related tables. - -### Database drivers -- mysql: TIMESTAMP support. -- mysql: allocate memory for each string and blob dynamically depending on its value length. - -### Native backend -- Refactoring, splitting large files into multiple. - -### C backend -- Fix code generation for generic unions. -- Fix `[N]chan`. - -### Comptime -- A new `$res` comptime function to get returned value in defer block (#18382). -- Fix comptimeselector option propagation. - -### Tools -- A new VPM site: vpm.vlang.io. A better design, discoverability of packages, descriptions, most downloaded packages etc. -- vpm: installation of mixed modules. -- `v ls --install -p D:\path\vls.exe` to install a local vls executable. - +- builtin: zero out internal map/array pointers on m.free(), to reduce the work for the GC + mark phase for non escaping maps/arrays, used in hot loops. +- time: add more detailed error descriptions, add custom format parsing with time.parse_format. +- sync: add Mutex.destroy and RwMutex.destroy methods. +- datatypes: add Bloom filter. +- rand: add missing rand.u16(), update doc comments, add test. +- builtin: speed up string methods with vmemcpy instead of `for` loop for copying data. ### Web - The builtin websocket library is now thread safe. @@ -97,6 +81,46 @@ - net.html: fix parsing of nested quoted strings in code tags. - picoev: FreeBSD support. +### ORM +- Fixed a foreign key bug that could result in an extra insert. +- Comptime bug with `[skip]` and `[sql:'-']` fixed. +- Checker error for unsupported field types. +- Allow structs without the id field, more flexible primary keys. +- Improved docs and examples. +- Uninitialized structs are no longer inserted into related tables. + +### Database drivers +- mysql: TIMESTAMP support. +- mysql: allocate memory for each string and blob dynamically depending on its value length. +- mysql: add the ability to commit transactions. + +### Native backend +- Refactoring, splitting large files into multiple. + +### C backend +- Fix code generation for generic unions. +- Fix `[N]chan` (fixed arrays of channels). +- Fix nested fixed array instantiation. +- Fix fixed array of map. +- Fix stringification of usize struct fields (before, they were treated as 32 bit *signed* numbers). + +### Comptime +- A new `$res` comptime function to get returned value in defer block (#18382). +- Fix comptimeselector option propagation. +- A mutability check for comptime assignments. +- Fix comptime assigning to sumtype or indexexpr. +- Make comptime calls work with or-block. + +### Tools +- A new VPM site: vpm.vlang.io. A better design, discoverability of packages, descriptions, most downloaded packages etc. +- vpm: installation of mixed modules. +- `v ls --install -p D:\path\vls.exe` to install a local vls executable. +- vdoc: highlight comments with gray color. +- vet: allow vetting files with global variables. +- Make util.launch_tool/3 more robust, by recompiling V tools always in a known current working folder. + + + ## V 0.3.4 *30 Apr 2023* diff --git a/log.txt b/log.txt new file mode 100644 index 0000000000..e69de29bb2