Commit Graph

958 Commits (f72297c3315de8a357b5020dfb25fe671fcf6d1d)

Author SHA1 Message Date
penguindark 278c08704c
all: support slices with negative indexes `#[start..end]` (gated arrays) (#12914) 2021-12-22 16:34:02 +03:00
yuyi 6eb44f472a
cgen: fix multiple return with sumtype (#12930) 2021-12-22 12:09:08 +02:00
yuyi 6a4fa6096e
cgen: fix blank ident in for_c_stmt (#12931) 2021-12-22 09:34:26 +02:00
spaceface cfb814a0e3
gen: support returning large types from closures on amd64 (#12926) 2021-12-22 00:18:45 +02:00
yuyi fc83f0bfd0
cgen: clean up gen_assign_stmt() (#12915) 2021-12-21 19:23:55 +02:00
yuyi de3665af69
cgen: fix interface method using struct embed (#12924) 2021-12-21 19:16:05 +02:00
yuyi 460f7c6637
cgen: fix fixed array of interfaces equality (#12908) 2021-12-20 19:09:22 +02:00
Delyan Angelov 68ada041e6
tests: support `VTEST_ONLY_FN=*test_sincos* ./v test .` and `./v test -run-only test_sin .` 2021-12-20 18:45:04 +02:00
yuyi cd0b581445
ast: rename 'table.get_type_symbol()' to 'table.sym()' and more related calls (#12898) 2021-12-19 18:25:18 +02:00
yuyi c957f59071
cgen: minor cleanup in cgen.v (#12896) 2021-12-19 14:31:04 +02:00
Delyan Angelov 41176c4967
cgen: add `bool` and `complex` to c_reserved 2021-12-19 13:44:54 +02:00
Leo Developer a7019ac86c
cgen: fix parallel waiter function generation (#12895) 2021-12-19 13:38:48 +02:00
yuyi 2ab861ef89
cgen: fix generic array of interface method call (fix #12882) (#12888) 2021-12-18 18:08:19 +02:00
yuyi 5e5c78ed37
cgen: minor cleanup of the field order in the Gen struct definition (#12890) 2021-12-18 17:52:33 +02:00
spaceface de92f819f0
cgen: support closures with any number of parameters of any size on amd64 (#12891) 2021-12-18 17:33:24 +02:00
yuyi 7c255f0ff2
builtin, cgen: fix array of map init with default value (#12885) 2021-12-18 10:07:25 +02:00
Tim Basel 130d189fce
cgen: fix overwriting methods of embedded structs + empty struct for interfaces (#12876) 2021-12-17 15:32:31 +02:00
yuyi 66070ec63e
cgen: fix error of 'map_a[map_b[key]] += 2' (#12872) 2021-12-17 15:17:08 +02:00
yuyi c9f6a96936
cgen: fix array of interfaces equality error (#12874) 2021-12-17 14:58:17 +02:00
spaceface d80dd77adf
cgen: support closures on arm32 as well (#12875) 2021-12-17 14:26:24 +02:00
zakuro 2f7ac7e407
cgen: fix c error when use reserved keyword as if guard var (#12871) 2021-12-17 04:50:52 +02:00
yuyi f87f8ec3f7
cgen: fix defer with function variables (fix #12854) (#12866) 2021-12-16 20:58:54 +02:00
spaceface c6b902d2b7
cgen: support closures on arm64 (#12863) 2021-12-16 18:02:05 +02:00
Delyan Angelov 6ff953d936
preludes,builder,cgen: add support for VTEST_RUNNER=tap and -test-runner tap (#12523) 2021-12-16 15:59:46 +02:00
yuyi d8a333058d
checker, cgen: fix generic map with generic type key (#12859) 2021-12-16 09:53:05 +02:00
yuyi 2ce1647ea0
cgen: fix error of embedded struct generating interface_table (#12847) 2021-12-15 13:21:21 +02:00
Delyan Angelov fa1a7a85f0
cgen: fix building with `-no-preludes -no-builtin` (part 1) 2021-12-15 12:47:28 +02:00
yuyi 1c629f4a93
cgen: fix ci error of empty struct init (#12838) 2021-12-15 08:49:30 +02:00
Delyan Angelov c900dc1053
ci: use -Wno-excess-initializers for clang -cstrict, cleanup cgen 2021-12-14 17:14:45 +02:00
Delyan Angelov 96e9cc62b0
ci: fix clang macos build 2021-12-14 17:06:57 +02:00
Delyan Angelov 70564ae8b2
ci: fix generics test 2021-12-14 17:04:37 +02:00
Delyan Angelov 73e097c1cb
Revert "ci: fix clang build error on macos/freebsd"
This reverts commit d7abdd314d.
2021-12-14 16:57:47 +02:00
Delyan Angelov d7abdd314d
ci: fix clang build error on macos/freebsd 2021-12-14 15:39:08 +02:00
yuyi eeb7d4a7fd
cgen: fix embedded struct init with complex fields (#12831) 2021-12-14 14:55:58 +02:00
yuyi 731015cd9b
ci: revert "cgen: fix embedded struct init with complex fields (fix #12823) (#12825)" (#12830)
This reverts commit b4b2a21453.
2021-12-14 08:11:11 +02:00
yuyi b4b2a21453
cgen: fix embedded struct init with complex fields (fix #12823) (#12825) 2021-12-14 07:15:23 +03:00
yuyi d5c0bdf954
cgen: clean up interface_table() (#12816) 2021-12-13 13:45:27 +02:00
yuyi be5823069a
cgen: clean up struct_init (#12815) 2021-12-13 13:01:36 +02:00
yuyi b303588491
cgen: fix struct init with interface field (#12820) 2021-12-13 12:55:46 +02:00
yuyi 57c1faadbe
cgen: fix multiple nested embed struct with duplicate field init (#12805) 2021-12-12 19:54:29 +02:00
yuyi f407d6de02
ast, checker, cgen: fix generics multiple type comptime call (fix #12777) (#12806) 2021-12-12 19:42:40 +02:00
Leo Developer 2ced182816
cgen: fix order of comptime reflection fields (#12799) 2021-12-11 22:09:47 +02:00
Thomas Mangin 0d0d7323bb
transformer: provide direct_memory_access to arrays when safe (#12724) 2021-12-11 21:55:46 +02:00
Delyan Angelov fe14e2fceb
cgen: use `c_name()` for escaping goto label names too 2021-12-11 19:41:44 +02:00
Delyan Angelov 24bc2ae406
cgen: add `small` to c_reserved 2021-12-11 19:14:26 +02:00
yuyi ade2a4cd01
cgen: fix multiple embed struct init (#12791) 2021-12-11 10:28:32 +03:00
yuyi 9b4329d2f6
ast, checker, cgen: fix interface method with struct embed (#12783) 2021-12-10 14:56:13 +02:00
yuyi e433badcb8
parser, cgen: fix multiple comptime tmpl in one function (#12757) 2021-12-08 11:12:02 +03:00
Ekopalypse a19dd36473
cgen: ensure the different gdi32 notations are always matched in is_gui_app (#12756) 2021-12-07 22:13:56 +02:00
yuyi f60cf65284
cgen: fix comptime for_in methods call using str_intp (#12746) 2021-12-07 12:12:12 +03:00
yuyi 36fbd3c4fa
checker: check sumtype as mismatched type (#12743) 2021-12-07 01:31:47 +03:00
Alexander Medvednikov 325e116b7a cgen: 4 byte bool flagg for compatibility with some C software 2021-12-06 12:36:25 +03:00
yuyi d85111e3dd
cgen: fix comptime for_in methods call (#12741) 2021-12-06 10:55:27 +02:00
yuyi ae2ae6e6fd
cgen: fix match sumtype var aggregate str_intp error (#12732) 2021-12-05 19:21:45 +02:00
Delyan Angelov e4850a007c
strings: add Builder.drain_builder/1 utility method 2021-12-05 11:59:18 +02:00
Delyan Angelov 229d2fb667
v.util.timers: improve tracing by supporting `-d trace_timers_creation` 2021-12-05 11:55:41 +02:00
Leo Developer ace63594bf
all: support `$embed_file('embed.vv', .zlib)` (#12654) 2021-12-04 19:43:19 +02:00
yuyi 0f50ac3260
ast: cleanup struct embeds related methods (#12719) 2021-12-04 18:46:41 +02:00
yuyi 0cb4557a8d
ast, checker, cgen: fix nested struct embed method call (#12714) 2021-12-04 14:51:42 +02:00
Delyan Angelov 89c08c6292
cgen: cleanup the generated code for dump(x) 2021-12-04 11:56:45 +02:00
yuyi 2d43fdb42a
ast, checker, cgen: fix nested struct embed error (fix #12659) (#12712) 2021-12-04 11:19:19 +03:00
yuyi 365b46cad3
cgen: fix match sumtype print var aggregate error (#12667) 2021-12-03 20:00:00 +02:00
Delyan Angelov 4624de6cb5
cgen: support `-d no_segfault_handler` and `-d no_main`. Cleanup `-d trace_xxx` descriptions in CONTRIBUTING.md 2021-12-03 19:01:45 +02:00
Alexander Medvednikov eca78a2906 checker: allow infix expressions in enum declarations 2021-12-03 07:45:37 +03:00
yuyi 66a67de8c0
checker, cgen: fix match expr returning optional with error (fix #12556) (#12645) 2021-12-02 12:22:48 +02:00
yuyi 2144471ce1
cgen: fix generic fn with anon fn in body (#12647) 2021-12-02 10:53:42 +02:00
Delyan Angelov 47aa2b1f93
all: fix casting of `string(MyString('abc'))` and `byte(MyByte(123))`; improve TypeSymbol handling (#12617) 2021-12-01 09:50:53 +02:00
yuyi 547f326f33
cgen: cleanup auto_str_methods (#12631) 2021-11-30 19:39:55 +02:00
yuyi d1b0ce9e0c
cgen: fix error of the interface str method (fix #12538) (#12620) 2021-11-30 15:03:44 +02:00
Leo Developer 0f59d88ba6
v.embedfile: make path public (#12614) 2021-11-29 16:32:42 +02:00
Alexander Medvednikov c14c324125 pref: .o build mode 2021-11-29 05:00:25 +03:00
Delyan Angelov 6d97b0a407
checker: improve checking of a << b, when a and b are numbers (#12589) 2021-11-29 03:48:49 +03:00
Leo Developer f72d001db5
cgen: fix $embed_file not finding embedded file when using -prod (#12596) 2021-11-28 12:32:05 +02:00
yuyi cf274f262c
checker, cgen: fix fn type call of match expr (#12579) 2021-11-26 09:52:20 +02:00
yuyi 6f46fc2170
checker, cgen: fix for_in_mut iterator val (#12563) 2021-11-24 14:43:37 +02:00
Delyan Angelov 1aaac13a60
cgen: make `os` less special, fix an -autofree leak on just `import os`
* Improve documentation of v.util.Surrounder

* Remove `os` from the list of "no auto free" `builtin` mods

* Fix -autofree freeing of `const x = []string{}`.

* Add a valgrind regression test.

* Implement os.getenv_opt in vlib/os/environment.js.v too.
2021-11-21 21:50:10 +02:00
Delyan Angelov 117c99d938
v.util: add Surrounder.builder_write_befores and Surrounder.builder_write_afters methods for writing to an existing strings.Builder 2021-11-21 20:56:47 +02:00
Delyan Angelov 258d0d6df7
cgen: make `dump(x)` use a single write call, fix memleaks for autogenerated .str() methods of nested structs (#12529) 2021-11-20 20:55:19 +02:00
Delyan Angelov 90ba856107
cgen: fix `dump(x)` with `fn (x &Type) str() string {` 2021-11-20 13:12:03 +02:00
Delyan Angelov b576181a66
cgen: fix `const x := opt() or {}` side effect interference when the consts are in different files in the same module too 2021-11-19 19:02:33 +02:00
Delyan Angelov e275220f05
cgen: fix `const x := opt() or {}` side effect interference with parallel cgen 2021-11-19 18:15:06 +02:00
yuyi c2eb909c9b
cgen: fix multiple matches in one expr (#12516) 2021-11-19 13:52:28 +02:00
Delyan Angelov 3caeadfa0d
cgen,vfmt: support `[weak]` tags for functions and globals 2021-11-18 18:32:39 +02:00
Alexander Medvednikov 5bf28c5287 cgen: handle c2v fn casts 2021-11-18 11:58:00 +03:00
yuyi 5a89c0a480
ast: change CompFor to ComptimeFor (#12482) 2021-11-17 08:29:43 +02:00
yuyi 927df948ae
cgen: fix generic struct free() (#12487) 2021-11-17 08:18:46 +03:00
Alexander Medvednikov 49a36515dc checker, cgen: c2v fixes 2021-11-16 20:56:50 +03:00
Delyan Angelov 3fab0a5d05
cgen: fix codegen for `for k,v in map_of_pointers {` 2021-11-16 17:03:58 +02:00
yuyi bede0587ad
cgen: fix string interliteral of the comptime selector (#12475) 2021-11-16 08:45:47 +02:00
yuyi c28041cecc
all: cleanup/rename all `comp_` names to be `comptime_` (#12467) 2021-11-15 15:47:29 +02:00
zakuro 5e75c89b71
checker: allow noreturn in if expr (#12462) 2021-11-15 10:29:58 +02:00
yuyi d8479f107f
cgen: fix typeof comptime selector (fix #12461) (#12463) 2021-11-15 10:23:49 +02:00
yuyi fb997eb5fe
cgen: fix comptime for in field selector (#12457) 2021-11-14 20:58:22 +02:00
yuyi 3bb1c3f930
checker, cgen: fix for in iterator of generic struct (#12441) 2021-11-12 14:29:01 +02:00
yuyi d5e767f389
checker, cgen: fix alias of map keys() (#12422) 2021-11-10 13:04:59 +02:00
Delyan Angelov 6c244d3065
cgen: improve diagnostic for a v compiler panic in dicordv 2021-11-10 08:12:12 +02:00
yuyi 758c18a906
cgen: fix for in mut val in array.index() (#12410) 2021-11-08 11:12:10 +02:00
yuyi 1211029926
cgen: avoid generating typedef generic array type (#12407) 2021-11-07 21:24:30 +02:00
yuyi 59e21c2068
cgen: fix array of threads wait (fix #12350) (#12378) 2021-11-04 14:24:58 +02:00
Delyan Angelov a27833ed0d
all: support `volatile field Type` in struct declarations 2021-11-04 09:45:50 +02:00
yuyi 3fdbfca202
cgen: fix `for in` with mutable structs (#12368) 2021-11-02 18:40:13 +03:00
Delyan Angelov a7d4236337
sync,strings,cgen: reduce memory consumption in cgen 2021-10-29 22:29:56 +03:00
yuyi d5642b6134
cgen: fix error of nested match expr (#12334) 2021-10-29 17:14:49 +03:00
yuyi 0e95e4d7b4
ast, cgen: fix generic method str() overload (#12330) 2021-10-28 19:03:17 +03:00
ChAoS_UnItY 8cd01e0eac
cgen: fix error caused by fixed size array init syntax with variable it (#12314) 2021-10-28 02:20:49 +03:00
Delyan Angelov c340906280
cgen: cleanup vinit_string_literals, _vcleanup and reload_so declarations 2021-10-24 15:29:42 +03:00
Delyan Angelov 008d15dcb5
builder,pref: add support for `-no-builtin` (useful for writing Linux kernel modules) 2021-10-23 12:53:53 +03:00
ChAoS_UnItY 5b69593766
cgen,js: fix missing break in switch case, generated by match with range branches (#12260) 2021-10-21 22:30:05 +03:00
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
ChAoS_UnItY 4d1307f29b
all: index accessor in array init expression (#12181) 2021-10-15 03:57:49 +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
Alexander Medvednikov da58ba0d5c vweb: populate action method params with form values 2021-10-12 07:10:12 +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 3e02cfd528
cgen: fix `in` op usage on array of sumtypes without cast (#12141) 2021-10-11 14:17:04 +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
05st cd5b304cbf
cgen: add interface case for gen_struct_equality_fn (#12094) 2021-10-08 19:04:24 +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 115493781b
tests: make the output of coutput_test.v more accurate/easily reproducible in case of failures 2021-10-06 10:15:18 +03:00
Delyan Angelov 2526aca75f
tests: fix typo in coutput_test.v (thanks Jalon) 2021-10-06 00:33:01 +03:00
Delyan Angelov efa1092199
v.gen.c: add coutput tests for the `[console]` codegen to prevent future regressions 2021-10-06 00:14:16 +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 ccb5f1d563
tests: support `// vtest vflags: -prod` in `coutput_test.v`.
Use it, to add a `-prod` test for `$embed_file()`,
to prevent future codegen regressions.
2021-10-05 15:44:12 +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 03269f9854
cgen: fix error of reference struct str() (#12061) 2021-10-04 09:58:50 +03:00
yuyi 82e6d6e51d
cgen: fix threads array wait without go calls (fix #12009) (#12050) 2021-10-03 18:24:44 +03:00
Ekopalypse 9be16eba63
v.gen.c: add tests to ensure the same calling convention is used on exported functions for -m32/-m64 (#11977) 2021-10-03 15:47:08 +03:00
spaceface 9b6e07e2a6
cgen: support `index` and `in` for sumtype/interface arrays (#12051) 2021-10-03 15:44:13 +03:00
yuyi 10caf4a84a
cgen: cleanup generated thread wait code (#12048) 2021-10-03 10:52:29 +03:00
05st 129c81f34d
cgen: implement eq operator for interfaces (#12047) 2021-10-03 09:04:05 +03:00
Delyan Angelov c86935309e
v.gen.c: fix compilation of `if c_struct_1 != c_struct_2 {` 2021-10-02 15:12:18 +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
05st 60ecbec8ea
cgen: fix closure code gen with if statement in definition (#12028) 2021-10-01 16:52:34 +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
yuyi e09860731f
cgen: fix if expr with complex nested array call (#11979) 2021-09-26 07:35:48 +03:00
yuyi d329e1decd
cgen: fix if expr with nested array calls (fix #11953) (#11973) 2021-09-25 20:38:33 +03:00
Ruofan XU 834cf40ab2
cgen, fmt, scanner: fix and use nested lambda in scanner (#11967) 2021-09-24 18:21:22 +03:00
Anton Zavodchikov c75271fcb7
cgen: json sumtype inlining (#11961) 2021-09-24 16:49:00 +03:00
yuyi 430677a0c0
cgen: format generated C code of nested array call (#11955) 2021-09-23 19:56:12 +03:00
zakuro b354f9ae9a
cgen: fix c error of if-expression when debug mode (#11950) 2021-09-23 14:52:32 +03:00
Delyan Angelov ece5fa183c
fast.v: freebsd fixes 2021-09-23 13:48:41 +03:00
Delyan Angelov 930b95f76c
v.gen.c: fix uninitialised value usages regression after e5fb4e4 2021-09-23 12:24:03 +03:00
Alexander Medvednikov 27f5c35bde autofree: test returning optionals 2021-09-23 09:18:01 +03:00
yuyi b8935551f1
cgen: fix nested array call (#11948) 2021-09-23 08:50:37 +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
yuyi 76e360ce86
cgen: format the generated C code for array map/filter/all/any methods (#11936) 2021-09-22 09:24:36 +03:00
yuyi e5fb4e4845
cgen: fix if expr with array call (fix #11557) (#11569) 2021-09-22 02:21:18 +03:00
Alexander Ivanov b9720f5d9e
cgen: fix struct init with multiple branches, fixes #11564 (#11570) 2021-09-22 00:46:07 +03:00
yuyi de4c0c237b
cgen: fix if infix expr with array.all/any() (#11567) 2021-09-21 16:20:41 +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
Alexander Medvednikov 4aa99e4303 tmpl: add a <div> test 2021-09-21 02:11:33 +03:00
Anton Zavodchikov d51f8ed878
v.gen.c: use unmangled variant name for encoding sumtype values in json (#11554) 2021-09-20 21:19:16 +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
Rémi 2534946ead
json: support sumtypes (#11549) 2021-09-19 21:36:26 +03:00
Delyan Angelov b5d8c53a0c
v.gen.c: fix the :X string interpolation format for isize/usize on 64bit systems 2021-09-19 05:09:03 +03:00
Delyan Angelov 6b2cc9c5cf
v.pref: add a simple options_test.v to check for -cflags regressions 2021-09-18 16:08:15 +03:00
yuyi 8501217a4e
cgen: add gen_free_for_type_array/map() (#11530) 2021-09-18 15:18:32 +03:00
yuyi 39ad6da506
checker, cgen: generate .free() methods for custom structs automatically (#11529) 2021-09-18 09:38:42 +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
Delyan Angelov 0a18690a4f
v.gen.c: fix assert `f().len == 1` calling f() twice (closes issue 11501) 2021-09-16 19:01:35 +03:00
yuyi d5e00b0920
checker, cgen: fix generic arrays sum() (#11502) 2021-09-16 07:08:28 +03:00
Alexander Medvednikov d00808660f json: omitempty 2021-09-16 07:02:43 +03:00
yuyi 9554470985
checker, cgen: fix generic operator overload of 'cmp' (#11489) 2021-09-14 16:20:02 +03:00
yuyi 8862c3af0f
all: implement `if foo in [Foo1, Foo2, Foo3]` (#11486) 2021-09-14 15:56:12 +03:00
Alexander Medvednikov ae41d1d3c6 builtin, cgen: more -nofloat fixes 2021-09-13 19:06:19 +03:00
yuyi 30029eaf5d
checker, cgen: fix generic operator overload (fix #11472) (#11479) 2021-09-13 09:49:28 +03:00
Alexander Medvednikov 5c4385a472 cgen: nofloat for kernel code 2021-09-10 20:54:48 +03:00
yuyi 91c6eeeae5
cgen: fix `b := &[5, 6, 7]` (#11457) 2021-09-10 14:30:30 +03:00
Enzo cc8ee5fb84
all: introduce `isize` and `usize` (#11437) 2021-09-08 05:53:39 +03:00
yuyi bee5e7de03
v.gen.c: fix generics array delete (#11429) 2021-09-07 20:40:21 +03:00
Delyan Angelov 0b6d585b07
v.gen.c: allow overriding of the == operator on C.Struct type aliases 2021-09-07 12:02:01 +03:00
penguindark bd10a63839
builtin: string interpolation: binary format support (#11421) 2021-09-07 00:12:54 +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
yuyi 939a6417ce
cgen: fix reserved keywords as struct field (#11370) 2021-09-03 12:18: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
Alexander Medvednikov 858ba25d55 os: make chdir() return error 2021-08-28 09:35:39 +03:00
crthpl a85467eb0f
cgen: fix `expr in shared_array` (#11319) 2021-08-27 11:48:32 +03:00
Lukas Neubert 3249f8f0e7
cgen: properly cast to sumtypes in array prepend and insert (#11289) 2021-08-24 06:25:09 +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
div72 881510e7ce
cgen: fix enum print (#11218) 2021-08-18 17:11:12 +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 e1c762a616
cgen: fix assert fn_call with parentheses (fix #11207) (#11214) 2021-08-17 18:21:15 +03:00
yuyi 8521e227b4
cgen: fix if expr of multi stmts (#11208) 2021-08-16 21:48:58 +03:00
Louis Schmieder 482eecbc13
cgen: fix comptime selector reserved field names (#11199) 2021-08-16 14:58:23 +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
yuyi d3cf53ec41
cgen: fix a bug with autofree in if expr (#11182) 2021-08-15 07:55:27 +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
Enzo 506c30a291
builtin: remove methods that can be autogenerated (#11109) 2021-08-09 15:42:31 +03:00
Enzo 1a555ab898
v.gen.c: fix generation for `string.index` (#11106) 2021-08-09 07:39:15 +03:00
yuyi eed8c4671f
cgen: fix fn mut arg of array (#11104) 2021-08-09 01:49:30 +03:00
yuyi 1f3f7705a2
cgen: fix struct_init with fixed array field (#11099) 2021-08-08 10:54:52 +03:00
Alexander Medvednikov 03ed32f805 ast: bring back Table.free() for now 2021-08-08 07:07:06 +03:00
Alexander Medvednikov eaf8b63dd2 cgen: fix a c2v bug with variadics 2021-08-08 06:23:22 +03:00
Uwe Krüger c560d58f1e
cgen: use heuristic to detect circular reference in auto str (#11090) 2021-08-07 14:56:09 +03:00
Caden Haustein cf0767ad6c
v: add constant folding AST transformation (#11085) 2021-08-06 23:19:18 +03:00
yuyi ec39e38e14
cgen: fix generic method on alias struct receiver (#11080) 2021-08-06 21:26:54 +03:00
Daniel Däschle 3b116d2455
cgen: support embedded struct fields on sumtype common fields (#11084) 2021-08-06 21:26:19 +03:00
Dialga 25d49bc615
orm: handle empty fields (#11083) 2021-08-06 21:25:38 +03:00
alula e1cc1665dc
cgen: push function arguments in fn_args() (#11086) 2021-08-06 20:01:20 +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
yuyi c30cda3daf
v.gen.c: fix error of `println(alias of struct)` (#11062) 2021-08-05 20:20:10 +03:00
yuyi b870f7a6f1
cgen: fix array sort error (#11046) 2021-08-04 06:31:57 +03:00
yuyi 2eb11110d6
cgen: fix autofree error of array init with string variable (fix #10427) (#11041) 2021-08-04 03:39:20 +03:00
yuyi fd58e9f819
cgen: fix auto str for map of reference struct (fix #11024) (#11028) 2021-08-03 08:03:00 +03:00
Louis Schmieder a55ba08fad
orm: fix time (#11026) 2021-08-03 05:17:00 +03:00
Leo Developer 6dcf72fe9b
cgen: dont generate function if its flag is false (#11021) 2021-08-03 03:17:22 +03:00
Delyan Angelov 33e4dc3ad3
ci: fix coutput_test.v on windows by fixing `-o -` on windows 2021-08-01 00:27:06 +03:00
Delyan Angelov 9082712e10
ci: skip coutput_test.v on windows temporarily 2021-07-31 14:17:33 +03:00
Delyan Angelov 1231e5df20
debug coutput_test.v on windows 2021-07-31 13:27:28 +03:00
Delyan Angelov 456a19f6d4
ci: fix coutput_test.v on windows 2021-07-31 13:16:33 +03:00
Delyan Angelov 08016ab374
v.gen.c: add vlib/v/gen/c/coutput_test.v, to ease testing of produced C output 2021-07-31 12:14:56 +03:00
Delyan Angelov 033b027361
v.gen.c: use `const type* const_x` for `const_x &type` fn args 2021-07-31 08:42:40 +03:00
Louis Schmieder 0bb587c8c2
checker: fix defer ident handling & fix defer optional error message (#10975) 2021-07-30 20:29:06 +03:00