1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
This commit is contained in:
Alexander Medvednikov 2020-12-22 20:48:26 +01:00
parent b16052db95
commit e4f94b6ad5
4 changed files with 60 additions and 7 deletions

View File

@ -1,9 +1,62 @@
## V 0.1.30 ## V 0.2
*28 Nov 2020* *22 Dec 2020*
(V 0.2 RC) - Compile-time memory management via `-autofree`. [Video demonstration](https://www.youtube.com/watch?v=gmB8ea8uLsM).
It will be enabled by default in 0.3
- Channels and locks.
- Thread safe typed arrays via keyword `shared`.
- Struct embedding.
- IO streams.
- A powerful websocket module that conforms to RFC 6455 and passes the Autobahn test suite (498 client tests and 249 server tests).
- V's graphics module now uses Metal/DirectX/OpenGL instead of just OpenGL.
- V can now run in the browser via WASM and execute V code by translating it to JavaScript:
https://v-wasm.now.sh
- V binaries for Linux/Windows/macOS are now built and deployed automatically via GitHub Actions.
- Smart casting for sumtypes and interfaces, including complex expressions: `if x.expr is int { println(x.expr + 1) }`.
- Smart casts for interfaces.
- A new `term.ui` module for building dynamic terminal UIs with an example editor written in it.
- Clean and easy way to sort arrays: `users.sort(a.name > b.name)`.
- A huge amount of `vfmt` fixes and improvements. It has now reached a point where it can be safely used on any V source file.
- A new CI job that runs `v fmt -verify` on the entire code base, a new command that makes sure the file
has been vfmt'ed. This ensures that all code submitted to the V project is formatted.
- A new tool `v vet` for analyzing the project and finding potential bugs and errors.
- Early iOS and Android support.
- All missing ORM features from the old backend were brought back.
- Magic `it` variable has been replaced with smart casts (the change is completely handled by vfmt).
- Explicit parentheses requirement in complex boolean expressions
- Cross-compiling to Windows and Linux brought back.
- C2V can now generate wrappers. Example: https://github.com/medvednikov/libsodium.
- C++ compiler support: code, generated by the C backend can now by compiled by C++ compilers.
- Short generics syntax: `foo(5)` instead of `foo<int>(5)`.
- Cached modules via `-usecache`. Faster compilation due to not needing to rebuild the entire vlib for
each program. Will be enabled by default in 0.2.1.
- New improved sum types implementation.
- Lots of errors that happen often during the development cycle were turned into warnings to increase
development speed. They are still errors in production builds.
- Labeled `break` and `continue`.
- Lots of documentation. The official language documentation grew 3 times in size.
- `modules.vlang.io` is now generated automatically on every commit.
- Builtin compile-time JSON serializer now supports `time.Time`. - Builtin compile-time JSON serializer now supports `time.Time`.
- Fixes in type alise, to make them behave just like the types they alias.
- `array.contains(element)` is now generic. - `array.contains(element)` is now generic.
TODO - Lots of improvements to the JS backend and its type system.
- Simpler and more constinent function arg syntax: `foo(a int, b int, c string)` instead of `foo(a, b int, c string)`
- Lots of fixes and optimizations in the hashmap.
- Lots of missing checks in the type checker were added (for example, checking the correct usage of public struct fields).
- Mutability bug fixes
- Taking the address of a map value is no longer allowed, like in Go.
- Matrix multiplication.
- `println` was made even smarter, and can now handle complex types.
- Precompiled text templates can now be used outside of vweb via `$tmpl()`.
- Gitly, a big web application written in vweb has been released: https://github.com/vlang/gitly
- `['/:arg1/:arg2/action']` vweb action attribute for easily getting query parameters assigned to method arguments.
- Improved performance of text rendering, `gg.text_width()`.
- Webview module in V UI.
- Binary enum flags.
- `[export]` attribute to change exported function name (for example for calling from a C library).
- `unsafe`
- Hundreds of other fixes, features, and tests (from now on the changelog will be updated
right away as the feature/bug fix lands).
## V 0.1.27 ## V 0.1.27
*5 May 2020* *5 May 2020*

2
v.mod
View File

@ -1,7 +1,7 @@
Module { Module {
name: 'V' name: 'V'
description: 'The V programming language.' description: 'The V programming language.'
version: '0.1.30' version: '0.2'
license: 'MIT' license: 'MIT'
repo_url: 'https://github.com/vlang/v' repo_url: 'https://github.com/vlang/v'
dependencies: [] dependencies: []

View File

@ -6,7 +6,7 @@ fn test_from_file() {
data := vmod.from_file('./v.mod') or { panic(err) } data := vmod.from_file('./v.mod') or { panic(err) }
assert data.name == 'V' assert data.name == 'V'
assert data.description == 'The V programming language.' assert data.description == 'The V programming language.'
assert data.version == '0.1.30' assert data.version == '0.2'
assert data.dependencies.len == 0 assert data.dependencies.len == 0
} }

View File

@ -9,7 +9,7 @@ import v.pref
import v.vmod import v.vmod
pub const ( pub const (
v_version = '0.1.30' v_version = '0.2'
) )
// math.bits is needed by strconv.ftoa // math.bits is needed by strconv.ftoa