Commit Graph

6898 Commits (7e6c511e065ebdaf43698f22d7515bc7e2792551)

Author SHA1 Message Date
Lukas Neubert a86bf3254a
fmt: keep empty line between if statement and comment (#8846) 2021-02-20 16:05:05 +02:00
Lukas Neubert 329e3938d9
fmt: respect user choice of newlines between functions without body (#8838) 2021-02-20 16:00:30 +02:00
yuyi 783cee98d9
table/parser: minor optimization of anon_fn names (#8851) 2021-02-20 15:54:47 +02:00
yuyi e8abda189a
cgen: minor optimization in match_expr() (#8848) 2021-02-20 15:51:40 +02:00
Nick Treleaven 2be852e461
arrays: use for/in instead of unsafe `[direct_array_access]` (#8857) 2021-02-20 15:27:36 +02:00
zakuro f381836f9e
fmt: sort names in selective imports (#8827) 2021-02-20 12:22:09 +01:00
yuyi 5e1159e4c3
checker: change non-const size of fixed array error message (#8850) 2021-02-20 12:14:44 +01:00
Lukas Neubert 859d382c6e
fmt: remove a few obsolete comments (#8837) 2021-02-20 09:54:55 +01:00
Nick Treleaven bcb35e15f9
checker: only allow passing integer *literal* to non-integer pointer method parameter (#8825) 2021-02-19 14:14:40 +02:00
Miccah a153ec5951
cli: ensure that required flags are set (#8826) 2021-02-19 12:43:18 +02:00
kristof de spiegeleer 3f3bec45fa
examples: add a template example, update the regex examples (#8829) 2021-02-19 12:39:15 +02:00
zakuro 6e262b5d84
checker: improve error position of infix expr (#8828) 2021-02-19 12:38:41 +02:00
Swastik Baranwal ad162cd6fc
checker: stricter `unknown type` checks, show better suggestions (#8816) 2021-02-19 11:23:13 +02:00
Stanislav Ershov 6a752512b2
os: fix os.real_path on Windows (#8822) 2021-02-19 11:20:06 +02:00
Subhomoy Haldar 745b40c0a3
rand: refactor string sampling functions to remove redundancy (#8830) 2021-02-19 11:16:02 +02:00
yuyi 4878077c62
gen/c: fix gen_str_for_struct with custom ref str (fix #7179) (#8820) 2021-02-18 18:19:42 +02:00
Alexander Medvednikov 0dbc9417e7 builder: vfmt msvc.v 2021-02-18 17:00:07 +03:00
Stanislav Ershov 51dd22bcc0
builder: support -m32/-m64 flags for msvc (#8819) 2021-02-18 14:58:47 +01:00
zakuro 1891ebf22d
scanner: print multibyte char for invalid char error (#8804) 2021-02-18 15:43:39 +02:00
Delyan Angelov 0142d58aa6
v.pref: prevent `Too many targets.` from triggering when the command is an external one 2021-02-18 12:13:28 +02:00
zakuro 0d69d97143
fmt: mark imports as used, when types from them are used in struct declarations (#8810) 2021-02-18 11:32:45 +02:00
zakuro a34a1ab864
checker/table: minor cleanup by removing unnecessary `_` variable (#8801) 2021-02-18 11:30:43 +02:00
zakuro b3a26ca0ce
v.pref: make passing multiple target .v files an error (#8814) 2021-02-18 09:42:00 +02:00
yuyi a119affeba
cgen: check unknown sizeof type (#8815) 2021-02-18 09:38:57 +02:00
Delyan Angelov bf6e9ff95a
Revert "parser: make duplicated functions an error (#8792)"
This reverts commit 21bf8fe14e.
2021-02-18 09:02:56 +02:00
zakuro 21bf8fe14e
parser: make duplicated functions an error (#8792) 2021-02-17 20:50:10 +01:00
Nick Treleaven 33d8074846
crypto.rand: use byteptr.vbytes instead of c_array_to_bytes_tmp (#8786) 2021-02-17 21:47:19 +02:00
Nick Treleaven 4ccf991f61
checker: warn when casting a fixed array (use `&arr[0]` instead) (#8787) 2021-02-17 20:45:11 +01:00
yuyi 177c8bfc78
builtin/array: merge array_eq_test.v into array_test.v (#8796) 2021-02-17 20:44:44 +01:00
yuyi 4fa315edc2
checker: fix for _, mut j in array (#8785) 2021-02-17 20:44:28 +01:00
zakuro 600f6ad2a0
fmt: do not prepend mod to selectively imported types from nested module (#8805) 2021-02-17 20:42:26 +01:00
Delyan Angelov ab6517c5fc
gg: support passing down the state of pressed mouse buttons in mouse moves events 2021-02-17 20:14:37 +02:00
Delyan Angelov aa3d0ea345
vfmt: cleanup spurious printlns, remove obsolete code 2021-02-17 14:59:42 +02:00
Alexander Medvednikov d4a05bebde gg: use gg types for Events instead of sapp 2021-02-17 06:44:01 +01:00
zakuro 3341c17202
fmt: keep one empty line in struct decl (#8782) 2021-02-17 05:45:09 +01:00
Lukas Neubert 55b69a76a6
fmt: minor cleanup of or_expr (#8789) 2021-02-17 05:43:29 +01:00
Nick Treleaven 0f8edd918a
checker: disallow `unsafe` map copy (#8720) 2021-02-17 05:19:25 +01:00
Lukas Neubert e4a67dea37
json2: wrap Builder.free() calls inside unsafe (#8790) 2021-02-17 02:19:26 +02:00
Delyan Angelov 2002d20249
io: remove unused Zzz_CoerceInterfaceTableGeneration struct; add test for `x := Enum{}` 2021-02-17 01:37:05 +02:00
Delyan Angelov 995e1c84a2
ci: fix `./v -cc gcc -cflags "-Werror" vlib/io/os_file_reader_test.v` 2021-02-17 01:08:28 +02:00
Delyan Angelov fb09333a73
ci: fix interface table generation for vlib/io/os_file_reader_test.v with -cflags "-Werror" 2021-02-16 23:36:44 +02:00
Delyan Angelov 4961d3ea17
io: fix detection of end_of_stream, when reading files through io.new_buffered_reader(reader: io.make_reader(f)) 2021-02-16 23:22:17 +02:00
Delyan Angelov 843de10442
parser,gen: fix `arr << map[key] using map_get_and_set_1, leading to double free 2021-02-16 16:39:31 +02:00
yuyi 982e35909d
cgen: fix `mut` var in `for` loop reads as address (fix #8548) (#8745) 2021-02-16 13:24:19 +01:00
Nick Treleaven 01aa09d515
checker: do not allow copying any map lvalue (#8662) 2021-02-16 12:46:12 +01:00
zakuro 51c286df5a
fmt: fix bug that vfmt removes emmbeded struct in struct decl (#8775) 2021-02-16 12:45:56 +01:00
Christopher Dieringer 94429c8fd8
gg: window_size: normalize dpi scaling (#8738) 2021-02-16 12:41:21 +01:00
Uwe Krüger 0520b755f4
checker/cgen: support `print*()`, `.str()` and '$x' for `shared` (#8771) 2021-02-16 12:40:13 +01:00
zakuro 6813866141
fmt: fix bug of disappearing `pub` in struct decl (#8777) 2021-02-16 12:39:50 +01:00
Delyan Angelov 0bbc5a5c6a
fmt: add a small comment about f.line_len 2021-02-16 10:22:39 +02:00
Lukas Neubert ad20b3806f
fmt: fix possible code corruption by unwrapped single line if (#8780) 2021-02-16 10:13:48 +02:00
Delyan Angelov 230372df09
clipboard: fix unsafe warning on windows (affects v-ui) 2021-02-15 20:09:02 +02:00
Nick Treleaven c057b45bb1
checker: check argument count for C fn with attribute (#8728) 2021-02-15 18:56:26 +02:00
zakuro 2911f03627
checker: reject method that have multi-value type receiver (#8696) 2021-02-15 17:55:54 +02:00
zakuro 70a30374b9
parser: cleanup fn_decl (#8700) 2021-02-15 17:55:08 +02:00
Lukas Neubert 848295cdea
scanner: do not warn on \' after string interpolation (#8729) 2021-02-15 17:54:30 +02:00
Quix 486bf8517f
builtin: fix typo (#8747) 2021-02-15 17:54:07 +02:00
Quix 6a21b8cc8b
pg: fix typo (#8750) 2021-02-15 17:53:38 +02:00
Quix 35f45b8e5e
glm: fix typo (#8748) 2021-02-15 17:53:07 +02:00
Quix 49505d4090
hash.crc32: fix typo (#8749) 2021-02-15 17:52:45 +02:00
Quix 64018e6f14
encoding.utf8: fix 'length' typo in two spots (#8746) 2021-02-15 17:52:00 +02:00
zakuro d08a0b5a7c
parser: check not used expression for all exprs in multi-expr (#8733) 2021-02-15 17:41:04 +02:00
spaceface fe007f9b16
gen: fix type_name for sumtype/interface pointers (#8769) 2021-02-15 17:35:31 +02:00
AAAA 4213851e22
cli: fix typo (#8742) 2021-02-15 17:25:30 +02:00
Nick Treleaven 4a0367a63c
vlib: add [unsafe] tag to more functions: tos, string_from_wide, strings.Builder: write_bytes, free (#8766) 2021-02-15 17:15:52 +02:00
Louis Schmieder 4bdbb0cfa8
orm: add type detection of db (#8756) 2021-02-15 17:14:39 +02:00
yuyi a9c2045dbd
cgen: fix var name clash of array/map (fix #1994) (#8765) 2021-02-15 15:51:57 +02:00
Nick Treleaven 629d43caf5
checker: warn when using `goto` outside of `unsafe` (#8741) 2021-02-15 15:48:24 +02:00
Peter Badida 6781f732f4
gen: fix infinite loop when struct's ref field is pointing to self (#8632) (#8641) 2021-02-15 15:43:10 +02:00
penguindark 325aef6d41
gg: add gg.m4, use it in the sokol GLSL examples (#8755) 2021-02-15 15:40:28 +02:00
spaceface e3649ec4d3
all: implement `type_name()` for interfaces too (#8767) 2021-02-15 15:29:44 +02:00
zakuro 4e2418e9cf
os: add test for os.file_name (#8757) 2021-02-15 07:37:35 +01:00
Nick Treleaven b07f373433
builtin: make 5 C functions trusted, tweak signatures (#8730) 2021-02-14 19:37:32 +01:00
Nick Treleaven ea803113c3
checker: check `unsafe` V function calls (#8752) 2021-02-14 19:31:42 +01:00
zakuro d3bcd5d305
fmt: keep single line if in struct init (#8734) 2021-02-14 19:22:24 +01:00
zakuro e534b4397d
checker: report correct position for non-bool cond error (#8735) 2021-02-14 19:19:41 +01:00
Nick Treleaven 82650ee813
parser: fix parsing attribute after fn prototype with no return type (#8727) 2021-02-14 08:05:20 +01:00
zakuro e4f15605c0
checker: reject void type condition (#8737) 2021-02-14 07:33:24 +01:00
Delyan Angelov 3d29f819cf
builder: add markused.mark_used calls to js.v and x64.v 2021-02-13 18:09:04 +02:00
Delyan Angelov e809264f12
builder,checker: split the unused marking into a new `v.markused` module 2021-02-13 18:02:31 +02:00
Uwe Krüger 374739b804
all: rename `[ref_only]` -> `[heap]` (#8718) 2021-02-13 16:52:01 +02:00
Delyan Angelov 2a8d0ddaf5
checker: add os.init_os_args_wide to the -skip-unused whitelist too 2021-02-13 16:33:35 +02:00
Delyan Angelov 60c16313f3
checker: enable `./v -skip-unused self` 2021-02-13 16:08:44 +02:00
Delyan Angelov eaaac220be
checker: make -skip-unused more conservative to make `v test vlib/builtin` pass 2021-02-13 15:47:17 +02:00
Uwe Krüger 835b3b2b81
sync: simplify `WaitGroup` and `PoolProcessor` and use atomic counters (#8715) 2021-02-13 13:52:27 +01:00
Nick Treleaven d03c1d615a
os: improve `rm` error message (#8719) 2021-02-13 13:51:38 +01:00
Delyan Angelov 0b60510c9c
cgen: cleanup generating helper comments with -skip-unused 2021-02-13 10:31:48 +02:00
Ned Palacios db609a0784
checker: skip checking for invalid fn return type (#8703) 2021-02-13 01:21:05 +01:00
Uwe Krüger 40066a5daa
checker: obey [ref_only] tag, allow embedding in other ref struct (#8707) 2021-02-13 00:47:37 +01:00
glebbash aa548f45ea
docs: fix functions in array/map example (#8695) 2021-02-12 21:10:54 +02:00
bettafish04 0b777c68c3
net: fix unix sockets (#8697) 2021-02-12 20:10:06 +02:00
StunxFS 6b431b18f5
vweb.tmpl: fix a little typo (#8704) 2021-02-12 20:06:37 +02:00
Joe Conigliaro c904c9178d
checker: support ParExpr for trying to take address errors & simplify messages 2021-02-13 02:49:22 +11:00
Delyan Angelov 1675b6f3e0
ci: fix code-formatting job 2021-02-12 15:44:12 +02:00
Joe Conigliaro 5d36a59dd8
checker: fix returning [] from fn which retuns optional array 2021-02-12 22:30:30 +11:00
Alexander Medvednikov 0a03856c83 parser: small c2v fixes 2021-02-12 09:12:26 +01:00
yuyi 67c6f24c84
cgen: format match_expr (#8692) 2021-02-12 03:37:31 +01:00
yuyi 3164e29651
all: fix fn_or_for_in mut value (part 1) (#8671) 2021-02-12 02:03:11 +02:00
Nick Treleaven 84a16d8684
map: add `move` method (#8660) 2021-02-12 02:02:33 +02:00
Larpon 65f2420516
os: fix cp_all mkdir panic (#8680) 2021-02-12 01:55:36 +02:00
Nick Treleaven 375efb0953
checker: improve errors for `return` count mismatch (#8686) 2021-02-12 01:47:11 +02:00
Joe Conigliaro 317d450723
checker: add error when trying to take address of call expr 2021-02-12 10:39:02 +11:00
Delyan Angelov 8f6fec4364 ci: fix building examples/concurrency/concurrency.v on macos 2021-02-12 01:18:40 +02:00
Delyan Angelov 58393bd3f9
ci: fix unix_test.v on unix != macos 2021-02-12 01:12:42 +02:00
Delyan Angelov 89521584a2 ci: fix unix sockets test on macos 2021-02-11 22:34:38 +02:00
bettafish04 9b4f2edbfa
net: move unix socket code to net.unix and skip net/unix/unix_test.v … (#8681) 2021-02-11 18:51:12 +02:00
Delyan Angelov ea401b1192
ci: `#include <afunix.h>` in vlib/net/net_windows.c.v 2021-02-11 12:45:25 +02:00
Delyan Angelov 578de634fe
sync: move pool related code to `sync.pool`, cleanup, add a README.md 2021-02-11 10:55:23 +02:00
Delyan Angelov 93c1c1cec3
builder: add generated C lines with -stats too 2021-02-11 08:38:09 +02:00
cbracketdash c636a7080d
rand: add rand.ascii (#8675) 2021-02-11 08:32:40 +02:00
bettafish04 d4f6488afd
net: add better unix socket support (#8651) 2021-02-11 01:24:15 +01:00
zakuro f371803a32
cgen: move comp_if_to_ifdef to comptime.v (#8668) 2021-02-11 01:22:49 +01:00
Delyan Angelov de287c0add
builder: add C source code size info on -stats 2021-02-10 19:12:12 +02:00
zakuro 4305ce1493
checker: extract long match branches in c.stmt(), into separate checker functions (#8666) 2021-02-10 18:51:41 +02:00
SurmanPP f2ad6dd4d9
os: fix os.walk, when passing paths ending with path_separator (#8672) 2021-02-10 18:48:01 +02:00
Delyan Angelov 4646c414d8
checker: fix -skip-unused with struct inits with default expressions 2021-02-10 18:25:57 +02:00
cbracketdash eb7009b60a
rand: generate hexadecimal numbers (#8664) 2021-02-10 11:01:25 +01:00
yuyi f2e74bce7a
checker: fix sumtype assign error (fix #7988) (#8655) 2021-02-10 10:59:56 +01:00
Alexander Medvednikov 035a163454 json: encode_pretty (p. 2) + tests 2021-02-10 10:17:29 +01:00
Alexander Medvednikov f67e4ab57c json: encode_pretty (p. 1) 2021-02-10 10:13:06 +01:00
yuyi 95c3ef3a6a
cgen: minor cleanup in stmt() (#8659) 2021-02-09 23:00:43 +01:00
Uwe Krüger f3c5f24c17
allow `lock` expression to return multiple objects (#8657) 2021-02-09 17:09:10 +02:00
Nick Treleaven d37fb5641f
parser: improve printing of unexpected tokens (#8654) 2021-02-09 17:07:30 +02:00
Bobitsmagic 0f92485698
builtin: fix typo in builtin/array.v (#8658) 2021-02-09 17:04:47 +02:00
Swastik Baranwal 6de78ecb59
term: implement term.clear() for windows (#8650) 2021-02-09 14:25:31 +02:00
Delyan Angelov 5308b63a01
ci: fix the `-cflags "-Werror"` job, by explicit casting to `void**` 2021-02-09 14:22:51 +02:00
Delyan Angelov d110f0de74
tests: add a regression test for 3d2afcf 2021-02-09 14:11:09 +02:00
Delyan Angelov 3d2afcf02e
cgen: fix gohandle_name generation (use .cname) 2021-02-09 12:55:05 +02:00
spaceface 1bb4be17d8
cgen: remove srwlock definition workaround for tcc on windows (#8652) 2021-02-09 12:44:18 +02:00
spaceface 4152c704f3
sokol: remove `.lib` extensions in `#pragma` directives (#8639)
fixes tcc on windows - this kind of fix has been done several times in the past, and should probably be upstreamed to sokol soon to prevent things from breaking every time we update the headers.
2021-02-09 11:36:01 +02:00
Mohammad Ali Chraghi 86e6b4f926
examples: improve the pg and vweb output (#8640) 2021-02-09 11:31:25 +02:00
Alexander Medvednikov bfee8a528c cgen: add "case" to c_reserved 2021-02-09 03:49:19 +01:00
bettafish04 1a2ae0aead
net: add basic unix socket support (#8642) 2021-02-08 23:48:23 +01:00
Swastik Baranwal 09cff69919
all: allow using aliases as keys in map (#8589) 2021-02-08 18:51:05 +01:00
Lukas Neubert 8cb01ba8db
fmt: keep comments between and after imports (#8637) 2021-02-08 19:48:48 +02:00
Lukas Neubert cb1f63f765
parser: replace eat_line_end_comments() with configurable eat_comments() (#8636) 2021-02-08 18:16:02 +02:00
Lukas Neubert 5abd49d9bc
cgen: cast default struct field value to correct SumType/interface (#8619) 2021-02-08 17:33:05 +02:00
Swastik Baranwal e2ff26a066
cgen: fix gen of .sort method for `>` operator and improve grammar of error (#8615) 2021-02-08 17:19:54 +02:00
Nick Treleaven e2ff2a5405
parser: deprecate `{var |` struct update (#8618) 2021-02-08 17:03:05 +02:00
yuyi f2100166c7
cgen: minor cleanup in gen_str_for_option (#8622) 2021-02-08 17:00:51 +02:00
Nick Treleaven 9e751f72c4
doc, fmt: use `map{key: value}` syntax for map literals (#8623) 2021-02-08 16:57:42 +02:00
zakuro 8ae23cd89e
parser: make `v := f(v)' an undefined variable error (#8634) 2021-02-08 16:55:01 +02:00
zakuro e5839effbc
checker/cgen: allow `<<` operator for aliases (#8561) 2021-02-08 01:41:47 +01:00
Lukas Neubert 473cd1d416
fmt: single line ternary return (#8605) 2021-02-08 00:28:46 +01:00
Uwe Krüger 118ca1240e
all: allow `shared` element types for `struct` and arrays (#8631) 2021-02-08 00:28:29 +01:00
Lukas Neubert 7f4c582f1a
fmt: unwrap long infix exprs inside parenthesis if necessary (#8609) 2021-02-07 23:10:39 +01:00
Nick Treleaven ff1aa06455
parser: require ++/-- to be on the same line as the previous token (#8621) 2021-02-07 23:10:16 +01:00
yuyi 81e8c3bc1b
cgen: minor optimization in infix_expr (#8625) 2021-02-07 17:22:54 +01:00
Larpon bfd0bd1fb4
builtin: doc chan.v channel stub (#8577) 2021-02-07 12:42:24 +02:00
kristof de spiegeleer 2d875260e8
examples: Process examples (#8598) 2021-02-07 05:19:05 +01:00
Alexander Medvednikov a81ee0e94e tools/fast: measure v.c size and parse/check/cgen steps 2021-02-07 04:48:54 +01:00
zakuro 9f59b04e86
fmt: remove unused selective imports (#8595) 2021-02-07 03:58:43 +01:00
Nick Treleaven cd4f7101f7
parser: support short struct update syntax `{...ident,` (#8613) 2021-02-07 03:43:51 +01:00
Nick Treleaven b92f980274
token: fix Token.str() for punctuation and operators (#8610) 2021-02-07 03:40:00 +01:00
Delyan Angelov d77bb2f606
all: improve -skip-unused, track consts, walk all AST nodes, support tests 2021-02-07 02:51:45 +02:00
Nick Treleaven f5f65f929f
parser: parse `map{key_expr: val_expr}` (#8608) 2021-02-06 22:13:24 +01:00
Lukas Neubert db0fc8fbc9
fmt: better function call wrapping inside ternary if branches (#8604)
* fmt: better funcation call wrap in singel line ifs

* tests

* format files
2021-02-06 21:46:52 +01:00
Uwe Krüger cf230644b6
fmt: enable shared return types (#8614) 2021-02-06 21:25:06 +01:00
Uwe Krüger 5343f1374b
all: allow functions to return `shared` object (#8606) 2021-02-06 19:41:52 +01:00
zakuro fe9d062b41
gen: fix bug where unreached defer is executed (#8594) 2021-02-06 18:40:39 +02:00
Larpon de9813233f
gg: support getting system font on Android (#8611) 2021-02-06 18:36:43 +02:00
Delyan Angelov e57b73bcfc
ci: fix the using_comptime_env.vv test (execute only on ubuntu-tcc again) 2021-02-06 13:07:21 +02:00
Swastik Baranwal 9b839b3b7d
cgen: fix gen of `>` operator overloading (#8600) 2021-02-06 12:59:20 +02:00
Delyan Angelov 1fcac4098b
tests: use a serial task runner for -skip-unused too 2021-02-06 10:08:59 +02:00
Delyan Angelov 167773dd1c
checker: make -skip-unused process a list of root functions, not just main.main 2021-02-06 09:41:24 +02:00
Larpon e83c39c81a
builtin: document rest of map.v (#8578) 2021-02-06 03:07:42 +01:00
Uwe Krüger ab279dace7
cgen: support `shared` initialization from call returning optional (#8593) 2021-02-06 03:07:05 +01:00
yuyi 1b6efebac7
all: fix map = map2 assignment (#8581) 2021-02-06 03:06:34 +01:00
Larpon 57258c2988
builtin: document remaining pub structs in builtin.v (#8576) 2021-02-05 21:02:29 +01:00
Larpon 1101533dea
crypto: document rest of rand submodule (#8580) 2021-02-05 20:26:34 +02:00
Subhomoy Haldar 9a1da1a97b
rand: move the shuffle function from `arrays` to `rand.util` (#8587) 2021-02-05 20:24:38 +02:00
Delyan Angelov ed6fc79fbe
ci: run the -skip-unused tests on linux (so local testing is easier) 2021-02-05 20:03:24 +02:00
Delyan Angelov 99822e51de
ci: force println_os_executable.vv to have a stable output on all OSes 2021-02-05 20:01:02 +02:00
Larpon e1052a5ec7
semver: document all pub functions (#8586) 2021-02-05 19:57:42 +02:00
Lukas Neubert 58b3a30b47
docs/readmes: format almost all remaining code blocks (#8590) 2021-02-05 19:50:28 +02:00
Delyan Angelov 9a7ecf2807
ci: limit the -skip-unused testing to the ubuntu CI jobs for now 2021-02-05 18:41:46 +02:00
Delyan Angelov a6ecc19040
ci: fix -skip-unused compiler test on windows, using -d no_backtrace 2021-02-05 18:36:57 +02:00
zakuro 6b776e686e
parser: display correct position on boolean expression error (#8563) 2021-02-05 16:52:35 +01:00
Larpon 44ab0154b2
builtin: document last of array.v (#8575) 2021-02-05 16:51:45 +01:00
zakuro a94228bb16
checker: make `[] == ArrayAlias([])` an error (#8562) 2021-02-05 16:49:40 +01:00
Larpon e78c30d181
clipboard: add android variant (#8585) 2021-02-05 16:49:04 +01:00
Lukas Neubert 9ab1d17cbc
fmt: keep __global in struct declarations (#8584) 2021-02-05 16:46:43 +01:00
Delyan Angelov 81789ee106
tests: add vlib/v/tests/skip_unused/ 2021-02-05 17:27:00 +02:00
Delyan Angelov 867d96a077
checker: use @METHOD for util.timing_start in Checker.mark_used/1 2021-02-05 16:41:55 +02:00
Delyan Angelov 16dffc7c1d
compiler: move timing_start/timing_measure to util.timing_start/util.timing_measure 2021-02-05 16:34:56 +02:00
Delyan Angelov 25a3873019
parser,checker: support @METHOD, replaced by 'ReceiverType.MethodName' 2021-02-05 16:32:43 +02:00
Delyan Angelov d30f94507c
checker: enable -skip-unused for more examples 2021-02-05 11:55:40 +02:00
Delyan Angelov 8f160ee3ed
ci: run vfmt over vlib/v/gen/c/fn.v 2021-02-05 11:18:29 +02:00
Delyan Angelov 40fff7b56a
v.pref: support `v -skip-unused run examples/hello_world.v` 2021-02-05 11:12:28 +02:00
Delyan Angelov 80697ec7f3
table: .is_used => .usages (a counter, instead of a boolean flag) 2021-02-05 10:03:17 +02:00
Delyan Angelov e5c9fcb7e9
ci: fix building vdoc, vls, etc 2021-02-05 09:27:14 +02:00
Alexander Medvednikov 5a183d23a9 cgen: disable the new [if xxx] logic for now 2021-02-05 08:16:16 +01:00
Alexander Medvednikov 1084b43ffb all: ast walker for marking unused fns 2021-02-05 08:05:35 +01:00
Delyan Angelov 119dfc0bb0
all: support map[f32]string and map[f64]string (float map keys) too (#8556) 2021-02-04 23:59:49 +01:00
Alexander Medvednikov 97e36cd97a parser: fix method name test 2021-02-04 22:25:58 +01:00
Alexander Medvednikov fdd8c86fdb parser: make sure methods have names 2021-02-04 22:15:16 +01:00
Ekopalypse 5eef730290
builder: make msvc build if v path contains spaces (#8552) 2021-02-04 20:45:59 +01:00
Delyan Angelov 48892a52fa
strings: make valgrind reports for strings builders more usefull (#8553) 2021-02-04 20:45:35 +01:00
Louis Schmieder 97c0ef3505
orm: struct field support (#8517) 2021-02-04 20:28:33 +01:00
Ekopalypse 856246c858
builder: make repl work if path contains spaces (#8550) 2021-02-04 18:18:18 +01:00
Lathanao a0cbe48977
vweb: fix @include (#8535) 2021-02-04 17:07:04 +01:00
yuyi abde1cd73d
cgen: fix array/map of alias to string (#8549) 2021-02-04 17:52:14 +02:00
Subhomoy Haldar c6552d7780
rand.util: add sample_r and sample_nr (#8539) 2021-02-04 14:56:53 +02:00
yuyi a976876211
v.token: correct some comments, and add some missing comments (#8542) 2021-02-04 09:18:38 +02:00
BigBlack 162c42dbe9
ast: fix `new_struct := MyStruct{...(*old_struct)}` (#8544) 2021-02-04 09:14:43 +02:00
pancake 27239db427
builder: show file:line when import fails (#8537) 2021-02-04 09:09:54 +02:00
Uwe Krüger 112c652ace
cgen: auto initialize `chan` that are struct elements (#8541) 2021-02-04 00:07:20 +01:00
Uwe Krüger f013e65670
checker/cgen: support lock expressions `x := rlock s { s.get() }` (#8540) 2021-02-03 23:56:58 +01:00
Uwe Krüger cee00a3551
cgen: create enclosing block on C side for V `lock` blocks (#8538) 2021-02-03 23:25:01 +01:00
Uwe Krüger 2424e2cb02
cgen: fix for `rlock`/`lock` handling (#8536) 2021-02-03 17:33:18 +01:00
Nick Treleaven de37b52d4b
checker: check goto label exists (#8523) 2021-02-03 15:20:10 +01:00
Nick Treleaven 82482167ce
vlib: replace all `goto` statements with labelled break (#8531) 2021-02-03 15:19:42 +01:00
Swastik Baranwal 7ec116d588
all: only allow defining `==` and `<` and auto generate `!=`, `>`, `>=` and `<=` (#8520) 2021-02-03 15:18:38 +01:00
Uwe Krüger 9dcf673216
all: make `lock` and `rlock` dead lock free :-) (#8534) 2021-02-03 15:16:52 +01:00
Delyan Angelov f4b757e47d
examples: add examples/vweb/server_sent_events; implement vweb.sse 2021-02-03 16:03:06 +02:00
Ruofan XU a73c20916d
checker: refactor and clean up c.check_basic() (#8508) 2021-02-03 11:57:06 +02:00
zakuro 4b99d6af95
cgen: fix bug with duplicate defer generation (#8503) 2021-02-03 11:40:21 +02:00
yuyi b40252bd97
checker: merge array_filter_fn_err tests (#8506) 2021-02-03 11:27:11 +02:00
yuyi 9bcb57eb1f
checker: merge array_map_fn_err tests (#8507) 2021-02-03 11:26:26 +02:00
Lukas Neubert ea06966fd4
fmt: hide ´[]Type{} instead of []Type´ and ´(f mut Foo)´ warnings (#8528) 2021-02-03 11:25:08 +02:00
zakuro e30e794884
checker: add check for using a private const in another module (#8501) 2021-02-03 10:17:13 +02:00
Uwe Krüger df0520b43a
checker,cgen: make `shared` behave like `mut` inside `lock` - and like non-mut inside `rlock` (#8526) 2021-02-03 01:20:19 +02:00
yuyi 91af2418de
ftp: minor optimization in dir() (#8518) 2021-02-02 18:51:55 +01:00
yuyi 7875164d91
cgen: add gen_alias_equlity_fn (#8514) 2021-02-02 18:37:57 +01:00
Delyan Angelov 02bef1ae2b
vdoc: fix segfault on `v doc -m -f html vlib` 2021-02-02 17:38:32 +02:00
joe-conigliaro ffedbe4b81
cgen: move cgen from v.gen to v.gen.c (#8515) 2021-02-02 15:41:51 +01:00
Daniel Däschle d477e525bb
checker/gen: fix generic struct init (#8322) 2021-02-03 00:42:00 +11:00
Lukas Neubert 58b37519e0
scanner: fix warning for \" after string interpolation (#8510) 2021-02-02 14:14:06 +02:00
Uwe Krüger 1de299ad22
cgen: allow `shared` initialization from return values of functions (#8512) 2021-02-02 14:13:13 +02:00
Delyan Angelov 17062dc5c8
v.pref: support `-obf` in addition to `-obfuscate`, as described in `v help build` 2021-02-02 12:24:34 +02:00
Lukas Neubert 5aaeac79fa
ci: fix compilation (#8511) 2021-02-02 12:06:54 +02:00
Delyan Angelov d57a9c419d
examples: add net_udp_server_and_client.v 2021-02-02 10:36:56 +02:00
Alexander Medvednikov 2c4674eb42 cgen: obfuscate functions 2021-02-02 09:14:41 +01:00
yuyi 5ec6f7a781
ftp: fix error in dir() (#8504) 2021-02-02 08:22:52 +01:00
yuyi 9a2820fa7b
checker: fix pass fixed array of function as argument (#8502) 2021-02-02 03:58:54 +01:00
Ruofan XU a0a33f7ff1
checker: fix map of function as argument and direct call of function in map (#8494) 2021-02-02 03:58:32 +01:00
Louis Schmieder 969f19daf4
orm: fix null strings (#8497) 2021-02-01 21:44:09 +01:00
Ruofan XU 51f2eb81f4
checker/cgen: fix mut array of fn as argument (#8469) 2021-02-01 20:10:24 +01:00
Lukas Neubert cf1084105c
fmt: allow single line ternary if as function argument (#8486) 2021-02-01 20:08:42 +01:00
Nick Treleaven 79e9084f7b
checker: allow `Struct{...expr}` where `expr` is another struct type (#8495) 2021-02-01 20:08:25 +01:00
Uwe Krüger 17746561f2
cgen: put `shared` arrays and maps always on heap (#8496) 2021-02-01 20:07:01 +01:00
yuyi 4d268d1436
cgen: minor cleanup of gen_fn_decl (#8474) 2021-02-01 20:06:34 +01:00
Delyan Angelov fab7b9d9d9
checker: fix `x := match enumexpr { .case2 { fn1 } .case2 { fn2} }`, where fn1 and fn2 have compatible signature 2021-02-01 21:01:58 +02:00
BigBlack e3c2604338
cgen: fixed array slice in function, add docs (#8481) 2021-02-01 19:11:17 +02:00
Lucas Hernán Tarche 7813ecbb75
gg: add draw_convex_poly/2 and draw_empty_poly/2 methods (#8487) 2021-02-01 18:18:23 +02:00
yuyi 1e07173234
cgen: minor cleanup of array_init (#8477) 2021-02-01 15:56:55 +01:00
Nick Treleaven c537578481
checker: ensure `expr` is an lvalue with `Struct{...expr` (#8489) 2021-02-01 15:18:03 +01:00
Lukas Neubert d660f2cc6f
fmt: insert newline after last HashStmt (#8482) 2021-02-01 14:50:41 +01:00
yuyi 53a5aad855
cgen: fix fixed array of function (#8490) 2021-02-01 14:50:10 +01:00
Lukas Neubert 8755f40430
fmt: keep comments after imports (#8483) 2021-02-01 14:45:08 +01:00
Uwe Krüger 44ec9e3ebc
checker/cgen: put `shared` struct always on heap (#8492) 2021-02-01 14:39:36 +01:00
Delyan Angelov 5b9a7bf6b3
cgen: support `#flag -DWIN32_FULL`, when you do NOT want WIN32_FULL 2021-02-01 14:40:51 +02:00
Lukas Neubert 43676330ba
fmt: keep braces around @ escaped fields in string interpolation (#8488) 2021-02-01 11:04:57 +02:00
Enzo 778b83a132
gen: fix multiple blank param with interface (#8480) 2021-01-31 19:44:55 +02:00
spaceface effa3188dd
cgen: fix type casts to interfaces (#8476) 2021-01-31 19:24:33 +02:00
Larpon d25825df57
all: support compile time `$env('ENV_VAR')` (#8456) 2021-01-31 19:22:42 +02:00
Enzo 2945040a67
gen: fix function with multiple blank params (#8475) 2021-01-31 16:37:26 +02:00
Nick Treleaven f992099726
checker: check s.$method(arg) argument is []string (#8455) 2021-01-31 15:28:23 +01:00
Alexander Medvednikov 9638013203 gg: fix macos C function definitions 2021-01-31 13:57:06 +01:00
Ruofan XU ae60ea4ed5
tests: add regression tests for typeof map and array of fns (#8458) 2021-01-31 12:20:15 +02:00
Seven Du 09c65163b4
cgen: add a destructor caller for the generated _vcleanup, when using -shared (#8464) 2021-01-31 12:10:49 +02:00
Delyan Angelov 5746ac4dd4
vfmt: remove tracing println for match branches 2021-01-31 11:05:49 +02:00
Delyan Angelov 978359a6fc
tests: fix some warnings in preparation for `-W test-self` 2021-01-31 11:05:17 +02:00
Delyan Angelov e066e83041
stbi: add proper declarations for C.stbi_load etc. 2021-01-31 10:23:43 +02:00
yuyi 2963425995
cgen: fix fn_with_mut_args (fix #7139) (#8446) 2021-01-31 02:45:45 +01:00
Nick Treleaven 9c2bd24b4f
tests: add test for s.$method() with T.methods (#8451) 2021-01-30 18:35:41 +01:00
BigBlack c5e7956eb5
checker: fix generic_mutable_arrays in functions (#8445) 2021-01-30 18:35:03 +01:00
Nick Treleaven 64d12cdc8d
checker: check number of C function arguments for some cases (#8444) 2021-01-30 18:33:36 +01:00
Daniel Däschle 2cadb3e4d8
gen: panic with correct type names (#8355) 2021-01-30 18:54:05 +02:00
Nick Treleaven 849bc6c3d8
tests: fix weird CI failure with error details (#8449) 2021-01-30 18:53:39 +02:00
Uwe Krüger 9c82eec529
checker: support nested propagation cases `f(g() ?)` (#8447) 2021-01-30 16:53:31 +01:00
Nick Treleaven 43c3a3b080
checker: fix compile-time call with string identifier expression (#8415) 2021-01-30 15:24:16 +01:00
Uwe Krüger 058f3ba013
sync: rename `m_lock() -> @lock()`, `r_lock() -> @rlock()`, ... (#8443) 2021-01-30 15:23:55 +01:00
Subhomoy Haldar 7e3b3a9efc
rand: update byte() (#8442) 2021-01-30 14:19:14 +01:00
div72 8c70920695
all: add offsetof (#8380) 2021-01-30 12:57:09 +01:00
Nick Treleaven c0685eeefc
parser: add warning for s.$field.name without brackets (#8411) 2021-01-30 12:56:10 +01:00
yuyi 97cb7687a2
cgen: minor cleanup of consts (#8441) 2021-01-30 13:35:25 +02:00
Enzo ced7649bf8
gen: fix `for ... in array` (#8428) 2021-01-30 12:27:11 +01:00
Lukas Neubert a044441224
fmt: keep {} in string interpolation for chained CallExprs (#8422) 2021-01-30 11:58:19 +01:00
Lukas Neubert 2774db077d
fmt: keep user choice for newlines in match branches (#8418) 2021-01-30 11:57:57 +01:00
yuyi 77b3d40f46
checker: fix `map = {}` (#8435) 2021-01-30 11:55:10 +01:00
Uwe Krüger 5e9b528a9d
checker/cgen: support `return` from nested `or` (#8430) 2021-01-30 12:46:36 +02:00
yuyi 5af16f38fc
cgen: correct minor typo (#8438) 2021-01-30 12:39:44 +02:00
Julia Bogdan Filipchuk d26ac0f6cb
vfmt: add ability to use vfmt as a filter from stdin to stdout (#8432) 2021-01-30 12:38:54 +02:00
Delyan Angelov 7f5d654c3a
all: cleanup redundant `.ends_with(_test.v)` calls 2021-01-30 11:08:52 +02:00
Uwe Krüger 6477748e88
sync/waitgroup: use value mutex and semaphore; remove sync.Waiter (#8431) 2021-01-30 11:08:43 +02:00
zakuro 391d62bca5
fmt: remove duplicated imports (#8433) 2021-01-30 11:04:36 +02:00
Delyan Angelov 760b4c37b9
all: support _test.vv files (to test _test.v errors/checks too) 2021-01-30 10:42:18 +02:00
Delyan Angelov 5564a2c1da
tests: fix filter_in_map_test.v (it did not have a `test_` function in it) 2021-01-30 10:29:48 +02:00
Delyan Angelov 948f63b507
checker,builder: rename `details:` to `Details:` 2021-01-30 10:20:09 +02:00
Delyan Angelov 30e0c478d7
checker: add error for _test.v file without test_ functions 2021-01-30 10:19:29 +02:00
Lukas Neubert 974cac2037
fmt: relocate two methods; minor cleanup (#8423) 2021-01-29 23:15:26 +02:00
Swastik Baranwal e03ece2a4b
checker: check the fn decl for anon fns too (#7529) 2021-01-29 23:11:05 +02:00
Uwe Krüger 4a955d9c54
sync: don't force `Mutex` and `Semaphore` to be reference (#8331) 2021-01-29 20:52:14 +02:00
Lukas Neubert 93acc929f7
fmt: keep lines of comments inside an array (#8420) 2021-01-29 20:19:14 +02:00
zakuro 2a32dac40d
checker: fix panic when calling generic function with too few args (#8416) 2021-01-29 20:14:22 +02:00
Delyan Angelov 8398e2f448
ci: fix -usecache for programs using thirdparty C libs 2021-01-29 19:44:33 +02:00
Delyan Angelov 9f31829e0c ci: fix failing clipboard_test.v on macos 2021-01-29 18:59:44 +02:00
Delyan Angelov 2326a3a1e1
builder: small cleanup, use .dump_c_options in Builder.cc_linux_cross/0 too 2021-01-29 18:30:40 +02:00
Delyan Angelov 4d180171ba
builder: implement `-dump-c-flags flags.txt` 2021-01-29 18:05:14 +02:00
Delyan Angelov 49b01549da
v.vcache: improve tracing of vcache usage 2021-01-29 18:05:13 +02:00
yuyi 26c06a56b7
checker: fix array_insert_or_prepend_short_struct_init (#8397) 2021-01-29 14:53:14 +01:00
yuyi 56c4a36cd4
cgen: fix match_in_if_expression (#8407) 2021-01-29 14:51:17 +01:00
Swastik Baranwal c4758c21c6
cgen: println(none) => `<none>` (#8404) 2021-01-29 14:50:48 +01:00
Louis Schmieder 4a6642b79e
vweb: fix vweb upload (#8392) 2021-01-29 14:48:52 +01:00
zakuro f5242890b8
fmt: keep multiline selective import (#8412) 2021-01-29 14:48:28 +01:00
yuyi ddcbc4440b
cgen: fix array_sort_by_references (fix #8390) (#8403) 2021-01-29 12:20:28 +02:00
Lukas Neubert e47c13903b
fmt: keep newlines between toplevel stmts (#8383) 2021-01-29 12:17:59 +02:00
Larpon 85c5df23cf
gg: add window_size() function (#8409) 2021-01-29 12:11:03 +02:00
Subhomoy Haldar c5a18812e2
rand: move constants from rand.util to a new module rand.constants (#8408) 2021-01-29 11:57:30 +02:00
Nick Treleaven d012f2713b
checker: improve errors with compile-time field access (#8373) 2021-01-29 00:45:00 +01:00
spaceface 4aee997689
checker: make implementing an interface with another interface an error (#8398) 2021-01-29 00:41:59 +01:00
Uwe Krüger adb646a1d2
sync: update benchmark results for Windows (#8399) 2021-01-29 00:41:46 +01:00
Alexander Medvednikov 608a4ccccd fmt: fix a bug with an empty module in consts 2021-01-29 00:26:57 +01:00
yuyi 1be7cc14d3
checker: check duplicate of a const name (#8396) 2021-01-28 18:34:55 +01:00
yuyi 684d2e6dbf
checker: merge ambiguous_function_call tests (#8388) 2021-01-28 15:53:54 +02:00
Delyan Angelov 4fcd8d8a98
scanner: fix `' "$var", "$another"'` where `r"`, was treated as start of a raw string 2021-01-28 15:38:42 +02:00
Delyan Angelov 079fbffaf5
scanner: implement s.trace/2 2021-01-28 15:21:19 +02:00
Uwe Krüger 0afe36e153
checker: fix receiver pos for single letter type error message (#8393) 2021-01-28 15:20:07 +02:00
Delyan Angelov 1a29719f16 fontstash: fix snek on big sur, with -d use_truetype 2021-01-28 12:26:48 +02:00
Lukas Neubert 75d85403a6
fmt: better ternary concat wrapping (#8379) 2021-01-28 11:23:48 +01:00
Alexander Medvednikov d86cb67eda checker: add a test for the single letter receiver 2021-01-28 11:13:51 +01:00
Alexander Medvednikov 68dab101d9 checker: fix one letter receiver panic 2021-01-28 11:05:37 +01:00
Alexander Medvednikov 36e75e5208 Revert "parser: fix panic when single letter receiver parsed (#8381)"
This reverts commit 93b0d8ca64.
2021-01-28 10:59:04 +01:00
Daniel Däschle 93b0d8ca64
parser: fix panic when single letter receiver parsed (#8381) 2021-01-28 10:56:43 +01:00
Tim Basel 5fc7eadd8b
cgen: fix short struct init with `mut` (#8384) 2021-01-28 10:05:09 +02:00
Subhomoy Haldar 5a1f3cd394
math.fractions: fix minor typo (#8386) 2021-01-28 10:02:41 +02:00
Delyan Angelov dceb63b9df
cgen: fix implicit the optional return value to have .ok = true, in anon `fn()?{}` 2021-01-28 02:26:02 +02:00
Delyan Angelov 242d7d0fc0
tools: improve error diagnostic for `v up` and `v self`. Make `v self` more robust. 2021-01-27 23:58:13 +02:00
zakuro 8162396783
checker: deny multi-value in a singe-value context (#8328) 2021-01-27 23:10:51 +02:00
shadowninja55 f4baa3f39c
gg: add draw_square, draw_empty_square, and set_pixel (#8375) 2021-01-27 22:39:11 +02:00
shadowninja55 fccd4f98d5
fixed offset (#8376) 2021-01-27 19:39:53 +02:00
yuyi d1ab22d45f
checker: fix array append short struct init (#8362) 2021-01-27 13:55:53 +01:00
Enzo 2b30c48770
checker: fix ctdefine check in non-main modules (#8332) 2021-01-27 13:54:33 +01:00
StunxFS cb885d30b4
scanner: fix typo (#8345) 2021-01-27 13:53:41 +01:00
Swastik Baranwal 17921f4171
checker: add checks for optional selector_expr (#8330) 2021-01-27 13:53:20 +01:00
Nick Treleaven 58a76344cb
checker: avoid SelectorExpr filter on Ident unless it's a generic type name (#8357) 2021-01-27 13:52:52 +01:00
spaceface e233911a7b
term.ui: native Windows console implementation (#8359) 2021-01-27 13:52:39 +01:00
Lukas Neubert 2ada7b730e
sqlite: create_table(): rename rows param to columns (#8361) 2021-01-27 13:52:27 +01:00
yuyi 7a5722c885
parser: check assign_stmt of undefined variable (#8366) 2021-01-27 13:52:10 +01:00
Delyan Angelov 2d86c50d49
ci: fix autobahn integration tests job 2021-01-26 20:12:12 +02:00
Delyan Angelov dd96852515
ci: fix compilation of term.ui examples on windows 2021-01-26 19:26:05 +02:00
Delyan Angelov 4e2b908f21
ci: fix `os` compilation on windows 2021-01-26 17:41:27 +02:00
Delyan Angelov e5a84719ca
all: require calling `optfn() ?` / `optfn() or {...}` for `fn optfn() ? {}` 2021-01-26 16:43:17 +02:00
Subhomoy Haldar 97103f680a
rand: separate rand.util and rand.seed submodules (#8353) 2021-01-26 15:55:09 +02:00
spaceface 5f2b2df546
checker: don't disallow defining methods on interfaces (#8335) 2021-01-26 11:56:17 +01:00
zakuro 3959ba5751
checker: make a calling no-body function a checker error (#8265) 2021-01-26 11:19:48 +01:00
Lukas Neubert 2007dbc7b5
fmt: put the opening brace on a new line again for infix (#8336) 2021-01-26 11:19:32 +01:00
Lukas Neubert 3790bd67e3
fmt: minor cleanup of sql_expr (#8340) 2021-01-26 10:36:46 +01:00
zakuro 22847d1ec3
fmt: assert (a == b) -> assert a == b (#8351) 2021-01-26 10:36:21 +01:00
Daniel Däschle 7bb9c0e7b3
checker: fix multi generic args (#8347) 2021-01-26 09:37:48 +02:00
Major Taylor 69c37402d4
backtrace: fix tcc backtrace windows compilation error (#8348) 2021-01-26 08:26:54 +02:00
Lukas Neubert c6f98afaba
fmt: minor cleanup of return_stmt (#8341) 2021-01-25 23:22:14 +01:00
Delyan Angelov 4d0dab826b
ci: fix vlib/dl/example/use_test.v in windows-tcc 2021-01-25 21:19:15 +02:00
Delyan Angelov dbaccd4272
vfmt: shorten `main.const_name` to just `const_name` 2021-01-25 20:57:33 +02:00
Delyan Angelov ea11488339
tests: make test more tolerant to windows low precision timer default interval 2021-01-25 20:04:29 +02:00
Delyan Angelov e0ed224a8d
Revert "net: prevent udp_test.v from running on windows without -d network"
This reverts commit 3526bc3d19.
2021-01-25 19:08:45 +02:00
Delyan Angelov 3526bc3d19
net: prevent udp_test.v from running on windows without -d network 2021-01-25 19:02:19 +02:00
spaceface daff085033
checker: fix treating C structs with capitalized fields as embeds (#8343) 2021-01-25 18:47:14 +02:00
Delyan Angelov cb04e6dccc
tests: move is_nodejs_working() to jsgen_test.v 2021-01-25 18:46:28 +02:00
yuyi 3199b982a9
cgen: minor cleanup of comp_for in comptime.v (#8337) 2021-01-25 17:08:48 +01:00
Daniel Däschle 006a11454f
cgen: fix generic type $else $if (#8339) 2021-01-25 17:08:02 +01:00
Swastik Baranwal 21ba0470af
builtin: fix truncating of EOL on windows terminal (#8338) 2021-01-25 17:51:36 +02:00
Delyan Angelov a5b10b5539
parser: improve the error message for unexpected keywords 2021-01-25 15:29:07 +02:00
yuyi 444d49da75
cgen: minor cleanup of gen_assert_stmt (#8334) 2021-01-25 15:28:34 +02:00
Nick Treleaven 02d8ede94d
cgen: fix `$if T !is` (#8311) 2021-01-25 14:25:52 +01:00
Lukas Neubert b2f2f387dc
fmt: cleanup and expand tests for ternary if (#8333) 2021-01-25 14:22:08 +01:00
yuyi 1c9950c84a
cgen: fix map_complex_high_order_fixed_array (#8329) 2021-01-25 14:40:53 +02:00
Delyan Angelov 965ae9cb91
ci: fix formatting in .md files too 2021-01-25 13:20:18 +02:00
Delyan Angelov 728344ff65
ci: fix `v test-cleancode` 2021-01-25 12:55:01 +02:00
Delyan Angelov 94fd3ff431
checker: remove the 'in module main cannot be declared public' error/warning 2021-01-25 12:55:00 +02:00
Delyan Angelov d3d301d8ff
gen: use externally_visible too for VV_EXPORTED_SYMBOL when ARM is defined 2021-01-25 12:40:28 +02:00
Adelar da Silva Queiróz 334554ffb9
strconv: fix typo (#8318) 2021-01-24 23:18:40 +01:00
yuyi d3327ba50f
cgen: fix for_mut_val_in_map_fixed_array (#8314) 2021-01-24 23:18:11 +01:00
Alexander Medvednikov 3dae3f786d gg: Context.resize() 2021-01-24 22:27:27 +01:00
spaceface 4be45e8d02
checker: add mutability checks for interface fields; add tests (#8312) 2021-01-24 22:11:17 +01:00
Uwe Krüger 815104e5d0
parser: parse `-1` and `-13.3` as number literals (#8321) 2021-01-24 22:09:51 +01:00
Lukas Neubert 997f56a3dc
fmt: better newline handling in block comments (#8325) 2021-01-24 22:08:24 +01:00
Daniel Däschle 750738aa12
cgen: fix optional sum types (#8319) 2021-01-24 20:56:44 +01:00
Emily Hudson 2e695a8e8f
cgen: free temporary channel arrays (#8324) 2021-01-24 20:02:17 +01:00
Alexander Medvednikov 29d6e40f29 all: vfmt (new const rule) 2021-01-24 10:54:27 +01:00
Alexander Medvednikov 12ff1c2702 doc: document the new const rule 2021-01-24 10:23:52 +01:00
Alexander Medvednikov 80e6b090ea checker: remove an obsolete const test 2021-01-24 10:17:36 +01:00
Alexander Medvednikov 2238bf9a83 fmt: use new const rule in tests 2021-01-24 10:12:49 +01:00
Alexander Medvednikov 8bcb6c10cc checker: remove duplicate const error; fmt: force full path to consts 2021-01-24 10:01:13 +01:00
fnetX (aka fralix) 69e6ba7a64
math: small typo in math.fractions (#8298) 2021-01-24 09:37:00 +01:00
Lukas Neubert 522eac200f
fmt: keep `arr << if x {} else {}` on a single line (#8289) 2021-01-24 08:02:35 +01:00
Uwe Krüger 79b4b0e6c8
parser: assure explicit `map` init contains no parameters (#8299) 2021-01-24 01:06:43 +02:00
Adelar da Silva Queiróz 1f99d1e025
strconv: some corrections of typos (#8302) 2021-01-24 00:00:31 +02:00
Uwe Krüger 1ea5cedd03
parser/cgen: fix explicit array/map shared/reference initializers (#8307) 2021-01-23 23:54:57 +02:00
Daniel Däschle 35432c5e92
gen: fix generic multi return (#8303) 2021-01-23 23:41:32 +02:00
Swastik Baranwal 8a59ffb4b7
cgen: allow `==` to be user defined if `!=` is auto generated and vice versa (#8286) 2021-01-23 16:59:39 +01:00
Tomas Hellström 39e5f6e9df
x.websocket: websocket server fix and bring back server autobahn (#8291) 2021-01-23 16:56:38 +01:00
Delyan Angelov 4065a0327a
gen: fix autogeneration of .str() methods for sumtypes that have child types with custom .str() methods 2021-01-23 17:22:19 +02:00
Uwe Krüger 74115fe70a
parser: auto-import `sync` when `shared` objects are used (#8294) 2021-01-23 16:03:21 +01:00
Larpon bce6a35e8f
crypto: add missing documentation to all pub functions (#8251) 2021-01-23 13:33:49 +01:00
Uwe Krüger 38880b23eb
checker: allow `a[i]` for `shared` arrays outside `unsafe` (#8292) 2021-01-23 13:33:32 +01:00
yuyi b8857baa98
parser: fix map_init position (#8293) 2021-01-23 13:33:19 +01:00
R cqls 749d6133a1
v.pkgconfig: handle paths to local .pc files too (needed for homebrew) (#8290) 2021-01-23 13:09:53 +02:00
Alexander Medvednikov ba2a15c9d7 parser: fix const check 2021-01-23 10:46:00 +01:00
yuyi 5ee3fecf60
checker: check for mut val in immutable obj (#8285) 2021-01-23 10:40:17 +01:00
Delyan Angelov d4f6f5eec4
sokol,fontstash: move f_d_use_freetype.v to vlib/fontstash/a_d_use_freetype.v 2021-01-23 11:39:17 +02:00
Alexander Medvednikov c21f57ff59 os: vfmt os.v 2021-01-23 10:33:53 +01:00
Alexander Medvednikov 45cc3ec664 sokol: remove an absolute import 2021-01-23 10:32:00 +01:00
Alexander Medvednikov d991712b3c gg: native rendering mode on macOS 2021-01-23 10:25:43 +01:00
Delyan Angelov a3908414e4
pref: fix handling of _d_custom.v files, use it in vlib/sokol/f/f_d_use_freetype.v 2021-01-23 11:21:56 +02:00
Lukas Neubert 8b61891348
fmt: smarter if condition wrapping (#8201) 2021-01-23 10:33:22 +02:00
zakuro 9812230847
checker: make the no-body main function a checker error (#8211) 2021-01-23 10:30:26 +02:00
Daniel Däschle c5c7addb88
checker: improve infer generic (#8281) 2021-01-23 10:19:08 +02:00
spaceface c2d501e8a9
all: implement interface fields (#8259) 2021-01-23 08:57:17 +02:00
Louis Schmieder e06e8b10cd
orm: fix empty struct and simplify (#8246) 2021-01-22 23:28:26 +01:00
Daniel Däschle dbf84520f1
all: update assoc syntax (#8274) 2021-01-22 23:24:48 +01:00
Tomas Hellström 970c03987d
ci: temporarily comment the server tests for autobahn (#8272) 2021-01-22 22:30:53 +02:00
Larpon 981b42125f
encoding: document all of the `encoding.base64` module (#8276) 2021-01-22 22:29:05 +02:00
Emeric MARTINEAU 081e3c46b4
cli: allow flag to be set multi time (#8256) 2021-01-22 19:03:02 +02:00
Larpon f2c6735d92
crypto: make Digest.sum() and Digest.write() private in md5 and sha1 (#8270) 2021-01-22 14:14:31 +01:00
Daniel Däschle 500ebf77e4
all: implement multiple generics (#8231) 2021-01-22 13:49:56 +01:00
Delyan Angelov b10b76bb0d
parser: remove the 'non-string keys are work in progress' warning 2021-01-22 12:25:17 +02:00
Alexander Medvednikov 46cdf4f1ff 0.2.2 2021-01-22 10:39:44 +01:00
Alexander Medvednikov 43d56cb883 string: update the test 2021-01-22 10:33:06 +01:00
Alexander Medvednikov 216fea1eb3 string: remove left/right (one way!) 2021-01-22 10:26:07 +01:00
Alexander Medvednikov 5815d96418 Revert "builtin: make string.(left|right) pub (#8245)"
This reverts commit 820e684313.
2021-01-22 10:09:31 +01:00
Nick Treleaven 72168cd6bc
parser: support `mut:` section in the interface methods, and a mut interface fn modifier (#8092) 2021-01-22 10:02:28 +02:00
zakuro 1b09954622
parser: improve the position of mut receiver warning / error (#8240) 2021-01-22 09:38:37 +02:00
Uwe Krüger 925ffd76f4
sync/channels: expose `ch.closed` as `bool` pseudo attribute (#8244) 2021-01-22 09:37:29 +02:00
zakuro 820e684313
builtin: make string.(left|right) pub (#8245) 2021-01-22 09:35:32 +02:00
yuyi d44c632d11
cgen: fix innermost value of map fixed array (fix #8214) (#8247) 2021-01-22 09:32:56 +02:00
zakuro 522d875489
checker: make it an error, to use ident outside of anon fn (#8232) 2021-01-22 09:24:49 +02:00
shadowninja55 a569dc17e8
gg: allow fonts loaded with $embed_file() to be used (#8263) 2021-01-21 23:07:47 +02:00
Daniel Däschle 3ee7bc960f
checker/gen: fix smartcast pointer sumtype (#8260) 2021-01-21 22:31:25 +02:00
Louis Schmieder 6b1956fb60
checker: fix warning at comptime call (#8248) 2021-01-21 21:36:11 +02:00
Louis Schmieder 0d204603d1
gen: fix generic comp time if (#8254) 2021-01-21 21:17:44 +02:00
Louis Schmieder d8c94cd1fd
vweb: make multipart Content-Type header detection case-insensitive (#8255) 2021-01-21 21:16:25 +02:00
Daniel Däschle 6c24e9ba84
tests: automatically add an .out file if not found, with VAUTOFIX=1 (#8250) 2021-01-21 15:48:57 +02:00
yuyi f399c17e3d
parser: check for_in mut key (#8235) 2021-01-21 12:46:15 +01:00
Larpon 62c2168b0b
clipboard: document all pub functions, adhere to vdoc style (#8243) 2021-01-21 12:45:59 +01:00
yuyi 59c3e98c16
cgen: fix complex map_fixed_array (#8209) 2021-01-21 12:45:37 +01:00
yuyi f13ba3a9a8
cgen: fix for_in_mut_val for maps (#8221) 2021-01-21 12:44:22 +01:00
Uwe Krüger 3ecbf78707
cgen: support explicit array handling even in [direct_array_access] functions (#8241) 2021-01-21 12:43:54 +01:00
Daniel Däschle c6d6690064
checker: fix if expr infix (#8215)
* checker: fix if expr infix

* remove debugger code

* fmt

* remove debug

* add test cases
2021-01-21 12:42:24 +01:00
zakuro 29b3077ea1
checker: make negative literal index a checker error (#8242) 2021-01-21 13:27:16 +02:00
zakuro f413c92f2f
v.util: fix bug of mod_path_to_full_name (#8236) 2021-01-21 13:24:32 +02:00
Louis Schmieder 4045ec1ca8
checker: remove vweb unused vars (#8180) 2021-01-21 11:09:19 +01:00
Louis Schmieder f7c251f8f3
vweb: add multipart/form-data parser and file upload (#8160) 2021-01-21 11:08:51 +01:00
Louis Schmieder b44ec4921f
vweb: make vweb async (#8095) 2021-01-21 11:08:38 +01:00
zakuro 0c249fa040
parser: improve anon fn pos (#8210) 2021-01-21 11:01:40 +01:00
Markus F.X.J. Oberhumer d97543605b
pkgconfig: add support for Fedora and CentOS Linux. (#8237) 2021-01-21 11:41:16 +02:00
yuyi 242c5760f1
array: fix array_clone (fix #8220) (#8238) 2021-01-21 10:17:00 +01:00
spaceface f059a9e96c
builtin: fix sorting arrays of primitives (#8204) 2021-01-20 23:19:35 +02:00
yuyi 190bb38087
checker: check fixed array size (#8224) 2021-01-20 23:17:49 +02:00
Larpon c212b4d180
cli: add missing documentation to all pub functionality (#8226) 2021-01-20 23:15:48 +02:00
Enzo 55efd8309a
parser: fix parsing interface methods with varargs (#8229) 2021-01-20 23:15:02 +02:00
Delyan Angelov 94b5e47ba8
ci: fix compilation of projects cloned inside the main repository 2021-01-20 22:44:18 +02:00
Delyan Angelov 071549baae
v.util: fix an out of bounds panic in mod_path_to_full_name/2 2021-01-20 18:22:58 +02:00
Delyan Angelov d92f5c55ba
net: use mut and refs as receivers consistently (#8205) 2021-01-20 11:11:01 +01:00
Alexander Medvednikov 158aefc37f sqlite: create_table() 2021-01-20 09:30:26 +01:00
Alexander Medvednikov 57af8570fe tests: another pointer struct test 2021-01-20 09:24:12 +01:00
joe-conigliaro 97ebecc5f4
usecache: get all tests running with -usecache enabled by default (p.1) (#7699) 2021-01-20 06:04:59 +01:00
Delyan Angelov b3a4f746a2
clipboard: use a nicer error when X11/Xlib.h is missing 2021-01-19 20:47:09 +02:00
yuyi 985ef52872
cgen: fix child struct's default values not assigned (#8202) 2021-01-19 17:10:22 +01:00
Delyan Angelov d9532eda30
checker: error on a.slice(x,y) outside `builtin` 2021-01-19 15:55:52 +02:00
Tim Basel 129eee346b
fmt: keep single empty lines (#8189) 2021-01-19 14:49:40 +01:00
Ruofan XU 103901a5cb
example/test: add a binary search tree example and test (#8145) 2021-01-19 15:18:38 +02:00
Uwe Krüger 5067046538
parser: support `x = a[k] ?` propagation for arrays and maps (#8199) 2021-01-19 14:46:47 +02:00
yuyi 15cc1cd884
cgen: fix high order map assignment (#8198) 2021-01-19 14:31:24 +02:00
Lukas Neubert ca70d815b6
fmt: move StructDecl comments handling into functions (#8191) 2021-01-19 10:43:48 +01:00
Tomas Hellström da93666cd8
x.websocket: bring back shift operators (#8197) 2021-01-19 10:42:59 +01:00
Delyan Angelov 85bcfdd636
checker: handle `a[i] or { statements expr }` the same as the other or blocks 2021-01-19 09:28:34 +02:00
Delyan Angelov 24d1ec2714
vfmt: support `a[i] or { panic(err) }` too 2021-01-19 08:42:56 +02:00
Delyan Angelov 7037965973
parser: cleanup unused `p.os_from_string` 2021-01-19 08:33:03 +02:00
Lukas Neubert b44c08aff0
fmt: wrap match branch expressions (#8190) 2021-01-19 06:16:42 +01:00
Uwe Krüger b74690cbec
builtin, checker, cgen: implement `x = a[k] or { ... }` for maps and arrays (#8193) 2021-01-19 06:06:57 +01:00
yuyi a65b73d3e4
cgen: fix for_in_fixed_array (fix #8186) (#8195) 2021-01-19 05:50:23 +01:00
Tomas Hellström 874885c87d
x.websocket: fix weird shift operator bug in clang -prod flag (#8192) 2021-01-19 05:49:37 +01:00
Uwe Krüger 5cc591b2b6
all: support generic `chan` (#8188) 2021-01-18 18:37:45 +01:00
Swastik Baranwal 6f1ae65811
parser: add a warning for only else branch in match (#8185) 2021-01-18 18:31:36 +02:00
Delyan Angelov f375418847
parser: remove forgotten eprintln statement 2021-01-18 14:57:10 +02:00
Lukas Neubert ac2c3847af
all: update copyright to 2019-2021 (#8029) 2021-01-18 13:20:06 +01:00
Louis Schmieder 38881e4b20
vweb: Implement chunked encoding transfer (#8179) 2021-01-18 13:04:21 +01:00
yuyi 5ddb70940e
cgen: fix map_fixed_arrays str error (fix #8170) (#8178) 2021-01-18 10:34:29 +01:00
Delyan Angelov 17266ecb07
tools: support cmd/tools/.disable_autorecompilation in `v up` and `v self` too 2021-01-18 09:33:33 +02:00
Delyan Angelov 72790cda83
v.util: support cmd/tools/.disable_autorecompilation 2021-01-18 08:43:20 +02:00
yuyi 6c87c25ef1
cgen: fix `for _,mut j in arr` for fixed arrays (fix #8163) (#8167) 2021-01-18 06:05:38 +01:00
yuyi 73fd4396c3
parser: fix fixed array using const size (fix #8144) (#8161) 2021-01-18 06:03:03 +01:00
Lukas Neubert 16c9cbce7c
fmt: correctly increase f.line_len for write_indent (#8174) 2021-01-18 06:02:29 +01:00
Delyan Angelov 2677fcdf0c
time: add some tolerance for windows's minimum 1ms sleep resolution 2021-01-17 19:16:08 +02:00
Delyan Angelov 3ee78dc961
term: add term.colorize/2, use it in the tests. Support ConEmuANSI = ON too. 2021-01-17 19:09:29 +02:00
Delyan Angelov 75af639721
checker: allow ptr++/ptr-- in unsafe{}, for any kind of pointer, except voidptr 2021-01-17 18:09:25 +02:00
BigBlack 28ed4da1ce
cgen: fix `array_slice(*a, 0, a.len)` C error, generated for `a[..a.len]`, for a `mut a []int` (#8168) 2021-01-17 17:22:23 +02:00
Swastik Baranwal 334b66b311
checker/cgen: add checks and fix cgen for [typedef] for C structs (#8169) 2021-01-17 17:18:07 +02:00
Uwe Krüger e4850cd6dd
cgen: fix `for` iteration over fixed array literal (#8159) 2021-01-17 10:44:15 +01:00
Alexander Medvednikov a008c8254c parser: comptime: update tmpl_path 2021-01-17 06:42:21 +01:00
Alexander Medvednikov ac8a7ac901 parser: bootstrap the new struct init check 2021-01-17 06:30:30 +01:00
Alexander Medvednikov 2b058edc98 checker: do not require ref field init with update expr 2021-01-17 06:24:03 +01:00
Nick Treleaven df39e7001c
parser: support `module:` for immutable private struct fields (#8140) 2021-01-17 05:39:44 +01:00
Tim Basel d16721e5b8
cli: remove flags.get_*_or variants (#8102) 2021-01-17 05:33:39 +01:00
Larpon 512f62b7a1
android: enable custom (e)println output via android log system (#8135) 2021-01-17 05:32:59 +01:00
yuyi 9376c57a51
cgen: fix for_in_mut_val (fix #8087) (#8129) 2021-01-17 05:32:34 +01:00
Lukas Neubert 3e44816e44
fmt: minor code cleanup (#8147) 2021-01-17 05:32:10 +01:00
Nick Treleaven 5185a59ac7
parser: use Parser.builtin_mod instead of checking p.mod (#8137) 2021-01-17 05:31:41 +01:00