Commit Graph

188 Commits (ed39d151b720b17ba61d5794e3693dfc25bddb64)

Author SHA1 Message Date
Enzo Baldisserri 682838a0cf
checker: check array and fields mutability 2020-04-27 22:53:26 +02:00
joe-conigliaro 9f76a7b250
parser: simplify unused vars & add loop/if vars etc 2020-04-27 23:16:31 +10:00
Alexander Medvednikov ef26f27753 builtin: replace `isnil` calls for perfomance 2020-04-27 07:13:36 +02:00
Larpon 7b39ab6d06
string: fix replace_each edge case error message 2020-04-26 12:40:39 +02:00
Alexander Medvednikov 3ab8dc0092 parser: array init: `[]string` => `[]string{}` 2020-04-26 09:17:17 +02:00
ka-weihe d72e401378
string: optimize eq 2020-04-25 20:19:53 +02:00
Alexander Medvednikov 48857090fc runtime `as` type check: part 2 2020-04-25 08:42:23 +02:00
Kris Cherven 155891a4e0
parser: add unused variable warning 2020-04-22 01:52:56 +02:00
yuyi 0ced7116b6
string: add is_upper/is_lower and fix parser.match_expr error
* string: add is_upper/is_lower and fix parser.match_expr error

* to_capital => capitalize, to_title => title

