Commit Graph

256 Commits (500b48788e6e71f9f847c533651d14dd0f847617)

Author SHA1 Message Date
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