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
- builtin: speed up string methods with vmemcpy instead of `for` loop for copying data.
75
74
76
-
### Web
75
+
####Web
77
76
- The builtin websocket library is now thread safe.
78
77
- Enhanced builtin csrf protection in vweb.
79
78
- vweb: ability to set and get values on vweb.Context.
@@ -88,37 +87,37 @@ You can read it here:
88
87
- net.html: fix parsing of nested quoted strings in code tags.
89
88
- picoev: FreeBSD support.
90
89
91
-
### ORM
90
+
####ORM
92
91
- Fixed a foreign key bug that could result in an extra insert.
93
92
- Comptime bug with `[skip]` and `[sql:'-']` fixed.
94
93
- Checker error for unsupported field types.
95
94
- Allow structs without the id field, more flexible primary keys.
96
95
- Improved docs and examples.
97
96
- Uninitialized structs are no longer inserted into related tables.
98
97
99
-
### Database drivers
98
+
####Database drivers
100
99
- mysql: TIMESTAMP support.
101
100
- mysql: allocate memory for each string and blob dynamically depending on its value length.
102
101
- mysql: add the ability to commit transactions.
103
102
104
-
### Native backend
103
+
####Native backend
105
104
- Refactoring, splitting large files into multiple.
106
105
107
-
### C backend
106
+
####C backend
108
107
- Fix code generation for generic unions.
109
108
- Fix `[N]chan` (fixed arrays of channels).
110
109
- Fix nested fixed array instantiation.
111
110
- Fix fixed array of map.
112
111
- Fix stringification of usize struct fields (before, they were treated as 32 bit *signed* numbers).
113
112
114
-
### Comptime
113
+
####Comptime
115
114
- A new `$res` comptime function to get returned value in defer block (#18382).
116
115
- Fix comptimeselector option propagation.
117
116
- A mutability check for comptime assignments.
118
117
- Fix comptime assigning to sumtype or indexexpr.
119
118
- Make comptime calls work with or-block.
120
119
121
-
### Tools
120
+
####Tools
122
121
- A new VPM site: vpm.vlang.io. A better design, discoverability of packages, descriptions, most downloaded packages etc.
123
122
- vpm: installation of mixed modules.
124
123
-`v ls --install -p D:\path\vls.exe` to install a local vls executable.
@@ -132,7 +131,7 @@ You can read it here:
132
131
133
132
*30 Apr 2023*
134
133
135
-
### Breaking Changes
134
+
####Breaking Changes
136
135
137
136
The following changes may break compilation of existing code or change behavior at runtime:
138
137
@@ -145,7 +144,7 @@ The following changes may break compilation of existing code or change behavior
145
144
- Variable shadowing has been completely banned (previously variable names could conflict with
146
145
module names).
147
146
148
-
### Web
147
+
####Web
149
148
150
149
- vweb now supports live page reloading.
151
150
The web app is instantly updated in the browser (no need to refresh the page)
@@ -159,14 +158,14 @@ The following changes may break compilation of existing code or change behavior
159
158
- vweb now uses database pool.
160
159
- Fixed multipart form parsing in vweb.
161
160
162
-
### Backends
161
+
####Backends
163
162
164
163
- A new pure WASM backend, based on binaryen, a WASM `builtin` module, and a pure V WASM serialization library.
165
164
- Lots of fixes and new features in the native backend, including making codegen logic platform independent.
166
165
- Now code generated by the С backend, can be compiled by a C++20 compiler.
167
166
- C backend does not generate unused interface functions now.
168
167
169
-
### Compiler CLI
168
+
####Compiler CLI
170
169
171
170
-`v share file.v` for sharing code via the playground.
172
171
-`v up` speed up for when it hasn't been run for a long time (**vc/** bootstrapping has been
@@ -177,7 +176,7 @@ The following changes may break compilation of existing code or change behavior
177
176
works just like in Perl).
178
177
- A new `-ldflags` option, in addition to `-cflags`. Works just like LDFLAGS in C.
179
178
180
-
### ORM
179
+
####ORM
181
180
182
181
- All ORM queries now return `![]` (`Result` of an array).
183
182
This allows handling/propagating DB errors and simplifies working with ORM (one way).
@@ -192,7 +191,7 @@ The following changes may break compilation of existing code or change behavior
192
191
- A new `-d trace_orm` option to see all SQL queries generated and used by V ORM and
193
192
`-d trace_pg_error` to trace PG errors.
194
193
195
-
### Standard Library
194
+
####Standard Library
196
195
197
196
- Added new `termios` module.
198
197
-`net.ssl`: types using ssl contexts can now be converted to strings via `.str()`/printed
@@ -219,7 +218,7 @@ The following changes may break compilation of existing code or change behavior
219
218
-`os.Process` now has a `set_work_folder()` method to set the initial working folder of the new
220
219
child process.
221
220
222
-
### Option as a first class type
221
+
####Option as a first class type
223
222
224
223
Final steps in making the Option type a first class type:
225
224
@@ -232,7 +231,7 @@ Final steps in making the Option type a first class type:
232
231
- Allow `foo := Foo{}`, when `Foo` has an Option field, that is a struct, that has a `[required]`
233
232
tag on its fields.
234
233
235
-
### Compile-time Reflection
234
+
####Compile-time Reflection
236
235
237
236
- Compile-time interface fields evaluation.
238
237
- Compile-time enum evaluation:
@@ -245,7 +244,7 @@ Final steps in making the Option type a first class type:
245
244
- Added `$option` as a compile-time reflection type representing an any Option type.
246
245
- All special compile-time reflection types are now lowercase (`$int`, `$enum`, `$option`, etc).
247
246
248
-
### Checker Improvements/Fixes
247
+
####Checker Improvements/Fixes
249
248
250
249
- Enums can no longer be initialized like structs.
251
250
- Capture variables can no longer shadow anonymous function params.
@@ -275,11 +274,11 @@ Final steps in making the Option type a first class type:
275
274
println(*a)
276
275
```
277
276
278
-
### OSes
277
+
####OSes
279
278
280
279
- Added basic QNX support.
281
280
282
-
### Other changes
281
+
####Other changes
283
282
284
283
- Lots of documentation/readme improvements.
285
284
- Lots of playground improvements: [play.vlang.io](https://play.vlang.io), including a really cool
@@ -290,13 +289,13 @@ Final steps in making the Option type a first class type:
290
289
-`it` has been renamed to `index` in array inits.
291
290
- "Is V still fast?" web-page has been sped up by splitting the result table into multiple years.
292
291
293
-
### Development
292
+
####Development
294
293
295
294
- GitHub Copilot summaries in PRs.
296
295
297
296
## V 0.3.3
298
297
*30 Jan 2023*
299
-
### Improvements in the language
298
+
####Improvements in the language
300
299
- String interpolation simplified to just '${name}', enforced by vfmt, and updated in the entire code base.
301
300
-`go foo()` has been replaced with `spawn foo()` (launches an OS thread, `go` will be used for
302
301
upcoming coroutines instead).
@@ -318,15 +317,15 @@ Final steps in making the Option type a first class type:
318
317
- Optimized one byte `[]u8` arrays creation.
319
318
- Recursive aliasing is no longer allowed (e.g. `type Alias = map[string]Alias`).
320
319
321
-
### Breaking changes
320
+
####Breaking changes
322
321
-`[]` is now used for generics instead of `<>`.
323
322
- Accessing a pointer map value requires an `or {}` block outside `unsafe`.
324
323
325
-
### Checker improvements/fixes
324
+
####Checker improvements/fixes
326
325
- Lots of fixes in the type checker.
327
326
- Int signedness mismatch is now checked: `cannot use literal signed integer as u8`.
328
327
329
-
### Standard library
328
+
####Standard library
330
329
-`math.vec` module for generic vector math including 2D, 3D, and 4D vector operations.
331
330
- Builtin stb_image.h used by gg has been updated to the latest v2.28.
332
331
- All of vlib has been updated to use separate Option/Result types.
@@ -346,32 +345,32 @@ Final steps in making the Option type a first class type:
346
345
- New `crypto.pem` module.
347
346
- New `map.reserve()` method.
348
347
349
-
### Web
348
+
####Web
350
349
- Improved vweb stability under load.
351
350
352
-
### ORM
351
+
####ORM
353
352
- Various ORM fixes and improvements, including string interpolation support, type checks, fn calls in `where`.
354
353
355
-
### Database drivers
354
+
####Database drivers
356
355
- VFS support in the builtin `sqlite` module; `sqlite.get_affected_rows_count()`.
357
356
- Improved `pg` compatibility with older PostgreSQL versions before 2014.
358
357
-`sqlite`, `pg`, `mysql` have been moved to `db.sqlite`, `db.pg`, `db.mysql`.
359
358
360
-
### Native backend
359
+
####Native backend
361
360
- Operator support for floats, multi return.
362
361
363
-
### Comptime
362
+
####Comptime
364
363
- Improved compile time checks, like `$if x is Type {`; `$if T in [$Array, $Struct, $Alias, $Function] {`.
365
364
-`$for in` works with alias types.
366
365
- New comptime features for fields: `field.is_<field>`, `field.is_alias`, `field.is_enum`.
367
366
368
-
### OS support
367
+
####OS support
369
368
- Installation instructions for using V on NixOS.
370
369
- Better `make` support for OpenBSD.
371
370
- Much improved experience for `v install pcre` on Windows (it now bundles its own .c files, so it compiles cleanly, even if the platform does not have another pcre package installed).
372
371
- V can now be compiled with tcc on latest macOS and Apple Silicon.
373
372
374
-
### Tools
373
+
####Tools
375
374
- fast.vlang.io fixes & improvements, new server.
376
375
- New official IntelliJ plugin: https://intellij-v.github.io.
377
376
- Lots of new language documentation, a nicer table of contents.
@@ -387,7 +386,7 @@ Final steps in making the Option type a first class type:
387
386
## V 0.3.2
388
387
*31 Oct 2022*
389
388
390
-
### Improvements in the language
389
+
####Improvements in the language
391
390
- New simplified string interpolation: `println("Hello, {name}!")`. It will be the only way, old syntax (`${name}` and `$name`)
0 commit comments