05st
3e52d54586
cgen: fix match expr when evaluating to sumtype ( #12237 )
2021-10-20 11:52:11 +03:00
ChAoS_UnItY
ab350d52ec
cgen: support RangeExpr while emitting enum switch case ( #12226 )
2021-10-19 17:02:22 +03:00
ChAoS_UnItY
53c2e262f1
cgen & jsgen: generate when possible a `switch` from `match x {` ( #12216 )
2021-10-18 10:59:52 +03:00
05st
fd3a10ab43
checker: fix mut check bypass with for in loops ( #12208 )
2021-10-17 06:41:39 +03:00
yuyi
27cd21e459
cgen: fix infix ops, for cross assignments of types with overloaded operators ( #12192 )
2021-10-15 11:32:58 +03:00
yuyi
05885059bd
cgen: remove the extra generated parentheses of single in_expr ( fix #12158 ) ( #12168 )
2021-10-14 11:38:16 +03:00
ChAoS_UnItY
d0c961ebc0
transformer: eliminate unreachable branches in IfExpr and fold more expressions and statements ( #12135 )
...
* v: fix using constant as length in fixed array
* format test file
* v/trasnformer: discard unreachable if branches
* transform more expressions and statements
* replace IfExpr with EmptyExpr when all branches were eliminated
* fix typo
* fix gens
* only allows branch elimination on if expression statement
* fix native gen
* fix handling of multi branch ifs in the native backend, also allow for `if true {}`
Co-authored-by: KyleLin921021 <43753315+KyleLin921021@users.noreply.github.com>
Co-authored-by: Delyan Angelov <delian66@gmail.com>
2021-10-11 14:29:17 +03:00
05st
e69df54a36
cgen: fix multi-return in if/match exprs ( #12139 )
2021-10-11 02:45:01 +03:00
yuyi
3c7c11e55b
cgen: fix sumtype with none type ( fix #12101 ) ( #12102 )
2021-10-09 03:32:37 +03:00
Delyan Angelov
e53682320c
v.gen.c: fix compiling `go f(x)` for `x` of the same struct in different .v files with parallel cgen
2021-10-06 22:12:21 +03:00
yuyi
f1742a6f62
v.ast: change 'type.to_ptr()' to 'type.ref()' ( #12086 )
2021-10-06 20:49:39 +03:00
Wertzui123
77c18f4435
cgen: fix alphabetic order of ast statement generation ( #12080 )
2021-10-06 14:32:42 +03:00
Delyan Angelov
aa8915bdf6
v.gen.c: fix `[console]` handling for `sokol` programs on windows with parallel cgen
2021-10-05 23:57:14 +03:00
Delyan Angelov
6d2c1f7e2c
v.gen.c: enable again parallel cgen for `-g`, make `-g` more robust
2021-10-05 21:51:49 +03:00
crthpl
7cf9c198fe
asm: add segment addressing and fix [10] ( #12068 )
2021-10-05 18:57:15 +03:00
Delyan Angelov
92f2e5bad2
v.gen.c: fix compilation with `-prod`, for files using `$embed_file()` (regression after parallel cgen in 85b58b0
)
2021-10-05 15:06:17 +03:00
05st
7555b337b9
cgen: fix expr_as_cast for int/float literals ( #12067 )
2021-10-05 09:53:05 +03:00
yuyi
e94e08475d
cgen: format shared structs ( #12062 )
2021-10-04 18:27:38 +03:00
yuyi
82e6d6e51d
cgen: fix threads array wait without go calls ( fix #12009 ) ( #12050 )
2021-10-03 18:24:44 +03:00
yuyi
10caf4a84a
cgen: cleanup generated thread wait code ( #12048 )
2021-10-03 10:52:29 +03:00
05st
cc4af235f3
cgen: fix if-expression code generation if it evaluates to propagating optional / or block ( #12032 )
2021-10-02 14:30:04 +03:00
Delyan Angelov
149517ced4
v.builder,v.gen: time Builder.front_stages.parse_files, Builder.resolve_deps, Gen.sort_structs
2021-09-30 20:49:19 +03:00
Alexander Medvednikov
d4b3c65c45
cgen: a minor optimization; checker: a c2v fix
2021-09-30 12:51:53 +03:00
yuyi
f2c710d306
cgen: fix fn mut args with interface type ( #12012 )
2021-09-29 13:54:23 +03:00
Delyan Angelov
24c1d552d7
ci: vfmt vlib/v/gen/c/cgen.v
2021-09-29 08:58:27 +03:00
André Diego Piske
8dde9d4a7b
cgen: fixes for ... in with index ( #11995 )
2021-09-28 19:35:07 +03:00
yuyi
5d3795e876
cgen: fix the C codegen error for '_ = map[key]' ( fix #11999 ) ( #12000 )
2021-09-28 18:45:50 +03:00
Delyan Angelov
d07a96ede8
v.gen.c: fix `v examples/hello_world.v` on FreeBSD
2021-09-28 12:00:34 +03:00
crthpl
85b58b03a3
cgen: parallelize ( #10844 )
2021-09-28 10:28:04 +03:00
yuyi
4c01627e00
cgen: cleanup stmt_path_pos processing ( #11983 )
2021-09-26 15:51:18 +03:00
yuyi
d93737dd34
cgen: fix assign map get to blank ( fix #11508 ) ( #11982 )
2021-09-26 13:07:51 +03:00
Delyan Angelov
ece5fa183c
fast.v: freebsd fixes
2021-09-23 13:48:41 +03:00
Alexander Medvednikov
27f5c35bde
autofree: test returning optionals
2021-09-23 09:18:01 +03:00
Alexander Medvednikov
7b60367512
autofree: free reference types with -experimental for now
2021-09-23 04:35:09 +03:00
Delyan Angelov
bf2569a9a8
all: support `mut volatile x := 123` declarations ( #11940 )
2021-09-22 13:06:30 +03:00
Alexander Ivanov
b9720f5d9e
cgen: fix struct init with multiple branches, fixes #11564 ( #11570 )
2021-09-22 00:46:07 +03:00
yuyi
108a01d65f
fmt: fix unnecessary line break in array init ( fix #11448 ) ( #11562 )
2021-09-21 16:20:09 +03:00
Enzo
b2ecca3966
all: remove `size_t` ( #11478 )
2021-09-21 02:12:38 +03:00
El Koulali András
9c4507d115
cgen: fix illegal character encoding with rune consts above 127 ( #11550 )
2021-09-20 10:45:42 +03:00
05st
f9f4867c25
tmpl: fix $tmpl comptime operation only working in return statement ( #11541 )
2021-09-19 23:22:26 +03:00
Alexander Medvednikov
219a764a83
autofree: only free user reference types
2021-09-18 06:32:25 +03:00
Alexander Medvednikov
6d47dd22df
autofree: free references
2021-09-18 04:19:16 +03:00
yuyi
467afad065
cgen: use `if foo in [TypeA, TypeB]` in cgen.v ( #11518 )
2021-09-16 19:26:53 +03:00
yuyi
d5e00b0920
checker, cgen: fix generic arrays sum() ( #11502 )
2021-09-16 07:08:28 +03:00
yuyi
9554470985
checker, cgen: fix generic operator overload of 'cmp' ( #11489 )
2021-09-14 16:20:02 +03:00
Alexander Medvednikov
ae41d1d3c6
builtin, cgen: more -nofloat fixes
2021-09-13 19:06:19 +03:00
Alexander Medvednikov
5c4385a472
cgen: nofloat for kernel code
2021-09-10 20:54:48 +03:00
Enzo
cc8ee5fb84
all: introduce `isize` and `usize` ( #11437 )
2021-09-08 05:53:39 +03:00
yuyi
6084c0fc54
checker, cgen: fix complex generic sumtype ( fix #11392 ) ( #11400 )
2021-09-06 03:15:53 +03:00
yuyi
87934ecf39
cgen: fix variable name are 'array' or 'string' ( fix #10991 #11343 ) ( #11378 )
2021-09-04 19:51:45 +03:00
Enzo
d1974f500f
cgen: cleanup `Gen.cc_type` ( #11357 )
2021-08-31 23:55:37 +03:00
Daniel Däschle
ac442abc11
checker: allow noreturn in match expr ( #11126 )
2021-08-29 11:57:11 +03:00
yuyi
a440b43630
checker, cgen: fix generic struct with non_generic interface ( #11240 )
2021-08-20 01:13:48 +03:00
spaceface
67e8031a08
cgen: fix interface parameters in fn type aliases ( #11247 )
2021-08-20 01:12:31 +03:00
spaceface
09e854c064
cgen: small interface conversion fix ( #11229 )
2021-08-18 13:47:57 +03:00
spaceface
7d9969ac17
all: support runtime interface conversions ( #11212 )
2021-08-17 21:00:27 +03:00
yuyi
8521e227b4
cgen: fix if expr of multi stmts ( #11208 )
2021-08-16 21:48:58 +03:00
yuyi
90b052b1db
v.gen.c: fix error of if_expr in infix_expr ( #11200 )
2021-08-16 11:23:19 +03:00
Delyan Angelov
f67e5d12e5
v.gen.c: fix v_typeof_interface_idx codegen (add `static `)
2021-08-15 09:15:33 +03:00
Delyan Angelov
deb26b92b9
cgen: support `typeof(x).idx`, as well as `iface.type_idx()` ( #11178 )
2021-08-14 17:22:25 +03:00
Delyan Angelov
900c37aa65
v.gen.c: support `T.typ` - an int for the type index of the generic type `T` ( #11175 )
2021-08-14 08:48:25 +03:00
Delyan Angelov
34d39ccb64
builtin: fix leak in rune.str(), fix leaks in most assert x == y statements in tests ( #11091 )
2021-08-13 18:37:34 +03:00
Enzo
9d4d0a9894
v.gen.c: generate the closure helper for the choosen target platform, not the current one ( #11134 )
2021-08-11 14:09:40 +03:00
Enzo
da53f818df
all: initial support for closures (x64 / linux-only) ( #11114 )
2021-08-10 21:27:15 +03:00
yuyi
11794039e2
v.gen.c: fix fn variadic of reference param ( #11115 )
2021-08-10 10:36:11 +03:00
yuyi
1f3f7705a2
cgen: fix struct_init with fixed array field ( #11099 )
2021-08-08 10:54:52 +03:00
Daniel Däschle
3b116d2455
cgen: support embedded struct fields on sumtype common fields ( #11084 )
2021-08-06 21:26:19 +03:00
zakuro
490dec222f
fmt: keep char literal, `'` ( #11060 )
2021-08-06 06:21:28 +03:00
Daniel Däschle
91ade5bf8c
cgen: fix shared field init ( #11061 )
2021-08-06 05:11:03 +03:00
Enzo
44bacfc931
cgen: fix optional generation order ( #11070 )
2021-08-06 03:57:34 +03:00
Enzo
7346aeca5f
cgen: refactor array sort generation ( #11067 )
2021-08-06 03:55:48 +03:00
Louis Schmieder
0bb587c8c2
checker: fix defer ident handling & fix defer optional error message ( #10975 )
2021-07-30 20:29:06 +03:00
Uwe Krüger
a7c2aaf35b
cgen: initialize globals directly for simple cases ( #11002 )
2021-07-30 19:20:45 +03:00
Delyan Angelov
f67922782e
ci: fix tools using `import math`, for `const x = i64(-9223372036854775807-1)` fails
2021-07-30 17:56:46 +03:00
Delyan Angelov
06d1422a05
ast,checker,cgen: support simple `const x = u16(0x53)` without using _vinit()
2021-07-30 17:22:27 +03:00
Daniel Däschle
6fa8e4269e
checker: force interface init ( #10910 )
2021-07-30 03:18:20 +03:00
Uwe Krüger
08aa6c08f6
all: more improvements for global variables ( #10986 )
2021-07-29 10:57:31 +03:00
Delyan Angelov
7a9b326200
ci: fix -cstrict rebuilding of V with clang
2021-07-29 09:54:52 +03:00
Uwe Krüger
45ad48d76a
cgen: properly handle initialization expression for globals ( #10981 )
2021-07-28 08:11:55 +03:00
Uwe Krüger
abd17ddb6a
cgen: initialize globals with default initializer when none is given. ( #10979 )
2021-07-27 20:14:30 +03:00
Delyan Angelov
6134c4870b
v.util: extract v.util.version, use it to speed up building `v repl`, `v up` and `v doctor`
2021-07-27 12:59:56 +03:00
Delyan Angelov
b44f81528f
v.gen.c: fix codegen for `const a = u64(5) + 5`
2021-07-26 08:06:59 +03:00
Uwe Krüger
55c5b9ce7b
cgen: panic with error message when `go` command fails ( #10943 )
2021-07-25 01:13:34 +03:00
Delyan Angelov
6313ed6a79
checker,cgen: fix `-os cross` support for `$if !solaris { #include <sys/ptrace.h> }`
2021-07-23 16:24:42 +03:00
yuyi
f5776eb259
cgen: fix multiple assign array index ( #10926 )
2021-07-23 15:46:18 +03:00
Louis Schmieder
26db3b0995
orm: redesign orm (re-write it in V) ( #10353 )
2021-07-23 12:33:55 +03:00
Daniel Däschle
091ce6cc08
cgen: fix several sort declarations ( #10919 )
2021-07-23 08:55:55 +03:00
Daniel Däschle
2c0c211c79
all: implement accessing embedded field and method of aggregate ( #10907 )
2021-07-23 01:14:39 +03:00
Daniel Däschle
054bd67490
cgen: don't change field name of c structs ( #10894 )
2021-07-22 01:37:49 +03:00
Uwe Krüger
713a079684
cgen: properly support `typeof()`, sizeof(), ... in compile time `for` ( #10896 )
2021-07-21 23:43:30 +03:00
Daniel Däschle
aebb028349
gen: fix C keyword escape to _v_ instead of just v_ ( #10876 )
2021-07-21 11:46:04 +03:00
Delyan Angelov
24c59881f5
v.gen.c: do not use precomputed const values in -usecache mode (fix `v test-all` on M1)
2021-07-20 17:52:07 +03:00
Delyan Angelov
2c9f6899ba
v.gen.c: fix `v -cstrict -o vtmp_werror cmd/v` on Apple M1
2021-07-20 16:09:47 +03:00
Uwe Krüger
f457b94fe4
cgen: properly support reference args in receivers and arithmetic op methods ( #10873 )
2021-07-20 15:08:32 +03:00
Daniel Däschle
60b705b4c4
checker, gen: implement basic struct embed direct field init support ( #10871 )
2021-07-20 15:06:06 +03:00
Daniel Däschle
ad3835b598
parser: deprecate short struct init ( #10842 )
2021-07-20 11:17:08 +03:00
Enzo
1db354c360
v.gen.c: fix codegen ordering problem with interfaces with interface fields ( #10862 )
2021-07-19 19:57:12 +03:00
Delyan Angelov
83b0a80ff4
ci: fix MSVC build (delay const string initialiastion to _vinit)
2021-07-19 08:20:09 +03:00
Delyan Angelov
241a7b760d
strconv,checker,cgen: fix -cstrict compilation of hello_world.v
2021-07-19 01:08:48 +03:00
Delyan Angelov
48546d0f45
all: do compile time const evaluation for `const x = "abc" + "xyz"` and `const x = 16 * 1024 + 5` (fix const prealloc_block_size)
2021-07-18 22:59:18 +03:00
Delyan Angelov
568aa742b2
v.parser: improve conditions for debugging ast.CastExpr parsing
2021-07-17 17:49:29 +03:00
crthpl
ec47cda386
cgen: fix other generic pointer cases ( #10834 )
2021-07-17 11:51:42 +03:00
spaceface
ebc34c237b
cgen: fix generating invalid Option decls for generic interfaces ( #10817 )
2021-07-15 22:15:25 +03:00
spaceface
6e942bf4c2
v: initial support for generic interfaces and sumtypes ( #10795 )
2021-07-15 08:29:13 +03:00
yuyi
7687b28d8d
cgen: remove Gen.write_expr_to_string() ( #10804 )
2021-07-15 08:15:28 +03:00
yuyi
ed78e638b3
cgen: fix if_expr with array methods cond ( #10786 )
2021-07-13 19:51:49 +03:00
yuyi
2a9d6fef9f
cgen: fix initialization errors with fixed array aliases ( #10784 )
2021-07-13 10:51:54 +03:00
Delyan Angelov
13917dc095
Revert "cgen: fix g.typ() not adding correct number of * for generic types ( #10687 )"
...
This reverts commit bfafdb69c9
.
2021-07-08 22:15:44 +03:00
crthpl
bfafdb69c9
cgen: fix g.typ() not adding correct number of * for generic types ( #10687 )
2021-07-08 21:28:40 +03:00
yuyi
fb9b2e873c
checker: fix generic fn with assign reference generic struct ( fix #10681 ) ( #10695 )
2021-07-08 16:50:25 +03:00
yuyi
6436d9a827
cgen: fix error of generic array typedef ( #10679 )
2021-07-07 12:42:53 +03:00
crthpl
d14de5fdaf
all: fix generic functions with pointer args ( #10686 )
2021-07-07 11:51:05 +03:00
yuyi
9f8c3cc159
cgen: fix fn return array of interface ( #10677 )
2021-07-06 16:33:26 +03:00
Delyan Angelov
6dde9f76c6
cgen: reset g.tmp_count at the start of each fn (minimise v.c commit delta)
2021-07-06 14:50:30 +03:00
yuyi
59d80e2758
cgen: fix interface fn return with struct_init ( #10675 )
2021-07-06 10:14:13 +03:00
Delyan Angelov
6aecda3be8
all: support `[noreturn] fn abc() { for{} }`, mark panic/1 and exit/1with it too. ( #10654 )
2021-07-04 20:24:19 +03:00
yuyi
f246d73d6e
cgen: fix generic fn return mut parameter ( #10662 )
2021-07-04 18:36:37 +03:00
Daniel Däschle
0f9537ece5
all: remove ustring ( #10630 )
2021-07-03 20:14:09 +03:00
yuyi
5a4a1997e7
cgen: fix empty struct initilization ( #10651 )
2021-07-03 20:11:56 +03:00
Alexander Medvednikov
41e88423aa
Revert "builtin: use == 0 instead of isnil()"
...
This reverts commit 8650ec6916
.
2021-07-01 06:21:03 +03:00
Daniel Däschle
3881e97a40
vlib: remove ustring usage ( #10618 )
2021-06-30 22:30:28 +03:00
Daniel Däschle
6838030ab5
builtin: add string.runes() ( #10611 )
2021-06-30 09:17:38 +03:00
yuyi
04221475d1
cgen: fix go call interface method ( fix #10520 ) ( #10602 )
2021-06-29 11:16:15 +03:00
yuyi
4af4f2b5a5
cgen: fix `go fn(mut x Interface){ println(x) }(x)` ( #10585 )
2021-06-28 16:31:11 +03:00
Delyan Angelov
8650ec6916
builtin: use == 0 instead of isnil()
...
Do not rely on C inlining that may not happen for a *very* frequently
called fn in lower level code.
2021-06-28 10:59:14 +03:00
yuyi
67d1b72e36
cgen: fix interface with nested fields ( fix #10077 ) ( #10589 )
2021-06-28 10:24:05 +03:00
spaceface
4bed4afef7
cgen: fix clash in generated variant and method names ( #10581 )
2021-06-27 19:05:32 +03:00
Alexander Medvednikov
02f4f635cf
cgen: remove debug comments before for loops
2021-06-26 02:06:02 +03:00
yuyi
e8a1e9d88f
cgen: fix interface only declare with optional method ( #10546 )
2021-06-23 15:14:08 +03:00
crthpl
500b48788e
parser, cgen: fix basic asm registers, fix numbered labels in addressing, support indirect branching ( #10545 )
2021-06-23 14:20:07 +03:00
Delyan Angelov
a588e50b47
v.gen.c: remove unused g_str_buf
2021-06-23 12:22:04 +03:00
Uwe Krüger
72358833e0
time: use `Duration(C.INT64_MAX)` as infinite ( #10539 )
2021-06-22 12:17:44 +03:00
Delyan Angelov
79df7f51c3
v: deprecate `[if ident]` in favour of `[if ident ?]`
2021-06-22 10:30:14 +03:00
yuyi
6dbe8a8a2c
cgen: fix for in mut reference selector val ( fix #10524 ) ( #10536 )
2021-06-21 19:25:18 +03:00
Uwe Krüger
8f2f377cb1
v.checker,v.gen.c: extend auto heap mechanism to objects used as interfaces ( #10529 )
2021-06-21 07:10:10 +03:00
Uwe Krüger
f32a76b268
all: promote value type function arguments to heap if necessary ( #10528 )
2021-06-20 18:40:24 +03:00
yuyi
6c8182cc25
cgen: fix assigning literal fixed arrays to map values ( #10525 )
2021-06-20 13:36:01 +03:00
Enzo
44d0305ca9
checker,gen: remove automatic string to C string conversion ( #10144 )
2021-06-20 09:30:08 +03:00
yuyi
afc81277be
v.gen.c: fix assigning a fixed array variable to a map value ( #10523 )
2021-06-20 08:09:24 +03:00
yuyi
2298063129
checker: fix nested if smartcast selector exprs ( fix #10372 #10379 ) ( #10502 )
2021-06-18 14:49:15 +03:00
Enzo
05f0f3e180
v.gen.c: refactor infix expression ( #10485 )
2021-06-18 14:27:52 +03:00
crthpl
4abb1a8b7b
cgen: fix unknown labels in addressing ( #10503 )
2021-06-18 13:03:38 +03:00
crthpl
4688c75389
cgen, parser: fix several assembly bugs ( #10498 )
2021-06-18 01:20:46 +03:00
yuyi
1dca06495d
checker: implement if smartcast multi conds (part 1) ( #10477 )
2021-06-16 19:16:15 +03:00
Delyan Angelov
e518cdbe7f
ci: fix msvc compilation of interface code
2021-06-16 12:15:16 +03:00
Delyan Angelov
862c4cf371
v.checker,v.gen: allow for `&IAbc(voidptr(0))` where IAbc contains fields
2021-06-16 10:48:50 +03:00
Uwe Krüger
f3408a2484
gc: use optimized mode by default ( #10466 )
2021-06-15 15:43:00 +03:00
yuyi
bdc8586ddd
checker, cgen: fix `for in mut val` ( #10444 )
2021-06-15 04:43:10 +03:00
Uwe Krüger
a8437584aa
gc: extend optimized mode to channel buffers ( #10443 )
2021-06-14 18:12:47 +03:00
Emily Hudson
535dcac8fa
net: ipv6 support, merge unix+ip;[pack:x] attribute ( #9904 )
2021-06-13 23:53:38 +03:00
yuyi
a6eba7a9b4
cgen: simplify match_expr_classic() ( #10424 )
2021-06-13 06:27:31 +03:00
Uwe Krüger
5ee1ded3fb
gc: extend optimized mode to maps ( #10426 )
2021-06-13 06:26:43 +03:00
Uwe Krüger
2ac39d9112
all: new function `isreftype(T)` to know if `T` contains pointers ( #10438 )
2021-06-13 06:26:13 +03:00
yuyi
0e34ce2759
cgen: format generated code in match_expr() ( #10397 )
2021-06-12 21:14:08 +03:00
yuyi
f26626117d
cgen: fix match struct type cond ( #10421 )
2021-06-11 11:58:25 +03:00
yuyi
9d852e22b2
cgen: fix match array or map cond ( #10411 )
2021-06-10 21:33:35 +03:00
Uwe Krüger
0e2c86310a
GC-boehm: extend optimized mode to all `array` methods ( #10406 )
2021-06-10 21:26:17 +03:00
Enzo
14519bbf5c
cgen: clean up interface methods generation ( #10400 )
2021-06-09 22:44:18 +03:00
Uwe Krüger
a2243054a5
builtin: fix memory corruption in array `.clone()` and `.repeat()` ( #10394 )
2021-06-08 23:23:28 +03:00
yuyi
cd464010d4
cgen: fix match with multi sumtype exprs ( #10377 )
2021-06-07 14:16:30 +03:00
crthpl
8a497080b3
cgen: fix assembly in generic fns ( #10370 )
2021-06-07 10:53:33 +03:00
yuyi
329a6c974e
table, checker, cgen: implement generic fn infering fixed array ( #10352 )
2021-06-06 01:11:08 +03:00
Delyan Angelov
55ef849cd2
v.markused: trim unused map fns for programs that do not use them
2021-06-05 17:30:25 +03:00
yuyi
b0bafa6376
cgen: fix or_block in for declaration ( #10317 )
2021-06-03 01:18:52 +03:00
Delyan Angelov
5400a765a4
tests: make `fn test_fn() ? { return error(fail) }` count as a fail
2021-06-02 19:14:37 +03:00
zakuro
0afeba5588
cgen: fix C error with clang, when declaring a fn type with an alias type argument ( #10297 )
2021-06-01 12:37:27 +03:00
yuyi
cb19079d53
all: move cur_concrete_types to Table ( #10269 )
2021-05-31 17:14:45 +03:00
yuyi
9fc5b9dc54
cgen: fix match in map or expr ( #10283 )
2021-05-31 17:10:33 +03:00
Louis Schmieder
38796521fa
all: allow defer use from other scope ( #10284 )
2021-05-31 14:43:44 +03:00
Delyan Angelov
eac1e25c5d
strings: simplify Builder ( #10263 )
2021-05-31 14:21:06 +03:00
Lukas Neubert
5b9256ba0b
cgen: write alias typedefs just before interfaces ( #10272 )
2021-05-31 12:26:06 +03:00
yuyi
8785599094
checker, cgen: fix optional with if expr ( #10242 )
2021-05-29 10:00:12 +03:00
Alexander Medvednikov
ca8158ac41
parser: handle casts in match expressions; c2v: minor fixes
2021-05-28 17:59:43 +03:00
Delyan Angelov
2b62dca000
v: support for `$if threads {}, depending on whether `go ` was used at all ( #10227 )
2021-05-27 18:36:07 +03:00
yuyi
7c0cd2f41d
checker, cgen: fix match with complex sumtype exprs ( #10215 )
2021-05-27 10:13:50 +03:00
penguindark
2dd1d3fcbb
all: string interpolation code cleaning ( #10204 )
2021-05-26 09:30:08 +03:00
Joe Conigliaro
560301dbfe
cgen: dont preallocate zero length with capacity of 1
2021-05-26 14:51:20 +10:00
Enzo
39c376bb5b
builtin,gen: use operator overloading on ustring ( #10197 )
2021-05-25 14:51:48 +03:00
Enzo
886f69bfcf
all: use operator overloading on strings (p. 2) ( #10183 )
2021-05-24 11:38:31 +03:00
penguindark
d8d05e0106
all: new string interpolation in pure V ( #10181 )
2021-05-24 05:20:45 +03:00
yuyi
eb5ac23988
checker: fix match expr with if expr ( fix #10177 #10178 ) ( #10179 )
2021-05-23 17:59:57 +03:00
Delyan Angelov
bc01de2181
ast: mark ast.File{} with `[heap]`, and use []&ast.File consistently
2021-05-22 19:06:55 +03:00
Delyan Angelov
da090f91d8
cgen: fix using and auto printing `x := [16]&Type{}`
2021-05-20 15:59:02 +03:00
Delyan Angelov
2086e6f1c1
builtin, cgen: implement chunked allocation of 16MB blocks with -prealloc ( #10130 )
2021-05-19 10:35:56 +03:00
Delyan Angelov
1305ca662f
cgen: do not use L'x' for ASCII values (enable compilation with simpler C compilers)
2021-05-15 10:36:26 +03:00
Uwe Krüger
7bfd89567b
shared: support `lock` on SelectorExpression ( #10105 )
2021-05-15 04:34:27 +03:00
zakuro
a9435f3c25
cgen: fix `cannot take rvalue` error of interface ( #10040 )
2021-05-13 17:54:48 +03:00
Delyan Angelov
1086b4ac5e
io: mark the mutability requirements of the Writer interface explicitly; swap the io.cp/2 parameter order to be like os.cp/2 ( #10091 )
2021-05-13 13:06:42 +03:00
crthpl
8361f714dd
cgen: fix deadlock when returning/breaking in `lock` ( #10079 )
2021-05-12 11:44:47 +03:00
Delyan Angelov
066374bae4
v.gen.c: implement `-d trace_autofree` for conditional tracing comments about autofree
2021-05-11 19:29:06 +03:00
Delyan Angelov
d463817f80
Revert "Revert "cgen: fix generics with generics fn type parameter ( #10078 )""
...
This reverts commit d3de91ee86
.
2021-05-11 11:14:58 +03:00
Delyan Angelov
d3de91ee86
Revert "cgen: fix generics with generics fn type parameter ( #10078 )"
...
This reverts commit e310513a5f
.
2021-05-11 10:59:55 +03:00
Alexander Medvednikov
dc034d9b16
vweb: make thread safe; checker: `$if T is Interface {`
2021-05-11 09:30:18 +03:00
yuyi
e310513a5f
cgen: fix generics with generics fn type parameter ( #10078 )
2021-05-11 09:24:23 +03:00
yuyi
dcf4d73c87
cgen: format generated struct definition c codes ( #10074 )
2021-05-10 20:27:52 +03:00
El Koulali András
3e5a5754f3
cgen: fix constants with multi-statement C initializations ( #10058 )
2021-05-09 03:25:44 +03:00
Delyan Angelov
2eafea6308
v: reduce the memory usage of the compiler (analysed with heaptrack)
2021-05-06 11:44:48 +03:00
Delyan Angelov
d3f2d6f6df
cgen: speed up c_name/1 by using a map lookup, instead of a linear search in []string{}
2021-05-03 12:58:40 +03:00
Delyan Angelov
4b818fa2be
v: implement interface embedding ( #9935 )
2021-05-02 03:00:47 +03:00
yuyi
d236d6a473
parser, cgen: fix generics fn typeof name ( fix #7357 ) ( #9939 )
2021-04-30 13:40:36 +03:00
Louis Schmieder
fb685eee18
orm: support arrays ( #9936 )
2021-04-30 09:13:26 +03:00
ka-weihe
6795b02e24
cgen: fix enum in map ( #9912 )
2021-04-28 22:11:32 +03:00
yuyi
9f1ac39770
checker: fix generics with anon generics fn argument ( fix #9859 ) ( #9897 )
...
* checker: fix generics with anon generics fn argument
* cgen: fix typedef of generics anon fn
* fix check generics argument types
2021-04-27 15:25:42 +03:00
Don Park
aebb551e93
cgen: do full struct initialisation for V structs, fixes invalid data from `map[string]Struct{}['unknown']` ( #9878 )
2021-04-27 08:18:48 +03:00
Uwe Krüger
787a63dab6
cgen: execute `defer` block *after* return expression is evaluated ( #9893 )
2021-04-27 01:42:16 +03:00
Delyan Angelov
5e0ff5c524
cgen: cleanup g.type_default
2021-04-26 11:55:29 +03:00
Uwe Krüger
3c0a368af3
all: automatically move (some) referenced objects to heap ( #9873 )
2021-04-25 21:40:38 +03:00
zakuro
a0835ac139
checker/cgen: implement in expression for alias of array/map ( #9871 )
2021-04-25 18:17:54 +03:00
yuyi
8ccdae6188
all: cleanup generics call_expr ( #9856 )
2021-04-24 09:44:15 +03:00
yuyi
dd2002cc57
cgen: fix generics with multi generics struct receiver ( #9853 )
2021-04-23 15:17:57 +03:00
yuyi
7b8957b25e
cgen: minor simplification in cc_type() ( #9833 )
2021-04-21 12:23:21 +03:00
spaceface
73352583e7
ci: fix all `-cstrict` warnings with gcc and clang ( #9792 )
2021-04-19 15:38:48 +03:00
yuyi
75d1b54f7b
cgen: fix empty struct init using macro ( #9787 )
2021-04-18 16:34:25 +03:00
Delyan Angelov
5817aa47d8
Revert "cgen: fix empty struct init ( #9769 )"
...
This reverts commit 0cc04850d7
.
2021-04-17 19:19:25 +03:00
yuyi
0cc04850d7
cgen: fix empty struct init ( #9769 )
2021-04-17 02:39:52 +03:00
Delyan Angelov
0b3d1656f0
cgen: improve -g info for `{...}` and `goto label`
2021-04-16 19:13:40 +03:00
Uwe Krüger
80bd2974b4
cgen: fix iteration over `shared` map ( #9763 )
2021-04-16 14:49:14 +03:00
ka-weihe
25a9d30a70
channels: fix C warnings ( #9732 )
2021-04-15 01:44:39 +02:00
yuyi
1250ce4353
cgen: fix generics with embed generics ( fix #8694 ) ( #9724 )
2021-04-15 01:44:11 +02:00
crthpl
0099458c0a
all: small asm fixes and number labels ( #9730 )
2021-04-15 01:30:23 +02:00
crthpl
14434cc86a
all: bare metal support (fix `-freestanding`) ( #9624 )
2021-04-14 07:50:50 +02:00
Uwe Krüger
10bf974cda
all: gc: provide optimized mode ( #9716 )
2021-04-14 00:40:26 +02:00
Delyan Angelov
1ef718c1e1
cgen: fix `return if cond { x,y } else { a,b }` generation
2021-04-13 11:52:18 +03:00
Enzo
5a1a1b7c12
all: merge GoExpr and GoStmt ( #9685 )
2021-04-11 23:56:25 +02:00
Henrixounez
6cfd53bf57
cgen: generate interfaces after all other typedefs ( #9680 )
2021-04-12 00:43:19 +03:00
Uwe Krüger
954c436d28
checker/cgen: auto initialize `shared` elements of structs ( #9669 )
2021-04-11 10:30:23 +03:00
yuyi
a2a18ef92c
v: simplify handling of function generic parameters ( #9673 )
2021-04-11 09:02:57 +03:00
Uwe Krüger
78c6e35bde
checker/cgen: fix `v := rlock m { m[key] or { default_val } }` ( #9666 )
2021-04-10 16:57:18 +02:00
Louis Schmieder
64391efa4d
orm: add mysql support ( #9630 )
...
* add mysql to orm
* fix got to big packet error
* format sql.v
* format example
* custom sql types
* add mysql table cration
* add documentation
* format sql.v
* fix markdown
* start implementing select_expr for mysql
* remove orm.c
* format sql.v
* finish mysql expr
* remove c
* remove unessecary files
* change to c implementation
* remove c
* added str interpolation for idents
* fix string insert
* fix compilation problems
* fix gitly compilation
* fix typing mistake
* add link to orm docs
2021-04-10 17:38:27 +03:00
yuyi
9f093203a4
cgen: fix generics struct_init ( #9661 )
2021-04-10 17:33:15 +03:00
yuyi
1bcc45f914
cgen: minor cleanup of return_stmt ( #9664 )
2021-04-10 11:55:34 +03:00
ka-weihe
5273214ec2
map: rename methods ( #9657 )
2021-04-10 04:00:29 +02:00
Uwe Krüger
b346dd9464
cgen: fix blank identifier in IfGard (`if _ := <-ch { ... }`, etc) ( #9650 )
2021-04-09 17:18:36 +02:00
Uwe Krüger
0c710ce470
cgen: register `Option_void` when used for `chan <- x or {...}` ( #9648 )
2021-04-09 17:18:02 +02:00
Delyan Angelov
820fe626e7
v.gen.c: reduce slightly the generated C lines with -skip-unused (3940 -> 3699 for hello_world.v)
2021-04-09 17:56:36 +03:00
spaceface
4feb09fa5b
checker, cgen: add sumtype-like smartcasting capabilites to interfaces ( #9256 )
2021-04-09 11:00:05 +03:00
Alexander Medvednikov
dbaa91810f
autofree: fix optional returns
2021-04-06 17:14:11 +03:00
Delyan Angelov
87a16bbfe9
ci: fix -autofree cmd/v compilation job regression
2021-04-06 15:21:18 +03:00
Delyan Angelov
4cde74f120
checker: make the compiler stricter when checking pointers
2021-04-05 10:02:47 +03:00
Alexander Medvednikov
92fa9bbea9
cgen: fix [packed]
2021-04-05 08:02:19 +03:00
Alexander Medvednikov
77d8336db9
cgen: [packed] struct attribute
2021-04-05 06:49:43 +03:00
Alexander Medvednikov
31f8d5542c
cgen: remove a "return var" comment
2021-04-03 14:18:00 +03:00
Daniel Däschle
6a5f49afb1
all: support `?Type(none)` ( #9567 )
2021-04-02 16:34:48 +02:00
yuyi
c11356be21
cgen: minor optimization of fixed array copy ( #9554 )
2021-04-02 01:58:20 +02:00
Alexander Medvednikov
7385f8e56b
all: a massive merge of ast and table modules
2021-04-02 01:57:09 +03:00
crthpl
8d5e310189
asm: make fixed labels possible as displacement ( #9549 )
2021-04-01 09:58:33 +03:00
yuyi
63f835c4ce
cgen: fix the alias of fixed_array ( fix #9537 ) ( #9544 )
2021-03-31 18:51:03 +02:00
Alexander Medvednikov
6f318be96c
checker: do not allow nil sum types init
2021-03-31 11:13:52 +03:00
Swastik Baranwal
b40d06ec1e
cgen: fix operator overloading for array/map aliases ( #9529 )
2021-03-30 11:39:54 +02:00
Uwe Krüger
97f43d6a97
gc: make generational mode of Boehm-GC available ( #9514 )
2021-03-30 09:36:22 +02:00