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

1567 Commits

Author SHA1 Message Date
spaceface
26d051475a
cgen: ensure closures are kept alive when using the GC (#14736) 2022-06-10 19:48:50 +03:00
spaceface
4ed9780b80
all: enable -gc boehm by default (#14577) 2022-06-09 00:44:29 +03:00
Delyan Angelov
82d23dedf1
builtin: add flush_stdout and flush_stderr to builtin.js.v, for feature parity with builtin.c.v 2022-06-07 12:15:35 +03:00
ChAoS_UnItY
df80b33dc0
cgen: fix array init with it (fix #14679) (#14680) 2022-06-05 19:41:54 +03:00
Ikko Ashimine
7b25957a26
builtin: fix typo in array.v (#14688) 2022-06-05 18:49:40 +03:00
playX
db34adaec8
builtin.js: fix string.int method (#14564) 2022-05-31 11:52:11 +03:00
Delyan Angelov
0f3b2c2ae7
builtin: use C.fwrite (buffered) for _write_buf_to_fd (#14558) 2022-05-30 19:15:05 +03:00
Delyan Angelov
58ebc0680e
builtin: fix sporadic linking failures on v -cc gcc -gc boehm examples/hello_world.v 2022-05-30 15:17:01 +03:00
spaceface
ba859c584b
builtin: add static GC support on Windows with TCC (#14497) 2022-05-22 21:25:46 +03:00
Daniel Däschle
d3ffd983c8
markused: add _result_ok (#14495) 2022-05-22 14:52:38 +03:00
Vincenzo Palazzo
17bba712bd
checker: ban unsafe pointer/fn comparison (#14462) 2022-05-20 18:30:16 +03:00
yuyi
913164bc73
builtin: minor cleanup in string_interpolation.v (#14471) 2022-05-20 14:19:27 +03:00
Delyan Angelov
4e56147223 ci: vfmt builtin_d_use_libbacktrace.c.v 2022-05-17 19:41:57 +03:00
Ned
db4b49a5ca
builtin: print libbacktrace output to stderr, on panics/segfault crash (#14434) 2022-05-17 14:56:34 +03:00
WoodyAtHome
02c8a6057c
builtin.string: new fn (s string) is_ascii() bool (#14418) 2022-05-17 08:01:03 +03:00
Daniel Däschle
d679146a80
fmt: remove space in front of ? and ! (#14366) 2022-05-13 06:56:21 +03:00
CC
901b8f0c24
builtin: add a map.clear() method (#14373) 2022-05-12 09:43:01 +03:00
David 'Epper' Marshall
a91226c376
docs: cleanup (#14327) 2022-05-07 20:18:42 +03:00
Delyan Angelov
56cf0b0a2e
builtin: inline manually isnil calls in array.push_many (very frequently called) 2022-05-07 12:55:40 +03:00
Alexander Medvednikov
14f06ead1b cgen: fix c2v consts; enum_decl() 2022-05-07 00:58:37 +03:00
Hunam
0699f324b5
builtin: add map.values() (#14301) 2022-05-06 20:42:01 +03:00
Daniel Däschle
76cdf75299
builtin,cgen: rename Option to _option (#14317) 2022-05-06 19:25:54 +03:00
Andréas Livet
9fde5b067b
docs: add missing function names in the builtin example doc comments (#14318) 2022-05-05 17:22:25 +03:00
Ned
76a7354506
builtin: add libbacktrace as option for generating stack traces (#14277) 2022-05-04 21:17:05 +03:00
Ikko Ashimine
223b96a59a
builtin: fix typo in array_bare.v (#14299) 2022-05-04 19:25:17 +03:00
Delyan Angelov
1a4d9017e2
builtin: improve support for large arrays ([]int{len: 1_000_000_000} now works), fix an arr.repeat() bug (#14294) 2022-05-04 18:42:06 +03:00
Alexander Medvednikov
1e9156fd71 checker: c2v rune comparison fix 2022-05-04 06:49:45 +03:00
Delyan Angelov
0e5c1cee48
builtin: improve musl/Alpine support (define weak backtrace/backtrace_symbols/backtrace_symbols_fd symbols) (#14250) 2022-05-03 09:17:53 +03:00
Delyan Angelov
ab1c265679
builtin: add missing panic_result_not_set/1 callback function. 2022-05-02 22:40:26 +03:00
yuyi
b9cf2db6a8
parser: fix inline array's element access (#14253) 2022-05-02 16:16:32 +03:00
Daniel Däschle
9f8a34a528
all: rename result to _result (#14232) 2022-04-30 17:10:30 +03:00
David 'Epper' Marshall
a2338dbb7c
docs: document more builtin functions/methods (#14229) 2022-04-30 12:31:23 +03:00
Daniel Däschle
08fd0ce0de
all: basic implementation of result type (#14140) 2022-04-30 01:59:14 +03:00
Wertzui123
872f739396
builtin: ignore C++ 0xE06D7363 exception errors on windows (#14225) 2022-04-29 14:55:29 +03:00
StunxFS
995485c649
builtin: add string.len_utf8() method (#14208) 2022-04-29 10:23:57 +03:00
Alexander Medvednikov
77645fcf35 builtin: define atoi & ftell 2022-04-29 04:31:51 +03:00
Delyan Angelov
f72297c331
eval: add support for C.read/3, C.malloc/1, $if openbsd { 2022-04-28 11:30:36 +03:00
Alexander Medvednikov
7dbfa86f25 all: atomic int fixes 2022-04-27 18:31:21 +03:00
playX
dce2173ac9
checker: c2v fixes (#14161) 2022-04-26 01:34:26 +03:00
Nick Treleaven
d8a5df9044
checker: error if smaller signed == unsigned (#14078) 2022-04-25 12:09:25 +03:00
lemon
960225f7a7
builtin: fix -cc gcc -gc boehm on linux and macos (#14115) 2022-04-21 00:12:17 +03:00
Nick Treleaven
1533b77404
builtin: remove unnecessary casts for defunct small unsigned warning (#14108) 2022-04-20 21:47:09 +03:00
Alexander Medvednikov
364656b312 builtin: define C.abs() 2022-04-20 13:03:30 +03:00
spaceface
775c4c34b5
builtin: compile the gc statically by default (#14063) 2022-04-18 10:50:21 +03:00
Delyan Angelov
4a71b27c52
ci: add test_byte_vs_u8 to int_test.v 2022-04-15 21:42:07 +03:00
Delyan Angelov
840f474fb5
ci: fix ./v -progress test-cleancode 2022-04-15 21:04:10 +03:00
Delyan Angelov
e802e0b9cb
ci: fix more test-all failures 2022-04-15 21:02:03 +03:00
Delyan Angelov
bb2a324d61
ci: more gen.js fixes 2022-04-15 20:51:04 +03:00
Delyan Angelov
6f5a513d8b
ci: fix v build-examples 2022-04-15 20:31:10 +03:00
Delyan Angelov
cc8803c602
builtin: fix failing embed_file_test.v (pub fn (data &u8) vbytes(len int) []u8 {) 2022-04-15 19:57:00 +03:00
Alexander Medvednikov
fbb9e65c0f all: ~500 more byte=>u8 2022-04-15 18:25:45 +03:00
Alexander Medvednikov
ae6a25f44e websocket, utf: u8 fixes 2022-04-15 16:24:02 +03:00
Alexander Medvednikov
af73e195da net: byte fixes 2022-04-15 15:55:39 +03:00
Alexander Medvednikov
fb192d949b all: replace []byte with []u8 2022-04-15 15:35:35 +03:00
Alexander Medvednikov
c14984899b builtin: fix windows fn definitions 2022-04-15 15:18:21 +03:00
Alexander Medvednikov
a1372e284c builtin: update alloc fn definitions 2022-04-15 15:16:10 +03:00
Alexander Medvednikov
d4a0d6f73c all: byte => u8 2022-04-15 14:58:56 +03:00
Alexander Medvednikov
b49d873217 builtin: [1000]u8 fix 2022-04-15 14:48:39 +03:00
Alexander Medvednikov
014c3c97f0 all: byte => u8 2022-04-15 14:45:52 +03:00
Alexander Medvednikov
7f3b91e688 builtin: more byte => u8 2022-04-15 14:10:11 +03:00
Alexander Medvednikov
ba7b329c73 builtin: more byte=>u8 2022-04-15 13:55:56 +03:00
Alexander Medvednikov
e6ff1508d2 all: make u8 the primary type, byte the alias 2022-04-15 13:43:03 +03:00
Delyan Angelov
e555335bf0
ci: fix windows-msvc builds, as well as the windows-cross job, turn on deprecation notices for [windows_stdcall] and [_fastcall] 2022-04-14 13:36:51 +03:00
Nick Treleaven
c780de6282
checker: disallow 'small_unsigned == signed' (#13967) 2022-04-12 19:37:30 +03:00
Delyan Angelov
382586da6d
ci: fix toml segfault (remove unused low level builtin option IError.msg compatibility hack) 2022-04-11 21:49:59 +03:00
Nick Treleaven
2cd9c91e98
vdoc: highlight terminal examples for -comments -color (#13937) 2022-04-04 18:13:24 +03:00
Nick Treleaven
d10135e2c4
vdoc: HTML highlight generic function as function, not name (#13923) 2022-04-03 23:41:02 +03:00
Nick Treleaven
782d5374c9
builtin: add an array.drop(n) method (#13907) 2022-04-03 17:05:50 +03:00
yuyi
8c55a9ecd3
builtin: minor optimization of array.push() and array.push_noscan() (#13904) 2022-04-03 11:04:18 +03:00
Nick Treleaven
42f92db0ab
v.doc: parse multi-line examples (so they get highlighted) (#13894) 2022-04-02 18:29:12 +03:00
Nick Treleaven
a87cd9663e
vdoc: highlight inline examples for -f html (#13879) 2022-03-31 19:32:32 +03:00
Nick Treleaven
02f72c8230
builtin: improve docs for array methods that take an it expression, like .map, .filter etc (#13836)
Move explanation about boolean `it` expressions to `filter`, as `sort`
doesn't take a boolean expression. Also move `any` example.
Add 2 filter examples.
Add map example from docs.md.
2022-03-27 14:28:15 +03:00
Nick Treleaven
ea4410cdb5
builtin: document the rune.length_in_bytes method (#13826) 2022-03-25 20:09:39 +02:00
Delyan Angelov
5b492e26dd
builtin: support a.flags.set(.noslices | .noshrink), use it in the particles example (#13818) 2022-03-24 23:37:13 +02:00
Nick Treleaven
afbccf79f7
builtin: don't memdup element for array.pop (depends on how cgen works) (#13789)
The voidptr returned is immediately dereferenced in cgen so the memory
is copied before the array can be appended to: `*(int*)array_pop(&a)`
2022-03-21 23:34:35 +02:00
Delyan Angelov
71edaa071a
builtin: use malloc, instead of calloc in array.ensure_cap/1 2022-03-20 15:08:42 +02:00
Delyan Angelov
8ab0bcb6aa
Revert "builtin: improve performance for common array ops, based on VTune analysis"
This reverts commit 57db261538.
2022-03-20 12:57:27 +02:00
Delyan Angelov
57db261538
builtin: improve performance for common array ops, based on VTune analysis 2022-03-20 12:42:04 +02:00
yuyi
49155ec312
parser: notice unnecessary parenthesis of reference (fix #11179) (#13739) 2022-03-15 16:11:53 +02:00
playX
78b1cbefff
builtin.wasm_bare: fix malloc invocation (#13740) 2022-03-15 12:55:39 +02:00
playX
c8b0f51c13
builtin.wasm_bare: use walloc as malloc/free implementation (#13731) 2022-03-14 09:20:20 +02:00
Delyan Angelov
8dc4b1d9a3
builtin: use malloc_noscan more (for map metas and in []byte.hex()) 2022-03-11 11:26:22 +02:00
Nick Treleaven
7231a3f135
vlib: add mut for the first parameter of builtin.copy, arrays.copy and crypto (#13702) 2022-03-09 20:26:00 +02:00
Nick Treleaven
54de04a916
arrays: improve fold/reduce docs (#13700) 2022-03-09 20:04:49 +02:00
Nick Treleaven
17fcc788f2
arrays: add generic copy fn (#13677) 2022-03-08 09:44:04 +02:00
Alexander Medvednikov
36ec47cd20 all: replace "NB:" with "Note:" (docs/comments) 2022-03-06 20:01:22 +03:00
Delyan Angelov
89b99ad4c3
scanner: remove the restriction for \x00 in strings (#13493) 2022-02-16 23:41:05 +02:00
Delyan Angelov
9c24d09dc3
strconv: bug fix for "${239.5:0.0f}" (#13483) 2022-02-16 11:33:29 +03:00
Tim Basel
37c151efe5
docs, builtin, encoding.csv: update error implementations (#13440) 2022-02-12 11:54:10 +02:00
Tim Basel
9d0a5942ac
builtin: change IError msg and code to methods + fix vlib, add a deprecation notice for the old usages (#13041) 2022-02-11 15:52:33 +02:00
Vincenzo Palazzo
7f29418c63
strconv: change atof64 to return an error, if the parsed value is not a valid number (#13424) 2022-02-10 13:27:32 +02:00
Delyan Angelov
1dc239227d
docs, builtin: clean up the homepage of modules.vlang.io a little, do not use //==== comments for now in builtin 2022-02-06 23:51:40 +02:00
Delyan Angelov
9344c27021
builtin: save a call to array.ensure_cap in array.insert, array.push, array.push_many in most cases 2022-02-02 11:01:07 +02:00
Delyan Angelov
96c8188083
builtin: fix warnings for tests inside vlib/builtin/js 2022-01-30 16:36:56 +02:00
Delyan Angelov
44dddecc09
builtin: use a pure V version of string.to_wide() on != windows (#13314) 2022-01-28 20:41:50 +02:00
Benjamin Stigsen
ceb05b163a
strings: rename Builder.write_b() to Builder.write_byte(), add deprecation (#13313) 2022-01-28 20:34:44 +02:00
Delyan Angelov
469282b20d
builtin: cleanup [trusted] tags for C function declarations 2022-01-25 19:31:40 +02:00
Alexander Medvednikov
4715fb67c1 checker: c2v fixes for enums and pointer to numbers 2022-01-25 20:15:45 +03:00
Alexander Medvednikov
216a505c2a builtin: more libc fn definitions 2022-01-24 06:14:31 +03:00
Alexander Medvednikov
38d3239b50 checker: c2v fixes 2022-01-19 15:26:24 +03:00
trueFireblade
727c9fb4a1
all: add string range OrExpr (#13189) 2022-01-17 13:03:10 +03:00
jeffmikels
f19197f9b0
builtin: make array.insert_many and array.prepend_many private (#13172) 2022-01-14 19:47:17 +02:00
jeffmikels
9329b6c8c8
builtin: add more documentation (#13160) 2022-01-14 17:27:38 +02:00
jeffmikels
70aedaf184
builtin: add a string.parse_int/2 method (wrapping strconv.parse_int/3) (#13164) 2022-01-14 00:31:11 +02:00
jeffmikels
4189b7e280
builtin: add a byterune method on []byte (#13145) 2022-01-13 22:26:17 +02:00
Delyan Angelov
ecc7accc8e
tests: test with valgrind rune.bytes(), fix leak in .str_escaped() 2022-01-11 15:23:40 +02:00
Delyan Angelov
8acd84d04a
builtin: reduce allocations in rune.bytes() 2022-01-11 15:23:39 +02:00
Ekopalypse
cb684b5c64
builtin: allow msvc users to link against a custom compiled Boehm library (#13133) 2022-01-11 15:23:21 +02:00
jeffmikels
078229f213
builtin: add a rune.bytes() convenience method (#13129) 2022-01-11 09:55:51 +02:00
jeffmikels
5e5d62ed4c
arrays,docs: remove arrays.zip; improve docs (#13082) 2022-01-09 16:12:33 +02:00
jeffmikels
6e6d51a1c9
docs: add more documentation to each of the modules in vlib (#13043) 2022-01-07 13:28:50 +02:00
playX
287331bc19
builtin: add builtin/wasm_bare (#13078) 2022-01-07 13:16:06 +02:00
playX
ec91de3504
builtin: use dlmalloc for -freestanding (#13054) 2022-01-06 14:10:37 +02:00
jeffmikels
a60b381d5e
docs: adding skeleton README.md files for all vlib modules (#13034) 2022-01-05 18:06:08 +02:00
Delyan Angelov
d3489d4246
builtin: s.trim_prefix/1 -> s.trim_string_left/1, s.trim_suffix/1 -> s.trim_string_right/1 2022-01-05 12:49:22 +02:00
Delyan Angelov
0f01236e52
strconv: fix assert .f64() == 0 2022-01-04 17:51:48 +02:00
Alexander Medvednikov
59ed4be49a all: update copyright year 2022-01-04 12:21:12 +03:00
pancake
7b4ba66720
js: use JS.String instead of string in builtin javascript functions (#13004) 2022-01-01 09:17:08 +02:00
yuyi
a0a1807e2b
builtin: add charptr str() and change string format (#12973) 2021-12-30 23:34:24 +03:00
yuyi
3b5de71e60
builtin: add none str() (fix #12964) (#12967) 2021-12-26 11:41:51 +02:00
penguindark
278c08704c
all: support slices with negative indexes #[start..end] (gated arrays) (#12914) 2021-12-22 16:34:02 +03:00
playX
ade14491d4
gg: add event handling for mouse down/up and mouse leave/out on VJS (#12917) 2021-12-21 12:31:29 +02:00
Delyan Angelov
f81654e3a7
builtin: add s.match_glob(wildcard_pattern) 2021-12-20 14:17:08 +02:00
yuyi
7c255f0ff2
builtin, cgen: fix array of map init with default value (#12885) 2021-12-18 10:07:25 +02:00
Delyan Angelov
6ff953d936
preludes,builder,cgen: add support for VTEST_RUNNER=tap and -test-runner tap (#12523) 2021-12-16 15:59:46 +02:00
playX
11d2b8b354
js: support -es5 flag (#12846) 2021-12-15 15:47:34 +02:00
Delyan Angelov
df7f2aa8a3
all: support [markused] tags for fns/consts/globals 2021-12-15 14:34:49 +02:00
spaceface
d13fe7843c
v: fix build and failing tests on arm64 (#12840) 2021-12-15 09:00:38 +02:00
yuyi
7c7cdf8ce7
builtin: clean up array.v (#12784) 2021-12-11 11:17:00 +03:00
playX
b116170735
js: add support for Promise.wait() (#12781)
* builtin/js: Change Promise<T,E> to Promise<T>

* js: codegen support for Promise.wait()

* checker: checker support for Promise.wait()
2021-12-10 14:54:20 +02:00
playX
1cb06a2de4
js: ast.GoExpr support using promises on JS backend (#12749) 2021-12-07 12:11:54 +03:00
penguindark
81a1490e31
builtin: add string.split_any/1 (#12720) 2021-12-04 20:13:40 +02:00
Delyan Angelov
d59aa14b26
builtin: fix {-7:08b} (interpolation of negative numbers with 0 padding), add tests 2021-12-04 13:11:05 +02:00
Delyan Angelov
33163238e7
strconv: add a small performance optimisation 2021-12-03 20:14:14 +02:00
playX
0da7e2f8ab
js: make vlib/v/util compile on JS backend (#12660) 2021-12-03 12:25:36 +02:00
Delyan Angelov
c4363bc78b
builtin: explain and better organise the different cstring_to_vstring/tos/tos_clone/vstring family of conversion functions 2021-12-02 15:46:53 +02:00
Delyan Angelov
d7bc2a88f7
builtin: add a non allocating rune.length_in_bytes() method and tests for it 2021-12-01 16:35:13 +02:00
Delyan Angelov
6d97b0a407
checker: improve checking of a << b, when a and b are numbers (#12589) 2021-11-29 03:48:49 +03:00
Delyan Angelov
31fe02de8c
builtin,crypto: fix problems detected by -fsanitize=address,undefined and -fsanitize=memory 2021-11-28 20:35:18 +02:00
Delyan Angelov
b4c52b72cf
builtin: change the -d debug_malloc byte pattern to M so it is easier to spot with a plain text terminal. 2021-11-28 19:23:11 +02:00
playX
b0bc112168
jsdom, examples: add more WebGL APIs; add interactive 3D cube example running on VJS (#12562) 2021-11-24 20:31:39 +02:00
pancake
70ff00efbb
bootstrapping: fix building V on OpenBSD (#12558) 2021-11-24 09:46:46 +02:00
playX
12ffe04212
jsdom, builtin/js: WebGL W.I.P; Added support for casting V arrays to typed arrays (#12551)
* builtin/js: TypedArray support

* jsdom: WebGL W.I.P
2021-11-23 14:51:59 +02:00
Delyan Angelov
1aaac13a60
cgen: make os less special, fix an -autofree leak on just import os
* Improve documentation of v.util.Surrounder

* Remove `os` from the list of "no auto free" `builtin` mods

* Fix -autofree freeing of `const x = []string{}`.

* Add a valgrind regression test.

* Implement os.getenv_opt in vlib/os/environment.js.v too.
2021-11-21 21:50:10 +02:00
playX
243e66a106
js,jsdom: Canvas & context API; Added TypeSymbol.is_js_compatible & temporary hacks for JS ifaces (#12526) 2021-11-20 21:28:11 +02:00
playX
2eb02ff5a7
jsdom, js: start refactoring jsdom; improve JS interfaces; add two attributes for them (#12488) 2021-11-17 11:41:33 +02:00
Delyan Angelov
6ac109a7c3
builtin: add a [has_globals] tag for all the .v files, with global declarations in them 2021-11-17 10:29:06 +02:00
yuyi
c28041cecc
all: cleanup/rename all comp_ names to be comptime_ (#12467) 2021-11-15 15:47:29 +02:00
playX
e3d98b1b28
js,strconv: port some functions to JS backend, improve rune.str() (#12460) 2021-11-14 21:06:58 +02:00
playX
a4c57ba56e
js: support JS interfaces (#12426) 2021-11-11 14:36:32 +02:00