1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

11784 Commits

Author SHA1 Message Date
Delyan Angelov
a932a8b1ea
net.http: make the errors that parse_status_line returns more informative to make diagnosing problems easier 2023-01-31 15:26:08 +02:00
Christopher Fore
b3d742d13a
v.help: reorganise the folder layout of the v help topic text files (#17155) 2023-01-31 12:04:01 +02:00
walking devel
d563739264
checker: add type checking for ORM limit, offset, and order by. (#17095) 2023-01-31 10:22:02 +02:00
Swastik Baranwal
b487c9d38e
parser: add more precise errors, for fn (p Point) += (q Point) Point { (#17167) 2023-01-31 09:36:33 +02:00
Ulises Jeremias Cornejo Fandos
40ec2a292e
vlib: add a new dl.loader module, to simplify dynamic library loading, when the DLLs may be in multiple customisable locations (#17161) 2023-01-31 09:27:48 +02:00
Ahmad Yasser
6b20c57246
docs,sync: separate example code blocks with a newline (#17165) 2023-01-30 21:25:33 +02:00
Delyan Angelov
5abca37ff7
parser: add a temporary exception for C.statvfs as well (same name reused for function *and* struct) 2023-01-30 21:11:59 +02:00
Alexander Medvednikov
d1f57ead71 V 0.3.3 2023-01-30 18:20:51 +01:00
Delyan Angelov
62f7e56a18
v.vcache: fix a panic due to a race on creating folders in ~/.vmodules/cache/XY 2023-01-30 19:00:00 +02:00
Alexander Medvednikov
1470eb6fa4 gg: fix native image rendering with with/height=0 2023-01-30 16:06:18 +01:00
Felipe Pena
11f734296f
checker: fix generic array clone (#17153) 2023-01-30 11:27:17 +02:00
walking devel
a489417484
orm: detect type mismatching on inserting an object (#17157) 2023-01-30 11:26:10 +02:00
l-m
bb512f782e
checker, ast: add field promoted_type for InfixExpr, filled in by the checker, to save duplicate work in the backends (#17158) 2023-01-29 21:06:05 +02:00
walking devel
4747e70d9d
orm: make last_id() return int, instead of orm.Primitive (fix #12110) (#17151) 2023-01-29 16:00:23 +02:00
Felipe Pena
e6a4f76f82
cgen: fix returing comptime if expressions within functions with an option result (#17154) 2023-01-29 15:59:13 +02:00
anusrnm
5cd01ea494
gzip: fix flag location in header (#17140) 2023-01-29 13:27:04 +02:00
Swastik Baranwal
7f5f69a78a
checker: check option and result handling in as casts (#17133) 2023-01-29 12:28:14 +02:00
Felipe Pena
cb79e57c1a
cgen: fix generated code for match bar()?.a { (matchexpr with call expr using propagation) (#17150) 2023-01-29 12:11:30 +02:00
walking devel
9a86456365
cgen: support string interpolation in ORM queries (#17141) 2023-01-29 01:27:34 +02:00
yuyi
d3e4058aec
cgen: fix printing for mut v in arr (#17137) 2023-01-28 10:15:28 +02:00
Felipe Pena
b732dd6816
cgen: fix opt member eq operation (#17134) 2023-01-28 10:13:11 +02:00
walking devel
e064743c73
parser: recursively search undefined variables in the where parts of SQL statements (#17136) 2023-01-28 10:07:02 +02:00
Nahua
1d4fd53344
net.http: add documentation to http, method, server, and status (#17130) 2023-01-27 13:58:55 +02:00
MatejMagat305
fe157db0ce
v: support an optional fn cleanup() { in each module, to complement the existing optional fn init() { (#17119) 2023-01-27 11:31:03 +02:00
walking devel
a9a04bba55
orm: support fn calls in where (#17127) 2023-01-26 22:36:30 +02:00
l-m
c14d15bd3d
ast,checker,parser,cgen: [c:'sym'] rework; allow compiling code from .v files tagged with [translated] without needing -translated too (#17125) 2023-01-26 17:47:38 +02:00
Makhnev Petr
6365d9e070
checker: forbid var declaration in post statement of for loop (#17120) 2023-01-26 17:40:10 +02:00
Makhnev Petr
15c0a73740
checker: fixed error pointer for "redefinition of key iteration variable" and "redefinition of value iteration variable" errors (#17121) 2023-01-26 12:31:35 +02:00
Nahua
21b17fe234
io: add missing documentation and edit existing ones (#17105) 2023-01-25 22:03:20 +02:00
Felipe Pena
84b99ceeb2
vlib: add a v.reflection module for reflection done at runtime (#17072) 2023-01-25 22:01:22 +02:00
Swastik Baranwal
e32ed368ca
ast, checker, parser: add enum type pos (#17112) 2023-01-25 21:59:28 +02:00
Delyan Angelov
86f8c55107
ast: improve the support for #flag comptime_known_define something (support #flag wasm32_emscripten etc) 2023-01-25 17:38:47 +02:00
Delyan Angelov
d2e5c721a0
net: allow more fine grained control over socket shutdowns 2023-01-25 12:34:39 +02:00
walking devel
b34c55ffd6
ast: fix TypeSymbol.is_primitive, add TypeSymbol.is_bool (#17106) 2023-01-25 08:38:59 +02:00
Makhnev Petr
0874376db0
builtin: fix wrong module name imported in vlib/builtin/linux_bare/old/.checks/linuxsys/linuxsys.v (#17102) 2023-01-24 22:19:30 +02:00
Makhnev Petr
17d65db828
builtin: add string.trim_indent()` method (#17099) 2023-01-24 21:41:25 +02:00
Makhnev Petr
5aad0db0f7
parser: improve error for prefix inc/dec statement --a/++mp["id"] (#17090) 2023-01-24 10:08:35 +02:00
Makhnev Petr
91799a1742
checker: add error for inc/dec for non lvalue (#17091) 2023-01-24 10:03:37 +02:00
Roy Ivy III
5cd074a49e
builtin: improve multi-platform portability for string.split_into_lines() (#17078) 2023-01-24 10:02:25 +02:00
Nahua
da3ad2dca6
gx: add missing documentation or update existing ones for public functions (#17094) 2023-01-24 02:02:07 +02:00
walking devel
8b6fceb0a3
cgen: fix -autofree with arr[idx] or { default } (#17096) 2023-01-24 00:53:26 +02:00
MatejMagat305
6d223b9a26
builtin: add a map.reserve/1 method (#17052) 2023-01-23 11:07:25 +02:00
Makhnev Petr
3a9355d898
change or{} to or {} as most other places (#17082) 2023-01-23 11:05:34 +02:00
yuyi
865c0ea8bd
checker: check generic struct no_keys init (fix #17061) (#17067) 2023-01-22 19:11:12 +02:00
Thomas Peißl
3aeb6179b7
os: rework mv so it works with different partitions (add fallback to os.mv_by_cp + tests) (#17065) 2023-01-22 19:02:04 +02:00
yuyi
a929466130
checker: minor cleanup in infer_fn_generic_types() (#17068) 2023-01-22 15:02:08 +02:00
yuyi
b2dac566b0
checker: check fn call using 'none' as argument (#17070) 2023-01-22 14:58:34 +02:00
Delyan Angelov
f69b994c73
os: properly document os.uname, for both nix and windows 2023-01-22 13:18:28 +02:00
Roy Ivy III
dd55365dee
os: cleanup the output of os.uname() on windows (#17066)
* os: (WinOS) mimic current practices of `busybox` and `coreutils`

* os: trim any possible surounding whitespace
2023-01-22 11:59:42 +02:00
Delyan Angelov
0bafd237ee
ast: fix const dependency order for consts initialised with ast.SelectorExpr (fix #15049) (#17064) 2023-01-22 09:34:46 +02:00
Hitalo Souza
0ac6ba9354
json2: encode sumtype (#17041) 2023-01-21 20:26:55 +02:00
Hitalo Souza
1d51f3109f
json2: improve the performance of encode ~2x (#17050) 2023-01-21 10:45:38 +02:00
yuyi
630fb2af37
cgen: fix generic struct no_key init (#17059) 2023-01-21 10:42:15 +02:00
Hitalo Souza
1c6195c1b6
bench: jump to the top level functions in bench_json_vs_json2.v (#17054) 2023-01-21 10:40:12 +02:00
Hitalo Souza
9a43fa9668
bench: add more benches of json vs x.json2, separated by type (#17043) 2023-01-20 19:11:50 +02:00
yuyi
222eb86e6e
tests: correct the test comment in generic_fn_with_alias_arg.vv (#17048) 2023-01-20 18:53:42 +02:00
Delyan Angelov
46e4317643
benchmark: adjust the documentation for Benchmark.measure 2023-01-20 17:22:49 +02:00
MatejMagat305
d2bde39347
v.cflags: use strings.Builder instead of concatenation for constructing flags (#17049) 2023-01-20 16:20:36 +02:00
Nahua
90dbf683d5
term: add missing documentation for all remaining public functions (#17044) 2023-01-20 11:07:28 +02:00
MatejMagat305
25f1b713aa
crypto.pem: add Block.free() method (#17045) 2023-01-20 10:49:45 +02:00
phoebe
fed6524803
vlib: add a crypto.pem module (#17034) 2023-01-19 17:01:11 +02:00
Thomas Peißl
ba1b31700e
os: add hint for mv_by_cp to mv (#17036) 2023-01-19 16:50:57 +02:00
John
4098612a87
rand: add full precision f32 and f64 random functions; fix f32/f64 multipliers (#16875) 2023-01-19 15:21:47 +02:00
Delyan Angelov
550cae931f
bench: add bench_random_number_generation.v 2023-01-19 15:19:29 +02:00
Delyan Angelov
92c7e3f7ff
checker: relax checks on operators done on aliases of primitives like int, u8, string etc.; add tests (#17029) 2023-01-19 11:45:56 +02:00
Delyan Angelov
bee355eb65
all: cleanup sqlite.connect statements (do not leave strange test.db or vweb.sql artefacts around, after running common tests) 2023-01-19 09:45:07 +02:00
Minsoo
36834be2ad
all: fix the remaining deprecated import sqlite statements (#17021) 2023-01-19 09:37:55 +02:00
Nahua
b69f9419f0
term: add missing documentation for all public functions in colors.v (#17033) 2023-01-19 09:09:09 +02:00
Minsoo
d850d3caba
net.html: add get_tags_by_class_name (#17024) 2023-01-18 19:00:46 +02:00
yuyi
6688c0f3d7
checker: fix generic fn infering error with alias argument (#17026) 2023-01-18 18:59:02 +02:00
Hitalo Souza
525c5e237a
x.json2: add json2.map_from(t T) (#16797) 2023-01-18 18:55:04 +02:00
Delyan Angelov
2c78078814
cleanup: fix old usages of os.write_file/2? to os.write_file/2! 2023-01-18 12:28:10 +02:00
yuyi
6a9688ce9d
checker, cgen: fix for mut i in arr { i = i * i } (#17020) 2023-01-18 09:22:38 +02:00
Delyan Angelov
1cad788779
checker: add error for type Alias = map[string]Alias (fix #17008) (#17015) 2023-01-18 01:34:43 +02:00
yuyi
88dab8fc2d
all: clean up multiple 'is' infix expr (#17005) 2023-01-17 20:27:09 +02:00
walking devel
2fb9bdce9a
cgen, checker: add panic in ORM for invalid queries, when there are no or {} blocks, add type checking for the fkey attribute, add tests (#16977) 2023-01-17 20:21:10 +02:00
Nahua
93ee6d107a
encoding.base32: add missing documentation for all public functions (#16998) 2023-01-17 19:46:43 +02:00
Felipe Pena
5dbdb211dc
cgen: fix assignment from comptime var (#16999) 2023-01-17 19:39:19 +02:00
yuyi
a22dfe0ddf
cgen: minor cleanup in dump_expr() (#17006) 2023-01-17 17:11:04 +02:00
Delyan Angelov
75d6cb9c3a
checker: protect against unlimited recursion in Checker.ensure_generic_type_specify_type_names 2023-01-17 13:07:27 +02:00
yuyi
2034dcb4ed
ast: fix const values defined in the wrong order (#17002) 2023-01-17 12:12:54 +02:00
yuyi
930e629d2e
cgen: fix struct init with chan field (#17001) 2023-01-17 05:50:11 +01:00
Felipe Pena
1302dbf02f
checker: fix for..in statement with ComptimeSelector (#16997) 2023-01-17 05:49:45 +01:00
yuyi
f57b16a843
all: clean up multiple !is infix expr (#16993) 2023-01-17 05:48:44 +01:00
Felipe Pena
f634c6e0a4
checker: fix postfix var checking break (#16984) 2023-01-17 05:47:51 +01:00
yuyi
21807f94a2
checker: check unsafe map index operation (#17000) 2023-01-17 05:47:16 +01:00
MatejMagat305
6bf6a40e0c
crypto: add .free() and .reset() methods to reduce memory leaks with -autofree (#16992)
* Fix unsafe pointer

I was compile vab with '-prod' and it was needed  to fix and it is of course warning

* Add files via upload

* reduce memory  leak s sha512

* add method .free() and .reset() for some
2023-01-16 17:30:40 +02:00
MatejMagat305
92fd12c18a
crypto.sha256: add .free() and .reset() methods to reduce memory leaks with -autofree (#16991) 2023-01-16 13:23:46 +02:00
yuyi
e5fb457b19
checker: fix map with reference value (#16990) 2023-01-16 11:45:22 +02:00
Hitalo Souza
55787ff78f
json2: refactor, doc, perf, test, errors (#16986) 2023-01-15 22:52:48 +01:00
Alexander Medvednikov
7a9a82879b checker: use a notice for now 2023-01-15 22:38:31 +01:00
Alexander Medvednikov
aba7bcde85 checker: turn the pointer map notice into a warning and fix all code using it 2023-01-15 22:19:25 +01:00
Swastik Baranwal
e8108f21e0
checker: check option and result handling in type-casted aliases (#16988) 2023-01-15 23:09:30 +02:00
Nahua
5f30110e2c
hash: document all public functions (#16987) 2023-01-15 22:37:09 +02:00
Hitalo Souza
7db7951bd0
x.json2: fix: #16975 (#16983)
* fix: #16975

* test

* Update vlib/x/json2/json2.v

Co-authored-by: Delyan Angelov <delian66@gmail.com>

* minor refactor

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2023-01-15 22:09:02 +02:00
Delyan Angelov
bfb47005c8
net.openssl, net.mbedtls: add support for -d trace_ssl, for easier tracing of binary protocol problems to https servers 2023-01-15 16:06:46 +02:00
Delyan Angelov
d4320863fe
net: fix compilation with -d trace_tcp_data_write and -d trace_tcp_data_read; add .hex() dumping too for easier diagnosing of binary protocol level problems 2023-01-15 13:25:23 +02:00
Hitalo Souza
28cbaf66b8
json2: refactoring and fixes (#16893) 2023-01-15 12:30:33 +02:00
Felipe Pena
4d2c767dcb
checker: fix for $if field.unaliased_typ is $Int { (#16982) 2023-01-15 12:27:08 +02:00
Delyan Angelov
e8e1df6df9
tests: make VTEST_ONLY=panic ./v vlib/v/slow_tests/inout/compiler_test.v more useful as a filter 2023-01-15 11:38:37 +02:00
Delyan Angelov
2b4c60d07f
tests: sort the .vv files in vlib/v/slow_tests/inout/compiler_test.v, before testing them, to have more predictable output 2023-01-15 11:34:10 +02:00
Alexander Medvednikov
877a1e511a checker: require unsafe for accessing a pointer map value 2023-01-15 02:47:13 +01:00
yuyi
7fd9b62b34
parser: fix type alias of fn with mut argument (#16974) 2023-01-14 21:38:46 +02:00
Hitalo Souza
199db81b23
json2: refactor after #16951 (#16976) 2023-01-14 21:30:29 +02:00
Felipe Pena
dbfb9c3a90
cgen, checker: var type checking at compile-time (#16951) 2023-01-14 16:20:12 +02:00
Delyan Angelov
b19db3a207
ci,term: add a term.set_tab_title/1 shim for windows too (for now just calling term.set_terminal_title/1) 2023-01-14 15:10:12 +02:00
Felipe Pena
71e8fc8b38
checker: fix comptime if branch checking (#16938) 2023-01-14 15:06:38 +02:00
Felipe Pena
80cd9f820a
checker,cgen: allow ?.str() on compile-time fields var (#16969) 2023-01-14 15:04:13 +02:00
Delyan Angelov
6adafbb6ea
term: add a separate term.set_tab_title/1 API for controling the current tab title in emulators like Konsole, that support many tabs 2023-01-14 12:00:39 +02:00
l-m
ca000292f1
cgen,js: support [autostr: allowrecurse] attribute, for allowing deep printing of data structures with pointer fields (trees, instead of graphs with cycles) (#16973) 2023-01-14 11:30:39 +02:00
Delyan Angelov
7c571c0945
term: fix set_terminal_title on nix 2023-01-14 11:08:49 +02:00
yuyi
fd07f7df69
cgen: fix printing struct having fields of arrays of anonymous structs (#16953) 2023-01-14 00:41:31 +02:00
Felipe Pena
41b9e513ca
parser: add a better error message, for multiple attributes, used on the same struct field (#16954) 2023-01-13 23:27:46 +02:00
Ahmad Yasser
3832f076c5
docs: fix all db.pg docs being italic in html format (#16971) 2023-01-13 23:25:24 +02:00
Swastik Baranwal
89aa695fba
checker: disallow non ptr struct values to voidptr fields (#16958) 2023-01-13 17:05:18 +02:00
yuyi
64558df764
vlib: move the mysql/sqlite/pg/mssql modules under vlib/db (#16820) 2023-01-13 17:02:32 +02:00
walking devel
2d8f160ef1
checker: replace the go keyword in error messages with spawn (#16960) 2023-01-13 13:23:51 +02:00
zakuro
c766ce4fe5
fmt: fix removal of selective imported types, used as array elements (#16963) 2023-01-13 09:30:28 +02:00
Felipe Pena
ba091a36dd
checker: fix unreachable code checking for sql ORM blocks (#16948) 2023-01-12 15:36:44 +02:00
Delyan Angelov
33191e4538
ci,pg,net.openssl: fix pkgconfig paths for macos-12 2023-01-12 15:22:08 +02:00
yuyi
148d57827c
parser, fmt: fix fmt in struct declarations with a fields, declared to be arrays of anonymous structs (fix #16947) (#16952) 2023-01-12 13:21:29 +02:00
yuyi
329b9f1a6a
parser, fmt: fix fmt error in $tmpl(path) (#16949) 2023-01-12 06:03:38 +01:00
Delyan Angelov
49a434e11f pg: fix compilation on macs with clang (libpq installed through brew) 2023-01-12 02:21:32 +02:00
Delyan Angelov
131086b647 ci: workaround for $if prod { not working properly with msvc 2023-01-12 00:02:27 +02:00
Delyan Angelov
00cef70220
ci: fix -prod compilation of sokol apps 2023-01-11 22:37:41 +02:00
Delyan Angelov
d9339b09d6
sokol.memory: fix message logs on Android 2023-01-11 16:37:20 +02:00
yuyi
3f8aa77990
parser: fix tmpl using variable or const path argument (fix #16941) (#16943) 2023-01-11 13:31:48 +02:00
Swastik Baranwal
b872487d82
cgen: allow ORM to work with DB aliases (#16939) 2023-01-11 11:58:55 +02:00
Delyan Angelov
e854051c1f
thirdparty: update all sokol and fontstash headers with their upstream versions (#16940) 2023-01-11 11:29:38 +02:00
Hitalo Souza
d1306ffcf5
checker,json2: relax checking of x.enum = integer at comptime; refactor json2 to clean it up (#16926) 2023-01-11 10:18:45 +02:00
Felipe Pena
09f48455c5
checker,cgen: allow method.name checking in comptime (#16931) 2023-01-10 19:45:06 +02:00
Hitalo Souza
cf95d77584
json2: small refactor after #16896 (#16911) 2023-01-10 11:08:11 +02:00
Delyan Angelov
1582db1a0a
comptime: add support for T is $Alias and T is $Function (#16929) 2023-01-10 08:49:04 +02:00
Delyan Angelov
6a32c81070
tests: extract slow tests (prod, valgrind, inout, repl etc), from vlib/v/tests/ to vlib/v/slow_tests/ (#16892) 2023-01-09 23:47:03 +02:00
Hitalo Souza
33a99fe833
json2: fix encoding of struct fields that are aliases (#16925) 2023-01-09 22:43:01 +02:00
Yochem van Rosmalen
0109fe66a6
os: make os.FileMode public (#16923) 2023-01-09 22:34:36 +02:00
Felipe Pena
51907618c3
cgen: fix code generated for a match expression, which returns function (#16922) 2023-01-09 22:30:35 +02:00
Swastik Baranwal
413a8b5f87
comptime: implement field.is_enum (#16920) 2023-01-09 20:12:07 +02:00
yuyi
c2eb4d7065
cgen: fix result or option of multi return (fix #16873) (#16915) 2023-01-09 16:20:15 +02:00
yuyi
286350aa9b
cgen: fix json encoding of structs with option fields (skip the fields with a value of none) (#16916) 2023-01-09 15:33:08 +02:00
JalonSolov
90941b3b1f
all: change optional to option (#16914) 2023-01-09 09:36:45 +03:00
yuyi
241109516f
checker, cgen: fix aliased optional or result fn call (#16908) 2023-01-08 20:04:17 +02:00
Hitalo Souza
fed8b49e46
vweb: add the v new <name> web command for starting new projects to the README.md (#16904) 2023-01-08 18:33:17 +02:00
Felipe Pena
1b78f430ab
checker, cgen: support $if T in [$Array, $Struct[operator for comptime type checking (#16896) 2023-01-08 18:22:10 +02:00
MatejMagat305
a99149334c
sync.pool: fix pointer cast warning (#16902) 2023-01-08 12:34:46 +02:00
Felipe Pena
a60f34e6dd
cgen: fix array_init generated code for reference var (#16894) 2023-01-07 12:04:04 +02:00
Swastik Baranwal
2aced13942
checker: disallow all operations beside assignment, on multi return values (#16890) 2023-01-07 11:53:20 +02:00
Felipe Pena
7fa7fec304
cgen: minor refactor - reduce repeated code (#16886) 2023-01-07 11:49:57 +02:00
Delyan Angelov
de2ed7497a
ci: update struct_init_with_interface_pointer_and_embed_test.v to match 2119a24 2023-01-06 15:01:33 +02:00
Delyan Angelov
725456cde0
ci: fix warnings in v -cc gcc -keepc -freestanding -o bel vlib/os/bare/bare_example_linux.v 2023-01-06 14:55:01 +02:00
Delyan Angelov
2119a240e8
checker: follow up to 43d8bc3, separate setting the default type for fields with default expressions into its own independent loop 2023-01-06 14:47:57 +02:00
Felipe Pena
3b594d6cd8
checker, cgen: allow iterating over optional array fields (#16858) 2023-01-06 09:33:11 +03:00
Alexander Medvednikov
868908b80d checker: require unsafe for Struct(voidptr) casts 2023-01-06 09:28:11 +03:00
Delyan Angelov
43d8bc30f9
checker: fix unset type of a pointer field with default value, when a struct contains an embed (fix #16882) (#16883) 2023-01-05 19:53:37 +02:00
Swastik Baranwal
da68b2d369
checker: remove c.pref.is_test exception for calling private methods in _other_ modules (#16872) 2023-01-05 15:41:18 +02:00
Hitalo Souza
3598e7d08e
orm: add tests for fkey: relationship attribute and retrival of joined rows (#16877) 2023-01-05 15:20:15 +02:00
Hitalo Souza
8f217c00e5
x.json2: refactor/fix json2.encode, add more tests (#16790) 2023-01-05 15:17:38 +02:00
Felipe Pena
e3aee748ac
cgen: fix code generated for optional comptime var (#16854) 2023-01-05 10:54:51 +02:00
Delyan Angelov
19c9633896
builder: show a hint about v ., on unknown errors, suggesting that the user tried to compile a single .v file from a multi file project (#16878) 2023-01-05 07:45:23 +02:00
Delyan Angelov
66438391d0
v.token,v.parser: use p.tok.kind.precedence(), instead of p.tok.precedence(), since token.Token struct values, are much larger, than just the token.Kind enum values 2023-01-04 17:50:51 +02:00
Delyan Angelov
f9e8a91cd0
v: move cmd/v/help/ to vlib/v/help, to simplify the interaction between module lookup & v recompilation (#16867) 2023-01-04 14:01:05 +02:00
yuyi
b8571c964d
cgen: fix json encode struct with optional field (#16866) 2023-01-04 12:41:07 +02:00
yuyi
0a6fc6d280
checker: fix generic stack of sumtype push() (#16855) 2023-01-03 18:29:29 +02:00
yuyi
2378b71f22
cgen: fix comptime if expr with optional or result call (#16853) 2023-01-03 14:38:08 +02:00
Swastik Baranwal
09766c44b6
checker: disallow struct{...val.$(field.name)} (#16852) 2023-01-03 10:21:32 +02:00
Hitalo Souza
2e54a8cb0e
x.json2: update tests (#16847) 2023-01-03 10:16:36 +02:00
Felipe Pena
bd2b216ac7
cgen,checker: fix method call with comptime var (#16844) 2023-01-03 10:14:23 +02:00
Delyan Angelov
3625a74ec5
os: add test for os.open_append (#16846)
* os: add test for os.open_append

* fix unclosed file in test_eof (it made os.open_append fail only on windows, since it got the previous file content, because the file was locked, and os.rm could not delete it)
2023-01-03 01:11:35 +02:00
Keito Tobichi
d5b9f7d026
io: fix typos (fix #16839) (#16840) 2023-01-02 20:20:52 +02:00
Felipe Pena
b0d39814be
cgen, checker: fix conditional evaluation and code generation for $if/$else $if/$else for known true conditions (#16823) 2023-01-02 20:14:12 +02:00
yuyi
f71572a50f
parser: fix array of functions direct call (#16838) 2023-01-02 14:12:07 +02:00
yuyi
9d49b69b69
ast: fix inferring generic struct (fix #16830) (#16831) 2023-01-01 17:36:18 +02:00
yuyi
51bb630ea4
checker: fix generic fn with short generic struct init syntax (#16828) 2023-01-01 09:14:55 +02:00
JalonSolov
aaf3e25c3f
websocket: simplify and better handle handshake (#16829) 2023-01-01 09:04:09 +02:00
Delyan Angelov
3364bf8600
cgen: add g.push_existing_comptime_values and g.pop_existing_comptime_values, use them inside Gen.comptime_for (#16821) 2022-12-31 18:29:19 +02:00
yuyi
1c151fbec9
cgen: fix struct optional field zero init (#16814) 2022-12-31 17:36:14 +02:00
Makhnev Petr
04cb6ae65f
tests: improve Teamcity test runner (#16817) 2022-12-31 17:26:18 +02:00
mfont
1e401d1433
bcrypt: fix issue #16769 security problem in compare_hash_and_password (#16815) 2022-12-31 17:18:43 +02:00
Felipe Pena
5daf39bc6a
cgen: fix typeof with comptime var (#16816) 2022-12-31 15:57:55 +02:00
yuyi
15c9153f1d
cgen: fix fixed array literal range index (#16812) 2022-12-30 13:59:54 +02:00
Felipe Pena
c10bc09e83
checker, cgen: allow $for in alias type (#16810) 2022-12-30 11:27:01 +02:00
Felipe Pena
f4cd3931fb
cgen: fix dump fn name using generic var (#16805) 2022-12-30 11:16:59 +02:00
Swastik Baranwal
828cd4fe79
checker: add check for implicit fixed array decomp in function varargs (#16806) 2022-12-30 01:06:41 +02:00
Felipe Pena
c7f1db2b8a
cgen: cleanup uneeded C code, when using selectorexpr on $if (#16802) 2022-12-29 20:30:42 +02:00
Delyan Angelov
6229f48830
checker,cgen: implement support for the new FieldData.is_alias field (part 2, follow up to a6bf20f) 2022-12-29 19:14:13 +02:00
yuyi
6a8b6c010c
repl: minor cleanup in runner.v (#16804) 2022-12-29 17:55:57 +02:00
yuyi
36ab78d6da
parser, cgen: fix anon fn optional call in if expr (#16803) 2022-12-29 17:53:17 +02:00
Delyan Angelov
cd4ea16609
cgen: add more detailed cgen stage timing info on -show-timings 2022-12-29 17:33:40 +02:00
Delyan Angelov
a6bf20f3be
builtin: add .is_alias to FieldData too (part 1, unimplemented yet) 2022-12-29 12:43:55 +02:00
yuyi
f4b110b1a4
vrepl: fix $tmpl('hello.txt') (fix #16789) (#16793) 2022-12-29 11:30:25 +02:00
Felipe Pena
ed06618498
cgen: fix generic func arg type when passing array compile-time field (#16798) 2022-12-29 11:23:57 +02:00
Felipe Pena
2ebd3f0cdb
checker,cgen: make boolean field.is_<field> accessible at compile-time as well (#16796) 2022-12-29 00:19:47 +02:00
Swastik Baranwal
ad9ca349dc
cgen: fix generics array delete (#16794) 2022-12-29 00:15:47 +02:00
Delyan Angelov
4718a818b8
vfmt: fix alignment of value formatting for "x := {.: 1, : 2}" 2022-12-28 18:06:32 +02:00
Felipe Pena
0f37ff197b
checker: fix fn call with generic []T arg (#16781) 2022-12-28 11:05:11 +02:00
yuyi
b171102b03
os: minor optimization in os.v (#16791) 2022-12-28 10:28:47 +02:00
yuyi
b9996619d5
cgen: fix result/option breaks execution order in if statements (fix #16663) (#16778) 2022-12-28 10:26:39 +02:00
Felipe Pena
c5c7b3a054
checker: fix comptime var param passing with comptime selector (#16777) 2022-12-27 15:14:58 +02:00
Delyan Angelov
a8f6f9ed60
checker: more precise error handling of large binary literals like 0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000 (#16775) 2022-12-27 15:13:15 +02:00
Delyan Angelov
508bfbf892
time: do not panic for time.parse("2020-02-02 20.02.20")!, just return an error instead (fix #16779) 2022-12-27 13:01:01 +02:00
Delyan Angelov
6b3f8f519d
cgen: fill in the new FieldData fields, add tests (#16774) 2022-12-26 23:35:13 +02:00
Felipe Pena
9b28a7aa96
checker,cgen: fix comptime value recognition on generic arguments (#16768) 2022-12-26 18:44:18 +02:00
yuyi
3a1e7b71ea
cgen: fix array filter with an inline closure (fix #16770) (#16772) 2022-12-26 16:14:28 +02:00
Delyan Angelov
3d545ee0cd
builtin: add more fields to FieldData (will be implemented later in a PR, to ease bootstrapping) 2022-12-26 16:05:14 +02:00
Delyan Angelov
94a36c5ca4
tests: remove module main from tests, that do not need to be internal 2022-12-26 15:31:23 +02:00
yuyi
68883fc4d9
os: fix os.file_ext('/tmp/.gitignore') previously returning '.gitignore' => it now returns '' (#16771) 2022-12-26 12:53:38 +02:00
yuyi
64ed007f94
cgen: fix generic struct init with inconsistent generic optional types (#16766) 2022-12-25 12:06:13 +02:00
yuyi
21d6bd930e
ast, cgen: fix printing nested generic struct (#16758) 2022-12-25 09:57:16 +02:00
Felipe Pena
6a179a2926
checker: add int signedness mismatch checking for function call arguments (#16750) 2022-12-24 06:28:35 +02:00
yuyi
0128d2dd1c
ast, parser: fix wrong type name of nested generics (#16749) 2022-12-24 06:19:51 +02:00
Charles WANG
9dbc2afc5b
net.html: fix typo in README.MD (#16747) 2022-12-23 09:37:08 +02:00
Felipe Pena
b21e5b71ba
cgen: fix call arg type changing on match expr (#16744) 2022-12-23 01:58:52 +02:00
Delyan Angelov
fc5826b7ca
cgen: minimise sizeof(EmptyStruct) to 0 for gcc/clang and to 1 for tcc/msvc, by changing EMPTY_STRUCT_DECLARATION and EMPTY_STRUCT_INITIALIZATION (#16733) 2022-12-22 21:47:39 +02:00
yuyi
e01dac885c
builtin: fix m.len to 0, after calling map.clear() (#16720) 2022-12-22 21:36:33 +02:00
Delyan Angelov
f9043c84a7
builtin: optimise the initialisation of the common 1 byte element arrays []u8 2022-12-22 20:41:32 +02:00
Delyan Angelov
8f8a186158
builtin: support -d trace_vmemset, -d trace_vmemcmp, -d trace_vmemmove and -d trace_vmemcpy too 2022-12-22 20:08:53 +02:00
Delyan Angelov
b67705f568
builtin: move the -d trace_*alloc lines at the start of their corresponding functions, implement -d trace_memdup too 2022-12-22 19:36:15 +02:00
Delyan Angelov
3da4f37b01
cgen: improve generated source compatibility with latest Alpine (lacking libexecinfo-dev and execinfo.h) and the prebuilt tcc (#16743) 2022-12-22 15:01:51 +02:00
yuyi
e519bdf0eb
checker: check generic method receiver type mismatch (#16739) 2022-12-22 13:37:46 +02:00
yuyi
82a3551313
checker, cgen: fix match expr with branch returning (#16741) 2022-12-22 12:55:44 +02:00
Swastik Baranwal
3c5cfa22d1
parser: disallow the array init: attr, when the len: attr is not provided (#16735) 2022-12-21 21:24:16 +02:00
Delyan Angelov
87f8069728
ci: fix warnings for compiling builder_test.v too 2022-12-21 21:14:21 +02:00
Alexander Medvednikov
88e33a83de gg: fix draw_image on macos native; vcreate: vweb template 2022-12-21 19:33:37 +03:00
yuyi
ccbb8ab0ca
ast, parser: fix generic struct init with nested generic struct (#16736) 2022-12-21 18:32:54 +02:00
Delyan Angelov
1cde55478d
cgen: fix cgen errors for overloaded operators using reference types for the receiver and operand (fix #16725) (fix #15859) (#16726) 2022-12-21 09:10:30 +02:00
Felipe Pena
2f9becc98d
cgen: fix debug generated code with -g, while fixing #16690 (#16723) 2022-12-20 16:41:42 +02:00
Delyan Angelov
3c920f2ee6
x.json: fix parsing of time fields, that have just a single date encoded inside the parsed string (fix #16722) 2022-12-20 16:34:09 +02:00
pancake
c84eb29b78
js: use write() on the freestanding backend (#16704) 2022-12-20 13:16:06 +02:00
John
eb8e8b8642
rand: add Blackman/Vigna xoroshiro128++ PRNG (#16712) 2022-12-20 10:53:30 +03:00
Felipe Pena
0fe7ae3a60
cgen: remove repeated code (#16718) 2022-12-20 10:52:37 +03:00
Larpon
7e4dc24f1b
math: add math.vec module with generic 2D, 3D and 4D vector operations (#16710) 2022-12-19 18:10:48 +02:00
yuyi
2090e4a12f
ast, cgen: optimize generic struct with inconsistent generic types (#16708) 2022-12-19 15:02:27 +02:00
Delyan Angelov
353fdb4ca0 ci: workaround for v vet failing for v clean-code over the new v bench script (using \ in its path on windows). 2022-12-19 12:31:16 +02:00
Delyan Angelov
cbd34cd6e7
bench: add bench_string_key_in_map_vs_string_value_in_array.v 2022-12-19 11:56:00 +02:00
yuyi
aad95ac818
cgen: fix generic struct init with inconsistent generic types (fix #16677) (#16702) 2022-12-19 10:43:27 +02:00
Felipe Pena
04936b00c5
cgen: fix struct selector with or block (#16695) 2022-12-18 14:22:06 +02:00
Delyan Angelov
de5ae63401
parser: improve precision of struct field type positions in errors 2022-12-18 13:34:39 +02:00
Swastik Baranwal
5b4a16e864
checker: add err for unknown generic struct field (#16698) 2022-12-18 11:46:37 +02:00
yuyi
ba07e48691
ast, checker: fix checking generic struct type mismatch (#16701) 2022-12-18 10:29:44 +02:00
Delyan Angelov
9f1239c56e vweb,net: fix vweb crash when the connection was closed prematurely (tested with Chrome on windows, refreshing as fast as possible) 2022-12-17 19:08:59 +02:00
yuyi
e83a8416d5
ast, parser: fix generic struct init with inconsistent generic types (#16697) 2022-12-17 18:17:43 +02:00
Felipe Pena
9921598c91
cgen: fix struct field initialisation with a fixed array (#16692) 2022-12-17 18:15:17 +02:00
Delyan Angelov
1aec40a126
vweb: flush stdout after the Running app on message, fix potential invalid map value access in serve_if_static 2022-12-17 18:04:50 +02:00
Felipe Pena
65a020e385
cgen: fix comptime checking optional type with IS operator (#16688) 2022-12-16 16:53:04 +03:00
l-m
f0a252d0e6
builtin: apply .nogrow flags to gcboehm array (#16689) 2022-12-16 07:57:50 +02:00
Delyan Angelov
0a11955284
parser: support an unambiguous sizeof[T]() and isreftype[T]() (part 1) (#16684) 2022-12-15 19:21:52 +02:00
Ikko Ashimine
e5e73ebbfa
regex: fix typo in regex.v (#16683) 2022-12-15 18:54:07 +02:00
Swastik Baranwal
bd1d96de0e
cgen: add support for alias map keys (#16682) 2022-12-15 18:53:23 +02:00
Delyan Angelov
3643785981
pref: deprecate -error-limit in favour of the documented -message-limit option. 2022-12-15 10:37:57 +02:00
yuyi
fd472d2d41
toml: minor cleanup in toml tests (#16679) 2022-12-15 10:16:42 +02:00
Makhnev Petr
db2111235e
tests: add a teamcity output format for V's test runner (#16681) 2022-12-15 09:29:09 +02:00
Felipe Pena
c3ee26f15f
checker,cgen: fix dump when using comptime variable val.${field.name} (#16671) 2022-12-14 20:45:28 +02:00
Delyan Angelov
f762d46c84
pg: add compatibility.h, using a PG_VERSION_NUM check in the preprocessor, to just hardcode the missing CONNECTION_ numbers 2022-12-14 18:27:42 +02:00
Delyan Angelov
3b683f11e0
pg: comment out C.CONNECTION_GSS_STARTUP, which is not available on Debian 10 (PG 11) 2022-12-14 16:39:29 +02:00
yuyi
8e3a90ae79
cgen: minor cleanup in struct_init() (#16676) 2022-12-14 15:25:09 +02:00
yuyi
8ab4c7742c
ast, checker: fix generic struct init with inconsistent generic types (#16675) 2022-12-14 14:57:12 +02:00
Delyan Angelov
173b1895d6
pg: cleanup implementation, make -cstrict pass with both gcc-11 and clang-12 (by tightening the C wrapper declarations) 2022-12-14 13:17:00 +02:00
Hitalo Souza
70bb989537
doc: update the README for json2 (#16657) 2022-12-14 10:21:29 +02:00
l-m
acbd93b54c
builtin: add .nogrow and .nofree flags to array (#16661) 2022-12-14 09:44:14 +02:00
Subhomoy Haldar
b07e447764
encoding.html: add escape() function (#16666) 2022-12-13 22:10:57 +02:00
yuyi
69f7c45bec
builtin: fix array init with array default (#16664) 2022-12-13 18:05:33 +02:00
Felipe Pena
738fe77300
cgen: fix short circuiting behaviour of logical expressions, when several PrefixExpr's are used in if conditions (#16660) 2022-12-13 13:09:03 +02:00
Delyan Angelov
992621bd91
bench: add a small performance comparison script bench_json_vs_json2.v 2022-12-12 10:26:04 +02:00
Hitalo Souza
b682e9ec0b
json2: decode time.Time, supporting unix timestamps (like json), as well as rfc3339 datetimes (#16653) 2022-12-12 10:06:29 +02:00
yuyi
8225622da5
checker: check smartcasting requires either an immutable value, or an explicit mut keyword before the value (#16654) 2022-12-12 09:22:56 +02:00
yuyi
d87e400e77
transformer: clean up expr_stmt_match_expr() (#16655) 2022-12-12 08:41:02 +02:00
Felipe Pena
1e7208d28b
parser: fix initialization for array of Option type - []?Cell{} (#16652) 2022-12-12 08:40:05 +02:00
Hitalo Souza
d7c244e5ec
x.json2: support time.Time values in encode (#16643)
* feat: json2 time.Time encode

* refactor: best var name

* fix: use 'RFC 3339' as pattern in json encode

* fix: unused var for unaliased_typ

* fix: improve test

* use the clearer test after V ad24c22, that made format_rfc3339 more stable

Co-authored-by: Delyan Angelov <delian66@gmail.com>
2022-12-11 16:54:28 +02:00
Delyan Angelov
ad24c22250
time: add more UTC/local time conversion functions, make Time.format_rfc3339 more stable 2022-12-11 13:34:01 +02:00
yuyi
73e886eafe
checker: fix generic fn returning result (#16646) 2022-12-11 12:34:58 +02:00
Delyan Angelov
94098eef79
time: use UTC time in Time.format_rfc3339, make test more robust 2022-12-11 10:36:29 +02:00
Delyan Angelov
2ecb892985
time: add Time.format_rfc3339() method 2022-12-11 10:23:05 +02:00
Hitalo Souza
e8c0b098b0
x.json2: add encode_pretty/1 (#16634) 2022-12-10 20:44:23 +02:00
Delyan Angelov
4b2699fddd
cgen: fix copying of a fixed array parameter to a function (fix #16640) 2022-12-10 20:10:01 +02:00
Hitalo Souza
30b39bebde
x.json2: refactor json tests (#16638) 2022-12-10 18:44:20 +02:00
lemon
799af2adad
native: support simple multi return (#16628) 2022-12-10 16:26:43 +02:00
Alexander Medvednikov
42a9eaac0e regex: make match_string() receiver immutable 2022-12-10 13:03:42 +03:00
Delyan Angelov
7c02274754
v.pkgconfig: support PKG_CONFIG_PATH_DEFAULTS for overriding the default search path list too (enable easier -m32 with a custom tcc cross compiler) 2022-12-10 00:50:24 +02:00
Felipe Pena
1ba1f99b9c
orm: declare missing functions to handle literal types (#16627) 2022-12-09 20:34:34 +02:00
Hitalo Souza
b6c2aab092
json2: support encoding of optional struct fields (#16521) 2022-12-09 18:08:24 +02:00
Felipe Pena
ba8e61ebf3
cgen: fix return typeof[T]() in generic functions (#16626) 2022-12-09 17:24:47 +02:00
yuyi
6c0f22416f
cgen: fix if cond with result or optional in infix expr (#16625) 2022-12-09 12:01:14 +02:00
yuyi
68fb4e9fe5
cgen: fixevaluation order for match expressions inside boolean ones (fix #16554) (#16616) 2022-12-09 11:56:38 +02:00
Carter
eb88f7e255
builtin: fix bug with string.split_into_lines, when lines have extra CR's at their end (#16620) 2022-12-09 09:15:50 +02:00
Delyan Angelov
7091010a53
arrays: add map_of_counts/1, map_of_indexes/1 as well as index_of_first/2, index_of_last/2 utilities (#16618) 2022-12-09 00:37:07 +02:00
Felipe Pena
f365771499
cgen: fix nested struct generation for globals for gcc (#16614) 2022-12-08 21:38:01 +02:00
谢克
32c80c53b3
cgen: fix generic functions returning none or error values with generic result types (#16613) 2022-12-08 11:08:39 +02:00
Felipe Pena
2261606b56
checker: disallow Bar{...foo} when Bar needs more fields, than what foo has (#16609) 2022-12-07 16:56:07 +02:00
Delyan Angelov
458e68e196
orm,sqlite,mysql,pg: cleanup import v.ast, using typeof[Type]() 2022-12-07 13:40:46 +02:00
yuyi
4eb81d2f05
checker: improve error messages of missing generic type names (#16610) 2022-12-07 11:29:18 +02:00
Delyan Angelov
48a7de643e
all: support typeof[ T ]().idx and typeof[ T ]().name, where T can be any type, including ![]&string (#16513) 2022-12-07 11:26:27 +02:00
Swastik Baranwal
bb705c01d2
parser: add proper error msg for := used in const decl (#16607) 2022-12-06 22:44:33 +03:00
yuyi
921416d821
parser: fix parsing generic types using '[]' in anon fn decl (#16605) 2022-12-06 18:15:59 +02:00
Felipe Pena
cf015e5073
checker: add clearer errors for break/continue used within a $for loop (#16600) 2022-12-06 17:27:59 +02:00
Swastik Baranwal
ada8643ac5
checker: disallow using builtin type names for const names (#16599) 2022-12-06 15:44:25 +02:00
yuyi
e35f5f290e
cgen: fix string of map with generic struct value (#16595) 2022-12-06 12:38:05 +02:00
yuyi
a96e2e7093
parser: fix parsing embedded generic interface using '[]' (#16603) 2022-12-06 12:37:36 +02:00
yuyi
46bb62955b
cgen: fix generic array init with fields (#16601) 2022-12-06 09:33:26 +02:00
Felipe Pena
edfaa76b3e
checker: fix panic caused by compile-time code within or block (#16602) 2022-12-06 09:26:04 +02:00
Hitalo Souza
5288c613ef
json2: decode refactor/fix (#16588) 2022-12-05 16:58:44 +02:00
yuyi
50110d4c19
all: replace generic '<>' with '[]' in .vv files (#16593) 2022-12-05 16:32:15 +02:00
yuyi
7e9e2ff459
cgen: fix if expr with multiple array call (fix #16583) (#16589) 2022-12-05 12:07:39 +02:00
yuyi
59c979c8d2
checker: check generic interface type specifing type names (fix #16576) (#16591) 2022-12-05 10:05:32 +02:00
Swastik Baranwal
ce06c2818d
checker: add disallow none operations and range (#16584) 2022-12-05 08:50:36 +02:00
yuyi
ffc73bf643
builder: fix v builder error (#16590) 2022-12-05 08:48:45 +02:00
Delyan Angelov
d8d75ee67e v.builder: fix v -os wasm32_emscripten examples/2048 on windows 2022-12-04 17:49:33 +02:00
RGBCube
5acd855525
term: add format_esc/1 (#16574) 2022-12-03 14:01:39 +02:00
Delyan Angelov
bf0c8a0d96 sync: fix compilation of V on m1 with tcc 2022-12-02 23:17:46 +02:00
Delyan Angelov
d09c8c914b
testing: refactor the v test implementation to make supporting different output modes easier 2022-12-02 18:12:42 +02:00
Delyan Angelov
e419faf746
all: fix dependant->dependent typos, cleanup comments 2022-12-02 12:51:10 +02:00
Delyan Angelov
675c362f57
v.util: cleanup util.path_styled_for_error_messages/1 2022-12-02 11:48:01 +02:00
Delyan Angelov
c77344e0a2
checker: add a return *x suggestion, to the error fn ... expects you to return a non reference type ..., but you are returning ... instead 2022-12-02 10:40:36 +02:00
yuyi
f16722596c
all: replace generic '<>' with '[]' in error messages and comments (#16571) 2022-12-02 09:22:48 +02:00
Tim Marston
cbe64cb543
checker: allow struct updates from struct aliases (#16567) 2022-12-02 00:28:10 +02:00
Larpon
6e24f7e13a
gg: always use 4 channels in init_sokol_image (#16564) 2022-12-01 18:54:37 +03:00
Delyan Angelov
161847ed1a
v.pref: make -b unknown_backend an error, with a more informative diagnostic message 2022-12-01 15:28:51 +02:00
yuyi
c06696bc9a
cgen: fix printing multi-reference struct (#16560) 2022-11-30 21:30:15 +02:00
yuyi
fd04c1a03a
cgen: fix error of match expr (fix #16554) (#16555) 2022-11-30 12:04:20 +02:00
Delyan Angelov
675a1be975
math: remove the deprecated math.mathutil module too 2022-11-29 14:56:40 +02:00
Delyan Angelov
3fff786f36
math: remove the deprecated math.util module 2022-11-29 14:42:46 +02:00
Delyan Angelov
952f4644c5
math.big: remove import math dependency (math.big only uses min/max/abs) 2022-11-29 14:42:46 +02:00
Delyan Angelov
6ef3dfdea9
sokol: fix v -Wimpure-v examples/2048/ 2022-11-29 14:42:45 +02:00
Delyan Angelov
7df8f063ed
builtin: fix typo 2022-11-29 14:42:44 +02:00
yuyi
dff61300fb
table: optimize fn_type_signature() (#16552) 2022-11-29 13:13:58 +02:00
Swastik Baranwal
58e150df12
parser: add a better error msg for using ..., instead of .. in for a in 1...10 { (#16547) 2022-11-28 10:37:12 +02:00
yuyi
d257e43932
checker: fix 'return none' in void optional function (#16545) 2022-11-28 10:29:02 +02:00
yuyi
7d8c386721
datatypes: change optional to result (#16546) 2022-11-28 10:24:47 +02:00
Delyan Angelov
1d24dbe602
builtin: document string.to_wide() and string_from_wide()/1 2022-11-28 09:46:04 +02:00
Delyan Angelov
73675dca87
builtin: move v_segmentation_fault_handler to builtin.c.v, make it more informative 2022-11-27 12:11:06 +02:00
Delyan Angelov
fdbd40d806
scanner: make Scanner.peek_token more robust (p.peek_token(-999999) will return an EOF token, instead of garbage data) 2022-11-27 12:09:43 +02:00
Delyan Angelov
50b73abc62
parser: add p.show() to ease debugging parser problems, that need more context
Using it, produces output like this on stdout:
```
>> vlib/v/tests/typeof_type_test.v:4:        keyword `typeof`  token `(`  token `[`      keyword `fn`                      token `(`  name `s`  name `string`
>> vlib/v/tests/typeof_type_test.v:8:        keyword `typeof`  token `(`  token `[`      name `int`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:9:        keyword `typeof`  token `(`  token `[`      name `int`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:13:       keyword `typeof`  token `(`  token `[`      name `u32`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:14:       keyword `typeof`  token `(`  token `[`      name `u32`                        token `]`  token `)`  token `.`
>> vlib/v/tests/typeof_type_test.v:18:       keyword `typeof`  token `(`  token `[`      name `string`                     token `]`  token `)`  token `.`
```

Note: this tracing output is *deliberately on `stdout`*, instead of `stderr`,
so that you can filter it more easily, without saving it to a file first, i.e.
you can use it while developing/debugging parser issues like this:
`./v -o vnew cmd/v && ./vnew some_file.v | grep some_file.v`

-> this will show only the parsing context for the constructs you are debugging,
for that specific file *only*, instead of for all of `builtin` and the imported files etc.
2022-11-27 11:13:42 +02:00
yuyi
cf3dda2a58
datatypes: fix fsm.set_state() and cleanup fsm module (#16539) 2022-11-27 09:10:08 +02:00
Vincenzo Palazzo
8543d5e055
checker: improve mut arg error msg (#16540) 2022-11-27 07:07:35 +03:00
yuyi
ef5be22f81
all: replace generic <> with [] - part 2 (#16536) 2022-11-26 18:23:26 +02:00
yuyi
b19b97e7b1
generic: replace generic <> with [] part 1 - allow for both (#16532) 2022-11-26 08:59:42 +02:00
Swastik Baranwal
a9b41d2980
all: add support for const ident in match range (#16526) 2022-11-26 08:56:00 +02:00
yuyi
dee75fe970
checker: perfect infer_struct_generic_types() (#16524) 2022-11-24 19:30:02 +02:00
yuyi
f6cc88fa69
tests: add new test for #16519 (#16520) 2022-11-24 15:56:07 +02:00
yuyi
f0a23c8d3c
cgen: fix fn call of sumtype with alias fntype variant (#16519) 2022-11-24 12:05:57 +02:00
yuyi
8b5c75c481
cgen: fix sumtype with alias fntype variant (#16516) 2022-11-23 19:46:58 +03:00
shove
d632e84090
cgen: fix comptime optional methods call and optional field (fix #16499 #16465) (#16503) 2022-11-23 19:08:49 +03:00
Subhomoy Haldar
f7a11b8e50
toml: update value_opt syntax and add missing documentation (#16510) 2022-11-22 19:45:12 +02:00
yuyi
7c7ebd648d
checker: check assigning generic function to a variable (#16507) 2022-11-22 17:56:49 +02:00
yuyi
27cdf5ae0e
checker: minor cleanup in checker module (remove pub from most of checker's methods) (#16505) 2022-11-22 17:50:26 +02:00
Delyan Angelov
7d57559b70
datatypes: make the out of bounds errors for lists APIs more detailed 2022-11-22 13:42:29 +02:00
yuyi
cc7e6006f9
checker: fix generic fn with short generic struct init syntax (#16504) 2022-11-22 13:27:49 +02:00
lemon
00383edd3d
native: add more operator support for floats on amd64 (#16498) 2022-11-21 12:48:24 +02:00
Delyan Angelov
c744030665
tests: add a watchdog thread to live_test.v to prevent it from blocking the whole CI on slow sanitized jobs 2022-11-21 12:24:54 +02:00
Delyan Angelov
c286775d9f
strconv: add test_atof_converter to the tests, as suggested by the code review 2022-11-21 07:41:41 +02:00
Delyan Angelov
6cd1723deb
strconv: fix float_prec := 1.9999999999999999 + 0.0000000000000000005 being 0.5 (fix #16448) (#16495) 2022-11-21 03:57:51 +03:00
Delyan Angelov
0e727ec50a
checker: cleanup obsolete code for compatibility between byteptr and &byte (#16494) 2022-11-20 16:44:58 +02:00
Delyan Angelov
cb336c7dc7
net.http: remove ending \r from response.status_msg, add more tests 2022-11-20 16:22:43 +02:00
Hitalo Souza
45854882b9
builtin, cgen: support FieldData.unaliased_typ, use it for generalising x.json2 (able to encode type aliased struct fields) (#16469) 2022-11-20 11:18:14 +02:00
Swastik Baranwal
06764bc559
checker: disallow taking address of optional fields for now (#16487) 2022-11-19 22:03:39 +02:00
shove
5ef4e0c9be
cgen: fix "fn()?.field?" expr cgen error (fix #16482) (#16488) 2022-11-19 20:30:24 +02:00
Delyan Angelov
6b0743bb07
x.json2: add support for i8, i16, u8, u16, u32 (fix #16484) 2022-11-19 12:03:04 +02:00
shove
79b4cfb42a
all: correct the first letter of error message from uppercase to lowercase (#16481) 2022-11-19 10:43:25 +02:00
shove
092f984708
ast, cgen: fix match struct.field? {...} (#16478) 2022-11-19 10:42:36 +02:00
RGBCube
2d9808b2dc
term: add term.slow_blink/1 and term.rapid_blink/1 (#16470) 2022-11-18 19:03:14 +02:00
Přemek Vyhnal
92be90300c
doc: mention the $embed_file return type, and link to its documentation (#16467) 2022-11-18 12:54:17 +02:00
Hitalo Souza
74613bd636
x.json2: generic-based encoder (finish PR#15137) (#16464) 2022-11-18 11:09:24 +02:00
Swastik Baranwal
44e2149baa
cgen: add escaping for near, far and huge keyword ptrs (#16463) 2022-11-17 23:42:09 +02:00
shove
ae816b1719
parser: fix if-guard for struct optional fields (fix #16460) (#16461) 2022-11-17 15:30:16 +03:00
shove
74efd2621b
checker: fix struct field unsign type check (fix #16457) (#16458) 2022-11-17 09:20:42 +02:00
Swastik Baranwal
360457e021
checker: disable overriding and importing of builtin sym types (#16452) 2022-11-17 09:10:03 +02:00
yuyi
cb9e945aa0
cgen: clean and improve need_tmp_var_in_match() (#16451) 2022-11-17 09:08:45 +02:00
shove
37700502f5
all: implement struct field optional and disallow storing result (#16392) 2022-11-17 07:51:50 +02:00
Spydr
41dd8985fc
native: use enum values instead of strings for identifying builtin functions (#16450) 2022-11-17 07:44:08 +02:00
shove
49277f7aa8
cgen: fix dump(nil), dump(voidptr) (fix #16455) (#16456) 2022-11-17 07:41:07 +02:00
yuyi
523ccbcb70
cgen: fix if expr with sumtype value of map (#16445) 2022-11-16 14:59:34 +02:00
Larpon
b60132d2ac
checker: rename test assing -> assign (#16446) 2022-11-16 14:46:36 +02:00
Delyan Angelov
9bb1867be0
os: refactor err == IError(os.Eof{}) to err is os.Eof 2022-11-16 00:53:45 +02:00
Delyan Angelov
ddc1a1fc08
checker,cgen: support const y = term.yellow, then println(y('abc')) (#16436) 2022-11-15 19:51:57 +02:00
Swastik Baranwal
dc81d755e8
checker: disallow using unsafe { none } (#16431) 2022-11-15 18:55:07 +02:00
Basil
fe2db64384
tests: add unsafe block for the int->enum cast in bench_compare_tokens.v (#16438) 2022-11-15 18:34:44 +02:00
yuyi
017ace6ea7
vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +03:00
Ikko Ashimine
56239b4a23
toml: fix typo in parser.v (#16430) 2022-11-14 21:08:22 +03:00
Swastik Baranwal
58cee6ccc8
checker: disallow none type in struct fields (#16425) 2022-11-14 17:48:00 +03:00
yuyi
91ecfb917c
checker: fix generic fn casting &u8 to &alias to u32 (#16420) 2022-11-14 17:37:53 +03:00
Alexander Medvednikov
37583b04b4 gg: make create_image's receiver immutable 2022-11-14 17:25:42 +03:00
Dominik Pytlewski
f44af02e32
sqlite: affected rows count (#16426) 2022-11-14 17:23:42 +03:00
yuyi
1a4d1aece4
checker: minor cleanup and optimization in method_call() (#16421) 2022-11-13 22:33:36 +02:00
Hitalo Souza
38555a92e1
time: change days_from_civil to days_from_unix_epoch, add date_from_days_after_unix_epoch (#16363) 2022-11-13 14:30:14 +02:00
Hitalo Souza
7cfaacbe7a
doc: add more examples to vlib/time/README.md (#16362) 2022-11-13 13:48:07 +02:00
yuyi
5a28699edb
cgen: minor cleanup in auto_str_methods.v (#16411) 2022-11-13 11:59:32 +03:00
yuyi
f31a3b4250
checker: check sumtype argument mismatch in generic methods (fix #16340 part2) (#16403) 2022-11-13 11:58:53 +03:00
yuyi
e8e75251b4
vweb: change optional to result in vweb_test (#16412) 2022-11-13 11:57:35 +03:00
Taegon Kim
b54f9c2949
parser: fix attributes with optional or result types (#16401) 2022-11-12 18:35:01 +03:00
Junko
5bb058e35b
gg: revamp the Context pipeline for more effects, implement an additive effect (#16394) 2022-11-12 09:39:18 +02:00
Delyan Angelov
12f01318c2
v.live, cgen: enable using [live] in modules too (monitor used .v files for changes, not just the top level one) (#16396) 2022-11-11 22:06:42 +02:00
yuyi
c9ce5f89c7
builtin: fix f32.str() (#16391) 2022-11-11 13:56:45 +02:00
Delyan Angelov
c1a44efc78
tests: ensure that const loading is stressed in live_test.v, to prevent -live regressions for more complex examples like bounce.v 2022-11-11 10:45:54 +02:00
Delyan Angelov
e9fac05775
cgen: fix v -cc tcc -live run examples/hot_reload/graph.v too 2022-11-11 10:20:18 +02:00
Delyan Angelov
202f9574ec
cgen: fix v -live -cc gcc examples/hot_reload/graph.v 2022-11-11 10:20:17 +02:00
shove
3a85955d22
all: rollback to old interpolation (step 4) (#16383) 2022-11-11 11:06:01 +03:00
yuyi
993e21e85b
checker: check fntype mismatch of struct field init (fix #16372) (#16381) 2022-11-10 20:19:19 +02:00
yuyi
196b01aef7
all: minor cleanup of optional and result (#16382) 2022-11-10 20:14:20 +02:00
shove
26d643fc5d
all: rollback to old interpolation (step 3) (#16380) 2022-11-10 15:05:34 +03:00
Delyan Angelov
bbae7a705f
checker: fix incomplete implicit ast.CastExpr{} replacements 2022-11-10 13:59:22 +02:00
Delyan Angelov
7543b769ad
checker: allow for all.children := { "abc": rect, "def": rectangle()}, where children is map[string]Widget, without needing explicit casts for all the map values 2022-11-10 13:59:21 +02:00