Commit Graph

1469 Commits (c160ba2a8dec033b4223758b0d30a7021f09fb59)

Author SHA1 Message Date
yuyi 29cda252f1
builtin: fix multiple array init (#10929) 2021-07-23 23:25:12 +03:00
playX 69cbdf9fdc
v.gen.js, os_js: port the OS module to JS (#10872) 2021-07-23 18:04:36 +03:00
Louis Schmieder 26db3b0995
orm: redesign orm (re-write it in V) (#10353) 2021-07-23 12:33:55 +03:00
Daniel Däschle 091ce6cc08
cgen: fix several sort declarations (#10919) 2021-07-23 08:55:55 +03:00
Delyan Angelov 06de9c799c
Revert "gen: add type name to comp for (#10881)"
Reason: 713a079 is more general and provides the same information.

This reverts commit dd3ee20566.
2021-07-21 23:56:00 +03:00
Louis Schmieder dd3ee20566
gen: add type name to comp for (#10881) 2021-07-21 23:45:08 +03:00
Uwe Krüger 41982053f1
builtin: make `array.delete()` reallocate, provide `.delete_many()` (#10889) 2021-07-21 20:55:32 +03:00
Daniel Däschle aebb028349
gen: fix C keyword escape to _v_ instead of just v_ (#10876) 2021-07-21 11:46:04 +03:00
Delyan Angelov 5098334e65
os: add execute_or_exit(cmd), use it consistently instead of execute_or_panic(cmd) 2021-07-20 15:22:04 +03:00
Daniel Däschle ad3835b598
parser: deprecate short struct init (#10842) 2021-07-20 11:17:08 +03:00
Delyan Angelov 48546d0f45
all: do compile time const evaluation for `const x = "abc" + "xyz"` and `const x = 16 * 1024 + 5` (fix const prealloc_block_size) 2021-07-18 22:59:18 +03:00
Delyan Angelov 3ccde5ce55
builtin: use `prealloc_block_size = 16777216` temporarily 2021-07-18 17:03:25 +03:00
playX d5e0fa6d1b
v.gen.js: port string methods and fix booleans (#10824) 2021-07-18 09:00:20 +03:00
Delyan Angelov ee9e91b8e7
builtin: fix `-d no_backtrace` error with tcc 2021-07-17 18:09:16 +03:00
Delyan Angelov b0167297e5
builtin: support `-d no_backtrace` on macos/bsd too 2021-07-17 17:49:28 +03:00
playX 06edbc8a38
v.gen.js: implement most of array and map methods in builtin/js (#10806) 2021-07-15 17:36:53 +03:00
shadowninja55 806d6172cb
checker: prohibit casting `void` (#10690) 2021-07-07 21:59:58 +03:00
Uwe Krüger a1f123bd42
cgen: enable string index error handling `s[i] or {...}` (#10670) 2021-07-05 21:00:30 +03:00
Delyan Angelov 972542d6ee
checker: `[noreturn]` part 2 (cleanup) (#10667) 2021-07-05 05:05:37 +03:00
Delyan Angelov 6aecda3be8
all: support `[noreturn] fn abc() { for{} }`, mark panic/1 and exit/1with it too. (#10654) 2021-07-04 20:24:19 +03:00
Alexander Medvednikov 6a64259527 string: bring back the is_lit comment 2021-07-03 20:16:49 +03:00
Daniel Däschle 0f9537ece5
all: remove ustring (#10630) 2021-07-03 20:14:09 +03:00
Flinner 1486258591
strconv: fix `atoi` returning 0 on large strings (#10635) 2021-07-02 10:39:57 +03:00
Alexander Medvednikov 41e88423aa Revert "builtin: use == 0 instead of isnil()"
This reverts commit 8650ec6916.
2021-07-01 06:21:03 +03:00
Daniel Däschle 3881e97a40
vlib: remove ustring usage (#10618) 2021-06-30 22:30:28 +03:00
Daniel Däschle 6838030ab5
builtin: add string.runes() (#10611) 2021-06-30 09:17:38 +03:00
Delyan Angelov ab5a4cf4e5
builtin: cleanup .before() documentation 2021-06-29 14:50:55 +03:00
Delyan Angelov 1b5d0ba8fd
builtin: document existing behaviour of .before() methods on strings 2021-06-29 14:40:37 +03:00
Delyan Angelov 63638fd271
cgen: optimize generated array.index(elem) 2021-06-28 17:45:13 +03:00
Delyan Angelov 8650ec6916
builtin: use == 0 instead of isnil()
Do not rely on C inlining that may not happen for a *very* frequently
called fn in lower level code.
2021-06-28 10:59:14 +03:00
Thomas Treffner 9651a9796b
builtin: fix termux prints (#10595) 2021-06-28 08:27:12 +03:00
Delyan Angelov b2391424d9
examples: add examples/gg/random.v demonstrating how to stream images/pixels 2021-06-24 17:45:14 +03:00
Delyan Angelov f580597ffc
ci: fix -cstrict compilation on tests-sanitize-undefined-clang 2021-06-23 20:17:58 +03:00
Delyan Angelov 66bf963a48
builtin: remove C.printf call from string.free() 2021-06-23 16:31:46 +03:00
Delyan Angelov 9151f085f5
ci: fix failing Freestanding task 2021-06-23 13:18:17 +03:00
Delyan Angelov dd254a6652
builtin: streamline print/eprint/println/eprintln, do not println in 2 steps when possible 2021-06-23 12:22:05 +03:00
Delyan Angelov 79df7f51c3
v: deprecate `[if ident]` in favour of `[if ident ?]` 2021-06-22 10:30:14 +03:00
Ekopalypse 81fe702b77
builtin: disable the unhandled exception handler, when `-d no_backtrace` is used (#10530) 2021-06-21 08:01:18 +03:00
yuyi afc81277be
v.gen.c: fix assigning a fixed array variable to a map value (#10523) 2021-06-20 08:09:24 +03:00
Ekopalypse c53a344d2f
builtin: allow a static gc build on windows (#10510) 2021-06-19 17:06:25 +03:00
Delyan Angelov aea23e8a40
strconv: fix fxx_to_str_l_parse/fxx_to_str_l_parse_no_dot returning s without cloning 2021-06-19 07:48:46 +03:00
Bastian Buck acf9d168cb
os: fix some C compiler warnings for windows (#10506) 2021-06-18 20:07:25 +03:00
Alexander Medvednikov eacdd0d7e1 comptime: fix $(field.name) in $for; vweb: shared fields 2021-06-16 20:33:39 +03:00
Uwe Krüger 60c880a0cc
vlib: use `malloc_noscan()` where possible (#10465) 2021-06-15 14:47:11 +03:00
Delyan Angelov be3702dcb7
builtin: uncomment already working test functions in array_test.v 2021-06-14 10:13:59 +03:00
Uwe Krüger 5ee1ded3fb
gc: extend optimized mode to maps (#10426) 2021-06-13 06:26:43 +03:00
Uwe Krüger 652e7ba973
gc: extend optimized mode to strings (#10431) 2021-06-12 11:27:08 +03:00
Alexander Medvednikov e02d1d4a4b Revert "gc: extend optimized mode to strings (#10409)"
This reverts commit 3f654a69e3.
2021-06-12 01:52:06 +03:00
Uwe Krüger 3f654a69e3
gc: extend optimized mode to strings (#10409) 2021-06-12 00:03:05 +03:00
Uwe Krüger daeeaef030
vfmt: hot fix to allow separate `array_d_gcboehm_opt.v` (#10413) 2021-06-11 12:00:18 +03:00
Uwe Krüger 0e2c86310a
GC-boehm: extend optimized mode to all `array` methods (#10406) 2021-06-10 21:26:17 +03:00
pancake 5be982d63e
builtin: fix memory leak on empty strings (#10408) 2021-06-10 15:21:57 +03:00
Andreas Heissenberger 96c8d147b2
v.gen.js: add source map creation support (inline only, no src) (#10384) 2021-06-10 08:33:46 +03:00
Uwe Krüger 811a3e1d38
builtin: optimize `array.repeat()` (#10396) 2021-06-09 12:52:30 +03:00
Uwe Krüger a2243054a5
builtin: fix memory corruption in array `.clone()` and `.repeat()` (#10394) 2021-06-08 23:23:28 +03:00
Delyan Angelov 95cf120e2e
ci: fix linux-cross job; os.real_path cleanup 2021-06-08 18:34:15 +03:00
Delyan Angelov 40ac7d4892
builtin: support -d trace_vcalloc, -d trace_realloc 2021-06-08 17:24:07 +03:00
Delyan Angelov 665c386771
builtin: simplify the .si_c and .si_vp cases in StrIntpData.get_fmt_format, free intermediate results 2021-06-08 13:29:03 +03:00
Uwe Krüger 89aab95177
builtin: fix -gc boehm on windows (#10330) 2021-06-04 17:38:51 +03:00
Uwe Krüger ce3e71cb8e
OpenBSD: support Boehm-GC, X11 and Sqlite (#10300) 2021-06-01 22:28:30 +03:00
Delyan Angelov 8fee140fc0
builtin: small cleanup in string_interpolation.v 2021-06-01 16:21:43 +03:00
penguindark 1343787009
builtin: fix interpolation bug for `${x:g/G}`, where `x` is a zero or an infinity (#10271) 2021-05-30 19:30:18 +03:00
Thomas Treffner ba86d619fa
builtin: fix print/println on termux (#10253) 2021-05-30 08:10:32 +03:00
Uwe Krüger 15557161cc
builtin: add trailing `0` to reversed string (#10248) 2021-05-29 16:45:26 +03:00
penguindark 7089ff3957
builtin: fix a bug in str_intp (#10238) 2021-05-28 18:44:30 +03:00
Uwe Krüger 8828054e5b
builtin: fix arrays/slices memory bug (#10219) 2021-05-27 15:50:06 +03:00
penguindark 2dd1d3fcbb
all: string interpolation code cleaning (#10204) 2021-05-26 09:30:08 +03:00
Joe Conigliaro 560301dbfe
cgen: dont preallocate zero length with capacity of 1 2021-05-26 14:51:20 +10:00
Enzo 39c376bb5b
builtin,gen: use operator overloading on ustring (#10197) 2021-05-25 14:51:48 +03:00
Enzo ce7f78522d
builtin: remove former string operator methods (#10184) 2021-05-24 14:05:29 +03:00
Enzo 886f69bfcf
all: use operator overloading on strings (p. 2) (#10183) 2021-05-24 11:38:31 +03:00
penguindark d8d05e0106
all: new string interpolation in pure V (#10181) 2021-05-24 05:20:45 +03:00
Delyan Angelov 7f12bfa563
builtin: optimise `sx == sy` in the case where strings have common prefixes 2021-05-23 17:22:57 +03:00
Delyan Angelov 5efd8c62d0
ci: fix tests-sanitize-undefined-clang 2021-05-23 15:13:53 +03:00
Delyan Angelov a27e7f7675
builtin: remove commented code; improve print_backtrace with tcc 2021-05-23 12:37:40 +03:00
yuyi ae9f8627fc
checker: simplify generic structs (#10167) 2021-05-23 05:54:58 +03:00
Alexander Medvednikov 7c0f8f7644 builtin: a small optimization in string.replace() 2021-05-22 14:35:36 +03:00
Delyan Angelov 2086e6f1c1
builtin, cgen: implement chunked allocation of 16MB blocks with -prealloc (#10130) 2021-05-19 10:35:56 +03:00
Delyan Angelov 94e7a55b97
builtin: implement -d trace_error
With debugger backtraces, it can help pinpoint the original source of a
bubbled error, until we can store stacktraces in the errors in an
efficient way.
2021-05-18 20:03:00 +03:00
Alexander Medvednikov ed6ad728d9 vweb: fix serving static files 2021-05-16 04:28:14 +03:00
JalonSolov 274c817028
builtin.string: optimize split_into_lines (#10081) 2021-05-11 18:57:32 +03:00
Delyan Angelov e6011e83ce
builtin: cleanup string.v 2021-05-11 13:59:44 +03:00
Delyan Angelov 159ee00563
builtin: remove `import hash` 2021-05-10 09:22:50 +03:00
Enzo 2d2b4f79cc
strings: add Builder.cut_to (#10042) 2021-05-07 19:41:27 +03:00
Uwe Krüger d26ac5692e
all: various fixes for [heap]/auto-heap handling (#10033) 2021-05-07 15:58:48 +03:00
Delyan Angelov 2eafea6308
v: reduce the memory usage of the compiler (analysed with heaptrack) 2021-05-06 11:44:48 +03:00
Delyan Angelov 84f9789e72
v: tag more low level functions with `[direct_array_access]` 2021-05-06 00:35:16 +03:00
Enzo 4ac751d773
os: add `signal_opt` and deprecate `signal` (#10005) 2021-05-05 15:39:02 +03:00
Miccah 12c3f85507
os: add getuid and geteuid (#10002) 2021-05-05 14:20:11 +03:00
Delyan Angelov 597a774d36
scanner: speed up Scanner.skip_whitespace (~2-3% speed up of `-o x.c cmd/v`) 2021-05-03 14:14:32 +03:00
Mark feb60674b4
builtin.string: minor fixes in join() (#9952) 2021-05-02 19:31:47 +03:00
JalonSolov 3175525b5e
builtin.string: optimize replace (#9969) 2021-05-02 19:30:07 +03:00
penguindark dbadda84e5
builtin: clean up int.v (#9960) 2021-05-02 16:31:29 +03:00
JalonSolov 3363c3ef65
builtin.string: optimize replace() (#9955) 2021-05-01 21:27:49 +03:00
ka-weihe 4348c2322d
builtin.map: test more key types (#9947) 2021-05-01 14:26:20 +03:00
Thomas Treffner e05da04b4c
builtin: fix termux prints (#9921) 2021-04-29 09:49:26 +03:00
ka-weihe 6795b02e24
cgen: fix enum in map (#9912) 2021-04-28 22:11:32 +03:00
Thomas Treffner 1fbf75f2e8
builtin: fix termux println (#9829) 2021-04-28 09:11:50 +03:00
ka-weihe 3edbf71770
parser: fix maps with aliases as key (#9900) 2021-04-28 07:45:21 +03:00
Enzo 4eb8072882
parser: remove ++/-- exception for some modules (#9895) 2021-04-27 01:41:42 +03:00
Louis Schmieder fc3b628440
v: support `$for attr in Test.attributes` (#9836) 2021-04-25 18:29:26 +03:00
Bastian Buck 160b605640
os: use C.GetUserNameW for os.loginname() instead + improvements os.uname() (#9872) 2021-04-25 18:16:14 +03:00
penguindark bfe0a7887f
builtin,strconv: fix and optimize utf8 and formatting functions (#9874) 2021-04-25 17:57:21 +03:00
Marcos Diaz 187895c93c
os: use GetComputerNameW to retrieve hostname on Windows (#9861) 2021-04-24 13:22:04 +03:00
Alexander Medvednikov 49a2de562b builtin: fix an unused var warning on windows 2021-04-23 15:17:05 +03:00
Alexander Medvednikov c7a6d28e13 all: improve unused variable warning (fix `x = 1`, `x += 1` etc) 2021-04-23 13:33:48 +03:00
Delyan Angelov 59e23dbb57
ci: re-enable testing of `./v -freestanding run vlib/os/bare/bare_example_linux.v` on ubuntu 2021-04-22 12:50:56 +03:00
zakuro 7443179cc8
checker: make use of private enum from outside module an error. (#9821) 2021-04-22 07:07:56 +03:00
Delyan Angelov bd539b6427
vfmt: fix string interpolation formatting with multiple ',",\' and \" . 2021-04-20 20:26:06 +03:00
Nicolas Sauzede 258be508f4
builtin,os: fix unused return C warnings for real (#9814) 2021-04-20 17:28:58 +03:00
Delyan Angelov d4f31412b7
v: deprecate `@VROOT` in favour of `@VMODROOT` (#9795) 2021-04-19 19:01:47 +03:00
Lukas Neubert 70c651ff17
all: make __global behave consistent with const (#9711) 2021-04-19 17:07:47 +03:00
spaceface 73352583e7
ci: fix all `-cstrict` warnings with gcc and clang (#9792) 2021-04-19 15:38:48 +03:00
Bastian Buck 9ec91f4d58
os: add new function os.loginname(), improve some error messages (#9794) 2021-04-19 14:57:25 +03:00
Nicolas Sauzede 22351a6fb7
builtin: remove `unused return` C warnings (#9797) 2021-04-19 14:14:27 +03:00
AAAA a45da620e6
builtin: add string representation of ESC (#9799) 2021-04-19 11:41:04 +03:00
Delyan Angelov ded3ce5863
builtin: cleanup string.v 2021-04-17 12:30:45 +03:00
crthpl 0a1d0e062d
freestanding: small fixes (#9760) 2021-04-17 02:38:41 +03:00
Delyan Angelov cb69c4c91a
builtin: add a 'v hash:' line to V panics 2021-04-15 11:43:38 +03:00
penguindark 4ecc5001b9
builtin: fix for utf8_str_visible_length for CJK Unified Ideographs Extension G (#9739) 2021-04-15 09:20:53 +03:00
Alexander Medvednikov 21c452c5cd builtin: define u8 = byte alias 2021-04-15 02:58:27 +03:00
crthpl 14434cc86a
all: bare metal support (fix `-freestanding`) (#9624) 2021-04-14 07:50:50 +02:00
Uwe Krüger 10bf974cda
all: gc: provide optimized mode (#9716) 2021-04-14 00:40:26 +02:00
Delyan Angelov f04dd21e79
builtin: run vfmt over string.v 2021-04-13 12:01:23 +03:00
Delyan Angelov a1121d0eb0
builtin: use 0 instead of `\0` rune when setting C style terminators; use C.memcpy in `[]string{}.join("")` 2021-04-13 11:29:33 +03:00
ka-weihe 491fe49af6
map: rename methods (part 2) (#9698) 2021-04-12 16:22:02 +02:00
Lukas Neubert ada763e0f4
fmt: remove parenthesis around single ident (#9696) 2021-04-12 16:01:03 +03:00
ka-weihe 0facc5a559
builtin: fix map.zeros_to_end (#9689) 2021-04-12 00:36:02 +03:00
Louis Schmieder 273655ecc8
vfmt: fix asm volatile & goto (#9688) 2021-04-11 23:32:28 +03:00
Leah Lundqvist 38c517c1a2
builtin: use NSLog on iOS for print (#9665) 2021-04-10 17:40:43 +03:00
Delyan Angelov d54becf52e v.cflag: support `#flag $first_existing("/opt/homebrew/lib/libgc.a", "/usr/local/lib/libgc.a")` 2021-04-10 10:46:43 +03:00
ka-weihe 5273214ec2
map: rename methods (#9657) 2021-04-10 04:00:29 +02:00
Uwe Krüger 84fa1ae444
boehm-gc: support a `[keep_args_alive]` tag for C functions (#9641) 2021-04-09 13:13:49 +03:00
Delyan Angelov e93a52a267 builtin: add support for '-d static_boehm -gc boehm' (only for macos and linux for now) 2021-04-08 19:17:04 +03:00
Lukas Neubert 1d5ed89138
fmt: remove trailing space in comments (#9620) 2021-04-07 15:25:11 +02:00
Alexander Medvednikov 66d3917554 builtin: fix C++ compilation 2021-04-07 15:25:45 +03:00
ka-weihe bca9409192
map: wrap up delete fix (#9626) 2021-04-07 14:12:12 +02:00
Alexander Medvednikov ff9837386a Revert "map: wrap up delete fix (#9601)"
This reverts commit cbcc0d34b5.
2021-04-07 03:40:43 +03:00
Delyan Angelov db84d5e221
os: cleanup os.environ implementation 2021-04-06 18:02:12 +03:00
ka-weihe cbcc0d34b5
map: wrap up delete fix (#9601) 2021-04-06 15:57:08 +02:00
Alexander Medvednikov de5e603248 builtin: fix a warning in backtrace() on windows (msvc) 2021-04-06 02:52:54 +03:00
Delyan Angelov 5f07c583fb
ci: fix build-vc job (use more precise C.fprintf declaration) 2021-04-05 22:24:17 +03:00
Delyan Angelov 1899845582
ci: fix build-vc job 2021-04-05 22:18:18 +03:00
Delyan Angelov acb6145d53
ci: final fix for `./v test-all` 2021-04-05 22:13:53 +03:00
Delyan Angelov 291a88bc62
ci: fix some of `v test-cleancode` 4 2021-04-05 21:39:32 +03:00
Delyan Angelov d11fb8497a
ci: fix some of `v test-cleancode` 3 2021-04-05 21:21:46 +03:00
Delyan Angelov c0e2b9b1e2
ci: fix some of `v test-cleancode` 2 2021-04-05 20:55:03 +03:00
Delyan Angelov 34aa67b1e8
ci: fix compilation and formatting of sqlite example in docs.md 2021-04-05 08:09:04 +03:00
Delyan Angelov accd4d83bf
ci: fix compilation 2021-04-04 20:14:51 +03:00
Delyan Angelov 824790a2bd
builtin: simplify println(), use C.write consistently on unix as on windows so that 0 bytes are output also 2021-04-04 19:14:21 +03:00
Alexander Medvednikov 57e6138a61 all: remove byteptr and charptr; replace them with &byte and &char 2021-04-04 17:43:32 +03:00
Delyan Angelov c698fa1a58
all: support `v -watch run` (#9577) 2021-04-04 16:05:06 +02:00
ka-weihe 337e447cfb
map: fix delete (part 1) (#9579) 2021-04-04 01:11:47 +02:00
yuyi 7f81702d81
builtin: optimize array sort (#9570) 2021-04-03 12:16:18 +02:00
yuyi 3637bac716
cgen: fix rune array sort (#9561) 2021-04-02 16:28:27 +02:00
ka-weihe 1a76cb1c36
map: fix misalignment (#9548) 2021-04-01 10:39:00 +02:00
Alexander Medvednikov 6f318be96c checker: do not allow nil sum types init 2021-03-31 11:13:52 +03:00
Uwe Krüger 76dc4cf13f
gc: fix another alignment issue (#9489) 2021-03-27 18:59:51 +01:00
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 `bool`s 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