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

10575 Commits

Author SHA1 Message Date
Swastik Baranwal
d6b594c4e8
checker: check if struct field type isn't type (#15359) 2022-08-06 19:11:51 +03:00
yuyi
8d9af2e4a1
cgen: fix nested generic fn call with reference argument (#15353) 2022-08-06 19:07:33 +03:00
Delyan Angelov
4588bb44ab
markused: skip panic_result_not_set (generated for fn main(){ foo()! }) too 2022-08-06 10:29:44 +03:00
cstffx
095f4bcf86
orm: add missing 'nonull' attribute description (#15348) 2022-08-05 10:27:19 +03:00
yuyi
ab244d2236
checker: cleanup in if_expr() (#15347) 2022-08-05 03:02:22 +03:00
yuyi
9e50803071
ast, parser: fix reference typenode (#15346) 2022-08-05 03:01:49 +03:00
yuyi
e034b35144
cgen: fix generic interface call with reference argument (#15345) 2022-08-05 03:01:11 +03:00
yuyi
d7a3b866ee
checker: check generic interface missing type parameter (#15344) 2022-08-04 11:02:34 +03:00
yuyi
372857c19c
checker: minor cleanup in struct_decl() (#15325) 2022-08-03 13:28:53 +03:00
yuyi
2ad25f6d06
checker: fix nested generic fn call (fix #15328) (#15333) 2022-08-03 13:24:39 +03:00
Delyan Angelov
77495c8d03
all: support assert condition, extra_message, evaluating and showing extra_message on assert failure (#15322) 2022-08-03 01:14:01 +03:00
Subhomoy Haldar
fcde63127f
rand: fix incorrect generic function call (#15327) 2022-08-02 20:11:49 +03:00
Sandro Martini
51ef8b62ba
log: cleanup tests (#15320) 2022-08-02 18:01:49 +03:00
Delyan Angelov
45c601b79c
cgen: fix sorting of shared array fields (fix #15244) 2022-08-02 16:17:11 +03:00
Delyan Angelov
857e047d01
json: tag functions that cgen may call internally for json.encode/json.decode, as [markused] 2022-08-02 11:45:41 +03:00
Nacho Verdón
42efc383d2
encoding.binary: fix function names in comments (#15317) 2022-08-02 00:30:06 +03:00
yuyi
ce59fffb53
scanner: make scan_all_tokens_in_buffer() private (#15312) 2022-08-01 23:15:56 +03:00
yuyi
7546d1450c
scanner: minor optimization (#15313) 2022-08-01 23:09:27 +03:00
Spydr
dab8159b56
native: implement elf section types (#15316) 2022-08-01 23:04:59 +03:00
Delyan Angelov
a35356758c
log: make set_level(level Level) part of the log.Logger interface too (fix for discordv) 2022-08-01 15:09:32 +03:00
StunxFS
b08690d151
gen.c: simplify unwrap_generic method (#15288)
* gen.c: use `nil` instead of `0`
* replace `muttable` => `mut_table`
2022-08-01 11:40:37 +03:00
Spydr
b4fd9b5f92
native: add sections for string- and symbol-tables, reimplement elf program headers (#15305) 2022-08-01 10:15:06 +03:00
Nacho Verdón
9561fb406e
encoding.binary: add functions to read/write with an offset and at the end of the array, split files by endianness (#15301) 2022-08-01 08:20:14 +03:00
Delyan Angelov
b8438ded32
markused: support vweb App.before_request() with -skip-unused 2022-07-30 18:56:05 +03:00
yuyi
014f44eab3
checker: improve error message of method_call_arg_no_mut_err.vv (#15281) 2022-07-30 18:11:10 +03:00
Davide Beatrici
c9a5896468
bultin: always enable GC_THREADS, even with -d dynamic_boehm, otherwise multithread operation is unsafe (#15275)
According to upstream documentation, only GC_WIN32_THREADS is explicit.

This PR fixes a random memory corruption(s) with "-d dynamic_boehm" on OpenMandriva.
1679adc04d.log
```
DEBUG: + VFLAGS='-prod -d dynamic_boehm'
DEBUG: + /usr/bin/clang -Os -fomit-frame-pointer -g3 -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fstack-protector-all --param=ssp-buffer-size=4 -m64 -mtune=generic -flto -std=gnu99 -w -o tmp_1 v.c -lm -lpthread -Os -fomit-frame-pointer -g3 -gdwarf-4 -Wstrict-aliasing=2 -pipe -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fstack-protector-all --param=ssp-buffer-size=4 -m64 -mtune=generic -flto -Wl,-O2 -Wl,--no-undefined -flto
DEBUG: + ./tmp_1 -no-parallel -o tmp_2 -prod -d dynamic_boehm cmd/v
DEBUG: + ./tmp_2 -o v -prod -d dynamic_boehm cmd/v
DEBUG: /var/tmp/rpm-tmp.mcjmqc: line 52:   644 Bus error               (core dumped) ./v build-tools
```
2022-07-30 14:59:12 +03:00
yuyi
db79888daf
picoev: restore struct Picoev definition (#15278) 2022-07-30 14:30:13 +03:00
yuyi
6e8350a9c9
fmt: fix interface method with fntype argument (#15280) 2022-07-30 14:29:41 +03:00
yuyi
e6a04905e9
fmt: fix comptime method call (#15279) 2022-07-30 14:28:34 +03:00
yuyi
b6ce7cc198
checker: check invalid variable (fix #15240) (#15260) 2022-07-30 14:27:28 +03:00
Delyan Angelov
0133ff2cbf
checker: use reserved_type_names_chk.matches(word) instead of word in reserved_type_names 2022-07-29 23:23:34 +03:00
Delyan Angelov
f0a8d57735
checker: use array_builtin_methods_chk.matches(method_name) instead of method_name in array_builtin_methods 2022-07-29 23:23:34 +03:00
Delyan Angelov
336305daa5
scanner,parser,gen: use km.matches(word) instead of km.find(word) != -1 2022-07-29 23:23:33 +03:00
Delyan Angelov
2db8bd62a2
token: fix a new_keywords_matcher_from_array_trie bug (first word with idx 0 was ignored); add tests 2022-07-29 23:23:33 +03:00
Delyan Angelov
a42eb3b947
cgen: use a trie matcher for c_reserved checks as well 2022-07-29 23:23:32 +03:00
zakuro
8268df7e1d
parser: create and use Parser.unexpected to unify all unexpected token error messages (#15259) 2022-07-29 19:28:34 +03:00
yuyi
1be595605a
parser: fix optional fn argument (#15271) 2022-07-29 19:10:50 +03:00
yuyi
0bf23488dc
checker: check struct field's fn call (fix #15249) (#15257) 2022-07-29 19:00:51 +03:00
lemon
927ec1fadb
native: support ||, && and simple boolean expression evaluation (#15256) 2022-07-29 07:17:01 +03:00
Delyan Angelov
04b28d11be
cgen: use switch for matches with integer literals, instead of an if else if ladder (#15254) 2022-07-29 00:36:29 +03:00
yuyi
17ce1a0e8d
parser: check undefined ident in if guard expr (#15253) 2022-07-28 19:13:41 +03:00
Delyan Angelov
242ade8938
os: fix File.eof on FreeBSD (feof is a C macro there) 2022-07-28 17:26:55 +03:00
Reuben Thomas
ed56c3957e
os: add File.reopen and File.eof methods (#15184) 2022-07-28 16:21:23 +03:00
Dialga
18ae726015
v.pkgconfig: add the default path for Debian 32bit (#15250) 2022-07-28 14:06:56 +03:00
Delyan Angelov
a16f9ac41f
mysql: include workaround for windows programs that just exit, when the libmysql.dll is not found, into vlib/mysql/README.md 2022-07-27 22:26:36 +03:00
l-m
10f3c9f127
builtin: add string.replace_char and string.normalize_tabs (#15239) 2022-07-27 22:04:39 +03:00
yuyi
60094d95e2
cgen: check comptime call method (no value) used as value (#15241) 2022-07-27 21:32:00 +03:00
yuyi
6a7eb82d9e
cgen: fix comptime for method call with arguments (#15236) 2022-07-27 03:22:05 +03:00
stringnick
afaab7ab4d
stdatomic: add/sub return result of op (#15235) 2022-07-27 03:21:03 +03:00
Hitalo de Jesus do Rosário Souza
e5e750d533
orm: default attribute (#15221) 2022-07-27 00:59:32 +03:00
yuyi
c976a691ad
scanner: correct error message of empty character literal (fix #15226) (#15228) 2022-07-26 15:07:08 +03:00
Bastian Buck
4ab72ccb69
os: add a security advisory for potential TOCTOU risks when using os.is_writable, os.is_executable etc (#15222) 2022-07-26 12:02:48 +03:00
yuyi
03b7c76b38
cgen: optimize auto_str_methods of [str:skip] fields (#15227) 2022-07-26 09:38:50 +03:00
yuyi
0b0c496eff
cgen: fix printing struct with skip fields (#15224) 2022-07-26 04:37:16 +03:00
Alexander Medvednikov
f1ebfb2d42 cgen: str:skip field 2022-07-25 17:25:47 +03:00
Alexander Medvednikov
5a3a145e99 gg: fix native draw_circle on macos 2022-07-25 17:25:47 +03:00
yuyi
f619becbdc
scanner: check undefined ident in string literal (#15212) 2022-07-25 14:28:47 +03:00
Hitalo de Jesus do Rosário Souza
82db1e4746
pg: improve pg README.md (#15206) 2022-07-25 08:32:21 +03:00
Andrew Compton
f9385f6300
os: make get_raw_line() should not break lines on \r on windows (fix #5900) (#15205) 2022-07-25 08:03:07 +03:00
Delyan Angelov
6a5db0df61
v.token: use a more performant KeywordMatcher in the scanner and parser (#15196) 2022-07-25 06:32:06 +03:00
Subhomoy Haldar
297cb5f89c
math.big: improve multiplication performance (#15200) 2022-07-24 19:35:37 +03:00
Hitalo de Jesus do Rosário Souza
1f3be99859
crypto: add an example of how to verify jwt tokens (#15198) 2022-07-24 10:27:21 +03:00
yuyi
5464de406c
cgen: fix custom str on struct with too many fields (#15195) 2022-07-24 10:15:22 +03:00
Delyan Angelov
de0683fe30
tests: fix compilation of tcp_test.v 2022-07-23 23:33:43 +03:00
Delyan Angelov
c63fed5393
tests: remove needless import math in translated_test.v 2022-07-23 23:24:17 +03:00
Alexander Medvednikov
d6de53362f checker: improve unused label check 2022-07-23 01:36:27 +03:00
Alexander Medvednikov
4d3401c852 checker: check for unused labels 2022-07-23 01:25:20 +03:00
Reuben Thomas
2ffad85f06
doc: remove misleading comment about stdin() (#15154) 2022-07-23 00:22:50 +03:00
yuyi
b0c32e0dbf
checker: fix fn variadic with enum value (#15177) 2022-07-22 16:08:22 +03:00
yuyi
092f5f0bf8
checker: fix comptime if in const declaration (fix #15160) (#15169) 2022-07-22 16:03:45 +03:00
zakuro
9ec8a99243
parser: cleanup orblock duplicate code (#15173) 2022-07-22 12:36:50 +03:00
Delyan Angelov
e9809572b1
ast: use const empty_expr instead of fn empty_expr (thanks to Joe Conigliaro for the idea) (#15175) 2022-07-22 12:14:46 +03:00
Delyan Angelov
c6aea659e3 cgen,ci: fix v -usecache self on macos 2022-07-22 11:43:20 +03:00
Delyan Angelov
f75d7eb114
ci: fix v build-examples (use voidptr(u64(0)) inside vlib/js/dom/dom.js.v) 2022-07-21 23:08:18 +03:00
Delyan Angelov
5340f8afea
ci: fix vlib/v/checker/tests/nil.vv and its .out file 2022-07-21 23:05:02 +03:00
Delyan Angelov
474033c055
ci: allow unsafe { a := nil }, add separate nil case in pointer_ops.vv, to test the nil checker errors independently from the voidptr ones 2022-07-21 22:52:38 +03:00
Delyan Angelov
697d546d46
ci: fix fixed_array_conv.out output (the .vv file was formatted) 2022-07-21 22:45:54 +03:00
Delyan Angelov
cf42ba2b80
ci: revert nil to voidptr(u64(0)) in voidptr_dereference_err.vv too. nil should have its own .vv/.out pair. 2022-07-21 22:43:14 +03:00
Delyan Angelov
cdefb878d6
ci: make pass_voidptr_as_interface_reference_test.v use voidptr again 2022-07-21 22:41:27 +03:00
Delyan Angelov
2e89eeb477
ci: make voidptr_casted_as_an_interface_test.v use voidptr again (it does test exactly that edge case, it should not have been converted to use nil) 2022-07-21 22:40:21 +03:00
Delyan Angelov
71cd256f0c
ci,cgen: fix -usecache compilation of V itself 2022-07-21 22:29:44 +03:00
Delyan Angelov
81104ac309
ci: fix v test-cleancode failures 2022-07-21 22:05:17 +03:00
Delyan Angelov
231623b75b
ci: vfmt tcp_test.v 2022-07-21 22:04:51 +03:00
Delyan Angelov
dc1b54c669
ci: fix failing ./v vlib/builtin/builtin_test.v (globals initialisation) 2022-07-21 21:49:00 +03:00
Delyan Angelov
ed43bfc469
ci: fix dlmalloc again (workaround vfmt) 2022-07-21 21:21:20 +03:00
Delyan Angelov
e29f6d1393
markused: fix ./v -skip-unused -cc gcc -keepc -freestanding -o bel vlib/os/bare/bare_example_linux.v 2022-07-21 21:18:33 +03:00
Delyan Angelov
d9fe2edc41
ci: fix failing build-module-docs (because of unsafe { unsafe { nil } }) 2022-07-21 21:11:43 +03:00
Alexander Medvednikov
9099594a49 all: wrap up unsafe { nil } (p. 3) 2022-07-21 21:01:30 +03:00
Alexander Medvednikov
a68d03ac59 checker: allow x := unsafe { nil } 2022-07-21 20:56:24 +03:00
Alexander Medvednikov
dc79f1392b all: voidptr(0) => unsafe { nil } (p.2) 2022-07-21 20:51:54 +03:00
Alexander Medvednikov
caa0c2f153 vfmt: voidptr(0) => unsafe { nil } (p.1) 2022-07-21 20:46:01 +03:00
yuyi
be9f8cc777
cgen: fix comptime if in struct field default (fix #15058) (#15152) 2022-07-21 16:59:18 +03:00
yuyi
7029e39088
checker: check struct field with default expression (#15151) 2022-07-21 10:33:34 +03:00
Joe Conigliaro
49228e1acd
cgen: fix dep cycle for struct Node { children [4]&Node } closes #15136 2022-07-21 16:16:24 +10:00
Delyan Angelov
8593408179
json.cjson: add a submodule that allows lower level access to the cJSON library (constructing JSON trees in memory with null leafs). 2022-07-20 23:34:17 +03:00
Hitalo de Jesus do Rosário Souza
c8d4534f5b
sqlite: remove spurious eprintln on select calls (#15139) 2022-07-20 17:35:38 +03:00
yuyi
f27c0387ad
cgen: minor cleanup in global_decl() (#15133) 2022-07-20 13:51:33 +03:00
Delyan Angelov
ee4a179e71
tests: add a test for Node{123, unsafe { nil }, unsafe { nil }} 2022-07-20 11:29:01 +03:00
Delyan Angelov
50075d5a79
ast,cgen: support a := Abc{unsafe{nil}}, for struct Abc { next &Abc } 2022-07-20 10:47:04 +03:00
Hitalo de Jesus do Rosário Souza
a13b8ff0c8
mysql: fix for adapting mysql types to v structs (#15100) 2022-07-19 18:29:09 +03:00