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

1161 Commits

Author SHA1 Message Date
Uwe Krüger
3220ab7053
Boehm-GC: fix global const handling (#9477)
* define global `__v_inside_init`

* unset `__v_inside_init` after `_vinit()`

* define `C.GC_MALLOC_UNCOLLECTABLE()`

* allocate uncollectable memory during `_vinit()`

* ci: run test cases with V copiler that uses GC-Boehm itself

* wrap `__v_inside_init` access into `#ifdef _VGCBOEHM`
2021-03-26 16:44:45 +02:00
Alexander Medvednikov
bb5958991c checker: warn about automatic (de)referencing; freetype: compilation flag fixes 2021-03-26 11:42:51 +03:00
Uwe Krüger
257eadd2e1
gc: add -gc boehm_leak for leak detection (#9464) 2021-03-25 16:52:33 +01:00
Delyan Angelov
03d56865e3
builtin: do not call C.GC_FREE with -gc boehm 2021-03-25 09:15:01 +02:00
Delyan Angelov
b0878d3a92 builtin,v.pkgconfig: use brew's libgc on macos 2021-03-25 07:28:30 +02:00
zakuro
6bc9ef7373
builtin: vfmt every .v file, except vlib/builtin/int_test.v (#9448) 2021-03-24 20:39:59 +02:00
Uwe Krüger
522d70b48d
builtin,cgen: fix -gc boehm issues with maps; add a CI job for it to prevent regressions (#9453) 2021-03-24 19:49:16 +02:00
Delyan Angelov
f8f74d8587
builtin: add panic_optional_not_set and use it in cgen for fncall()? in main 2021-03-24 14:13:58 +02:00
Delyan Angelov
7afa4c7e2c
builtin: fix ["abc", "xyz"].str() 2021-03-23 22:11:32 +02:00
Delyan Angelov
b7c01db1f9
builtin: add .vstring_literal and .vstring_literal_with_len for converting read only strings like os.args 2021-03-23 22:10:28 +02:00
Delyan Angelov
026f8424c2
builtin: fix a leak in string.index_kmp 2021-03-23 21:48:08 +02:00
Delyan Angelov
7f91b75cbc
builtin: fix leaks in os.execute() and []string{} == []string{} 2021-03-23 20:36:19 +02:00
Delyan Angelov
d098a3caca
builtin: make string.add() public temporarily till -autofree improves 2021-03-23 20:20:53 +02:00
Delyan Angelov
419ee8ae2a
builtin: fix a bug in []string.join() 2021-03-23 20:14:46 +02:00
Alexander Medvednikov
0c055a1ce9 all: s.contains(s2) instead of in 2021-03-23 11:38:56 +03:00
Delyan Angelov
c76c69ec35
all: simplify return if ... constructs to make more code compatible with -autofree 2021-03-22 16:45:29 +02:00
yuyi
320cd00203
string: fix replace_each() (#9415) 2021-03-22 09:46:45 +01:00
Alexander Medvednikov
4d77f3810f gc: enable on macos and add leak detection fns 2021-03-21 05:31:10 +03:00
spaceface
5873149c77
builtin: allow libgc to be used on windows as well (#9393) 2021-03-21 01:01:21 +01:00
Delyan Angelov
8810af76df
all: support -gc boehm on systems with libgc-dev installed (#9382) 2021-03-20 14:16:36 +01:00
spaceface
3f9e921c95
builtin: add a proper str() method to IError (#9379) 2021-03-20 01:55:16 +02:00
Delyan Angelov
ea3d1405ee
ci: fix failing -Werror job with tcc 2021-03-19 09:34:41 +02:00
Delyan Angelov
8fa7e67000
builtin: use return s.clone() instead of return s consistently, to make manual free easier 2021-03-18 22:23:36 +02:00
Delyan Angelov
00651c8deb
builtin: free all elements in a []string with -autofree too 2021-03-18 21:10:42 +02:00
Delyan Angelov
d4e16b6ddd
builtin: reduce memory allocations for s.trim, s.trim_left and s.trim_right 2021-03-18 19:52:33 +02:00
Delyan Angelov
09802707b1
tests: move rlock and shared array tests from builtin to sync 2021-03-18 19:51:11 +02:00
spaceface
624c1f3bcf
cgen: make bools take up a single byte, not 4 (#9352) 2021-03-18 15:23:29 +01:00
Delyan Angelov
99cc02685b
cgen: implement IError.free() and use it for the builtin none const 2021-03-17 12:38:24 +02:00
crthpl
fafb035fb5
all: reimplement inline assembly (#8645) 2021-03-17 01:43:17 +01:00
yuyi
dd9f9c2718
checker: check array.sort(a < b) (#9321) 2021-03-17 01:42:51 +01:00
ka-weihe
2991cad4e8
map: fix delete in for-in (#9336) 2021-03-17 01:42:33 +01:00
shadowninja55
b4f7a975e8
builtin.string: optimize string.count where substr.len == 1 (#9337) 2021-03-17 00:19:48 +02:00
Delyan Angelov
1753445a64
builtin: make panics more IDE friendly 2021-03-16 20:50:11 +02:00
shadowninja55
d92f9e77b0
builtin.string: optimize string.split_nth() for len == 1 delim (#9325) 2021-03-16 20:30:27 +02:00
JalonSolov
6f550ebbdc
string: fix fields method when no whitespace (#9326) 2021-03-16 19:45:27 +02:00
Alexander Medvednikov
93df560cf9 builtin: deprecate string.split_by_whitespace in favor of fields() 2021-03-16 08:29:14 +03:00
Alexander Medvednikov
667a26335f builtin: fix substr() 2021-03-15 21:16:23 +01:00
Alexander Medvednikov
77d5fcca59 urllib: a temporary autofree fix 2021-03-15 21:12:11 +01:00
Delyan Angelov
7f0c8d1eec
builtin: fix a compilation warning with -d debug_malloc 2021-03-15 17:37:06 +02:00
Nick Treleaven
446631ceb5
checker: fixed array cannot implicitly convert to fooptr (again) (#9302) 2021-03-15 15:55:07 +02:00
Delyan Angelov
2f4a49994a
builtin: implement support for -d debug_malloc too 2021-03-14 18:29:00 +02:00
Delyan Angelov
d65ad68e77
builtin: add 0 terminators for strings returned by .to_lower, .to_upper, utf32_to_str_no_malloc/2 2021-03-14 18:21:45 +02:00
Delyan Angelov
b6d089b605
v.depgraph: ensure v -d debug_realloc -o v cmd/v works 2021-03-14 16:15:33 +02:00
Delyan Angelov
125be84e3d
builtin: fix -d debug_realloc, add realloc_data/3 2021-03-14 14:54:35 +02:00
Delyan Angelov
ddbe57e00a
v test-cleancode: ensure more .v files are kept vmft-ed 2021-03-14 12:17:31 +02:00
spaceface
eebc8a9d7a
builtin: cleanup option names (part 2) (#9294) 2021-03-14 12:11:52 +02:00
Delyan Angelov
69f1e7c9c3
v: fixes for v -autofree -o v2 cmd/v 2021-03-14 09:37:38 +02:00
Leah Lundqvist
64d0006ff9
jsgen: fix string and array for loops and improve casting (#9295) 2021-03-14 08:20:01 +02:00
spaceface
9ed9e7aff0
builtin: cleanup option names (part 1) (#9293) 2021-03-14 01:54:46 +01:00
spaceface
e9797c618a
all: implement error interfaces (#9291) 2021-03-13 18:13:50 +01:00
Delyan Angelov
0c33656a19
ci: fix failing option_print_errors_test.v 2021-03-12 20:36:19 +02:00
spaceface
be409b52e9
builtin: prepare for error interfaces (#9043) 2021-03-12 20:05:05 +02:00
Delyan Angelov
d7049ae2da
os: deprecate os.exec (returning ?os.Result), in favour of os.execute, which returns os.Result (#8974) 2021-03-08 20:52:13 +02:00
Miccah
a1e0f2bc46
gen: add argument names to compile-time method struct (#9174) 2021-03-07 14:28:43 +01:00
Larpon
07a1a9b84d
builtin: use fprintf to print to stderr on Android (#9130) 2021-03-05 19:12:42 +02:00
joe-conigliaro
2d73411396
checker: define missing C fn args & check C & JS args (#8770) 2021-03-05 17:41:11 +03:00
Lukas Neubert
80356edd8c
fmt: combine simple attributes into a single line (#9120) 2021-03-05 07:17:57 +02:00
Leah Lundqvist
65e888230a
jsgen: object equality checks, optimise casting and start builtin implementation (#9068) 2021-03-04 14:02:16 +01:00
yuyi
2b9ffbda42
cgen: fix array_sort by different order of a/b (#9106) 2021-03-04 11:19:02 +01:00
Delyan Angelov
488848e904
builtin: simplify copy/2 2021-03-02 18:14:42 +02:00
spaceface
b712af56fd
all: bring back panic(err.msg) -> panic(err) (#9022) 2021-03-01 00:18:14 +01:00
zakuro
ce115dcbe0
builtin: correct error underline for unicode wide chars (#9010) 2021-03-01 00:18:02 +01:00
spaceface
d63b7bc35a
all: update repo to use the new error handling syntax (#8950) 2021-02-28 23:20:21 +03:00
spaceface
b9a381f101
all: migrate to the new Option (p. 1) (#8924) 2021-02-28 22:24:29 +03:00
Delyan Angelov
20f9bdfa8e
os: fixes for os.input(), os.get_raw_stdin(), os.get_raw_line() in case of stdin EOF 2021-02-27 20:02:36 +02:00
Nick Treleaven
23f231ee61
builtin: tag array methods unsafe: *_many, grow_len, pointers (#8983) 2021-02-26 22:55:09 +01:00
spaceface
8033203ef6
builtin: add an Option2 struct (#8890) 2021-02-22 18:44:15 +02:00
Nick Treleaven
15daeaeafa
cgen: add fixed array bounds checking for non-literal index (#8832) 2021-02-22 14:54:24 +02:00
zakuro
f54c1a5cc2
all: add strings.Builder.write_string and use write_string instead of write (#8892) 2021-02-22 13:18:11 +02:00
yuyi
9a744b6750
cgen: fix in map_literal (fix #8868) (#8871) 2021-02-21 11:54:30 +02:00
Stanislav Ershov
c190b6a131
vlib: remove older deprecated functions (#8864) 2021-02-20 20:42:55 +02:00
Stanislav Ershov
6a752512b2
os: fix os.real_path on Windows (#8822) 2021-02-19 11:20:06 +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
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
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
Quix
486bf8517f
builtin: fix typo (#8747) 2021-02-15 17:54:07 +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
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
e4f15605c0
checker: reject void type condition (#8737) 2021-02-14 07:33:24 +01:00
Nick Treleaven
84a16d8684
map: add move method (#8660) 2021-02-12 02:02:33 +02:00
Bobitsmagic
0f92485698
builtin: fix typo in builtin/array.v (#8658) 2021-02-09 17:04:47 +02:00
Nick Treleaven
9e751f72c4
doc, fmt: use map{key: value} syntax for map literals (#8623) 2021-02-08 16:57:42 +02:00
Lukas Neubert
473cd1d416
fmt: single line ternary return (#8605) 2021-02-08 00:28:46 +01:00
Larpon
bfd0bd1fb4
builtin: doc chan.v channel stub (#8577) 2021-02-07 12:42:24 +02:00
Alexander Medvednikov
a81ee0e94e tools/fast: measure v.c size and parse/check/cgen steps 2021-02-07 04:48:54 +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
Larpon
e83c39c81a
builtin: document rest of map.v (#8578) 2021-02-06 03:07:42 +01:00
Larpon
57258c2988
builtin: document remaining pub structs in builtin.v (#8576) 2021-02-05 21:02:29 +01:00
Larpon
44ab0154b2
builtin: document last of array.v (#8575) 2021-02-05 16:51:45 +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
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
yuyi
77b3d40f46
checker: fix map = {} (#8435) 2021-01-30 11:55:10 +01: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
Lukas Neubert
75d85403a6
fmt: better ternary concat wrapping (#8379) 2021-01-28 11:23:48 +01:00
zakuro
22847d1ec3
fmt: assert (a == b) -> assert a == b (#8351) 2021-01-26 10:36:21 +01:00
Major Taylor
69c37402d4
backtrace: fix tcc backtrace windows compilation error (#8348) 2021-01-26 08:26:54 +02: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
Swastik Baranwal
21ba0470af
builtin: fix truncating of EOL on windows terminal (#8338) 2021-01-25 17:51:36 +02:00
Alexander Medvednikov
29d6e40f29 all: vfmt (new const rule) 2021-01-24 10:54:27 +01:00
Lukas Neubert
8b61891348
fmt: smarter if condition wrapping (#8201) 2021-01-23 10:33:22 +02: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
zakuro
820e684313
builtin: make string.(left|right) pub (#8245) 2021-01-22 09:35:32 +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
Delyan Angelov
d9532eda30
checker: error on a.slice(x,y) outside builtin 2021-01-19 15:55:52 +02: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
Lukas Neubert
ac2c3847af
all: update copyright to 2019-2021 (#8029) 2021-01-18 13:20:06 +01:00
Delyan Angelov
995f27a7c0
builtin,os: use more precise C. declarations for C.fread, C.fwrite and C.qsort 2021-01-15 12:15:31 +02:00
yuyi
aeddd5b559
string: minor optimization (fix #8100) (#8106) 2021-01-15 02:26:06 +01:00
Delyan Angelov
9003ea7ca3
builtin: fix a warning for -d debug_realloc 2021-01-14 12:28:49 +02:00
Delyan Angelov
ca5f88eb7d
builtin: implement -d debug_realloc 2021-01-14 11:41:52 +02:00
yuyi
a2efb5319d
all: change [1,2,3]!! to [1,2,3]! (#8101) 2021-01-14 03:51:13 +01:00
yuyi
1d28c4de2a
cgen: fix multi fixed arrays with default init (fix #8038) (#8064) 2021-01-13 22:57:33 +02:00
yuyi
ae592299dc
cgen: fix fixed arrays literal eq (#8079) 2021-01-13 08:32:41 +01:00
zakuro
254df0ca62
fmt: improve string quotes (#8075) 2021-01-13 06:05:27 +01:00
zakuro
33694665f0
fmt: align each contiguous field of struct. not the whole. (#7981) 2021-01-12 04:38:43 +01:00
yuyi
1559e72d0d
cgen: add gen_fixed_array_equality_fn (#8006) 2021-01-12 01:35:18 +01:00
Uwe Krüger
5f95dd54bd
builtin: rename any_* -> *_literal - 2. part (#8032) 2021-01-11 22:58:15 +01:00
yuyi
39bb6f0491
array: fix array of multi filter/map in one assignment (fix #7858) (#7976) 2021-01-10 21:08:45 +01:00
yuyi
704f38d87f
parser: fix multi fixed arrays init (#7996) 2021-01-10 06:58:31 +01:00
Uwe Krüger
cbe7740d97
fmt: do not generate import statements for auto imports (#7966) 2021-01-08 17:42:40 +01:00
Nick Treleaven
cbefe6c32f
parser: warn about old use of typeof (#7923) 2021-01-07 20:32:02 +01:00
Larpon
dcc8310bd0
builtin: fix comment examples in int.v (#7902) 2021-01-06 20:02:04 +02:00
Larpon
e219f954d8
builtin: document all functions in float.v (#7904) 2021-01-05 23:01:10 +01:00
Alexander Medvednikov
5c4c4354b1 byte: more tests 2021-01-05 19:34:42 +01:00
Alexander Medvednikov
3722e16073 builtin: fix byte.str() (part 2) 2021-01-05 19:26:50 +01:00
Alexander Medvednikov
5a70eba8e1 all: byte.str() => byte.ascii_str() 2021-01-05 19:14:37 +01:00
Larpon
fdb6f1ab50
builtin: int.v workaround vfmt bug (#7899) 2021-01-05 20:09:20 +02:00
Nick Treleaven
8fc33bc27d
checker: warn when casting number or a voidptr to reference type outside unsafe (#7900) 2021-01-05 20:07:45 +02:00
Alexander Medvednikov
3e04dfc79f builtin: fix byte.str() (part 1) 2021-01-05 18:59:51 +01:00
Delyan Angelov
95431cf6b0
builtin: fix the comment example in byte.str_escaped() 2021-01-05 18:22:17 +02:00
Larpon
9b9cab92f0
builtin: document all functions in int.v (#7896) 2021-01-05 17:45:36 +02:00
Delyan Angelov
f2bfda4989
ci: skip test_utf8_wide_char on windows with msvc 2021-01-04 00:16:31 +02:00
Delyan Angelov
760de7c811
ci: use more reliable asserts for test_utf8_wide_char 2021-01-03 22:15:18 +02:00
Nick Treleaven
38e0aa350d
checker: support non-string map.keys method (#7760) 2021-01-03 15:55:06 +01:00
Swastik Baranwal
dee3bbffe9
cgen: support .str() for maps with non string keys (#7806) 2021-01-02 20:25:46 +02:00
yuyi
7f776bfd29
utf8: fix utf8_test (#7804) 2021-01-02 14:55:21 +02:00
Nick Treleaven
0a069dee79
gen: support non-string map equality and speed it up (#7682) 2021-01-01 20:54:49 +01:00
Nick Treleaven
9243e06dba
parser: allow integer and rune keys for map literal (#7756) 2021-01-01 17:23:32 +01:00
clubby789
bf7da14ba1
cgen: make char literals wide (#7769) 2021-01-01 11:06:09 +02:00
yuyi
7ce3c5e206
os: change os.mv/2 return type to ? (#7738) 2020-12-31 11:33:39 +02:00