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
|
||||
*28 Nov 2020*
|
||||
(V 0.2 RC)
|
||||
## V 0.2
|
||||
*22 Dec 2020*
|
||||
- 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`.
|
||||
- Fixes in type alise, to make them behave just like the types they alias.
|
||||
- `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
|
||||
*5 May 2020*
|
||||
|
2
v.mod
2
v.mod
@ -1,7 +1,7 @@
|
||||
Module {
|
||||
name: 'V'
|
||||
description: 'The V programming language.'
|
||||
version: '0.1.30'
|
||||
version: '0.2'
|
||||
license: 'MIT'
|
||||
repo_url: 'https://github.com/vlang/v'
|
||||
dependencies: []
|
||||
|
@ -6,7 +6,7 @@ fn test_from_file() {
|
||||
data := vmod.from_file('./v.mod') or { panic(err) }
|
||||
assert data.name == 'V'
|
||||
assert data.description == 'The V programming language.'
|
||||
assert data.version == '0.1.30'
|
||||
assert data.version == '0.2'
|
||||
assert data.dependencies.len == 0
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,7 @@ import v.pref
|
||||
import v.vmod
|
||||
|
||||
pub const (
|
||||
v_version = '0.1.30'
|
||||
v_version = '0.2'
|
||||
)
|
||||
|
||||
// math.bits is needed by strconv.ftoa
|
||||
|
Loading…
Reference in New Issue
Block a user