You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+34-6Lines changed: 34 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,18 @@
1
1
## V 0.3.4
2
-
*wip 30 Apr 2023*
3
-
- A new VPM site: vpm.vlang.io. A better design, discoverability of packages,
4
-
descriptions, most downloaded packages etc.
2
+
*30 Apr 2023*
5
3
-**vweb now supports live page reloading**. The website is instantly updated in the browser (no need to refresh the page) everytime a .v or a .html file is changed.
6
4
- vweb is now significantly faster and more stable under load, due to a new multithreaded worker pool, which is much more efficient at spreading the workload among all threads equally.
7
-
- A new pure WASM backend, based on binaryen, and a WASM `builtin` module.
8
-
- Lots of playground improvements: play.vlang.io.
5
+
- Middleware support in vweb.
6
+
- vweb now supports controllers. It's now possible to have multiple app structs to better separate logic.
7
+
- vweb: overridable `.not_found()` method for custom 404 pages.
8
+
- A new pure WASM backend, based on binaryen, a WASM `builtin` module, and a pure V WASM serialization library.
9
+
- Lots of playground improvements: play.vlang.io, including a really cool feature: "Show generated C code".
9
10
-`v share file.v` for sharing code via the playground.
10
11
- All ORM queries now return `![]` (`Result` of an array). This allows to handle/propagate DB errors and simplifies working with ORM (one way).
11
12
- Many ORM improvements: type checks for `limit/offset/order by/where`; support of reference objects in `insert`; struct fields can be used with `limit/offset`; `Connection` interface.
12
13
- ORM now supports the `like` operator: `users := sql db { select from User where name like 'Bob%' }`.
13
-
- A new command line flag `-e` for instant code execution: `v -e "println(2+5)"` (works just like Perl).
14
+
- A new `-d trace_orm` option to see all SQL queries generated and used by V ORM and `-d trace_pg_error` to trace PG errors.
15
+
- A new command line flag `-e` for running short V programs on command line: `v -e "println(2+5)"` (works just like in Perl).
14
16
-`v up` sped up for when it hasn't been run for a long time (vc/ bootstrapping has been optimized).
15
17
- Lots of new checks in the checker.
16
18
- Variable shadowing has been completely banned (previously variable names could conflict with module names).
@@ -37,6 +39,7 @@ descriptions, most downloaded packages etc.
37
39
- Comptime reflection now supports interface fields.
38
40
- comptime: `$option` (`for f in Foo.fields { $if f.typ is $option { ...`).
39
41
- comptime: compile-time enum evaluation with `$for
42
+
- comptime: all types are now lowercase (`$int, $enum, $option` etc).
40
43
item in MyEnum.fields { dump(item.value) dump(item.name) }`.
41
44
- Arrays of `Option`s are now allowed.
42
45
-`it` has been renamed to `index` in array inits.
@@ -47,6 +50,31 @@ descriptions, most downloaded packages etc.
47
50
- Basic QNX support.
48
51
- A new `-ldflags` option, in addition to `-cflags`. Works just like LDFLAGS in C.
49
52
-`urllib.Values.get()` now returns an Option.
53
+
-`strconv`: `v_printf()` was made private, `v_sprintf()` was deprecated. String interpolation should be used instead.
54
+
- Fixed a bug with closures with fixed array variables.
55
+
- Generic struct inits no longer need explicit types provided: `struct Foo[T, U] { a T; b U } foo := Foo{a:2, b:'x'}`
56
+
-`os.Process` now has a `create_no_window` option (Windows only).
57
+
-`os.Process` now has a `set_work_folder()` method to set the initial working folder of the new child process.
58
+
-`json`: enums are serialized as strings by default, `[json_as_number]` attribute can be used for the old behavior.
59
+
-`net.http`: mime types have been updated to include all official types.
60
+
-`gg`: `create_image()` now returns `!Image` instead of `Image`, allowing to handle errors.
61
+
- sokol: errors during image creation no longer result in a panic, but can be handled by the programmer.
62
+
- sokol: macOS apps can now be quit using Cmd+Q.
63
+
- A new `termios` module.
64
+
- Lots of fixes and new features in the native backend, including making codegen logic platform-independent.
65
+
-`strconv.atoi` optimizations.
66
+
-`println()` now supports arrays with recursive references.
67
+
- Multipart form parsing fixes in vweb.
68
+
- A database pool in vweb.
69
+
- termux: support for cross-compilation from termux to other platforms.
70
+
- GitHub Copilot summaries in PRs.
71
+
- unsafe: dereferencing nil references is no longer allowed.
72
+
- os: fixed a memleak in `getline()`.
73
+
- Mixing multi-return results with other types in return statements is no longer allowed (this simplifies the code).
74
+
- Assigning anonymous structs to named structs is no longer allowed.
0 commit comments