* is_titled => is_title, is_capitalized => is_capital
2020-04-12 13:09:05 +03:00
Delyan Angelov 6433c23a34 string: add s.strip_margin_custom/1, instead of passing varargs to s.strip_margin()
The reason for adding s.strip_margin_custom/1 is that
passing varargs interfere with the current implementation of the
builtin module caching.
2020-04-11 11:06:12 +03:00
Alexander Medvednikov 6bbd1943dd cgen: fix &string cast; vfmt fixes 2020-04-07 18:51:44 +02:00
Major Taylor f099f90f50
string: fix trim_right, add tests 2020-04-06 14:30:25 +02:00
Delyan Angelov abf15e863c
v2: compile vrepl, 'fn main(){println(2+2)}' runs now
It works if you give it complete V programs like
fn main(){println(2+2)}
but not for single expressions like 2+2 or statements like a:='abc'
2020-04-02 19:21:12 +03:00
Alexander Medvednikov 473d9fef55 checker: do not allow extra () in if conditions 2020-03-27 14:57:19 +01:00
Alexander Medvednikov ed3e0c43bc cgen: for c in string; short struct init syntax fixes; 2020-03-26 17:03:14 +01:00
Alexander Medvednikov f101e9b9e2 v2: string fixes, is_dir fix 2020-03-24 11:14:11 +01:00
Alexander Medvednikov fe6707b26d cgen: minor fixes 2020-03-18 16:47:37 +01:00
yuyi 456c0250b0
string: fix strip_margin 2020-03-16 15:46:09 +01:00
Major Taylor 8d19ba9195
string: strip_margin: fix the error message for multiple args 2020-03-15 07:49:37 +01:00
Major Taylor 2d5c7c8e93
string: add `strip_margin` 2020-03-15 05:46:12 +01:00
Alexander Medvednikov a182b5c531 cgen: more errors fixed 2020-03-11 23:22:40 +01:00
Alexander Medvednikov e0c85f87ae cgen: args fixes 2020-03-11 21:11:27 +01:00
Alexander Medvednikov 63032c4bb7 cgen: minor fixes 2020-03-07 16:23:10 +01:00
Alexey 632a538eb3
string: update `string.repeat` behavior
Panic if a repeat count is negative.
Return an empty string if a repeat count is zero.
2020-02-29 15:25:31 +01:00
spaceface777 ef8c1203b4
cleanup: replace C for loops with range 2020-02-24 17:55:16 +01:00
Alexey c85ccad0a6
string: update check if a char is a space 2020-02-20 20:14:54 +01:00
Alexey e4de1e1e89
string: add more test cases 2020-02-20 20:14:21 +01:00
yuyi 8be07194c7
string: fix capitalize 2020-02-20 11:33:38 +01:00
yuyi 391da0ba07
string: optimize starts_with and ends_with 2020-02-19 15:18:09 +01:00
Alexander Medvednikov 31c1483b9d vfmt2: fn args, comments 2020-02-18 20:20:15 +01:00
Delyan Angelov 195f3f465b
option to disable bounds checking; examples/path_tracing.v: optimizations 2020-02-16 16:13:45 +01:00
Alexey 1eeee40278
string: split into lines correctly 2020-02-09 09:23:57 +01:00
Alexander Medvednikov 06b5f43e48 builtin: remove unneeded casts 2020-02-05 11:22:24 +01:00
Alexander Medvednikov 2b433cdf64 v2: match, <<=, >>=, |=, ~, unsafe, map init 2020-02-05 10:00:14 +01:00
Alexander Medvednikov 80daaff874 v2: scopes, or, in, hex 2020-02-04 17:44:39 +01:00
Delyan Angelov 219239eadc string.split_nth - return the rest of the string as the last value in the result array 2020-01-24 20:12:36 +01:00
Shun Sakai c8c43a2475 update copyright year 2020-01-23 21:04:46 +01:00
penguindark da9b6394e8 0bxxxx binary literal support; _ in literals (1_000_000) 2020-01-23 03:28:25 +01:00
Alexander Medvednikov e1132156f5 make sqlite.DB public; make string.left/right private 2020-01-16 18:41:38 +01:00
Alexander Medvednikov de3ad2b04f fix vweb tutorial project; clean up gg functions a bit 2020-01-15 22:17:45 +01:00
Swastik Baranwal 2741c0b211 string: new type conversion functions 2020-01-14 18:05:38 +01:00
Alexander Medvednikov 4c7df98ac9 make private struct warning an error 2020-01-12 19:59:57 +01:00
BigBlack 98b81252b7 fix #3217 (string.replace) 2019-12-27 07:20:06 +03:00
Alexander Medvednikov d082b3f4b9 run vfmt on vlib/builtin 2019-12-20 00:12:29 +03:00
penguindark 3dbf7a4039 atof implementation in V 2019-12-17 01:07:13 +03:00
Alexander Medvednikov e7856a1afc do not allow malloc(0) 2019-12-16 21:29:32 +03:00
Alexander Medvednikov b8f728590b string: last_index ?int 2019-12-12 21:54:48 +03:00
Alexander Medvednikov cdfbb2978d strings: replace_each([]); orm: update 2019-12-10 23:57:49 +03:00
Alexander Medvednikov 9726e18c0a string: optimize replace() 2019-12-10 18:50:21 +03:00
Alexander Medvednikov 6f49d4c1d2 orm: bool support; vweb fixes 2019-12-09 23:20:29 +03:00
Don Alfons Nisnoni 254afcb2d0 *C.char => charptr 2019-12-02 11:37:35 +03:00
radare 5ff387bbe4 strings: split_nth and add tests 2019-12-01 16:10:13 +03:00
Alexander Medvednikov 3fea8f3de5 *char => charptr everywhere 2019-12-01 10:33:26 +03:00
Alexander Medvednikov 81d4f66fbb string: make `index()` return `?int` instead of `int`/-1 2019-11-30 13:21:21 +03:00
Alexander Medvednikov cc2bd0bb68 string: make substr private 2019-11-30 12:50:57 +03:00
Alexander Medvednikov b38283dcf1 string: make left/right private 2019-11-30 12:06:17 +03:00
Delyan Angelov 7545ea709a enable alpine/musl CI tests 2019-11-28 11:46:52 +03:00
bogen85 f6ec1b29f9 strconv: make string.int() stop parsing on invalid digit 2019-11-28 09:46:10 +03:00
bogen85 5c217b9e61 fix hexadecimal constants + freestanding fixes 2019-11-26 06:12:37 +03:00
Alexander Medvednikov e9e931fe4a force C function definitions 2019-11-24 12:14:22 +03:00
Alexander Medvednikov 4a833d8151 parser: clean up all [] 2019-11-14 09:21:20 +03:00
BigBlack 0ab09a57f7 parser: multi-level pointers 2019-11-11 18:43:22 +03:00
Don Alfons Nisnoni b9728c7af0 string: update split() method 2019-11-10 19:37:36 +03:00
Alexander Medvednikov 987f5fd2a1 string: bring back strconv 2019-11-01 00:28:52 +03:00
Alexander Medvednikov 4c96ca4e62 string: remove strconv dep 2019-10-31 21:50:11 +03:00
Alexander Medvednikov 128d37c671 vh fixes for the UI module 2019-10-31 21:26:12 +03:00
Don Alfons Nisnoni 8358528888 string: add some docs 2019-10-27 22:29:55 +03:00
joe-conigliaro a075ce160e compiler: add `[..2]` & `[2..]` support for slices 2019-10-27 09:36:04 +03:00
Alexander Medvednikov dc2c62807a string: faster int() 2019-10-25 23:41:18 +03:00
Alexander Medvednikov ea3f9b5b9a remove execinfo.h header 2019-10-25 12:13:38 +03:00
Alexander Medvednikov 4a88a28a3b make all necessary structs public 2019-10-24 12:51:00 +03:00
joe-conigliaro 8d16762f03 strconv module + use it in builtin/string instead of C functions 2019-10-17 19:37:55 +03:00
Alexander Medvednikov 75e2a29cb5 string: bring back strtoul for now 2019-10-15 08:53:35 +03:00
Alexander Medvednikov 4b176ba855 string: test i64() and u64() 2019-10-15 04:26:19 +03:00
Alexander Medvednikov 2d127cb694 tcc windows fixes 2019-10-14 09:03:11 +03:00
Alexander Medvednikov a280e98d7f fix the build 2019-10-11 06:57:08 +03:00
Alexander Medvednikov 726aaecc46 compiler: make V compilable wit the tcc backend 2019-10-11 06:49:53 +03:00
joe-conigliaro f8fefd5a60 urllib: rem underscore methods from; add strings index_bytes 2019-10-10 20:04:11 +03:00
Alexander Medvednikov b242e8d7ff optimize `a in [1,2,3]` to `a == 1 || a == 2 || a == 3` 2019-10-06 06:07:38 +03:00
Alexander Medvednikov 52f4f4026b
compiler: cache modules 2019-10-04 15:48:09 +03:00
Delyan Angelov 6bba4b1be0 string: document the tradeoffs for V strings 2019-09-28 13:54:30 +03:00
lutherwenxu a4d2633a33 string: Properly null-terminate repeated string 2019-09-28 13:31:12 +03:00
Alexander Medvednikov a5391c8882 string.repeat: re-write without a libc function call 2019-09-28 02:51:42 +03:00
Alvydas Vitkauskas 931b71c428 string: improve repeat() 2019-09-27 15:49:09 +03:00
Don Alfons Nisnoni fb4f14ba76 string: add repeat() method 2019-09-26 22:54:53 +03:00
Alexander Medvednikov f7d8fb0cf4 string: bring back old index() without an allocation 2019-09-23 23:34:42 +03:00
Henrixounez ffcff9ebd4 builtins: ustring comparisons, concatenation and other functions 2019-09-20 19:07:38 +03:00
Alexander Medvednikov a94c1556ce array: remove temporary repeat2() 2019-09-19 05:22:24 +03:00
Alexander Medvednikov 849bef987c more C warnings fixed 2019-09-15 15:53:57 +03:00
Alexander Medvednikov 3e923871cf compiler: use *char() cast in C functions to afix warnings 2019-09-15 15:19:18 +03:00
Alexander Medvednikov 5cc81b91cb JavaSript backend (early stage) 2019-09-15 03:49:57 +03:00
Alexander Medvednikov 9dd86f6fb8 compiler: more memory logic + replace "cur_fn &Fn" with "cur_fn Fn" 2019-09-13 15:47:31 +03:00
Alexander Medvednikov 9853323157 array: make ".contains()" private, use "in" everywhere 2019-09-11 15:12:13 +03:00
Alexander Medvednikov 00687de43b memory: clean up all arrays in the V compiler 2019-09-09 13:55:47 +03:00
joe-conigliaro 79d4d56fe5 string: implement is_space in V & make trim_space use trim 2019-09-06 13:22:37 +03:00
Delyan Angelov c9a39dfdb5 compiler: build tetris executable on windows with both msvc and mingw gcc 2019-09-03 16:09:43 +03:00
Alexander Medvednikov 0e2c41e0f9 replace *Foo with &Foo everywhere 2019-09-01 22:51:16 +03:00
Alexander Medvednikov 3bd7bcfac3 remove u8 and i32 aliases 2019-09-01 22:37:22 +03:00
joe-conigliaro 02fc7e14cd make trim use cutset like trim_right/trim_left 2019-08-27 22:53:32 +03:00
joe-conigliaro 857cf00caf builtin.string: make trim_left/right() behave correctly 2019-08-26 14:18:58 +03:00