Commit Graph

4206 Commits (39f90e25f306a2d5c843d795347728d377fda952)

Author SHA1 Message Date
yuyi 8500c8885c
cgen: fix optional_void error; handle `?` return type 2020-05-15 15:55:03 +02:00
Delyan Angelov 66cb61c242 builtin: cleanup by turning backtrace* fns to ordinary C. fns 2020-05-15 15:52:06 +03:00
Delyan Angelov e18268e2f4 cheaders: use backtrace* stubs for both android & musl 2020-05-15 15:37:59 +03:00
Delyan Angelov 2c93deb884 builtin: bootstrap for backtrace functions cleanup 2020-05-15 15:08:42 +03:00
Dario Tarantini f7605c397a
stbi: pub fields in Image 2020-05-15 13:15:04 +02:00
Enzo Baldisserri d60233b618
cgen: simplify for in range 2020-05-14 22:22:32 +02:00
Alexander Medvednikov 0f251e9ede checker: handle json.decode correctly 2020-05-14 18:30:30 +02:00
Alexander Medvednikov f49ef39708 checker: handle unexpected `or` blocks 2020-05-14 18:19:40 +02:00
Alexander Medvednikov e5d4786371 builder: simplify C error message 2020-05-14 18:14:38 +02:00
Enzo Baldisserri fd0d833e33
gen: if expressions with multiple statements 2020-05-14 17:15:25 +02:00
wilesun 2a9cbbe157
cgen: handle sizeof(C.struct) 2020-05-14 17:14:59 +02:00
yuyi 6d0b791ac8
parser: warning about unused imports 2020-05-14 17:14:24 +02:00
Alexander Medvednikov c3fe2135a4 math.fabs 2020-05-14 16:58:20 +02:00
Alexander Medvednikov 2369a5c8c6 cgen: handle `is` for interfaces 2020-05-14 16:56:45 +02:00
yuyi 70b76a8e31
builder: use verror for not found modules 2020-05-14 10:59:29 +03:00
Delyan Angelov 74005b4362 vfmt: handle file paths with spaces 2020-05-14 09:07:14 +03:00
Delyan Angelov d830620651 compiler: restore support for --enable-globals flag, and add tests. 2020-05-14 08:43:12 +03:00
Alexander Medvednikov 1cb4aa7642 builder: cross compiling for linux, part 1 2020-05-14 04:15:04 +02:00
Alexander Medvednikov e60e8f3b34 builder: bring back cross compilation for windows 2020-05-13 23:02:31 +02:00
Alexander Medvednikov 1bf26a35fa array: rename default to init 2020-05-13 22:00:24 +02:00
Alexander Medvednikov ab7bc760c6 cgen: new Option part 1 2020-05-13 21:59:08 +02:00
Sandro Martini 9895cab51c
tests: add more tests on interfaces 2020-05-13 20:30:18 +02:00
Enzo Baldisserri 1ca04e6113
checker: prevent interface instantiation 2020-05-13 19:20:15 +02:00
Hungry Blue Dev 3270545953
fraction: simplify variable names 2020-05-13 18:39:19 +02:00
yuyi 2e0b9de31c
parser: error for consts in fns 2020-05-13 18:39:02 +02:00
Enzo Baldisserri 172e4ff853
cgen: simplify if guard else clause 2020-05-13 18:38:00 +02:00
Alexander Medvednikov 33a9822548 parser/vfmt: handle array len and default in array init 2020-05-13 16:11:52 +02:00
Alexander Medvednikov db5036686b checker: make `type is private` warning an errror 2020-05-13 14:21:52 +02:00
yuyi b1511ce995
parser: optimize no main file process 2020-05-13 14:02:04 +02:00
Tanel Liiv af334e320c
cgen: dereference in one place and fix 2020-05-13 01:01:34 +02:00
Alexander Medvednikov 3e6f7d3eb6 freetype: minor fixes 2020-05-13 00:50:46 +02:00
Alexander Medvednikov 7a5a4df4c6 checker: handle `println()` 2020-05-12 19:38:46 +02:00
yuyi 7837abf6b0
parser: optimize stmt() 2020-05-12 17:18:25 +02:00
yuyi 99b31d8241
parser: unified way to handle struct and enum name check 2020-05-12 13:39:32 +02:00
Alexander Medvednikov 712fd384ee parser: fix eval not used in match 2020-05-12 00:26:39 +02:00
Alexander Medvednikov 27d3800cc3 parser: bring back "evaluated but not used" 2020-05-12 00:19:45 +02:00
Alexander Medvednikov 1c8e14c77c vfmt: handle comments in const blocks 2020-05-12 00:09:59 +02:00
yuyi dea2658a80
checker: minor optimization in infix_expr 2020-05-11 23:50:13 +02:00
Kris Cherven d359a7aefb
cgen: fix a goto error 2020-05-11 23:49:08 +02:00
JalonSolov 649a0140fd
x64: fix NUL at end of strings, and length 2020-05-11 16:50:36 +02:00
Alexander Medvednikov e9177faf17 checker: allow `*x = y` only inside unsafe blocks 2020-05-11 16:05:59 +02:00
Alexander Medvednikov 2618b4fbd3 Revert "tests: add more tests on interfaces "
This reverts commit 538662d99a.
2020-05-11 15:19:55 +02:00
Alexander Medvednikov aacc35db19 pref: do not enable globals by default 2020-05-11 15:19:47 +02:00
Sandro Martini 538662d99a
tests: add more tests on interfaces 2020-05-11 15:13:03 +02:00
kdmult ea8fcb3981
cgen: fix nested conditional statements 2020-05-11 15:11:48 +02:00
Alexey 6f2dcd819f
parser: force visibility of interface methods 2020-05-11 15:10:26 +02:00
Alexander Medvednikov 828f9af64c checker: fmt 2020-05-11 14:38:25 +02:00
Alexander Medvednikov 8a6820d1b7 checker: revert fmt for now 2020-05-11 14:32:41 +02:00
Alexander Medvednikov ce03761375 parser: fix mut args with the new syntax; checker: fmt 2020-05-11 14:16:20 +02:00
joe-conigliaro 2a40665919
ast/checker: cast no longer needed & use auto deref 2020-05-11 20:02:28 +10:00
Kris Cherven 8bc0c31f29
parser: add error for variables, that are evaluated, but not used 2020-05-11 11:13:36 +03:00
Kris Cherven 3a3d00ac72
checker: prevent C error on const mutation 2020-05-11 11:09:58 +03:00
Ned Palacios 38277d1dac
cgen: fix gen_str_for_struc when called on a struct with a pointer field 2020-05-11 11:08:21 +03:00
joe-conigliaro 1b3cd7abe0
cgen: fix sum type assign/push from in match branch & type mod 2020-05-11 16:59:55 +10:00
yuyi 64ba59590e
cgen: fix multiple assign error 2020-05-11 09:45:11 +03:00
joe-conigliaro 74cc2b2a68
table: add function return type check 2020-05-11 14:47:39 +10:00
Hungry Blue Dev e52d35bf16
math.fraction: improve documentation, remove unnecessary mut modifiers 2020-05-11 07:20:55 +03:00
yuyi 14bba54ddc
vrepl: fix array_init error
* optimize print conditions
2020-05-11 07:15:08 +03:00
Fabien Salathe c9c956fc8a
flag: fix a comment with an example 2020-05-10 22:27:14 +02:00
Alexey 71c2b26103
checker: fix checking uninitialized refs 2020-05-10 22:26:47 +02:00
Enzo Baldisserri b09fd66aa2
gen: fix interface pointers 2020-05-10 21:16:22 +02:00
Louis Schmieder 40aad27a67
pg: remove `pg.` 2020-05-10 21:16:03 +02:00
Delyan Angelov 7c5905164e glm: remove unused variable (prevents compiling ui with -prod) 2020-05-10 19:59:26 +03:00
Delyan Angelov 1bf13f8a09 v version: do more accurate current git hash detection, when not on a branch 2020-05-10 18:56:19 +03:00
Alexander Medvednikov a2d120b583 cgen: fix reassignment of optionals 2020-05-10 17:41:33 +02:00
eyelash 1722171adc
compiler: color only the relevant part of the source code in error messages 2020-05-10 17:24:29 +02:00
Louis Schmieder 3ec2608d6b
glm: matrix multiplication; docs: toc 2020-05-10 16:49:29 +02:00
eyelash 72dfe11fa5
scanner: add a colon to error messages (#4818) 2020-05-10 16:29:15 +02:00
eyelash f396f70ae7
repl: fix newline in error messages 2020-05-10 16:26:56 +02:00
Sumeet Chhetri 8dc0c5a699
cgen: C++ compiler support - Part 1 2020-05-10 16:26:21 +02:00
Hungry Blue Dev 8aba3eaa07
math.fractions: refactor and add more tests 2020-05-10 16:25:33 +02:00
joe-conigliaro a73660a4c3
checker/cgen: simplify assigning fn to var 2020-05-11 00:13:30 +10:00
yuyi 0606d26ba7
csv: fix field multiple lines error 2020-05-10 14:19:26 +02:00
eyelash eabc72d4fe
compiler: print underlines in the same color as the error 2020-05-10 12:27:46 +02:00
Ned Palacios 5f0ad0f562
compiler: add output mode for errors and warnings, support for `-silent` flag 2020-05-10 12:26:57 +03:00
Ned Palacios 01de1b6375
parser: fix JSON encode function name on invocation 2020-05-10 10:30:35 +03:00
Delyan Angelov edb921f463 sync: mark sync.WaitGroup and sync.Mutex with [ref_only] 2020-05-10 08:58:54 +03:00
yuyi 7f69c2fbf5
parser: check `import` in the middle of file error 2020-05-10 07:47:20 +03:00
pancake 76eec7b6ea
readline: fix input echo issue on musl-based systems 2020-05-10 07:39:31 +03:00
yuyi ba3a631954
parser: check for module statement errors 2020-05-10 02:28:56 +02:00
yuyi 85723e3799
checker: check for_in_map using one variable error 2020-05-10 02:28:43 +02:00
Alexander Medvednikov 10da871743 checker: handle unknown fields in fail_if_immutable 2020-05-10 02:07:15 +02:00
Alexander Medvednikov 09f6cd6a75 parser/checker: [ref_only] attribute 2020-05-09 23:45:41 +02:00
Alexander Medvednikov 3052266a40 live: make compile; pref: allow _linux.v etc 2020-05-09 20:31:50 +02:00
Alexander Medvednikov d7c4630d33 checker: make pub field check an error 2020-05-09 18:34:07 +02:00
yuyi 53989daf9a
csv: fix empty line error 2020-05-09 17:35:03 +02:00
yuyi 3eeef6203e
checker: check for map_init key duplicate 2020-05-09 16:55:38 +02:00
Alexander Medvednikov dea9ca2491 cgen: fix a big with &Foo{} init 2020-05-09 15:23:48 +02:00
Alexander Medvednikov c64f8b0d1f parser/checker: pub: struct fields 2020-05-09 15:16:48 +02:00
Delyan Angelov 809676a856 cgen: fix a sporadic segfault when giving -width in a string interpolation 2020-05-09 15:23:37 +03:00
yuyi 5f435fa1cc
parser: check enum name and field name errors 2020-05-09 12:43:10 +02:00
ka-weihe 85763d0539
map: faster get and exists 2020-05-09 12:42:01 +02:00
Tanel Liiv 7815a5495c
checker: handle multireturn fn calls as if/match last expressions 2020-05-08 22:49:45 +02:00
pancake b5bf0eeac5
time: add .no_delimiter format option 2020-05-08 21:23:26 +03:00
Sandro Martini 910a8934cb
checker: fix typo on error message and related test 2020-05-08 21:21:47 +03:00
Delyan Angelov 4b347ff148 v self: force the subprocess to show colors 2020-05-08 19:04:24 +03:00
Alexander Medvednikov 6ea741e26e Revert "tests: valgrind: enable string tests"
This reverts commit 1ea13ac7f3.
2020-05-08 16:18:14 +02:00
Alexander Medvednikov 1ea13ac7f3 tests: valgrind: enable string tests 2020-05-08 13:18:27 +00:00
Ned Palacios 5b47ec49af
parser: add support for multiple struct field attributes 2020-05-08 15:09:42 +02:00
Alexander Medvednikov c29f76454e cgen: clone strings in struct_init() 2020-05-08 15:07:53 +02:00
yuyi ef505e21ee
parser: check for import errors 2020-05-08 16:01:54 +03:00
Alexander Medvednikov 2f4fc86d58 checker: fix unknown var enum crash 2020-05-08 15:00:06 +02:00
Hungry Blue Dev dbb3c2a4cd
math.fractions: improve `.equals()` 2020-05-08 15:39:23 +03:00
Delyan Angelov e08566d571 compiler: do not exit early, when given -o x.c or -o x.js 2020-05-08 15:31:03 +03:00
Delyan Angelov 4c320e1512 profile: support for -profile-no-inline (with it, [inline] fns will not get profiled) 2020-05-08 15:01:59 +03:00
Alexander Medvednikov 847a1035a5 cgen: use tos_lit 2020-05-08 13:25:23 +02:00
Ned Palacios 13b11a4155
parser: fix struct attribute for array struct field 2020-05-08 13:09:40 +02:00
Delyan Angelov fec7f0f0b9 cgen: fix auto .str() generation for []&T, and `fn (t &T) str() string{}` 2020-05-08 12:48:07 +03:00
yuyi 8866773f97
vrepl: fix import and comment error in the middle of other lines 2020-05-08 09:34:59 +03:00
Uwe Krüger 722a2c71c3
builtin: new_array: cap should not be less than len 2020-05-07 22:41:41 +02:00
Delyan Angelov 673acdbd00 tcc: fix selfcompilation with tcc. Temporarily disable crashing interface test 2020-05-07 20:59:45 +03:00
Delyan Angelov 7207a4970b solaris: fix tests 2020-05-07 16:19:21 +00:00
Alexander Medvednikov 8cfb2ad6c9 string: is_lit 2020-05-07 18:05:57 +02:00
Alexander Medvednikov ef387779bf cgen: fix -autofree 2020-05-07 17:51:30 +02:00
Alexander Medvednikov 3c6e090ae3 ci: test broken -autofree 2020-05-07 17:45:00 +02:00
Alexander Medvednikov be063d740b ci: test self compilation with -autofree 2020-05-07 17:37:12 +02:00
yuyi d096763f62
token: change 'STR' kind to 'string' 2020-05-07 16:26:22 +02:00
Tanel Liiv d0afa748ff
cgen: optional multiple return values 2020-05-07 15:36:04 +02:00
Alexander Medvednikov 12221fb999 cgen: fix msvc struct init 2020-05-07 13:11:24 +02:00
Alexander Medvednikov 6ff93f270c cgen: simplify struct_init() 2020-05-07 13:00:42 +02:00
yuyi 78efe72c4c
checker: optimize check string cast error 2020-05-07 12:34:06 +02:00
Don Alfons Nisnoni 0a930f9862
bitfield: rename functions, getsize => get_size, etc. 2020-05-07 11:21:14 +03:00
Enzo Baldisserri 0f8ed84333
checker: verify interface is not used as receiver 2020-05-07 11:14:51 +03:00
Major Taylor 7d32476841
math: extract platform specific wrapper functions to math.c.v and math.js.v 2020-05-07 08:47:24 +03:00
yuyi 2f52106253
parser: use .next instead of .check, when a token is already known 2020-05-07 07:51:36 +03:00
Uwe Krüger 59aa31cee5
cgen: string interpolation: optimize away some partial strings of 0 length 2020-05-07 04:34:18 +02:00
wilesun 19390871e9
json: handle external types 2020-05-07 04:33:19 +02:00
yuyi 98a1b2782b
parser: simplify import 2020-05-07 04:32:29 +02:00
Delyan Angelov e33805b2b3 json.decode: fix expressions in the second argument, also fixes news_fetcher.v 2020-05-06 21:44:50 +03:00
Tanel Liiv b5a1544bf8
parser: allow re-assigning fns to variables 2020-05-06 20:09:29 +02:00
Delyan Angelov f638caef39 compiler: v -autofree can now compile itself 2020-05-06 19:03:51 +03:00
Delyan Angelov 88ef0a75e2 ci: pass V_CI_MUSL=1 on musl CI jobs 2020-05-06 15:10:47 +03:00
Alexander Medvednikov 8d2a4d2436 clipboard: make compile on linux 2020-05-06 12:00:52 +00:00
Alexander Medvednikov 207324d15b strings.builder: remove unused var; clipboard: linux fixes 2020-05-06 11:44:08 +00:00
Alexander Medvednikov 25db5e96a3 strings.builder: fix a memory leak 2020-05-06 11:12:00 +00:00
Don Alfons Nisnoni e87289f24d
Fix typo on checker 2020-05-06 13:57:40 +03:00
Alexander Medvednikov f80876497e fmt: use the new `mut` syntax in args 2020-05-06 12:43:46 +02:00
Alexander Medvednikov b4c93349e8 checker: fix interface name check 2020-05-06 12:32:44 +02:00
Alexander Medvednikov cc66eb1194 parser/checker: check capital letters in interface names/methods 2020-05-06 12:26:00 +02:00
Alexander Medvednikov 99cf520bd4 parser: `mut x Type` syntax for args 2020-05-06 12:13:22 +02:00
yuyi 51f3f31a4e
checker: check string(1) cast error 2020-05-06 12:05:24 +02:00
Don Alfons Nisnoni 5bd3045498
mysql: Using `int.str()` instead of `string(int)` 2020-05-06 12:53:47 +03:00
Enzo Baldisserri 215657e16a
checker: check interface implementation 2020-05-06 11:29:37 +02:00
yuyi b627bb933c
message: use uniform message reference format 2020-05-06 09:10:40 +03:00
yuyi c653977c15
cgen: fix struct with map field str() error 2020-05-06 09:08:48 +03:00
Alexander Medvednikov 67351c74c8 V 0.1.27 2020-05-06 02:26:43 +02:00
Don Alfons Nisnoni 67a50b5b34
mysql: simplify `Result.maps` 2020-05-06 00:10:10 +02:00
Enzo Baldisserri c1f224640f
checker: verify that there is a main module 2020-05-06 00:09:46 +02:00
Alexander Medvednikov 25b536d03f cgen: str: do not free "true"/"false" literals 2020-05-05 23:25:14 +02:00
Don Alfons Nisnoni 8fbbf488ab
darwin: fix `if ()` warning 2020-05-05 20:07:43 +02:00
Alexander Medvednikov 473ffb5489 builtin: fix a leak in array_str 2020-05-05 18:04:43 +00:00
Sandro Martini 50351eded8
tests: interface: minor fixes 2020-05-05 19:56:11 +02:00
Alexander Medvednikov fd0f8d06f8 tests: valgrind: use correct flag 2020-05-05 17:55:11 +00:00
Delyan Angelov 9e715b8701 cgen: use c_name() while generating code for `or {}` 2020-05-05 19:28:25 +03:00
Alexander Medvednikov ff88906e9a cgen: add `new` to reserved words 2020-05-05 16:50:59 +02:00
Delyan Angelov ddb5a8e6e4 time: add specialized vpc_now_darwin to fix -os cross 2020-05-05 17:31:21 +03:00
Sandro Martini dd2a1455dc
tests: add another function to the Animal interface 2020-05-05 16:27:05 +02:00
Tanel Liiv b16281d6e4
cgen: pass around functions 2020-05-05 16:21:21 +02:00
Alexander Medvednikov 7e71799980 checker: check `none` properly 2020-05-05 15:29:52 +02:00
Alexander Medvednikov a0ca68ce3f checker: do not allow `string(int)` 2020-05-05 15:26:42 +02:00
Alexander Medvednikov c5d295c378 fmt: move struct init logic to a separate fn 2020-05-05 15:06:51 +02:00
Alexander Medvednikov 148661ead6 json: wrap up: encode_array() 2020-05-05 14:54:12 +02:00
Alexander Medvednikov b3d7b0205a json: handle field attributes 2020-05-05 14:41:27 +02:00
Delyan Angelov a3bc32f3e0 builder: use time.new_stopwatch instead of benchmark.new_benchmark (reduces exe size) 2020-05-05 15:31:38 +03:00
Alexander Medvednikov ee92060d4d json: decode_array fix 2020-05-05 14:19:31 +02:00
Alexander Medvednikov ef6c418eb6 json: decode arrays 2020-05-05 13:23:44 +02:00
Steve Phillips 84fc587ec2
cgen: use a temp var in map() 2020-05-05 10:29:23 +02:00
yuyi 6aca3be474
cgen: fix []map[string]string.str() error 2020-05-05 08:46:19 +03:00
Ned Palacios 507e457c0a
builtin: add parenthesis around frame_addr as a workaround 2020-05-05 08:35:26 +03:00
Delyan Angelov f9fe5b60a7 v doc: skip _x.c.v when not on x, i.e. filter files like v itself 2020-05-05 08:08:03 +03:00
Alexander Medvednikov 621cb7b914 parser: short struct init syntax 2020-05-05 02:12:51 +02:00
Uwe Krüger a4b6c3fa5d
cgen: hex representation of signed and pointers 2020-05-05 00:24:33 +02:00
Steve Phillips 081338b8bf
checker.v: suggest []Type{}, not []Type 2020-05-05 00:20:32 +02:00
Delyan Angelov 1c945faa15 cgen: fix _to_Interface_INAME conversion fns generation 2020-05-05 00:01:54 +03:00
Delyan Angelov b5fda6e410 cgen: skip interface outside methods, while generating _interface_methods struct 2020-05-04 22:56:58 +03:00
Alexander Medvednikov 32a7bd3a48 parser/checker: do not allow using private types from other modules 2020-05-04 21:56:41 +02:00
Alexander Medvednikov 9aa1a65489 checker: check match condition 2020-05-04 21:03:18 +02:00
Alexander Medvednikov 9823d80e0c json: minor fixes + bring back the test 2020-05-04 20:43:22 +02:00
Delyan Angelov 6e1825b417 cgen: prefix with v_ keyword C fn args too 2020-05-04 19:55:21 +03:00
joe-conigliaro c9798d3918
table: fix check for fn with no args 2020-05-05 02:44:10 +10:00
joe-conigliaro 2bb995274e
table: make table.check ret false & update fn args check 2020-05-05 02:34:11 +10:00
Delyan Angelov d7e7113047 cgen: fix `for char in nums {}` 2020-05-04 18:57:33 +03:00
joe-conigliaro b2157388d9
checker: check method args 2020-05-05 01:32:40 +10:00
Delyan Angelov 36bf99ed5a parser: remove forgotten ----- line 2020-05-04 18:28:55 +03:00
Delyan Angelov d30eefc3be fmt: improve handling of map[k]v and []map[k]v types 2020-05-04 18:27:07 +03:00
Alexander Medvednikov fd8a194df0 json: wrap up decode() 2020-05-04 16:46:39 +02:00
Delyan Angelov 5eb71c4a13 fmt: initial support for -debug 2020-05-04 17:27:41 +03:00
Don Alfons Nisnoni 23df9b052e
mysql: update code & add a feature to get value as map 2020-05-04 14:58:24 +02:00
ka-weihe f27fd63f8c
builtin: map: one voidptr for all values 2020-05-04 14:56:19 +02:00
Enzo Baldisserri 8fd69e845f
cgen: fix using pointer as interface receiver 2020-05-04 14:21:03 +02:00
Delyan Angelov 0e241162d9 panic: distinguish between builtin and main modules 2020-05-04 14:51:30 +03:00
Delyan Angelov cdf70c070b tests: add panic_with_cg.vv/.out 2020-05-04 14:34:51 +03:00
joe-conigliaro 57903247e3
parser: add back struct field removed by accident 2020-05-04 21:27:54 +10:00
yuyi 90fc23ccfb
checker: fix array init []type{cap: x.len} error 2020-05-04 13:22:09 +02:00
Uwe Krüger f831910c5c
utf: fix string length calculation for combining characters 2020-05-04 13:21:11 +02:00
ka-weihe a72f3ed0c7
builtin: voidptr.str() and byteptr.str() 2020-05-04 13:20:18 +02:00
joe-conigliaro d75f286230
parser: store FnDecl body position and use for scope 2020-05-04 20:31:34 +10:00
joe-conigliaro 4571a5eb83
gen: use middle of fn pos to load correct scope for free 2020-05-04 20:08:37 +10:00
yuyi c112b3aec5
tests: fix cleanup of compiler_test.v on windows 2020-05-04 11:33:54 +02:00
Delyan Angelov 068da2ea0f builtin: fix warning about unused skipframes 2020-05-04 12:05:08 +03:00
Alexander Medvednikov eca24c5d11 tests: interface: rename Speaker to Animal 2020-05-04 10:58:42 +02:00
Delyan Angelov acd80f052b
tests: improve diagnostic output on failure 2020-05-04 11:21:25 +03:00
yuyi e0e064ff08
scanner: fix string slash line breaks error 2020-05-04 10:19:23 +02:00
yuyi cd5dccd855
gen: fix compilter_test.v error on windows 2020-05-04 10:09:49 +02:00
Enzo Baldisserri 4b3ce79e84
interface: support arguments in methods and simplify 2020-05-04 00:14:59 +02:00
Delyan Angelov 71a92eb87b tests: fix CI failing for builtin __as_cast 2020-05-03 22:25:38 +03:00
Delyan Angelov 242670a33d compiler: add support for panic_debug with -cg 2020-05-03 22:13:59 +03:00
Delyan Angelov 0b750a234f repl: fix for single lines ending with // comment 2020-05-03 20:48:46 +03:00
Delyan Angelov 845ffb59a6 live: use mostly pure V code for reloading, eases customization 2020-05-03 20:22:24 +03:00
Uwe Krüger 4a096bd133
parser: fix string interpolation for default conversion 2020-05-03 18:12:59 +02:00
Alexander Medvednikov de749e9d3b parser/cgen: interface <<; `any` type 2020-05-03 18:08:45 +02:00
Alexander Medvednikov 2a016d03ac checker: use `[]int` instead of `array_int` in errors 2020-05-03 16:49:05 +02:00
Alexander Medvednikov 2a5421133d clipboard: Linux fixes 2020-05-03 16:39:26 +02:00
Alexander Medvednikov 361fad9231 tests: disable valgrind test until fn scopes are fixed 2020-05-03 16:29:15 +02:00
Alexander Medvednikov 16fe8103ba tests: bring back valgrind test 2020-05-03 13:12:05 +02:00
joe-conigliaro 8df7637853
checker: dont re match/cast with position() when already cast to sum type 2020-05-03 14:22:41 +10:00
Delyan Angelov 7e4e3abc2c compiler: circuimvent the dependency cycle v.ast <-> v.table 2020-05-02 22:52:10 +03:00
Delyan Angelov dbbfb04e7c docs: change obsolete -show_c_cmd to -showcc and -keepc 2020-05-02 19:01:53 +03:00
yuyi 02807aab43
interpolation: fix error on windows_gcc 2020-05-02 18:22:34 +03:00
Alexander Medvednikov b0018ed594 checker: better << error 2020-05-02 16:48:52 +02:00
joe-conigliaro 483f0f408c
ast: allow scope var shadowing 2020-05-02 23:46:53 +10:00
Tanel Liiv 68ca8ab8a4
array: nested map() 2020-05-02 15:26:58 +02:00
Alexander Medvednikov 44c00199b6 cgen: fix fixed array consts and pointer interfaces 2020-05-02 15:18:58 +02:00
joe-conigliaro a9a8539e41
checker: small fix in assign_stmt 2020-05-02 20:21:28 +10:00
joe-conigliaro fd925fbd05
checker: simplify assign_stmt & add better checks 2020-05-02 19:45:08 +10:00
Alexander Medvednikov 06d533b0c1 cgen: clean up _STR 2020-05-02 11:11:32 +02:00
eyelash 716d867f25
cgen: generate static C functions 2020-05-02 10:42:38 +02:00
Alexander Medvednikov 06173834c0 cgen: interface_call() 2020-05-02 10:10:52 +02:00
Delyan Angelov aa9bb6f71a compiler: fix -live compilation of bounce example with gcc-9 & clang 2020-05-02 02:36:29 +03:00
Alexander Medvednikov 7a51d4d796 cgen: revert `new` 2020-05-02 00:59:06 +02:00
Alexander Medvednikov 7dc98120c0 cgen: vfmt -live fix; add new to c_reserved 2020-05-02 00:45:45 +02:00
Uwe Krüger 170ee4312f
cgen: string interpolation field width support for large integers and utf8 strings 2020-05-02 00:43:59 +02:00
Alexander Medvednikov 2f64594ce0 cgen: more interface fixes 2020-05-02 00:28:46 +02:00
Delyan Angelov 7038f59ca5 compiler: add back support for -live 2020-05-02 01:14:44 +03:00
eyelash 130324df76
compiler: remove debug prints 2020-05-02 00:10:36 +02:00
yuyi b21be7f670
parser: multiple names error 2020-05-01 18:18:58 +02:00
yuyi de272654f1
repl: fix import xxx with no fn main error 2020-05-01 18:12:18 +02:00
eyelash 4d04e88679
errors: show line numbers in default color and add a space 2020-05-01 14:46:12 +02:00
eyelash 6b08cbcb7a
compiler: print warnings in magenta 2020-05-01 13:44:15 +03:00
Alexander Medvednikov 0106eb1cf6 cgen: fix thread wrapper 2020-05-01 12:32:10 +02:00
Alexander Medvednikov 0b8a0d1640 checker: fix _ check 2020-05-01 12:22:39 +02:00
joe-conigliaro fb1c60c53d
checker: add back check struct field fn args 2020-05-01 20:12:21 +10:00
Alexander Medvednikov c1ee14cc3e json: decode() part 1 2020-05-01 12:02:31 +02:00
joe-conigliaro a0e662bef9
checker: remove debug println from selector_expr 2020-05-01 19:54:47 +10:00
joe-conigliaro 03904085c4
checker: check fn field exprs 2020-05-01 19:50:32 +10:00
Delyan Angelov 35f56bc4f0 vfmt: fix eating ? in `$if x ? {}`, missing newline in `__global ...` 2020-05-01 12:29:23 +03:00
Delyan Angelov 59525c8c93 tests: fix missing ? after v fmt run 2020-05-01 12:01:30 +03:00
Delyan Angelov 84785bbb59 tests: fix msvc transient failures when sleep_ms takes longer 2020-05-01 11:58:56 +03:00
Alexander Medvednikov 51da324465 tests: fix eventbus_test.v 2020-05-01 10:57:19 +02:00
Delyan Angelov 3608c81cb9 time: add stopwatch_test.v 2020-05-01 10:21:15 +03:00
Tanel Liiv 182e7071bf
array: map() function 2020-05-01 00:29:54 +02:00
Alexander Medvednikov b0c710c985 checker: allow `fn == 0` comparison for now 2020-04-30 18:51:33 +02:00
Delyan Angelov a6dfc6d46b compiler: support ctags with -print_v_files and .ctags.d/v.ctags 2020-04-30 19:45:50 +03:00
Alexander Medvednikov 250dea7bd1 cgen: another imported interface fix 2020-04-30 18:23:17 +02:00
Alexander Medvednikov f1903f3c1f parser: fix imported interfaces 2020-04-30 18:06:14 +02:00
Alexander Medvednikov 9971c58ca3 all: remove `var` key 2020-04-30 16:55:33 +02:00
Alexander Medvednikov 20013e4b4b table: interfaces: unique gen_types 2020-04-30 16:48:46 +02:00
Tim Basel 473617f061
cli: add option with default 2020-04-30 12:18:46 +02:00
yuyi 5481c0fc84
parser: uniform handling of enum field format 2020-04-30 12:18:16 +02:00
yuyi 81ed6ad2a1
checker: check duplicate consts 2020-04-30 12:17:31 +02:00
yuyi 4d415e56d6
checker: check enum field name duplicate 2020-04-30 09:34:18 +02:00
Enzo Baldisserri 50491670af
fmt: fix formatting backtick char literal 2020-04-30 09:33:43 +02:00
yuyi c4f672454f
checker: check import duplicates 2020-04-30 09:33:12 +02:00
Henrixounez f6d74c8a37
checker: error on ternary if type mismatch 2020-04-30 09:32:29 +02:00
Alexey 54d1a29267
dl: improve module 2020-04-29 21:01:19 +02:00
Delyan Angelov e5ae4b6454 parser: fix match exprs over C.VALUES (needed for C.GLFW_KEY_UP) 2020-04-29 20:35:57 +03:00
yuyi b2a076e8b8
csv: fix last-field-empty error 2020-04-29 16:50:02 +02:00
Tim Basel 3e4cd12fd0
.gitignore: ignore all binary files by default 2020-04-29 16:49:13 +02:00
Alexander Medvednikov 03cee3fee0 builder: fix run & is_test check 2020-04-29 16:44:50 +02:00
Alexander Medvednikov be0e848ae8 builder: do not allow `v run _test.v` 2020-04-29 14:52:32 +02:00
yuyi 1fabb7d5a6
checker: fix string.str() error 2020-04-29 13:51:42 +02:00
Enzo Baldisserri 390d88f933
parser: fail for section redefinition in struct 2020-04-29 13:32:39 +02:00
joe-conigliaro 98cd013908
cgen: fix interface struct sorting 2020-04-29 21:08:39 +10:00
Alexander Medvednikov 51d0ce0222 tests: more interface tests; checker: handle zero selectorexpr type error 2020-04-29 12:46:09 +02:00
Henrixounez c500044bae
checker: unreachable code warning 2020-04-29 12:31:18 +02:00
Alexander Medvednikov 2fc05b814c all: interface arrays 2020-04-29 12:21:15 +02:00
Delyan Angelov 3d8853af2b builder: move warning/error printing into print_warnings_and_errors 2020-04-29 13:04:09 +03:00
Delyan Angelov 1e910c6afe tests: add reference_field_must_be_initialized.vv 2020-04-29 12:56:12 +03:00
Delyan Angelov bf8ed1815c builder: print collected checker warnings too 2020-04-29 12:38:43 +03:00
penguindark ad46e1b832
strconv: v_printf documentation
* v_printf documentation

* syntax fix
2020-04-29 12:25:38 +03:00
Delyan Angelov 0e765e34be vfmt: extract v.util.find_working_diff_command, color_compare_files 2020-04-29 11:51:45 +03:00
Delyan Angelov dd3434598c checker_test: remove generated .v files, when a test is OK 2020-04-29 11:48:51 +03:00
yuyi 117649f40d
checker: check devision by zero (int and float) 2020-04-29 10:07:27 +02:00
yuyi 2b48ce21df
checker: make sure `main` has no args and doesn't return 2020-04-29 09:19:46 +02:00
yuyi a9e33e712a
checker: check struct field name duplicate 2020-04-29 09:11:36 +02:00
Henrixounez 0dc7a57e1f
scanner: prevent panic with string starting on first character 2020-04-28 18:57:16 +02:00
Delyan Angelov 8c526ad05b tests: ignore vlib/v/checker/tests/*.v files (only *.vv are sources there) 2020-04-28 16:45:25 +03:00
Henrixounez 0afaef5818
checker: ambiguous function call error
* checker: ambiguous function call error

* checker: ambiguous function call error wording

* checker: ambiguous functions tests newline
2020-04-28 16:27:49 +03:00
Delyan Angelov 8a81aa5c93 errors: disambiguate between variable and fn source_context 2020-04-28 16:20:50 +03:00
Delyan Angelov 7924b4d77c compiler: handle a panic when an error is produced, but source == '' 2020-04-28 16:15:56 +03:00
Delyan Angelov 8ea087f957 vfmt: fix compilation; handle the case when fmt.tabs is not enough 2020-04-28 16:04:37 +03:00
Delyan Angelov c6a15dba50 compiler: add support for size_t 2020-04-28 15:07:19 +03:00
jm-duro 210b6e36b6
http: mutable request fields 2020-04-28 13:57:48 +02:00
Alexander Medvednikov 1e4e882bc2 cc/cgen: cached modules fixes 2020-04-28 13:15:37 +02:00
Sandro Martini 761fb930ce
dl: add dynamic load module 2020-04-28 11:53:55 +02:00
Enzo Baldisserri 7bf8731778
checker: check variable mutability for postfix exprs 2020-04-28 11:20:19 +02:00
Delyan Angelov 54b71242fe builder: add autofree compatibility; protect against b.str() twice in a row 2020-04-28 11:03:43 +03:00
yuyi f2060d431e
checker: check division by zero 2020-04-28 09:52:01 +02:00
joe-conigliaro ef4f4825ac cgen: auto dereference for optional 2020-04-28 15:59:41 +10:00
yuyi 28f5920bb0
cgen: fix `map` `fixed-array` .str() error 2020-04-28 07:22:46 +02:00
yuyi b20777df59
checker: main function called error 2020-04-28 07:21:50 +02:00
Major Taylor 9edbcb823c
cli: Fix off-by-one error in smart-wrap 2020-04-28 00:10:36 +03:00
Enzo Baldisserri 682838a0cf
checker: check array and fields mutability 2020-04-27 22:53:26 +02:00
Alexander Medvednikov 5d073dcce5 x64: # opcodes 2020-04-27 21:38:58 +02:00
joe-conigliaro 9f76a7b250
parser: simplify unused vars & add loop/if vars etc 2020-04-27 23:16:31 +10:00
Delyan Angelov e67bf674e3 scanner: cleanup, only v.parser now depends on v.scanner 2020-04-27 16:08:04 +03:00
yuyi e9f764db4f
cgen: uniform string output format 2020-04-27 14:48:28 +02:00
Alexander Medvednikov eb8973c362 builder: module caching fixes 2020-04-27 14:46:25 +02:00
Alexander Medvednikov f005079e0b pref: rename keep_c 2020-04-27 13:28:00 +02:00
ka-weihe 18faaefe82
map: get: remove malloc and memcpy 2020-04-27 13:27:33 +02:00
Delyan Angelov 73106b5f5e profile: measure defer{} statements too 2020-04-27 13:18:37 +03:00
Alexander Medvednikov fde929ee30 cgen: remove tos3() call: part 1 2020-04-27 12:10:08 +02:00
Delyan Angelov dd1ee39271 profile: produce civilized output 2020-04-27 12:45:19 +03:00
yuyi 99a7b69578
cgen: optimize map_to_string format 2020-04-27 10:52:21 +02:00
Delyan Angelov c84dee5968 profile: move profiling related logic into vlib/v/gen/profile.v 2020-04-27 09:40:13 +03:00
yuyi 95754f211f
cgen: generate str function when using x.str() 2020-04-27 08:09:37 +02:00
Alexander Medvednikov 3256d060f7 array: inline ensure_cap 2020-04-27 07:39:33 +02:00
Alexander Medvednikov ef26f27753 builtin: replace `isnil` calls for perfomance 2020-04-27 07:13:36 +02:00
Delyan Angelov e523540f3a profile: use specialized time__vpc_now 2020-04-26 22:14:54 +03:00
Alexander Medvednikov 50a83736ff checker: struct init: handle C types 2020-04-26 19:59:03 +02:00
Alexander Medvednikov 8223efe9df checker: check struct field types 2020-04-26 18:38:29 +02:00
Alexander Medvednikov 83552a0d58 array: replace make() with the new init syntax 2020-04-26 17:52:27 +02:00
Alexander Medvednikov f23948010a parser: new array init syntax 2020-04-26 17:28:48 +02:00
penguindark d16474442a
strconv: format test fixes 2020-04-26 16:26:33 +02:00
yuyi 2574dce174
all: fix remaining `[]array` warnings 2020-04-26 16:25:54 +02:00
yuyi 9f4d498ff1
all: update`import ()` and `[]array` 2020-04-26 13:49:31 +02:00
Larpon 7b39ab6d06
string: fix replace_each edge case error message 2020-04-26 12:40:39 +02:00
Enzo Baldisserri 0f2f97e3e5
checker: reorganize tests to match fmt tests 2020-04-26 12:34:42 +02:00
Alexander Medvednikov 41eb4453e3 parser: do not allow redefinition of fn args 2020-04-26 12:01:10 +02:00
Alexander Medvednikov 153ac230ec tests: use new array init syntax, fix mutability 2020-04-26 11:56:30 +02:00
Alexander Medvednikov 0641a31fe0 parser: allow mutable pointer args 2020-04-26 11:53:41 +02:00
eyelash b495dac780
fix a few warnings
Good find, @eyelash .
2020-04-26 12:42:44 +03:00
Alexander Medvednikov 270566055f checker: make sure all FnDecl types are valid 2020-04-26 10:39:26 +02:00
Alexander Medvednikov 3c08f655af parser: do not allow mutable simple args 2020-04-26 10:35:10 +02:00
Alexander Medvednikov a56121c329 checker: check mutability in index exprs; parser: set is_mut for args 2020-04-26 10:25:58 +02:00
Delyan Angelov ee31339dfd parser: fix error position for use `x := []Type{}` 2020-04-26 10:42:46 +03:00
Alexander Medvednikov d844ff1381 builder: fix msvc.v 2020-04-26 09:33:40 +02:00
Alexander Medvednikov 20bcb6b8bb tests: fix lef_shift test 2020-04-26 09:29:29 +02:00
penguindark b67698888c
strconv: printf and string format utilities 2020-04-26 10:23:10 +03:00
Alexander Medvednikov 7955181c6c tests: [] fixes 2020-04-26 09:18:29 +02:00
Alexander Medvednikov 3ab8dc0092 parser: array init: `[]string` => `[]string{}` 2020-04-26 09:17:17 +02:00
yuyi 3a59f5727c
checker: fix check main function error (#4601) 2020-04-26 08:04:28 +02:00
Alexander Medvednikov a48080afec parser: deprecate import(); replace remaining import()s 2020-04-26 07:36:02 +02:00
Delyan Angelov 48f9cc1ed7 tests: make alias_type_exists.vv use `type Pigeon Bird` syntax 2020-04-26 08:23:09 +03:00
Alexander Medvednikov f7153ca4fa fmt: array_init(); parser: fn_redefinition_error() 2020-04-26 07:17:01 +02:00
Delyan Angelov 620fc962d7 builtin: use single line imports, to make analysis easier 2020-04-26 08:06:39 +03:00
Alexander Medvednikov 3166833471 parser: fix interface method return type parsing 2020-04-26 07:03:26 +02:00
yuyi 9cfb1e3bf7
cgen: fix struct with fixed array error 2020-04-26 06:54:14 +02:00
Enzo Baldisserri 0b3412cdb5
checker: check that type exists in TypeDecl 2020-04-26 06:40:54 +02:00
yuyi 541b058e90
all: use `a !in b` instead of `!(a in b)` 2020-04-26 06:39:23 +02:00
Alexander Medvednikov 2b4ac0e63a checker: handle array of interfaces 2020-04-26 06:29:03 +02:00
Alexander Medvednikov 8000eb3656 parser: revert silent _ prefix rule 2020-04-26 05:34:34 +02:00
Alexander Medvednikov 60a0ba5eaa table: minor interface clean up 2020-04-26 05:34:34 +02:00
Delyan Angelov a77640165e compiler: faster vmod lookup 2020-04-25 23:43:46 +03:00
Delyan Angelov 08799792a7 tests: fix regex test 2020-04-25 23:42:48 +03:00
Delyan Angelov cd27300d75 cookie: fix a new match error about redundant `else` 2020-04-25 23:02:04 +03:00
Delyan Angelov 19d7553d67 tests: fix vlib/net/http/cookie_test.v 2020-04-25 22:53:18 +03:00
Enzo Baldisserri 3e68e429b6
checker: avert if else is unnecessary 2020-04-25 21:51:44 +02:00
Alexander Medvednikov e0f9c042c1 cgen: interface fixes 2020-04-25 21:24:12 +02:00
Delyan Angelov 86ba1645b0 os: add os.input(prompt) 2020-04-25 22:04:12 +03:00
Enzo Baldisserri c73d91a8fe
fmt: TypeDecl; format more files 2020-04-25 20:58:00 +02:00
Ruofan XU d86539c4f5
checker: clean up infix_expr 2020-04-25 20:28:49 +02:00
ka-weihe d72e401378
string: optimize eq 2020-04-25 20:19:53 +02:00
Alexander Medvednikov b7e5be41f5 checker/cgen: `as` fixes 2020-04-25 18:41:12 +02:00
yuyi c26e83f58a
array: fix fixed array errors 2020-04-25 18:26:38 +02:00
yuyi ec9566988a
cmdline: minor optimizaztion 2020-04-25 17:49:51 +02:00
Enzo Baldisserri fb54a2635c
fmt: lots of fixes 2020-04-25 17:49:16 +02:00
Delyan Angelov 7c080c5d4a checker: prevent `x := voidfn()` 2020-04-25 18:06:34 +03:00
Larpon 6a834c0528
checker: use 'mut' instead of 'var' in error message 2020-04-25 17:51:12 +03:00
Delyan Angelov a20bef65ba fmt: workaround a vfmt limitation preventing formatting of vlib/v/ast/ast.v 2020-04-25 17:34:42 +03:00
Delyan Angelov 9a19531909 compiler: add support for `[if myflag]` void fn/methods 2020-04-25 16:57:11 +03:00
Delyan Angelov 945f964c0c parser: stay silent about unused variables starting with _ 2020-04-25 15:38:15 +03:00
joe-conigliaro aacc3c6f7e
cgen: generate str for variadic (#4587) 2020-04-25 22:23:47 +10:00
Delyan Angelov 4bcdf11743 cgen: support `-profile -` and `-profile x.txt` 2020-04-25 13:41:49 +03:00
Delyan Angelov eecf92cdb0 cgen: implement -profile support. 2020-04-25 13:05:49 +03:00
joe-conigliaro 41cc96aaec
revert parser: simplify array push detection 2020-04-25 18:57:12 +10:00
joe-conigliaro 4675656786
parser: simplify array push detection 2020-04-25 18:42:53 +10:00
Delyan Angelov e0ab318f56 cgen: add support for `v -printfn main file.v` 2020-04-25 11:15:57 +03:00
joe-conigliaro 900d96c638
parser: allow deref assign without parens pt2 update vlib 2020-04-25 18:14:01 +10:00
joe-conigliaro 7177e71444
revert parser: allow deref assign without parens pt2 update vlib 2020-04-25 18:11:14 +10:00
joe-conigliaro f92cf69e60
parser: allow deref assign without parens pt2 update vlib 2020-04-25 18:09:52 +10:00
joe-conigliaro 9fff8733a0
parser: allow deref assign without parens pt1 2020-04-25 18:07:30 +10:00
joe-conigliaro 6696e1a6e2
table: move set_nr_muls to method 2020-04-25 17:54:32 +10:00
Alexander Medvednikov d54b48b300 table: interface cast fix 2020-04-25 09:18:10 +02:00
Alexander Medvednikov 9229a963ed array: use __new_array everywhere 2020-04-25 09:10:54 +02:00
joe-conigliaro fbcdffbbc8
table: move Type functions to methods 2020-04-25 17:08:53 +10:00
Alexander Medvednikov 6248899d25 compiler_test: handle panics 2020-04-25 09:05:14 +02:00
Delyan Angelov 1c46dabc84 tetris: cleanup unused variable warnings 2020-04-25 09:49:02 +03:00
Alexander Medvednikov 48857090fc runtime `as` type check: part 2 2020-04-25 08:42:23 +02:00
Alexander Medvednikov 2d187fb951 runtime `as` type check: part 1 2020-04-25 08:36:53 +02:00
Alexander Medvednikov f1f9e423c3 interfaces: preparatory fixes 2020-04-25 08:00:44 +02:00
Junya Okuno 5600fd8613
net.http: remove redundant httponly handling 2020-04-25 06:15:05 +02:00
Enzo Baldisserri a924defb94
checker: check `in` left type 2020-04-25 06:14:17 +02:00
Enzo Baldisserri fa4739794f
checker: fix "unnecessary `()`" error position 2020-04-24 20:27:18 +02:00
Delyan Angelov cc4090cc74 vfmt: remove unused variable check for vfmt 2020-04-24 20:25:11 +03:00
Delyan Angelov 8be10ffbd6 vfmt: always walk over all comptime branches 2020-04-24 19:05:55 +03:00
Delyan Angelov f6f204387d cgen: fix for msvc 2020-04-24 18:44:25 +03:00
Delyan Angelov c6a829ce82 cgen: support for error('abc').str() and printing errors 2020-04-24 18:35:33 +03:00
Enzo Baldisserri 323ca2b3bb
checker: check duplicates on match with no else
Refactor match duplication test to work even if there is not else, and to include every expression.
Add tests for duplicate expressions in match.
2020-04-24 17:04:39 +03:00
Delyan Angelov aa15dec660 checker: check default struct field expression types 2020-04-24 16:46:55 +03:00
Delyan Angelov d6899788dd time: add back vlib/time/time_linux.c.v 2020-04-24 15:28:16 +03:00
yuyi afa9d42ff0
cgen: fix gen_str_for_array_fixed error 2020-04-24 12:36:45 +02:00
Alexander Medvednikov a3382a5319 x64: debug opcodes nicely 2020-04-24 09:44:54 +02:00
Delyan Angelov 6bd34a069d benchmark: show xxx.yyy ms, using the new highres timer 2020-04-24 10:26:47 +03:00
Delyan Angelov 117ec722a2 time: remove temporary time__linux.c.v workaround 2020-04-24 09:12:34 +03:00
Delyan Angelov 20637ae54c time: restore building v on linux, till v.c is regenerated with `-os cross` 2020-04-24 09:00:07 +03:00
Delyan Angelov 863fab0268 comptime: enable again skipping parsing of other platform branches 2020-04-24 08:51:48 +03:00
Delyan Angelov 7a132e5c79 cgen: cleaner comptime ifdefs . 2020-04-24 08:42:31 +03:00
Major Taylor 25f2b171fc
time: Timer -> StopWatch; time.Duration 2020-04-24 07:33:25 +02:00
Leah Lundqvist f3e3d7e0c5
websocket: update to work with latest V 2020-04-24 07:32:51 +02:00
yuyi 998fc8fc07
cgen: add gen_str_for_array_fixed 2020-04-24 07:32:27 +02:00
Alexander Medvednikov c30c76c285 tests: fix x64 test 2020-04-24 05:26:29 +00:00
Delyan Angelov 6b31ebe456 Revert "comptime: enable again skipping parsing of other platform branches"
This reverts commit 0f4c5fb1c9.
2020-04-23 22:47:16 +03:00
Alexander Medvednikov 8cb88d5c9a x64: remove fn arg test for now 2020-04-23 20:55:23 +02:00
Delyan Angelov ebc41375f1 os.executable: fix panic when os.executable_fallback fails (early in startup) 2020-04-23 21:53:18 +03:00
Alexander Medvednikov 1247718cbd x64: pass fn args 2020-04-23 20:27:34 +02:00
Delyan Angelov 0f4c5fb1c9 comptime: enable again skipping parsing of other platform branches 2020-04-23 20:45:16 +03:00
Delyan Angelov 4f4567513e comptime: fix `$if debug {}` when giving -cg or -d debug 2020-04-23 18:03:07 +03:00
Delyan Angelov adb8fb1dc6 comptime: fix custom -d flags and `$if x? {}`. Fixes ftp_test.v . 2020-04-23 17:52:44 +03:00
Delyan Angelov 1a79e5419f tests: fix aes_test.v by manually dereferencing the mut dst parameter 2020-04-23 16:45:25 +03:00
yuyi 2b4f72ef64
parser: fix empty import error 2020-04-23 14:48:05 +02:00
yuyi f2e505d962
tests: enable compiler_test.v on Windows 2020-04-23 14:15:15 +02:00
Delyan Angelov 8b5573a6f3 errors: use more distinct and detailed name redefinition messages 2020-04-23 13:15:01 +03:00
Enzo Baldisserri 7e400124e8
parser: allow blank ident in nested loops 2020-04-23 12:00:51 +02:00
Delyan Angelov fb97c2e01e examples: fix path_tracing.v compilation, using (*ptr) = expression 2020-04-23 12:28:16 +03:00
Alexander Medvednikov 7f5e3b36bc x64: for loop 2020-04-23 05:29:07 +02:00
yuyi 5664cbd3d0
enum: check enum name and modify related files 2020-04-23 05:16:10 +02:00
Alexander Medvednikov 45e21085c7 tests: re-enable some old array tests 2020-04-23 04:23:19 +02:00
Alexander Medvednikov 9fe0ca5323 x64: ++ 2020-04-23 01:55:38 +02:00
Kris Cherven d871595437
all: replace `var` with `mut` 2020-04-23 01:16:58 +02:00
yuyi 4e1abc8503
all: remove commas between enum vals 2020-04-23 01:16:16 +02:00
Alexander Medvednikov d7ee4755c2 parser/cgen: interfaces (part 1) 2020-04-22 20:23:53 +02:00
Kris Cherven faed178cb1
fmt: fix optional formatting 2020-04-22 20:12:58 +02:00
Enzo Baldisserri fecf4ddf65
cgen: fix optional pointers 2020-04-22 20:12:30 +02:00
joe-conigliaro de182d5809
parser: use single scope for fn args/body 2020-04-22 21:15:38 +10:00
joe-conigliaro 80a4fbf0be
parser: anon fn arg scope fix 2020-04-22 21:11:58 +10:00
joe-conigliaro 830b1807c1
test: add comment for assert bug in fn_test 2020-04-22 18:47:46 +10:00
joe-conigliaro 3ca4f5fada
checker/parser: anon fn call & return type fix 2020-04-22 18:41:57 +10:00
Delyan Angelov 4b8ed3f831 cgen: fixes for ustring, makes utf8_util_test.v pass 2020-04-22 10:35:14 +03:00
Alexander Medvednikov 50436a0e4a x64: local variables; if 2020-04-22 07:11:17 +02:00
joe-conigliaro c35e0e49ce cgen: use gen_varg var in condition 2020-04-22 13:31:24 +10:00
joe-conigliaro c1e8612624 checker/gen: allow vargs to be forwarded. fix/enable variadic test 2020-04-22 13:28:47 +10:00
Kris Cherven b288ecb795
cgen: add map string generation 2020-04-22 04:00:38 +02:00
Kris Cherven 5c3742fbd2
parser: check var names in for loops 2020-04-22 03:48:51 +02:00
Kris Cherven 155891a4e0
parser: add unused variable warning 2020-04-22 01:52:56 +02:00
Uwe Krüger 08fac28c52
cgen: fix string interpolation for non-standard integer types 2020-04-22 01:48:53 +02:00
penguindark 34fd148f2f
ftoa: some fixes for rounding, new functions 2020-04-22 01:42:44 +02:00
joe-conigliaro b9c0d2d362
cgen: fix passing high order function with body 2020-04-21 22:45:20 +10:00
yuyi bc4a576c54
flag: fix flag_test.v 2020-04-21 14:44:17 +03:00
yuyi a8dc0ccbcd
checker: add more op checks 2020-04-21 13:26:02 +02:00
Delyan Angelov 7c1d6b60c2 cgen: add g.auto_str_funcs, print &Struct pointers with enum fields 2020-04-21 13:32:17 +03:00
Alexander Medvednikov baf3bf6778 uiold: make compile (fix vid); x64: mov rbp, rsp 2020-04-21 10:48:52 +02:00
Alexander Medvednikov 4471314291 clipboard: make the Linux version compile 2020-04-21 07:24:23 +00:00
Delyan Angelov 9d107007a1 x64: enhance diagnostic for unhandled nodes 2020-04-21 09:34:00 +03:00
Alexander Medvednikov ab38605802 tests: disable clipboard on linux; x64: leave() 2020-04-21 06:16:47 +02:00
Alexander Medvednikov 77679d9650 tests: mark more tests as fixed 2020-04-21 05:52:44 +02:00
Alexander Medvednikov 9278a0cfba tests: fix mut_test; x64: sub32() 2020-04-21 05:49:03 +02:00
joe-conigliaro abf5942433
parser/cgen: anon fn var & calling (#4534) 2020-04-21 13:23:36 +10:00
Alexander Medvednikov ee2e83fef0 go back to `mut`. decisions, decisions... 2020-04-21 05:11:50 +02:00
Alexander Medvednikov 1bf094fbca parser: mut in receivers 2020-04-21 05:07:49 +02:00
Alexander Medvednikov cc0e0ed281 fmt: single line match fix; x64: minor fixes 2020-04-21 04:51:53 +02:00
sambeckingham 4ea4d1c8c4
csv: handle missing line ending 2020-04-21 00:02:55 +02:00
Alexander Medvednikov 67a76cee1e tests: fix x64 output comparison 2020-04-20 22:57:41 +02:00
Alexander Medvednikov 10677c2b0c x64: fn call test 2020-04-20 22:36:12 +02:00
Alexander Medvednikov 871c29ea5d x64: fn calls; return; 2020-04-20 22:21:40 +02:00
sambeckingham b1459ade69
csv: fix missing last column 2020-04-20 21:49:05 +02:00
Ruofan XU f725b93019
tests: delete an unused file 2020-04-20 21:48:14 +02:00
Alexey 9c0d97335e
builtin: improve backtrace on Windows 2020-04-20 20:59:08 +02:00
Ruofan XU cdb1b0344c
checker: improve type check for arithmetic assignment op and fix error pos 2020-04-20 20:56:05 +02:00
Major Taylor dc8199709f
cli: add smart-wrap for help description 2020-04-20 14:50:15 +02:00
yuyi 717e26b45e
checker: more infix checks 2020-04-20 14:49:26 +02:00
yuyi 07f69fab19
checker: remove dots from error messages 2020-04-20 11:57:07 +02:00
Alexander Medvednikov 2805f8d0cc tests: fix x64_test.v 2020-04-16 14:19:14 +03:00
Alexander Medvednikov 78cbb7746f tests: fix hello.vv output 2020-04-20 09:07:19 +02:00
Alexander Medvednikov 2642f6a0da cgen: remove _PUSH 2020-04-20 09:04:17 +02:00
Alexander Medvednikov e006da7259 parser: fix a bad comment 2020-04-20 08:44:14 +02:00
Alexander Medvednikov 4b329cb89d tests: fix a typo 2020-04-20 08:32:10 +02:00
Alexander Medvednikov ee2f1652b5 fmt: add EOL 2020-04-20 08:30:42 +02:00
Alexander Medvednikov 639dc02cc8 x64: test hello world 2020-04-20 08:27:37 +02:00
Alexander Medvednikov c1fc768c1b fmt: run on cmd/v; cgen: fix anonymous functions 2020-04-20 07:04:31 +02:00
Alexander Medvednikov efff96d622 x64: make hello world run 2020-04-20 07:02:09 +02:00
Alexander Medvednikov 19a5436118 cgen: use faster array_push instead of _PUSH; re-fmt cgen.v 2020-04-20 03:54:41 +02:00
yuyi be3bd520f6
checker: fix for in range type mismatch 2020-04-20 00:21:16 +02:00
Ruofan XU 5edd9cdc3a
checker: add type check for bit op 2020-04-19 22:29:45 +02:00
yuyi dbb81b89fd
checker: fix type mismatch of `in` array 2020-04-19 22:26:58 +02:00
Daniel Däschle b62bb22fa6
checker: allow C values in enum 2020-04-19 22:26:04 +02:00
Ruofan XU 6c59b306c7
checker: add type check for arithmetic assignment ops 2020-04-19 22:24:12 +02:00
yuyi 4de16e9f0f
tests: enable checker_error_test on windows 2020-04-19 20:48:13 +02:00
Keito Nagai 57859db07c
readme: fix docs link 2020-04-19 20:47:36 +02:00
Kris Cherven 95ae915c0c
checker/parser: fix outdated error messages 2020-04-19 20:46:48 +02:00
yuyi 27e04748ed
cgen:gen_str_for_array 2020-04-19 10:42:34 +02:00
Alexey 3ee858cd79
cgen: fix struct initialization bugs 2020-04-19 04:44:39 +02:00
Major Taylor be0a8794c2
time: add Timer; refactor benchmark to use Timer 2020-04-19 03:40:32 +02:00
Enzo Baldisserri 57c142b993
checker: disallow pub in main 2020-04-19 00:07:57 +02:00
Alexander Medvednikov de9f302412 fmt: array newlines test 2020-04-18 23:58:59 +02:00
Alexey 85c5103ba3
tests: test cflags parsing 2020-04-18 23:45:17 +02:00
Alexey 3d6142064d
tests: remove `msvc-test` 2020-04-18 23:44:42 +02:00
Alexander Medvednikov a18201faa7 fmt: save newlines between array elements 2020-04-18 23:09:23 +02:00
Alexey 2ab2a58bc5
string: add more interpolation tests 2020-04-18 18:26:07 +02:00
Ruofan XU b0e498bf0b
scanner: refactor ident_dec_number 2020-04-18 17:49:27 +02:00
Tim Basel 86df486988
compiler: rename is_so to is_shared 2020-04-18 17:46:23 +02:00
Kris Cherven 3cc7009440
cflag: remove circular dependency 2020-04-18 16:29:43 +02:00
Kris Cherven eb923b4995
testing: fix count of succeeded tests 2020-04-18 05:49:03 +03:00
yuyi 5374899f29
parser: fix interpolation error 2020-04-18 00:22:03 +02:00
Enzo Baldisserri 0f9322bf36
checker: print error and pos for lacking main or pub main 2020-04-18 00:20:38 +02:00
Enzo Baldisserri f2be3d7ffb
checker: check that right `is` type exists 2020-04-18 00:19:33 +02:00
Tim Basel 73073cd954
parser: anonymous functions (part 1) 2020-04-17 21:59:19 +02:00
yuyi 3e324befd0
builder: clean up and simplify some methods 2020-04-17 21:17:19 +02:00
Alexander Medvednikov 515da900e4 fmt: remove \t before same line comments 2020-04-17 20:53:39 +02:00
Alexander Medvednikov 2c778c8849 fmt: single line matches 2020-04-17 20:51:19 +02:00
yuyi 67cd90de6e
parser: fix number parse error 2020-04-17 20:31:32 +02:00
Kris Cherven 84ac634c31
checker: disallow pub fn main() 2020-04-17 20:30:43 +02:00
Alexander Medvednikov c4b7d7cab3 match: shadow variable instead of `it` 2020-04-17 19:24:10 +02:00
Alexander Medvednikov 59baef89a0 parser: assign.v, containers.v, for.v, if.v 2020-04-17 18:16:55 +02:00
Alexander Medvednikov b53fb365a6 parser: move pratt logic to pratt.v 2020-04-17 18:11:04 +02:00
Alexander Medvednikov 16931fd23f parser: move all struct logic to struct.v 2020-04-17 18:01:02 +02:00
Alexander Medvednikov ed8855c4cd tests: fix struct_unknown_field.v 2020-04-17 17:20:35 +02:00
Alexander Medvednikov 4a556f72bb checker: allow calling private functions in tests 2020-04-17 17:18:40 +02:00
Alexander Medvednikov 06c1b9e95e table/checker: verify private functions/methods 2020-04-17 17:16:14 +02:00
Daniel Däschle af30bf939e
checker: fix return underlining 2020-04-17 16:16:56 +02:00
Daniel Däschle c1d9e22ca6
cgen: gen str() from eprintln and eprint as well 2020-04-17 16:15:28 +02:00
yuyi 420ecaf31d
cgen: gen_str_for_array() 2020-04-17 16:10:41 +02:00
Daniel Däschle 402e55d115
ast: expr.Position; struct field refactoring 2020-04-17 02:38:39 +02:00
yuyi 8bb11d9035
cgen: fix string_interpolation_struct_test.v error 2020-04-17 01:45:42 +02:00
Major Taylor 7bfc3ef767
cli: fix issue with long cmd and flag names 2020-04-16 23:01:04 +02:00
Enzo Baldisserri 051cc732bb
cgen: generate typeof for functions 2020-04-16 21:04:27 +02:00
yuyi dee64347e0
cgen: fix const_embed_test.v error 2020-04-16 19:43:39 +02:00
Alexey 4c8510dfaf
cgen: use `wWinMain` for Windows GUI applications 2020-04-16 19:42:04 +02:00
Delyan Angelov aed8370d87 tetris: enable compilation with -prod; cleanup of font loading errors 2020-04-16 19:44:15 +03:00
Kris Cherven 182108faca
fmt fmt.v, vfmt.v 2020-04-16 15:54:17 +02:00
Alexey 54226e74cf
sokol: add missing `C` prefixes 2020-04-16 15:53:34 +02:00
Alexander Medvednikov 714ff50322 fmt: use the new receiver syntax 2020-04-16 15:42:40 +02:00
Alexander Medvednikov 4b5acfd960 parser: (var x X) receiver syntax 2020-04-16 15:40:21 +02:00
Alexander Medvednikov 8760313ce5 fmt builder.v 2020-04-16 15:35:19 +02:00
Alexander Medvednikov af224b4933 parser/cgen: is keyword 2020-04-16 15:32:14 +02:00
Delyan Angelov cc9828b481 checker: fix building of shared .so libs 2020-04-16 16:30:19 +03:00
Enzo Baldisserri e05f103c41
cli: make compile 2020-04-16 14:50:04 +02:00
Delyan Angelov 1318c27699 tetris: it now works with v2 (on linux) :-) 2020-04-16 13:30:40 +03:00
Daniel Däschle 19723c927b
checker: move more checks from parser 2020-04-16 12:17:15 +02:00
Delyan Angelov 554d87f5b0 tetris: part 1 of fixing compilation with v2 2020-04-16 12:37:59 +03:00
Delyan Angelov 8a1248b2e7 builder: restore module import cycle detection/topological reorder 2020-04-16 12:29:36 +03:00
Daniel Däschle 04db2d02b8
checker: move struct name check from parser to checker 2020-04-16 11:01:18 +02:00
yuyi 54a02996f2
cgen: fix string interpolation float type 2020-04-16 07:30:25 +02:00
Kris Cherven 332d52f459
fmt: stop mangling reference names 2020-04-16 07:28:41 +02:00
joe-conigliaro c3ddaf16ec cgen: fix sum type casting for array push 2020-04-16 15:18:33 +10:00
Daniel Däschle a680db44ed
parser: change `for` error message 2020-04-16 06:01:14 +02:00
yuyi b15780ae51
parser: better const error 2020-04-16 06:00:05 +02:00
Delyan Angelov 4b3c44cfd7 Revert "tetris: part 1 of fixing building it with v2"
This reverts commit d42725aafe.
2020-04-16 01:16:54 +03:00
Delyan Angelov d42725aafe tetris: part 1 of fixing building it with v2 2020-04-16 00:35:16 +03:00
Delyan Angelov 92129d760d checker: fix false positives for sumtype kind of matches 2020-04-16 00:32:56 +03:00
Abdullah Atta 6a186e8f11
jsgen: implement js backend 2020-04-15 23:16:49 +02:00
Kris Cherven a3ab5df2ed
cgen: prepend __ to new_array 2020-04-15 20:12:06 +02:00
Daniel Däschle 27b6f30305
checker: move capital var check from parser to checker 2020-04-15 19:09:51 +02:00
Daniel Däschle 93b942de46
parser: fix a match error 2020-04-15 16:23:03 +02:00
joe-conigliaro fde83aff0b
checker/cgen: fix calling struct field with fn type 2020-04-15 04:28:18 +02:00
Alexander Medvednikov da28bc7026 Revert "fmt: `(var f Foo)`"
This reverts commit 4b110756e0.
2020-04-15 04:15:42 +02:00
Alexander Medvednikov 4b110756e0 fmt: `(var f Foo)` 2020-04-15 03:56:16 +02:00
Kris Cherven 4dd8796dba
cgen: fix assignment to nested maps 2020-04-15 02:42:00 +02:00
Alexander Medvednikov f34352faf9 fmt: use var instead of mut 2020-04-15 01:55:51 +02:00
Alexander Medvednikov efaec8be8e token/parser: var keyword 2020-04-15 01:45:27 +02:00
Daniel Däschle 4068cbc6eb
parser: fix var name check pos 2020-04-14 21:27:17 +02:00
Alexey e1739549b2
crypto: fix `rand` module 2020-04-14 21:03:02 +02:00
Alexander Medvednikov 14e1b963f2 parser: do not allow variable names with capital letters 2020-04-14 20:40:00 +02:00
Alexey 91de4e1ece
array: test assignment operators 2020-04-14 20:32:06 +02:00
Enzo Baldisserri 86402204a7
checker: fail if else isn't the last branch of match 2020-04-14 20:31:51 +02:00
Alexey 0c63f5c80d
builtin: test left/right shift precedence 2020-04-14 19:38:11 +02:00
Daniel Däschle 50871d1a92
checker: for in index type error position 2020-04-14 19:37:56 +02:00
Alexander Medvednikov deab448d93 cgen: fix array[i] &=, |= etc 2020-04-14 19:36:52 +02:00
Alexander Medvednikov 233ae3f772 fmt: use `import module` syntax 2020-04-14 19:32:23 +02:00
Alexander Medvednikov 2251634743 parser: hide import deprecation warning for now 2020-04-14 18:36:29 +02:00
Alexander Medvednikov f91d527154 deprecate `import module` 2020-04-14 18:27:30 +02:00
Alexander Medvednikov 211275ab49 fmt: always use import() syntax 2020-04-14 18:24:19 +02:00
Alexander Medvednikov ec10831318 parser: `[]int{cap:cap, len:len}` syntax; minor fixes 2020-04-14 18:10:16 +02:00
joe-conigliaro b33a9fc9e7
parser: fix left shift precedence 2020-04-15 01:41:14 +10:00
Delyan Angelov 2b3204603a parser: add an $if tinyc{} wrapper for the tcc_stack_bug variable 2020-04-14 18:02:55 +03:00
Delyan Angelov e947d5e8c8 checker: fully exhaustive matches for sumtypes and enums
Also change the vlib/v/checker/tests/inout/match_expr_else.out to reflex the
new error details.
2020-04-14 16:50:43 +03:00
Daniel Däschle 75603beeea
checker: match exhaustive as stmt and with enum 2020-04-14 15:12:26 +02:00
Delyan Angelov c04c973f84 cgen: use a temp variable for the array part inside 'for x in array{}' 2020-04-14 13:22:58 +03:00
Delyan Angelov 2df4998acc parser: fix v selfcompilation with tcc (tcc bug workaround) 2020-04-14 11:06:19 +03:00
yuyi 956651384c
cgen: fix math/complex_test.v 2020-04-14 07:44:19 +02:00
yuyi 682c619456
array: fix array_byte.str error 2020-04-14 05:55:53 +02:00
Alexander Medvednikov 5f1b88c2c4 checker: do not use !in for now 2020-04-14 04:14:02 +02:00
Alexander Medvednikov bbc35b1179 checker: check bool and string ops 2020-04-14 04:12:28 +02:00
yuyi 885612afea
ftoa: fix strconv/ftoa/f32_f64_to_string_test.v 2020-04-14 03:53:34 +02:00
Alexander Medvednikov df37597f00 tests: disable cookie test for now 2020-04-14 03:43:59 +02:00
Chris Watson c6c2fccb23
net.http: add cookie support 2020-04-14 03:34:05 +02:00
Daniel Däschle 12e48c6fe2
checker: check match for exhaustion 2020-04-14 01:03:31 +02:00
Alexander Medvednikov 1185f04868 json: encode 2020-04-14 00:37:47 +02:00
Alexander Medvednikov a9a8f8c804 rand: remove duplicate C fn 2020-04-13 20:11:44 +02:00
krischerven 8c0b25a2ab
cgen: fix printing alias types 2020-04-13 20:07:25 +02:00
Alexander Medvednikov 7aacf77262 checker: remove an extra fn check 2020-04-13 20:06:20 +02:00
Alexander Medvednikov 24958df565 parser: do not allow duplicate fns; cgen: move fn code to fn.v 2020-04-13 19:59:57 +02:00
yuyi fb4cfa72cd
cgen: fix str() for arrays 2020-04-13 19:18:22 +02:00
Daniel Däschle a6100be8df
parser: fix position of array init
* parser: fix position of array init
* fix checker_error_test.v tests
2020-04-13 19:08:02 +03:00
krischerven ac67b1ea1b
tests: add new type alias syntax tests 2020-04-13 16:44:21 +02:00
Alexander Medvednikov c36984cc94 fmt: handle indents 2020-04-13 16:36:32 +02:00
Alexander Medvednikov 2bd22aa4a4 parser: type Foo = Bar 2020-04-13 15:06:02 +02:00
Alexander Medvednikov 77fcd572dc fmt: remove unused imports 2020-04-13 15:05:51 +02:00
Daniel Däschle 8cbdb75dd6
cgen: fix match expr multiline error
* cgen: fix match expr multiline error
* Support for multiple statements in the else part of the match.
* Add a test for the match expression with multiple statements.
2020-04-13 13:05:38 +03:00
Delyan Angelov 99db5f53f7 repl_test.v: fix compilation (non working ones are for now renamed to .skip) 2020-04-13 11:06:52 +03:00
krischerven 74ba8f5cc9
tests: add testing for !in 2020-04-13 02:29:07 +02:00
krischerven 78f9f25a00
cgen: fix !in not working with maps 2020-04-13 02:22:55 +02:00
krischerven a0d6651e0e
tests: fix typeof_test 2020-04-13 02:22:14 +02:00
Daniel Däschle 1a4113d245
checker: store errors in []Error 2020-04-13 01:56:01 +02:00
Enzo Baldisserri da5a1e458b
cgen: fix match expr in assert 2020-04-13 01:53:26 +02:00
Alexander Medvednikov 6ada43df61 fmt: test automatic import insertion 2020-04-12 17:57:05 +02:00
Alexander Medvednikov 810a0725ec tests: fix fmt tests 2020-04-12 17:49:31 +02:00
Alexander Medvednikov 0db0c642c3 vfmt: add missing imports automatically 2020-04-12 17:45:04 +02:00
Daniel Däschle d55f4ab097
cgen: fix error priting struct which has .str already 2020-04-12 16:25:02 +03:00
Daniel Däschle 5818956cdc
cgen: % escape in string interpolated literals
* cgen: % escape in c call to _STR
* tests: add test for string % escape
* Add a test for the % escaping when interpolating inside strings
2020-04-12 16:24:23 +03:00
Daniel Däschle 4449468ca4
parser: correct error position on field and method errors 2020-04-12 15:19:07 +03:00
ka-weihe e247690fe1
map: fast_string_eq and improved comments
* improved comments and fast_string_eq
* make it pass CI
* enumerate traits
* Add parameter back
* remove space
* remove parameter
* Allow bootstrap compilation in one step with old vc (add new_map/2 shim).
2020-04-12 15:10:06 +03:00
Daniel Däschle 79dad0bca9
parser: fix enum default value in struct
* parser: fix enum default value in struct

* Add a test for the enum default values in structs.

* Fix compilation of vfmt.

* Run vfmt over enum_default_value_in_struct_test.v

* Cleanup spurious , in vfmt output for enum declarations

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2020-04-12 13:35:54 +03:00
yuyi 0ced7116b6
string: add is_upper/is_lower and fix parser.match_expr error
* string: add is_upper/is_lower and fix parser.match_expr error

* to_capital => capitalize, to_title => title

* is_titled => is_title, is_capitalized => is_capital
2020-04-12 13:09:05 +03:00
Ned Palacios db2c656da8
scanner: `!in` token 2020-04-12 07:30:26 +02:00
yuyi c3e78b8c8f
vdoc: use the new suffix 2020-04-12 02:50:19 +02:00
krischerven 0a03797694
tests: run vfmt 2020-04-12 01:41:26 +02:00
krischerven 1abdf2d68f
cgen: fix missing defer in fn main() 2020-04-12 01:38:14 +02:00
Alexey 0f19f9dd51
tests: test call of variadic function with no arguments 2020-04-12 01:37:34 +02:00
Alexander Medvednikov 4b029567e5 tests: test string literal indexing and mutable array filter 2020-04-11 23:32:00 +02:00
Alexander Medvednikov 39245f088a array: test !in and filter 2020-04-11 23:01:50 +02:00
Alexander Medvednikov 449d839684 checker: make sure functions return 2020-04-11 21:50:14 +02:00
Alexander Medvednikov 581d836de6 !in operator 2020-04-11 21:31:54 +02:00
Alexander Medvednikov 1b6ae00966 os: rename os_nix.v to os_nix.c.v 2020-04-11 20:43:17 +02:00
lutherwenxu dc4db87be3
vlib: use new filename format 2020-04-11 19:51:32 +02:00
Alexander Medvednikov f91e3a5d3c cgen: arr[i] +=, /=, -= 2020-04-11 19:07:03 +02:00
Alexey d078e6bb08
net: check if socket descriptor is valid 2020-04-11 19:06:01 +02:00
Alexey 1fde205f97
time: return optional value directly 2020-04-11 18:56:39 +02:00
Alexey 0050c1915b
cgen: call module `init` function if available 2020-04-11 18:38:51 +02:00
Alexander Medvednikov d0ac69d12e parser: fix sizeof(&Foo) 2020-04-11 18:38:25 +02:00
yuyi ea960b2ce2
parser: fix inter literal format error 2020-04-11 17:25:39 +02:00
Alexey df825506fd
cgen: fix check for array equality 2020-04-11 17:25:25 +02:00
Alexander Medvednikov 63d747042e cgen: fix sizeof(&int) 2020-04-11 16:24:25 +02:00
Delyan Angelov 61c1535199 assert: generate tos3/1 calls instead of _STR (bugfix) 2020-04-11 16:18:09 +03:00
Delyan Angelov 30714d16d9 c linker: pass -Xlinker -z -Xlinker muldefs only on Linux with -cache 2020-04-11 15:24:23 +03:00
yuyi c1aba95d7d
parser: refactor script & repl handling 2020-04-11 15:06:26 +03:00
Daniel Däschle be16c5b21d
parser: better error on short init struct 2020-04-11 14:56:55 +03:00
Swastik Baranwal 6ecb6cfe8e
tests: add an operator overloading test 2020-04-11 14:39:51 +03:00
Delyan Angelov 15f4594e44 msvc: fix self compile, by avoiding explicit casting to the same type 2020-04-11 13:35:41 +03:00
Delyan Angelov b10fcc79ba comptime: fix #ifdef/#endif generation 2020-04-11 12:41:48 +03:00
Delyan Angelov 93d2ab200f cheaders: fix selfcompilation with tcc 2020-04-11 12:18:26 +03:00
Delyan Angelov 6433c23a34 string: add s.strip_margin_custom/1, instead of passing varargs to s.strip_margin()
The reason for adding s.strip_margin_custom/1 is that
passing varargs interfere with the current implementation of the
builtin module caching.
2020-04-11 11:06:12 +03:00
Delyan Angelov 95709811e0 v: support VFLAGS, fix 'v run source.v arg after source' 2020-04-11 10:28:43 +03:00
Delyan Angelov ba799b3f85 builder: support v.mod/@VROOT, fix -cflags and -cache 2020-04-11 09:57:31 +03:00
Alexander Medvednikov 053de0b8e3 checker: check variable mutability 2020-04-11 04:09:41 +02:00
Alexander Medvednikov 9422cd1009 parser: handle mut & receivers; fix checker_error_test 2020-04-11 02:24:00 +02:00
Alexander Medvednikov 8fbae86bb3 vfmt: skip skipped modules; add module test 2020-04-10 22:32:52 +02:00
Alexander Medvednikov b95a47b5a7 checker: check fn main(); vfmt: fix for{}, module and module comments 2020-04-10 22:27:54 +02:00
Delyan Angelov fdac3a1f2e ftp.v: fix compilation 2020-04-10 23:23:42 +03:00
Delyan Angelov 4f74410125 test-fixed: always chdir to main v folder before running the tests 2020-04-10 22:40:56 +03:00
Delyan Angelov 217e6f3b8e checker/parser: allow for fixed array with sizes defined with a const 2020-04-10 22:01:22 +03:00
lutherwenxu 514d989a27
builder: parse `.c.v` and `.js.v` correctly 2020-04-10 18:25:23 +02:00
Alexander Medvednikov f76931c01e cache builtin modules 2020-04-10 18:11:43 +02:00
Daniel Däschle c815f84722
parser: fix void assign check 2020-04-10 15:53:06 +03:00
Daniel Däschle 42b3b19af4
checker: fix checker enum infix error 2020-04-10 15:44:01 +03:00
Daniel Däschle adb379dd63
parser: fix string position 2020-04-10 15:40:52 +03:00
Delyan Angelov 83dfc6b9b9 checker: add more checks for multivar assignments 2020-04-10 15:38:43 +03:00
Delyan Angelov 3573030b9b checker: fix error position for assignment expression 2020-04-10 15:14:05 +03:00
Delyan Angelov 3ea563291c big.v: use again @VROOT/ for #flags 2020-04-10 13:09:04 +03:00
Delyan Angelov 60d6543733 comptime: support @VROOT again 2020-04-10 13:02:00 +03:00
yuyi 7f87ac996d
test: fix vlib/math/big/big_test.v 2020-04-10 12:26:15 +03:00
Daniel Däschle 0f11d883fa
checker: fix error messages and add checker tests
* checker: fix error messages
* tests: fix command and ignore defect output
2020-04-10 11:59:07 +03:00
Delyan Angelov 74ac9ef195 builder: write intermediate .c files in the vtmp folder again 2020-04-10 11:55:04 +03:00
Delyan Angelov 7d564e9791 cgen: skip inc generation for ForCStmt, when empty in the v source 2020-04-10 10:00:14 +03:00
Alexander Medvednikov d5fb68e3d6 vfmt: fix struct init; run on struct_test.v 2020-04-10 00:36:50 +02:00
Alexander Medvednikov 9b2511133d vfmt: lots of fixes; cmd/v: -keepc; 2020-04-10 00:30:43 +02:00
Daniel Däschle 32550c6d69
scanner: even better error messages 2020-04-10 00:09:34 +02:00
Daniel Däschle 320fad49c5
checker: check enum 2020-04-09 19:23:49 +02:00
Alexander Medvednikov 6ac64c8586 parser: register #flags 2020-04-09 16:39:53 +02:00
Alexander Medvednikov 2b685fc80a table: bring back parse_cflag() 2020-04-09 15:59:22 +02:00
Daniel Däschle c0d86eb651
cgen: printing pointer should print the address 2020-04-09 15:35:52 +02:00
Alexander Medvednikov f508955b64 vfmt: fix mod.Type; run vfmt on ast.v 2020-04-09 15:33:46 +02:00
Alexander Medvednikov f3c917e0aa fmt: fix array receivers; cmd/v: -showcc 2020-04-09 15:05:06 +02:00
Alexander Medvednikov d7ae9d7279 cgen: optional fixes; make http compile 2020-04-09 14:03:47 +02:00
yuyi 87df587f5a
parser: fix script and repl error 2020-04-09 12:46:16 +02:00
Alexey 384d401af0
math: fix `bits_test` 2020-04-09 12:43:37 +02:00
Daniel Däschle 3fbf91a044
cgen: printing pointers 2020-04-09 12:29:29 +02:00
Delyan Angelov 806f86e4e2 assert: pretty print function calls too 2020-04-09 13:24:26 +03:00
Alexey 56c3a8b9a2
base64: fix build 2020-04-09 12:17:01 +02:00
yuyi 89b83400f5
math: fix factorial_test.v error 2020-04-09 04:21:11 +02:00
yuyi bf20b01586
map: fix map_test.v error 2020-04-09 03:57:08 +02:00
krischerven 8f8f8c418e
cgen: implement equality on arrays 2020-04-09 03:55:37 +02:00
ka-weihe 71190c27a9
fmt: align consts 2020-04-09 01:10:08 +02:00
ka-weihe 77d41d03f5
cgen: inline 2020-04-09 00:35:13 +02:00
Alexander Medvednikov 3f480a358e fix type_alias test 2020-04-08 22:34:21 +02:00
Daniel Däschle 1c340174b7
cgen: print nested structs 2020-04-08 22:14:01 +02:00
Alexander Medvednikov a08e64f37f cgen: operator overloading 2020-04-08 22:12:42 +02:00
Alexander Medvednikov 3521b7ff89 websocket: fmt example + minor fixes 2020-04-08 21:21:58 +02:00
Abdullah Atta 6f8f8d7b1b
websocket: eventbus and other cleanup 2020-04-08 21:19:01 +02:00
Alexander Medvednikov b40fdd9089 scope: find_const 2020-04-08 19:47:20 +02:00
Leah Lundqvist b28ab2511c
websocket: move library files to root of module 2020-04-08 19:44:30 +02:00
Alexander Medvednikov fa6aaad6df checker: handle `x := x` 2020-04-08 19:15:19 +02:00
Daniel Däschle 03c307a8c0
parser: fix struct name error 2020-04-08 19:08:54 +02:00
hazohelet 78fc9bd12b
fmt: short_module for enum values 2020-04-08 18:55:50 +02:00
Daniel Däschle d38acb5487
cgen: fix enum print case 2020-04-08 18:55:10 +02:00
Delyan Angelov 3fd547f2e5 flag: fix compilation of programs using flag module 2020-04-08 19:49:32 +03:00
Delyan Angelov 292b165abe tests: use the yellow color for 'the ok, fail, skip, total' line too 2020-04-08 18:49:00 +03:00
Delyan Angelov e10290eb8e tests: make the SKIP and FAIL labels more distinctive 2020-04-08 18:42:05 +03:00
Alexander Medvednikov 7a218286b3 cgen: fix returning optional consts; fix csv test 2020-04-08 17:21:36 +02:00
Delyan Angelov 3abbdd4a39 tests: fix vlib/os/environment.v 2020-04-08 18:01:19 +03:00
hazohelet 10c4c44d03
parser: allow C struct declaration that lacks body 2020-04-08 16:54:49 +02:00
Daniel Däschle a61654009f
tests: change skip color to yellow instead of red 2020-04-08 16:52:40 +02:00
krischerven bcb9d90abb
cgen: remove redundant spaces in generated C 2020-04-08 16:52:07 +02:00
Delyan Angelov 5247d5924e tests: stats_test.v, pcg32_test.v, splitmix64_test.v now also pass 2020-04-08 17:29:43 +03:00
Daniel Däschle 6bba7d4e3a
cgen: enum str() 2020-04-08 15:54:38 +02:00
Delyan Angelov 1388532bd4 tests: fix crc32_test.v 2020-04-08 16:48:13 +03:00
Delyan Angelov a8fe3a59b0 tests: fix sha1 test by fixing << | expressions with explicit parenthesis for now. 2020-04-08 16:30:19 +03:00
Alexander Medvednikov 80888b9518 tests: fix fmt test 2020-04-08 14:25:08 +02:00
Alexander Medvednikov 8426db7fe5 copy thecodrr/vws to vlib/net/websocket 2020-04-08 14:22:31 +02:00
Alexander Medvednikov 5ef5712e91 vfmt: do not generate a space if the comment is empty 2020-04-08 14:19:13 +02:00
Alexander Medvednikov 2e78051933 tests: fix in_expression_test 2020-04-08 13:56:09 +02:00
Alexander Medvednikov eb78396307 parser: fix prefix precedence 2020-04-08 13:53:11 +02:00
Delyan Angelov c00ec77737 tests: fix compilation of parser_test.v 2020-04-08 05:57:36 +03:00
Delyan Angelov ef19aa1de6 assert: fix line position, pretty print float literals and casts 2020-04-08 05:47:29 +03:00
Delyan Angelov 3bad02abdd cgen: do comparison of f32/f64 values for == and != by calling f64_eq(a,b) and f64_ne(a,b) 2020-04-08 03:51:06 +03:00
Delyan Angelov 8e06f4e519 tests: rename vlib/rand/rand_test.v to random_numbers_test.v to fix sporadic CI fails 2020-04-08 03:04:04 +03:00
Delyan Angelov b9ec1479e4 checker: allow again fallthrough in or{} blocks of option calls without assignment 2020-04-08 02:56:24 +03:00
Alexander Medvednikov 7ff0c3aaa9 cgen/parser: fix unions 2020-04-08 01:20:55 +02:00
Alexander Medvednikov cdcb8b6c06 fmt: ` ` fix 2020-04-08 01:04:08 +02:00
yuyi 9984691eaf
parser: fix float_test.v 2020-04-08 01:00:58 +02:00
Alexander Medvednikov d54150cd22 vfmt: fix struct init indent and wrapped lines 2020-04-08 00:59:28 +02:00
Alexander Medvednikov 2fbed2f880 cgen: fix _ = ... 2020-04-08 00:46:16 +02:00
ka-weihe 7406abe3b6
map: use strcmp and update wyhash 2020-04-08 00:02:15 +02:00
Daniel Däschle 59ac0bd46b
cgen: print bool correctly in interpolation 2020-04-07 23:26:20 +02:00
Delyan Angelov 582ee9e643 urllib: put braces in << | expressions in urllib.v to make test pass 2020-04-07 22:58:29 +03:00
Delyan Angelov cb52dd85e7 tests: add an isolated test case for long struct names with capitalization 2020-04-07 22:03:20 +03:00
Delyan Angelov 589b932f19 compiler: more permissive structure names, that allow URL as a struct name 2020-04-07 22:00:25 +03:00
Alexander Medvednikov 6bbd1943dd cgen: fix &string cast; vfmt fixes 2020-04-07 18:51:44 +02:00
Daniel Däschle 4aedef367c
cgen: print bool and string correctly in struct 2020-04-07 17:52:15 +02:00
Daniel Däschle 7cf9b32742
cmd: show cleaner messages, when v can not compile a tool, or update itself 2020-04-07 17:56:33 +03:00
Daniel Däschle 0024ff848d
parser: check if the last or {} block expression is valid
These checks allows for:

a) `x := call() or { 'abc' }`
b) `x := call() or { panic('abc') }`
c) `x := call() or { exit(123) }`
d) `x := call() or { continue }`
e) `x := call() or { break }`
f) `x := call() or { return }`

... but produce errors for:

g) `x := call() or { println('an error') }` , etc.
2020-04-07 17:36:00 +03:00
Alexander Medvednikov 275b20a184 vfmt: handle for ;; loops; run vfmt on parser.v 2020-04-07 15:48:13 +02:00
Alexander Medvednikov 8f9a8e1e7f vfmt: small fixes + run on checker.v and fmt.v 2020-04-07 15:15:49 +02:00
Alexander Medvednikov 890940292b Revert "cgen: print bool in struct correctly"
This reverts commit 78440be2b2.
2020-04-07 12:56:05 +02:00
Daniel Däschle 78440be2b2
cgen: print bool in struct correctly 2020-04-07 12:39:10 +02:00
yuyi 08d90afb8c
builder: fix an error on windows 2020-04-07 12:32:49 +02:00
yuyi 426eb46166
test: fix windows test error 2020-04-07 12:32:09 +02:00
Daniel Däschle fe0942043c
checker: check if BranchStmt is in a loop 2020-04-07 12:29:11 +02:00
Alexander Medvednikov fd75cce0f3 vfmt: minor fixes + tests 2020-04-07 04:05:59 +02:00
Daniel Däschle b0dacef32b
time: change unix timestamp to u64 2020-04-07 03:35:47 +02:00
lutherwenxu a8c92e6dff
checker: remove hack and enforce type checking 2020-04-07 03:27:06 +02:00
Alexander Medvednikov fa5fcee584 cmd/v: fix run args 2020-04-07 03:21:32 +02:00
Alexander Medvednikov 33644a4f91 cmd/v: fix `run` 2020-04-07 01:09:25 +02:00
Alexander Medvednikov b7560fe4bf parser: do not allow duplicate methods; builder: cleaning up 2020-04-07 01:02:48 +02:00
Alexander Medvednikov 8d150d427a merge and simplify cmd/v and v.builder 2020-04-07 00:44:31 +02:00
Delyan Angelov 8da12eb8a7 errors: column index tweaks for emacs/vim 2020-04-06 23:15:53 +03:00
Delyan Angelov 333e725380 errors: remove 0 from caret line 2020-04-06 20:41:33 +03:00
Delyan Angelov bc2ea2f3d4 errors: fix caret position on lines with tabs 2020-04-06 20:35:24 +03:00
Delyan Angelov 3b3d248637 scanner: use formatted errors for s.error too 2020-04-06 19:58:32 +03:00
ka-weihe 5be892c635
cheaders: update wyhash to version gamma 2020-04-06 18:47:29 +02:00
Alexander Medvednikov 7f516dbae2 cgen: minor optionals fixes 2020-04-06 18:46:50 +02:00
Delyan Angelov d74eb99066 errors: do not bold the actual error message content 2020-04-06 19:46:23 +03:00
Delyan Angelov 7a99949f0e errors: print more informative and pretty errors 2020-04-06 19:40:20 +03:00
Alexander Medvednikov d865fc26eb http: fix method_and_url_to_response definition 2020-04-06 17:42:47 +02:00
lutherwenxu e8b26b1b8d
checker: make struct_init check more robust 2020-04-06 17:39:52 +02:00
yuyi 4d5fe14968
log: fix example error 2020-04-06 17:22:53 +02:00
Alexander Medvednikov 2006995020 cmd/v: remove clang-format (the generated code is pretty from the start) 2020-04-06 17:11:01 +02:00
Alexander Medvednikov 87c00a61da strconv: fix compilation 2020-04-06 14:53:28 +02:00
Alexander Medvednikov 35fbac8d56 parser/cgen: default struct field values 2020-04-06 14:45:48 +02:00
Major Taylor f099f90f50
string: fix trim_right, add tests 2020-04-06 14:30:25 +02:00
Alexander Medvednikov f59c9133da cgen: temporary headers fix 2020-04-06 14:22:59 +02:00
Alexander Medvednikov be014fcdd6 checker: << check; initial #flag os support 2020-04-06 02:05:11 +02:00
ka-weihe a30d292385
map: fix leaksfree fix (#4254) 2020-04-05 23:31:53 +02:00
Alexander Medvednikov edb93914bb vfmt: re-run on fmt.v 2020-04-05 23:30:16 +02:00
Alexander Medvednikov 852ec61b34 vfmt: fix single line if 2020-04-05 23:00:21 +02:00
ka-weihe 307daacf67
depgraph/map: fix memory bug 2020-04-05 22:09:52 +02:00
Alexander Medvednikov ffe8452f02 vfmt: fix imports 2020-04-05 21:53:00 +02:00
Alexander Medvednikov 08bbc251ff vfmt: fix multiline comments 2020-04-05 19:35:10 +02:00
Alexander Medvednikov 8260236331 vfmt: run on fmt.v 2020-04-05 18:15:50 +02:00
Alexander Medvednikov e464c4acc5 vfmt: more fixes + run on cgen.v 2020-04-05 18:03:36 +02:00
Alexander Medvednikov df45932c03 vfmt: fix same line stmt comments 2020-04-05 16:38:33 +02:00
Alexey 781c20a6ae
cgen: bring back Windows fixes 2020-04-05 16:08:16 +02:00
Delyan Angelov 206c1f4ca1 os: implement os.is_writable_folder/1 2020-04-05 16:56:54 +03:00
Delyan Angelov f139e98745 launch_tool: use println for verbose messages instead of eprintln 2020-04-05 15:31:09 +03:00
Delyan Angelov 44a271d9e9 v version: show only vhash, when vhash and current_hash are the same 2020-04-05 14:47:01 +03:00
lydiandy 35fab2bb7b
ast: pub interface field 2020-04-05 12:31:39 +02:00
Alexey 9c1eaaeb49
cgen: declare empty structs correctly 2020-04-05 12:31:25 +02:00
Alexander Medvednikov de701ccfac fmt: struct field comments on the same line 2020-04-05 12:25:39 +02:00
Delyan Angelov 75518e5bb9 ci: extract separate working_with_an_empty_struct_test.v 2020-04-05 12:55:54 +03:00
Delyan Angelov 5e76d53fcd compiler: support default values in optional blocks 2020-04-05 11:59:15 +03:00
Alexander Medvednikov 05fbe5ab7a parser: move comments 2020-04-05 04:05:09 +02:00
Alexander Medvednikov 2a06263a5b vfmt: more fixes; enable `v fmt` and `v fmt -w` 2020-04-05 03:37:38 +02:00
Alexander Medvednikov 97db4c0e9a vfmt: comments and other fixes 2020-04-05 02:08:13 +02:00
Delyan Angelov 45fdbc4df7 support pretty printing of StringInterLiteral in asserts too 2020-04-05 00:51:49 +03:00
Daniel Däschle e077cce103
vlib: add inode/mode information functionality (#4242)
* vlib: add inode/mode information functionality

* vlib: add docs to inode
2020-04-05 00:37:13 +03:00
Alexey 98086d7259
strconv: fix atof test 2020-04-04 23:28:47 +02:00
Delyan Angelov 774fb7e850 fix 'assert false' pretty printing 2020-04-05 00:12:16 +03:00
Delyan Angelov 45401954fa fix vlib/os/os_test.v 2020-04-04 23:06:47 +03:00
Delyan Angelov b0567543c9 add support for errcode in or{} optional blocks. 2020-04-04 21:47:57 +03:00
Alexey abd0686043
cgen: fix struct initialization 2020-04-04 17:59:49 +02:00
Alexey bb587c27a8
bitfield: update module 2020-04-04 17:59:26 +02:00
Delyan Angelov 8f06d60084 fix vlib/bitfield/bitfield_test.v 2020-04-04 18:03:06 +03:00
Alexander Medvednikov 33b03449d5 tools: remove vnames.v for now 2020-04-04 16:39:08 +02:00
Alexander Medvednikov e600feda98 cgen: __argc is already used on windows 2020-04-04 15:59:46 +02:00
Alexey b8f1152408
clipboard: fix build on Windows 2020-04-04 15:37:13 +02:00
Alexey 6455e57e82
fmt: process C function declarations correctly 2020-04-04 15:36:46 +02:00
krischerven 1960c6f4cb
checker: make an error message less ambiguous 2020-04-04 15:36:12 +02:00
Delyan Angelov 4c8703416e fix vlib/math/math_test.v 2020-04-04 16:07:42 +03:00
Alexander Medvednikov f748390172 parser: do no allow var names with __; cgen: use __argc 2020-04-04 14:55:40 +02:00
Alexander Medvednikov 95a1bd8470 cgen: handle C typedefs 2020-04-04 14:32:42 +02:00
Alexander Medvednikov 440f1cf4c6 map: remove old get methods 2020-04-04 14:22:39 +02:00
Alexander Medvednikov 46aed151ab parser: snake_case check; array: mutable array test 2020-04-04 14:09:58 +02:00
krischerven 4c6db7a64e
cgen: fix mutable arrays 2020-04-04 14:08:38 +02:00
Delyan Angelov 133842bf95 Remove unused self import of v.util into v.util . 2020-04-04 14:49:08 +03:00
joe-conigliaro b4e5e36d4a
checker: var opt & temp `[]` & non array init error & bug notes 2020-04-04 22:32:16 +11:00
Alexander Medvednikov d1f653f9bd parser: fix GG struct init 2020-04-04 13:11:50 +02:00
Alexander Medvednikov c0d4503f25 gl/glfw: update C definitions 2020-04-04 12:56:35 +02:00
Alexey d56276017c
cgen: fix variadics called with 0 vargs 2020-04-04 12:54:45 +02:00
yuyi 8ba6e45d83
time: fix unix_time 2020-04-04 12:10:56 +02:00
Alexey c6fabea49d
cgen: generate code for `go` statement for Windows 2020-04-04 12:09:05 +02:00
yuyi 0796eb4149
os: optimize os_windows.v 2020-04-04 11:59:25 +02:00
Alexey 5313a1401f
checker: show actual field name in warn message 2020-04-04 11:57:45 +02:00
Alexey 72df30050d
term: fix `get_terminal_size` on Windows 2020-04-04 11:56:43 +02:00
joe-conigliaro 97d8633557
checker: constant cycle & test fix 2020-04-04 17:05:26 +11:00
joe-conigliaro c9e290b36f
table: simplify/generalise type fns & remove calls 2020-04-04 16:37:11 +11:00
joe-conigliaro bf59828897
ast: const impl & global scope & objects 2020-04-04 14:14:40 +11:00
yuyi bb5ed66bb4
eval: fix new_checker call 2020-04-04 02:03:41 +02:00
Alexander Medvednikov 1d2de44e19 cgen: fix print(ptr); checker: uninitialized reference error/warning 2020-04-03 20:17:53 +02:00
Alexander Medvednikov 436ef12730 cgen: str(): handle empty structs 2020-04-03 18:49:15 +02:00
Delyan Angelov b411d29577 v2: fix support for 'go fn()' in modules. sync.pool is again multithreaded. 2020-04-03 19:44:49 +03:00
Alexander Medvednikov c32ed8af51 cgen: struct str() generation; go() fixes 2020-04-03 18:05:53 +02:00
Delyan Angelov 31c4b1cda6 v2: compile vfmt again; consistent colored error messages 2020-04-03 18:42:22 +03:00
Alexander Medvednikov 52f096f5d9 cgen: `go xxx()` 2020-04-03 15:18:20 +02:00
Alexey 6a5cc0fa19
tests: update assert output 2020-04-03 13:39:11 +02:00
Alexey 6c4de001b8
cgen: add `builtin.init` call inside of `_vinit` 2020-04-03 13:27:19 +02:00
Alexey 4cde6c0865
fmt: process TypeOf node 2020-04-03 11:59:53 +02:00
Alexander Medvednikov 87a185ea9c checker: remove newlines after errors 2020-04-03 11:09:02 +02:00
Alexander Medvednikov 0dad1a89e6 checker: much less verbose error messages 2020-04-03 11:01:09 +02:00
Alexander Medvednikov 1d52847924 checker: error on an unknown ident 2020-04-03 10:52:48 +02:00
Alexander Medvednikov a25f47124d cgen: make array_set/map_set work with pointers 2020-04-03 10:41:01 +02:00
Alexey ef339a4896
rand: update module 2020-04-03 08:53:57 +02:00
yuyi 5e6aa5371a
scanner: minor optimization (#4211) 2020-04-03 09:46:54 +03:00
Delyan Angelov 6b9bf8cbf7 v2: fixes for most of vlib/builtin/map_test.v . 2020-04-03 00:42:08 +03:00
Delyan Angelov 07c53b1b70 v2: report ill defined consts by name/line, not only how many they are 2020-04-02 22:33:36 +03:00
Alexey 5b6ec8996a
sync: fix build on Windows 2020-04-02 20:58:07 +02:00
hazohelet 0e6fe0a4f2
V: fix const bugs and pass const_test.v (#4206)
* fix const bug in v2

* v2: fix const decl

* small comment fix
2020-04-02 19:39:17 +02:00
Alexey 6309e699e5
builtin: add operator precedence test 2020-04-02 19:02:49 +02:00
Alexander Medvednikov 804d303487 cgen: add () for | and ^ 2020-04-02 18:26:56 +02:00
Delyan Angelov abf15e863c
v2: compile vrepl, 'fn main(){println(2+2)}' runs now
It works if you give it complete V programs like
fn main(){println(2+2)}
but not for single expressions like 2+2 or statements like a:='abc'
2020-04-02 19:21:12 +03:00
Alexander Medvednikov fd12e4e826 fix compiler_test.v 2020-04-02 18:12:10 +02:00
Delyan Angelov 61f79270a8 v2: compiler_test.v should fail on errors. 2020-04-02 19:01:31 +03:00
penguindark 83289d74a7
builtin: fix int to hex 2020-04-02 17:16:17 +02:00
Alexey 8c050eff07
msvc: add a workaround to fix backtrace (#4200) 2020-04-02 17:11:12 +02:00
Alexander Medvednikov 40fd924b15 parser: match must be exhaustive; cmd/v: one verbosity level, simpler version 2020-04-02 16:51:16 +02:00
Alexander Medvednikov f087e819d7 cli: minor fixes 2020-04-02 16:04:57 +02:00
SleepyRoy d5b2eb3c23
test: remove old num_lit_call_method 2020-04-02 15:52:46 +02:00
Delyan Angelov ad9848d983
fix cmd/tools/vtest.v build
This PR enables building them again with v2, by making vlib/sync/pool.v
single threaded for now, and by removing the use of generics till they
are fixed in v2.
2020-04-02 15:52:23 +02:00
Delyan Angelov 4ada412a05
v2: stage 2 for enhancing 'v version' with the current git commit hash 2020-04-02 15:51:48 +02:00
Alexey 01aa2b86f5
array, map: cast voidptr to byteptr 2020-04-02 15:31:44 +02:00
Alexander Medvednikov d4df916581 array: cast data to byteptr 2020-04-02 14:58:45 +02:00
Alexander Medvednikov be327962d3 strconv: remove an assert for now 2020-04-02 14:26:35 +02:00
Alexander Medvednikov 5b53b3d7e3 cgen/os: minor fixes 2020-04-02 14:00:28 +02:00
Alexander Medvednikov 6e380b8897 cgen: brin back hashes() 2020-04-02 13:49:59 +02:00
Alexander Medvednikov 5b835d294c more windows fixes + bring back windows ci 2020-04-02 13:44:46 +02:00
Alexander Medvednikov 1178bfa578 windows: a temp SUCCESS fix 2020-04-02 13:31:37 +02:00
Delyan Angelov 084f853a2a
v2: enhance version with current git commit hash. Cleanup redundant code. 2020-04-02 13:31:02 +02:00
Alexander Medvednikov d9c7253836 windows: "".to_wide() fixes 2020-04-02 13:24:23 +02:00
Alexander Medvednikov 1fe2933dd9 cgen: windows fixes 2020-04-02 13:09:39 +02:00
Alexander Medvednikov 4981c5a870 parser: fix public interfaces 2020-04-02 12:53:25 +02:00
yuyi 86ea886ad7
scanner: uniform bool type variable names 2020-04-02 12:23:18 +02:00
Delyan Angelov 12b8dc2613
v2: fix version 2020-04-02 10:48:29 +02:00
Alexander Medvednikov d57b1ca962 fix valgrind test 2020-04-02 10:44:35 +02:00
Alexander Medvednikov 461a5b2c18 cgen: fix raw strings 2020-04-02 10:15:35 +02:00
Alexander Medvednikov 683aa75b8d cgen: fix filter() 2020-04-02 09:32:10 +02:00
yuyi 24499aa6de
scanner: minor refactoring 2020-04-02 09:27:00 +02:00
krischerven dac304195e
cgen: print: support all the same functionality as println 2020-04-02 09:19:57 +02:00
Major Taylor 3eff266eb9
cgen: vcleanup call fix (#4186) 2020-04-02 09:18:45 +02:00
krischerven 561b7a0ea5
enum: make .str() print the name instead of the value 2020-04-02 03:27:06 +02:00
Alexander Medvednikov 07ea1eff81 glfw: more fn definitions 2020-04-02 02:02:12 +02:00
Alexander Medvednikov 507f4ce87a array: handle "0" strings 2020-04-02 01:47:32 +02:00
Alexander Medvednikov 88d15c6611 gl, glfw, freetype fixes 2020-04-02 01:45:22 +02:00
Alexander Medvednikov 1cfe44d9c6 fix windows build 2020-04-02 01:15:00 +02:00
SleepyRoy 74bdc57fad
tests: fix num_lit_call_method_test 2020-04-02 00:18:29 +02:00
Alexander Medvednikov fb4b93dfc0 ci fixes 2020-04-02 00:10:11 +02:00
Alexander Medvednikov 91ffeeb73b parser: fix `(x mut &X)` 2020-04-01 23:56:55 +02:00
Alexander Medvednikov c6cf8ace22 glfw and tetris fixes; temporary ci fixes 2020-04-01 23:49:11 +02:00
Alexander Medvednikov 24fc4a4c04 use autofree only with -autofree for now 2020-04-01 23:28:56 +02:00
Alexander Medvednikov 39434155f8 short struct init syntax 2020-04-01 23:23:20 +02:00
Alexander Medvednikov d9af06f2ad remove remaining files in vlib/compiler 2020-04-01 22:19:09 +02:00
Alexander Medvednikov 8dfb14b1c4 remove 15k lines of code of the old backend; make V2 the default backend 2020-04-01 21:25:31 +02:00
Alexander Medvednikov 30f306dc1a another vfmt2 fix 2020-04-01 18:25:05 +02:00
Alexander Medvednikov f657c4b514 another vfmt2 fix 2020-04-01 18:16:56 +02:00
Alexander Medvednikov 3ef6436bef fix fmt2 test 2020-04-01 17:52:50 +02:00
Alexander Medvednikov e3713de41d fix compilation 2020-04-01 17:17:35 +02:00
Alexander Medvednikov 0de853a2ab v2: lots of minor test fixes 2020-04-01 17:14:21 +02:00
joe-conigliaro 6764c7dd5c
parser/cgen: typeof test fixes - match & fixed array order 2020-04-02 02:13:21 +11:00
yuyi bd8d51fc95
token: small optimizations 2020-04-01 16:50:56 +02:00
Alexander Medvednikov 5a0bfa03b3 fix tests 2020-04-01 15:39:54 +02:00
Alexander Medvednikov 3dae1cc131 move sdl module to github.com/vlang/sdl 2020-04-01 15:27:28 +02:00
Alexander Medvednikov 7fd81d3abb parser: fix ^=; disable generics and interface map tests for now 2020-04-01 15:15:21 +02:00
Alexander Medvednikov b1b811b5ed v2: static (for translated code only) 2020-04-01 13:38:05 +02:00
Alexander Medvednikov 48832200bb parser: allow types that start with &&; cgen: allow ++/-- exprs for now 2020-04-01 13:18:58 +02:00
yuyi 56a9196be8
token: fix nr_tokens 2020-04-01 12:12:25 +02:00
yuyi b28e372106
scanner: small optimization 2020-04-01 12:11:52 +02:00
Major Taylor 9bb1b5d1bb
v2: enum fields separated by commas 2020-04-01 12:11:00 +02:00
Delyan Angelov 5b990078f9
more precise support for internal module tests 2020-03-31 23:42:30 +02:00
Alexander Medvednikov 2ac074655f fix interface test 2020-03-31 21:05:48 +02:00
Alexander Medvednikov 050ec5d9e3 parser: do not allow string{} outside of builtin 2020-03-31 21:03:21 +02:00
Alexander Medvednikov a3bd19ce73 cgen: generate enums earlier 2020-03-31 20:26:15 +02:00
Alexander Medvednikov 2b563bc69f v2: initial interface support; fix enum_hex_test.v 2020-03-31 19:59:41 +02:00
Delyan Angelov 50143ad9bf
v2: be silent by default 2020-03-31 19:58:44 +02:00
Alexander Medvednikov 2fe0e80569 cgen: enum default values 2020-03-31 19:43:11 +02:00
Alexander Medvednikov 43f72246aa checker: fix index type check 2020-03-31 17:51:16 +02:00
Alexander Medvednikov f98cc9c017 cgen: fix ARR_LEN 2020-03-31 17:16:12 +02:00
Alexander Medvednikov 9d630dff30 allow slicing of fixed size arrays 2020-03-31 16:48:00 +02:00
joe-conigliaro d048bf66b0
cgen: optimize/generalize typ method 2020-04-01 00:18:25 +11:00
Alexander Medvednikov 956bf23390 memory fixes: 21% of V compiler leaks fixed 2020-03-31 14:33:16 +02:00
SleepyRoy 9b9c1cc834
scanner: fix number literal calling method 2020-03-31 12:47:32 +02:00
Delyan Angelov b62035e3d0
solaris & termux: fix both, using the more portable termios.h 2020-03-31 12:46:46 +02:00
joe-conigliaro 21e4f2422d
cgen: clarify field name 2020-03-31 19:11:47 +11:00
joe-conigliaro f8169fee48
table: add i8 to number_type_idxs 2020-03-31 16:17:26 +11:00
joe-conigliaro f58875a202
table: i8 -128 was being cast to int closes #4164 2020-03-31 16:07:30 +11:00
joe-conigliaro 3b621c0ce6
checker: make var_scope mutable 2020-03-31 15:41:14 +11:00
joe-conigliaro 602bc06bee
ast: use multi return optional for find_scope_and_var 2020-03-31 15:39:14 +11:00
joe-conigliaro 71ca553190
cgen: multi return/assign optionals 2020-03-31 15:34:59 +11:00
Delyan Angelov 07de351546
v2: support -stats for _test.v files 2020-03-30 17:21:32 +02:00
joe-conigliaro 3440d7edd8
ast: first step merging CallExpr & MethodCallExpr 2020-03-30 21:39:20 +11:00
Delyan Angelov 7785583b34
android: fix termux build 2020-03-29 20:54:21 +02:00
hazohelet ec025f2020
compiler: use type `unresolved` for unresolved consts 2020-03-29 19:26:55 +02:00
yuyi c9eed0b89b
cgen: optimize a replace call 2020-03-29 10:09:27 +02:00
Alexey a333ac1888
all: remove redundant parentheses in `if` statements 2020-03-29 10:08:42 +02:00
Delyan Angelov e09447d011
v and v2: support @VEXE 2020-03-28 21:51:45 +01:00
vamsi-shankar 715d4f6601
math: copysign() 2020-03-28 18:32:38 +01:00
Delyan Angelov a9724fd38d
v2: typeof() 2020-03-28 17:37:22 +01:00
joe-conigliaro 837bffd03a
parser: parse type - fix multiple & 2020-03-29 01:15:10 +11:00
Alexander Medvednikov 831be43740 checker: check ! operator 2020-03-28 14:38:16 +01:00
joe-conigliaro 718819eb7a
map/scope/checker: update just var type & ret zero in map.get3 2020-03-29 00:00:28 +11:00
yuyi 9fb218d379
glfw: temporary fix 2020-03-28 12:47:24 +01:00
Alexey cedf185b41
v2: fix Windows errors 2020-03-28 10:19:38 +01:00
Alexander Medvednikov f627710870 fix repl tests 2020-03-27 20:49:20 +01:00
Alexander Medvednikov 98a0beab03 cgen: generate str() methods; merge c tests 2020-03-27 20:33:30 +01:00
Alexander Medvednikov eed7c91e87 move compiler tests from compiler/ to v/ 2020-03-27 18:01:46 +01:00
Alexander Medvednikov f6db36d7f0 fix parser_test and vfmt.v 2020-03-27 15:24:08 +01:00
Alexander Medvednikov 7369cb7b86 fmt: fix tests 2020-03-27 15:19:13 +01:00
Alexander Medvednikov 473d9fef55 checker: do not allow extra () in if conditions 2020-03-27 14:57:19 +01:00
Alexander Medvednikov 1a751208ca cgen: skip $if os {} block 2020-03-27 14:44:30 +01:00
Alexander Medvednikov 7fdce50718 cgen: write defer statements at the end of the function 2020-03-27 11:21:00 +01:00
Joe Conigliaro fd8bb2c95c tests: small array/struct test notes & tmp fix 2020-03-27 20:47:24 +11:00
r00ster bee8972632
readline: make some functions public 2020-03-27 09:55:15 +01:00
Alexander Medvednikov db59c621e8 v2: minor fixes 2020-03-27 08:47:02 +01:00
Joe Conigliaro 883a105aca cgen: fix tests 2020-03-27 17:28:04 +11:00
Joe Conigliaro 7ce7151ad2 cgen: v2 compiles itself - defer stmt / if * in opt parens. 2020-03-27 17:21:22 +11:00
penguindark 8de027c4b4
strconv: fix on ftoa string decimal aproximation, 'nan' string fix 2020-03-26 22:39:46 +01:00
Alexander Medvednikov 9185de3fb7 cgen: fix tests 2020-03-26 22:28:24 +01:00
Alexander Medvednikov f0334b2e12 cgen: fix `arr[i] *= x` and `2d_arr << arr` 2020-03-26 22:09:25 +01:00
Delyan Angelov f489c89987
v2: more informative assert output; string interpolation formatting 2020-03-26 19:17:14 +01:00
yuyi 6892a3e0a8
glfw: remove excess `glfw.` in module glfw 2020-03-26 17:32:08 +01:00
Alexander Medvednikov eb57f192d4 cgen: fix test 2020-03-26 17:21:52 +01:00
Alexander Medvednikov 75c2ef7947 cgen: fix octal and hex int literals 2020-03-26 17:14:24 +01:00
Alexander Medvednikov ed3e0c43bc cgen: for c in string; short struct init syntax fixes; 2020-03-26 17:03:14 +01:00