mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
V 0.2
This commit is contained in:
parent
b16052db95
commit
e4f94b6ad5
61
CHANGELOG.md
61
CHANGELOG.md
@ -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
2
v.mod
@ -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: []
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user