Commit Graph

1090 Commits (38c517c1a2a5273e9eb3ea175ff1315ecd91808f)

Author SHA1 Message Date
Delyan Angelov 40ed2e1b3d builtin: use C.write for print/eprint . Call C.SetConsoleOutputCP(C.CP_UTF8) on windows 2020-09-11 16:20:35 +03:00
Uwe Krüger 047bf02985
builtin: fix `in` for various numeric types (#6311) 2020-09-06 12:45:02 +02:00
Uwe Krüger b015033c53
builtin: add methods to builtin channels (#6303) 2020-09-05 01:36:20 +02:00
spaceface777 eff319f869
comp_for: allow checking full mehod and arg types (#5997) 2020-08-27 15:00:44 +02:00
Alexander Medvednikov c01d17fcc4 tests: fix array_test.v 2020-08-27 13:12:04 +02:00
Alexander Medvednikov 6921d46185 all: rune type for `` literals 2020-08-27 06:46:37 +02:00
Alexander Medvednikov 84b8e0a7e4 tests: enable live tests on macos 2020-08-26 06:50:32 +02:00
Maciej Obarski e8e0d9fa42
all: [direct_array_access] tag (#6203) 2020-08-24 09:04:50 +02:00
Alexander Medvednikov 7dfae2384b builtin: remove asl.h include 2020-08-22 17:22:14 +02:00
Alexander Medvednikov 9e12095111 gg: image: return an optional instead of panic(); darwin: fix nsstring() 2020-08-22 17:09:30 +02:00
Delyan Angelov 94ced907d2 sort: fix C compilation error for `fn abc(mut a []int) { a.sort() }` 2020-08-22 15:20:49 +03:00
Nick Treleaven bab5c21224
parser: warn when fixed-size ArrayInit doesn't have trailing `{}`. (#6137) 2020-08-16 04:54:05 +02:00
Nick Treleaven 75212f9fab
cgen: error if ForInStmt is not handled (#6131) 2020-08-14 21:01:43 +02:00
Alexander Medvednikov f8be2110ec sort: fix sorting by struct fields 2020-08-12 18:43:41 +02:00
Alexander Medvednikov e5e31f7210 sort: handle `.sort(a.field > b.field)` 2020-08-12 06:11:40 +02:00
Alexander Medvednikov 4bc0dde413 all: new `.sort(a < b)` syntax 2020-08-12 05:54:51 +02:00
Uwe Krüger bb93bf34ec
sync/semaphores: use dispatch semaphores on MacOS (#6110) 2020-08-12 03:45:09 +02:00
Alexander Medvednikov 88988817d0 parser: minor `match` simplification 2020-08-10 19:54:38 +02:00
Delyan Angelov 36eae1c175
builtin: x.vstring() instead of string(x) (#6102) 2020-08-10 18:05:26 +02:00
Nick Treleaven 2dd90de993
parser: error on `[unsafe_fn]` (#6090) 2020-08-09 12:22:11 +03:00
Alexander Medvednikov 200f8dacb7 []byte.str2() => bytestr() 2020-08-09 04:22:42 +02:00
Alexander Medvednikov 94f4dfe85b builtin: a temporary []byte.str2() (until runes are implemented) 2020-08-09 04:20:43 +02:00
Alexander Medvednikov 64f218e943 string: fix all cap .title() test 2020-08-09 04:09:48 +02:00
Alexander Medvednikov c65dbe51d6 parser: c2v fixes 2020-08-09 03:58:14 +02:00
Delyan Angelov 4568ce8f00 builtin: add sanity check on the number of returned frames by C.backtrace 2020-08-06 19:50:29 +03:00
Uwe Krüger 863cf8af60
sync: channel implementation (#6074) 2020-08-06 15:28:19 +02:00
Duarte Roso 055117dc5f
builtin: make byte.hex() two digits format (#5886) 2020-08-01 23:06:08 +02:00
Lukas Neubert f2c639c869
builtin: add string.contains_any() (#5963) 2020-07-29 21:48:50 +02:00
Swastik Baranwal 8b66816bdc
scanner: more checks for `_` as num_sep (#5992) 2020-07-28 16:09:19 +10:00
Delyan Angelov 3d2fd471b6 ci: prepare for enabling compilation with g++ again 2020-07-25 20:20:49 +03:00
Louis Schmieder b58b15993c
gen: compile time for (methods and fields) (#5957) 2020-07-25 00:02:44 +02:00
pancake 04ef2a2671
os: implement os.system for iOS and uncomment the `$if ios` blocks (#5947) 2020-07-24 10:17:32 +03:00
Alexander Medvednikov d2675b89c0 builtin: fix a mutable var on windows 2020-07-23 23:18:45 +02:00
Alexander Medvednikov 632e27a4a9 all: fix a big mutability bug and update all mutable vars 2020-07-23 23:16:36 +02:00
pancake 36352085ae
v: add support for iOS crosscompilation (#5943) 2020-07-23 07:58:44 +03:00
Delyan Angelov 276c1de190 unsafe: tag with unsafe{} some more pointer manipulations 2020-07-22 21:42:51 +03:00
Nick Treleaven ee349691f9
v/checker: Warn about pointer indexing outside unsafe {} (#5918) 2020-07-22 20:28:53 +03:00
Nick Treleaven a74cbf55c7
checker: warn if C.m* or C.s* functions are called outside unsafe blocks (#5869) 2020-07-20 20:06:41 +03:00
Nick Treleaven fb76e02c59
builtin: speed up string.clone() by using C.memcpy (#5837) 2020-07-20 17:44:35 +03:00
Alexander Medvednikov 74d70b8719 all: more cached moduels fixes 2020-07-18 13:49:03 +02:00
Alexander Medvednikov 7ab6899538 builtin: fix compilation (part 1) 2020-07-18 11:17:29 +02:00
Alexander Medvednikov 38e5569503 all: cached modules fixes 2020-07-18 11:15:44 +02:00
Nick Treleaven 105a0e015e
checker: warn if unsafe method called outside unsafe block (#5863) 2020-07-17 19:14:12 +02:00
Alexander Medvednikov dc89a914ea cc: build-module/module cache fixes; strconv: move all code in one module 2020-07-16 19:01:56 +02:00
Ryan Willis f66967a88c
vsymlink: real Windows symbolic link, fallback to batch, make.bat updates (#5841) 2020-07-16 18:33:26 +02:00
Swastik Baranwal f3a505b558
scanner: add check for `_` in num literals (#5849) 2020-07-16 17:29:07 +03:00
Nick Treleaven f5e6a83a05
builtin: unsafe vlib pointer indexing (#5836) 2020-07-15 21:56:50 +02:00
Uwe Krüger 8df6e59678
sync: add semaphores (#5831) 2020-07-15 10:22:33 +02:00
Delyan Angelov cf7d03bda6 builtin: implement array.pop() 2020-07-14 20:01:39 +03:00
Swastik Baranwal c3bdacbf04
doc: add info about _ separator in literals (#5823) 2020-07-14 15:46:13 +02:00
Delyan Angelov 3703ade9f1 doc: add a Numbers section. Add tests for `0b` prefixed integer literals too 2020-07-14 11:10:43 +03:00
ka-weihe df45488e09
cgen: fix warnings (#5820) 2020-07-14 00:16:31 +02:00
Delyan Angelov e5a5e76a30 cgen: fix for passing functions as voidptr args 2020-07-13 19:45:13 +03:00
Swastik Baranwal b5b5176f9b
string: add filter method (#5812) 2020-07-12 21:07:28 +03:00
Alexander Medvednikov a2cb01e16a parser: parse _x64.v files only with -x64 2020-07-11 19:03:59 +02:00
Delyan Angelov 498c8cfc8e builtin: skip print_backtraces on panics with tcc, it does it automatically 2020-07-11 17:51:06 +03:00
Alexander Medvednikov 59df2db4e0 ci: disable C++ test for now 2020-07-11 15:36:08 +02:00
Alexander Medvednikov ab3c1f2a08 prealloc: skip frees for now 2020-07-11 13:22:18 +02:00
yuyi fae601fe39
array: add `reverse_in_place` for performance (#5798) 2020-07-11 13:17:11 +02:00
Alexander Medvednikov 649821be4c all: use v_realloc 2020-07-11 12:37:54 +02:00
Alexander Medvednikov a1073105e1 all: re-enable -prealloc 2020-07-11 11:25:56 +02:00
Uwe Krüger 646df49c74
builtin: fix string.hash method for `gcc -O2` (#5794) 2020-07-11 01:18:52 +03:00
Delyan Angelov 7248d8422e vfmt: keep `vproto.Name`, when current module is `proto` 2020-07-11 00:59:19 +03:00
yuyi 0c9c66dd6b
cgen: fix mutable array arguments (#5769) 2020-07-10 18:04:51 +02:00
Delyan Angelov d3e676bdc1 orm: use errcode comparisons, instead of strcmp(sqlite3_errmsg,msg) 2020-07-10 10:14:30 +03:00
Uwe Krüger ef02373061
all: remove `rwshared` keyword, make its semantics default for `shared` (#5710) 2020-07-07 01:57:31 +02:00
Uwe Krüger c3614c0e38
cgen, sync: implement separate read/write locks for `rwshared` types (#5687) 2020-07-05 22:53:28 +02:00
yuyi 27149ba8bc
cgen: fix `in` in mutable arrays (#5647) 2020-07-04 12:12:44 +02:00
Ruofan XU 765ffa37eb
cgen: fix == for mut arraay args (#5648) 2020-07-04 11:36:33 +02:00
Nick Treleaven 0b49e4db1c
v/checker.v: disallow pointer arithmetic for InfixExpr outside unsafe {} (#5640) 2020-07-03 18:10:10 +02:00
Ruofan XU a2395ff3e8
cgen: fix mut map with relation op in fn (#5642) 2020-07-03 18:07:11 +02:00
yuyi dff385cb37
cgen: fix map_in mut (#5638) 2020-07-03 17:33:53 +03:00
Alexander Medvednikov b7175b54eb vweb: ['/:arg1/:arg2/action'] attribute 2020-07-03 15:10:39 +02:00
yuyi 6cbc0e84f0
cgen: fix cross assign with mutable args (fix #5609 #5610 #5611) (#5614) 2020-07-02 11:09:26 +02:00
Nick Treleaven e7339fec15
all: disallow pointer arithmetic for AssignStmt, PostfixExpr outside unsafe{} (#5581) 2020-07-01 14:50:17 +02:00
yuyi 92eea7f95a
cgen: fix map cross assign (#5603) 2020-07-01 14:03:12 +02:00
yuyi 6c5b638202
parser: fix array cross assign (fix #5577) (#5591) 2020-07-01 12:11:03 +02:00
Delyan Angelov ca1f47a742 cgen: fix `for k,_ in map { x << k }` 2020-07-01 11:49:02 +03:00
Delyan Angelov 78e1127d99
cgen: treat the main module like any other v module 2020-07-01 00:53:53 +02:00
Delyan Angelov 2fd960f12c builtin: implement a double free detection for v strings 2020-06-30 18:32:04 +03:00
nyaascii f10d2bb75f
string: fix trim_prefix and trim_suffix methods (#5572) 2020-06-30 15:44:53 +02:00
yuyi 05de780219
map: add map['aa']+='str' test 2020-06-28 13:34:59 +02:00
yuyi d9409006fa
cgen: fix a[0]+='str' 2020-06-28 11:16:16 +02:00
Emily Hudson c84bafbdae
vlib,cgen: cleanup array inits using `.repeat() instead of new init syntax 2020-06-27 21:46:04 +02:00
Emily Hudson 1848eb0973
cgen,map: fix leaks in `keys()` and `for x in y` 2020-06-27 17:00:27 +02:00
yuyi 58763ff299
map: remove unused `get2()` and `get3()` 2020-06-27 13:58:07 +02:00
yuyi f1e17f30f6
cgen: fix map_in error 2020-06-25 12:53:12 +02:00
ka-weihe 3bb6b6c8b2
map: comments and renaming 2020-06-24 23:31:19 +02:00
yuyi 67d9d94fb3
map: fix m[a]++ etc 2020-06-24 20:41:26 +02:00
Lukas Neubert 30169f86c1
os: make `rm` return an optional 2020-06-24 14:01:19 +02:00
yuyi 7efb3ecb34
checker: check deprecated functions 2020-06-23 16:25:24 +02:00
joe-conigliaro d19a33c420
sync: use Event for waitgroup on windows 2020-06-23 03:23:42 +10:00
Alexander Medvednikov deb09d95b0 orm: fix `column == var`; limit 1; vweb: @footer 2020-06-22 16:52:16 +02:00
ka-weihe 7f225f2eaa
map: rename size to len 2020-06-21 16:51:02 +02:00
spaceface777 a02aff9126
jsgen: fixes and improvements 2020-06-20 13:22:49 +02:00
yuyi e41ddab3b0
test: add multiple array clone tests 2020-06-20 02:35:22 +02:00
Uwe Krüger c78cfa43bc
checker: make map literals have a real type 2020-06-19 15:00:27 +02:00
yuyi dc8b82e9a4
array: fix multiple array clone 2020-06-19 13:32:55 +02:00
Uwe Krüger 770132ff37
float: make default string representations for floats become alike 2020-06-18 22:33:41 +02:00
Alexander Medvednikov 1d28d45c5c builder: add -lpthread; x64: a+b, a-b 2020-06-18 14:14:42 +02:00
yuyi 930c3d73c1
cgen: fix `arr.insert(0, [1,2,3])` and `arr.prepend([1,2,3])` 2020-06-18 12:08:11 +02:00
yuyi 3f01e2b796
cgen: fix array.insert and arr.prepend 2020-06-18 00:22:34 +02:00
Alexander Medvednikov 325a7c7ec5 orm: more fixes and tests 2020-06-17 14:29:44 +02:00
Swastik Baranwal 0052ab71e9
string: add map method 2020-06-17 12:26:55 +02:00
spaceface777 5f21b152a7
tcc: support tcc on Windows 2020-06-14 23:15:12 +02:00
yuyi 2ef0f15b34
string: fix contains behaviour (closes #5371) 2020-06-14 19:24:15 +10:00
Adam Stankiewicz f2a75d5223
test: run all tests even if some fail 2020-06-13 16:20:45 +02:00
Alexander Medvednikov af27963938 string: do not free empty strings 2020-06-12 17:20:51 +00:00
yuyi b4ad174b7f
array: fix multiple array.repeat index error 2020-06-12 11:42:26 +02:00
yuyi ff1437fc5a
cgen: fix multi_array index issue 2020-06-12 01:24:25 +02:00
Delyan Angelov 3bf9b28773 vlib: add fixes for problems, found by check_os_api_parity.v 2020-06-11 21:16:12 +03:00
yuyi acf0b84523
cgen: fix array.filter(anon_fn) 2020-06-10 13:18:59 +02:00
yuyi 12faf9fcfa
cgen: fix multiple array.map(anon_fn) calls 2020-06-10 13:18:45 +02:00
Ned Palacios 8f9f426479
vdoc: plaintext fixes 2020-06-10 11:14:03 +02:00
Delyan Angelov c7d4360931 v: add full compiler support for _likely_(x) 2020-06-09 17:42:43 +03:00
Delyan Angelov 6663e94780 builtin: add C._likely_ support 2020-06-09 16:36:53 +03:00
yuyi 85c741519b
cgen: fix array.map(fn...) 2020-06-09 12:50:56 +02:00
Alexander Medvednikov 5dcd2303c9 builtin: fix string.fields() 2020-06-09 10:15:20 +02:00
yuyi d472a27489
cgen: fix array.map(anon_fn) 2020-06-09 10:14:10 +02:00
Alexander Medvednikov dabfc4ebd0 checker: do not display errors for incorrectly initialized vars 2020-06-08 13:10:47 +02:00
Delyan Angelov 6c9b2b8303 builtin: use tcc_backtrace for tcc (phase 2) 2020-06-08 10:46:51 +03:00
Ryan Willis 08814d6de4
tools/vsymlink: use the win32 api to update the system environment 2020-06-08 09:19:31 +02:00
Enzo Baldisserri 11b7b97311
parser: fail when assigning to _ with := 2020-06-08 00:47:04 +02:00
Tomas Hellström 9c8769503f
time: add microsecond precision to Time struct 2020-06-07 16:19:09 +03:00
Alexander Medvednikov 13a7ce9e69 gg: GG => Context 2020-06-04 20:26:18 +02:00
Uwe Krüger cf9498ef6b
cgen: use standard checks for float comparisons 2020-06-04 19:47:41 +02:00
yuyi 5ae8853648
all: change `f mut Foo` to `mut f Foo` 2020-06-04 10:35:40 +02:00
pancake e9bcd36d5e
builtin: implement generic break_if_debugger_attached() 2020-06-03 14:11:23 +02:00
Alexander Medvednikov 63b8cdea7a checker: require () in a && b || c 2020-06-02 22:21:44 +02:00
Uwe Krüger 076089d3c5
checker: apply stricter type checks to function args and return types 2020-06-01 21:15:59 +02:00
Naheel 4fcabb71c4
os: implement cp for nix 2020-06-01 21:11:40 +02:00
Delyan Angelov 945439dab6 cgen: print actual values on a failed assert (when possible) 2020-06-01 14:43:38 +03:00
Delyan Angelov 97b9ce04a4 crypto.rand: cleanup test, make it less likely to fail in CI 2020-06-01 07:49:52 +03:00
Emily Hudson 75eac291ac
all: variable sized options 2020-05-31 12:57:26 +02:00
Emily Hudson f0a9b88ac4
all: add stdcall attribute, unhandled exception handler, get_raw_stdin, v_realloc 2020-05-29 03:06:27 +02:00
yuyi 84edbd83da
all: fix struct names error 2020-05-27 19:12:34 +03:00
Delyan Angelov 481f103dc9 checker: make an error using non `pub` fns from other modules 2020-05-27 12:00:19 +03:00
Uwe Krüger 013fdb8a4b
checker: restrict numeric promotions to cases where no data is lost 2020-05-27 05:42:48 +02:00
ka-weihe 64173c792f
builtin: map: fix memory leak 2020-05-26 17:59:52 +02:00
ka-weihe 8ea0c812a2
builtin: map.clone() 2020-05-26 01:52:06 +02:00
Alexander Medvednikov f41e2c0a4b string: make replace() clone for now; parser: comptime method 2020-05-25 08:17:36 +02:00
Uwe Krüger fd4d28b7b6
tests: update for stricter type checks 2020-05-24 21:07:32 +02:00
Delyan Angelov 2adfbfc830 builtin: fix a bug in array_delete 2020-05-24 11:10:41 +03:00
yuyi dda875a9c8
all: unify const names to snake_case 2020-05-22 17:36:09 +02:00
Delyan Angelov 88fa935376 builtin: fix print mem leak on windows 2020-05-22 12:18:27 +03:00
Leah Lundqvist f2ea8ca62c
jsgen: class -> factory 2020-05-21 22:36:06 +02:00
Abdullah Atta 9888bacad5
v: make js hello world work 2020-05-21 16:17:16 +03:00
Tanel Liiv c9f3a05ef6
checker: fix map/filter called with a plain fn argument 2020-05-20 15:28:33 +03:00
Delyan Angelov ac396ea02f http: cleanup backend_nix.c.v, fixes vpm too 2020-05-20 12:04:28 +03:00
Delyan Angelov 931c846602 os: cleanup code duplication for os.create and os.open 2020-05-19 13:38:06 +03:00
Alexander Medvednikov 03525843a0 parser: do not allow calling private functions 2020-05-18 22:54:11 +02:00
Uwe Krüger 2635be511f
all: re-apply C++ support 2020-05-18 21:38:06 +02:00
Alexander Medvednikov 07a78b2843 Revert "all: C++ compiler support"
This reverts commit 9a237c3e82.
2020-05-18 17:05:48 +02:00
Uwe Krüger 9a237c3e82
all: C++ compiler support 2020-05-18 15:51:36 +02:00
Alexander Medvednikov 4f307c1a78 checker: requre & in struct init; http: chunked encoding 2020-05-18 05:11:00 +02:00
yuyi 7f4cf08516
parser: check `(mut f Foo)` syntax 2020-05-17 13:51:18 +02:00
Enzo Baldisserri f44a40eee0
checker: check incorrect names 2020-05-16 16:12:23 +02:00
yuyi 9b6ee8e77d
cgen: array_init_with_default 2020-05-16 15:21:37 +02:00
Delyan Angelov 2dbb4c2ca7 live: cleanup 2020-05-15 23:51:40 +03:00
Swastik Baranwal 04744a5390
string: add trim_prefix and trim_suffix 2020-05-15 19:37:14 +02:00
Delyan Angelov 66cb61c242 builtin: cleanup by turning backtrace* fns to ordinary C. fns 2020-05-15 15:52:06 +03:00
Delyan Angelov 2c93deb884 builtin: bootstrap for backtrace functions cleanup 2020-05-15 15:08:42 +03:00
Alexander Medvednikov ab7bc760c6 cgen: new Option part 1 2020-05-13 21:59:08 +02:00
ka-weihe 85763d0539
map: faster get and exists 2020-05-09 12:42:01 +02:00
Uwe Krüger 722a2c71c3
builtin: new_array: cap should not be less than len 2020-05-07 22:41:41 +02:00
Delyan Angelov 673acdbd00 tcc: fix selfcompilation with tcc. Temporarily disable crashing interface test 2020-05-07 20:59:45 +03:00
Alexander Medvednikov 8cfb2ad6c9 string: is_lit 2020-05-07 18:05:57 +02:00
Delyan Angelov f638caef39 compiler: v -autofree can now compile itself 2020-05-06 19:03:51 +03:00
Ned Palacios 507e457c0a
builtin: add parenthesis around frame_addr as a workaround 2020-05-05 08:35:26 +03:00
ka-weihe f27fd63f8c
builtin: map: one voidptr for all values 2020-05-04 14:56:19 +02:00
Uwe Krüger f831910c5c
utf: fix string length calculation for combining characters 2020-05-04 13:21:11 +02:00
ka-weihe a72f3ed0c7
builtin: voidptr.str() and byteptr.str() 2020-05-04 13:20:18 +02:00
Delyan Angelov 068da2ea0f builtin: fix warning about unused skipframes 2020-05-04 12:05:08 +03:00
Delyan Angelov acd80f052b
tests: improve diagnostic output on failure 2020-05-04 11:21:25 +03:00
yuyi e0e064ff08
scanner: fix string slash line breaks error 2020-05-04 10:19:23 +02:00
Tanel Liiv 68ca8ab8a4
array: nested map() 2020-05-02 15:26:58 +02:00
Uwe Krüger 170ee4312f
cgen: string interpolation field width support for large integers and utf8 strings 2020-05-02 00:43:59 +02:00
Tanel Liiv 182e7071bf
array: map() function 2020-05-01 00:29:54 +02:00
Henrixounez f6d74c8a37
checker: error on ternary if type mismatch 2020-04-30 09:32:29 +02:00
yuyi 1fabb7d5a6
checker: fix string.str() error 2020-04-29 13:51:42 +02:00
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
yuyi e9f764db4f
cgen: uniform string output format 2020-04-27 14:48:28 +02:00
ka-weihe 18faaefe82
map: get: remove malloc and memcpy 2020-04-27 13:27:33 +02:00
Alexander Medvednikov 3256d060f7 array: inline ensure_cap 2020-04-27 07:39:33 +02:00
Alexander Medvednikov ef26f27753 builtin: replace `isnil` calls for perfomance 2020-04-27 07:13:36 +02:00
Alexander Medvednikov 83552a0d58 array: replace make() with the new init syntax 2020-04-26 17:52:27 +02:00
Alexander Medvednikov f23948010a parser: new array init syntax 2020-04-26 17:28:48 +02:00
yuyi 2574dce174
all: fix remaining `[]array` warnings 2020-04-26 16:25:54 +02:00
yuyi 9f4d498ff1
all: update`import ()` and `[]array` 2020-04-26 13:49:31 +02:00
Larpon 7b39ab6d06
string: fix replace_each edge case error message 2020-04-26 12:40:39 +02:00
Alexander Medvednikov 153ac230ec tests: use new array init syntax, fix mutability 2020-04-26 11:56:30 +02:00
Alexander Medvednikov 270566055f checker: make sure all FnDecl types are valid 2020-04-26 10:39:26 +02:00
Alexander Medvednikov 3ab8dc0092 parser: array init: `[]string` => `[]string{}` 2020-04-26 09:17:17 +02:00
Delyan Angelov 620fc962d7 builtin: use single line imports, to make analysis easier 2020-04-26 08:06:39 +03:00
ka-weihe d72e401378
string: optimize eq 2020-04-25 20:19:53 +02:00
Alexander Medvednikov d54b48b300 table: interface cast fix 2020-04-25 09:18:10 +02:00
Alexander Medvednikov 9229a963ed array: use __new_array everywhere 2020-04-25 09:10:54 +02:00
Alexander Medvednikov 48857090fc runtime `as` type check: part 2 2020-04-25 08:42:23 +02:00
Alexander Medvednikov 2d187fb951 runtime `as` type check: part 1 2020-04-25 08:36:53 +02:00
Delyan Angelov c6a829ce82 cgen: support for error('abc').str() and printing errors 2020-04-24 18:35:33 +03:00
yuyi 5664cbd3d0
enum: check enum name and modify related files 2020-04-23 05:16:10 +02:00
Alexander Medvednikov 45e21085c7 tests: re-enable some old array tests 2020-04-23 04:23:19 +02:00
Enzo Baldisserri fecf4ddf65
cgen: fix optional pointers 2020-04-22 20:12:30 +02:00
Delyan Angelov 4b8ed3f831 cgen: fixes for ustring, makes utf8_util_test.v pass 2020-04-22 10:35:14 +03:00
Kris Cherven b288ecb795
cgen: add map string generation 2020-04-22 04:00:38 +02:00
Kris Cherven 155891a4e0
parser: add unused variable warning 2020-04-22 01:52:56 +02:00
Alexey 9c0d97335e
builtin: improve backtrace on Windows 2020-04-20 20:59:08 +02:00
yuyi 27e04748ed
cgen:gen_str_for_array 2020-04-19 10:42:34 +02:00
Delyan Angelov 8a1248b2e7 builder: restore module import cycle detection/topological reorder 2020-04-16 12:29:36 +03:00
Kris Cherven a3ab5df2ed
cgen: prepend __ to new_array 2020-04-15 20:12:06 +02:00
Alexey 91de4e1ece
array: test assignment operators 2020-04-14 20:32:06 +02:00
Alexey 0c63f5c80d
builtin: test left/right shift precedence 2020-04-14 19:38:11 +02:00
Alexander Medvednikov f91d527154 deprecate `import module` 2020-04-14 18:27:30 +02:00
Alexander Medvednikov ec10831318 parser: `[]int{cap:cap, len:len}` syntax; minor fixes 2020-04-14 18:10:16 +02:00
yuyi 682c619456
array: fix array_byte.str error 2020-04-14 05:55:53 +02:00
ka-weihe e247690fe1
map: fast_string_eq and improved comments
* improved comments and fast_string_eq
* make it pass CI
* enumerate traits
* Add parameter back
* remove space
* remove parameter
* Allow bootstrap compilation in one step with old vc (add new_map/2 shim).
2020-04-12 15:10:06 +03: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
Alexander Medvednikov 4b029567e5 tests: test string literal indexing and mutable array filter 2020-04-11 23:32:00 +02:00
Alexander Medvednikov 39245f088a array: test !in and filter 2020-04-11 23:01:50 +02:00
lutherwenxu dc4db87be3
vlib: use new filename format 2020-04-11 19:51:32 +02:00
yuyi ea960b2ce2
parser: fix inter literal format error 2020-04-11 17:25:39 +02: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
yuyi bf20b01586
map: fix map_test.v error 2020-04-09 03:57:08 +02:00
Alexander Medvednikov eb78396307 parser: fix prefix precedence 2020-04-08 13:53:11 +02:00
Delyan Angelov 3bad02abdd cgen: do comparison of f32/f64 values for == and != by calling f64_eq(a,b) and f64_ne(a,b) 2020-04-08 03:51:06 +03:00
ka-weihe 7406abe3b6
map: use strcmp and update wyhash 2020-04-08 00:02:15 +02:00
Alexander Medvednikov 6bbd1943dd cgen: fix &string cast; vfmt fixes 2020-04-07 18:51:44 +02:00
lutherwenxu a8c92e6dff
checker: remove hack and enforce type checking 2020-04-07 03:27:06 +02:00
Major Taylor f099f90f50
string: fix trim_right, add tests 2020-04-06 14:30:25 +02:00
ka-weihe a30d292385
map: fix leaksfree fix (#4254) 2020-04-05 23:31:53 +02:00
ka-weihe 307daacf67
depgraph/map: fix memory bug 2020-04-05 22:09:52 +02:00
Alexey 781c20a6ae
cgen: bring back Windows fixes 2020-04-05 16:08:16 +02:00
Alexander Medvednikov f748390172 parser: do no allow var names with __; cgen: use __argc 2020-04-04 14:55:40 +02:00
Alexander Medvednikov 440f1cf4c6 map: remove old get methods 2020-04-04 14:22:39 +02:00
Alexander Medvednikov 46aed151ab parser: snake_case check; array: mutable array test 2020-04-04 14:09:58 +02:00
Alexey 6c4de001b8
cgen: add `builtin.init` call inside of `_vinit` 2020-04-03 13:27:19 +02:00
Delyan Angelov 6b9bf8cbf7 v2: fixes for most of vlib/builtin/map_test.v . 2020-04-03 00:42:08 +03:00
Alexey 6309e699e5
builtin: add operator precedence test 2020-04-02 19:02:49 +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
penguindark 83289d74a7
builtin: fix int to hex 2020-04-02 17:16:17 +02:00
Alexey 8c050eff07
msvc: add a workaround to fix backtrace (#4200) 2020-04-02 17:11:12 +02:00
Alexey 01aa2b86f5
array, map: cast voidptr to byteptr 2020-04-02 15:31:44 +02:00
Alexander Medvednikov d4df916581 array: cast data to byteptr 2020-04-02 14:58:45 +02:00
Alexander Medvednikov 461a5b2c18 cgen: fix raw strings 2020-04-02 10:15:35 +02:00
Alexander Medvednikov 507f4ce87a array: handle "0" strings 2020-04-02 01:47:32 +02:00
Alexander Medvednikov 1cfe44d9c6 fix windows build 2020-04-02 01:15:00 +02:00
Alexander Medvednikov f98cc9c017 cgen: fix ARR_LEN 2020-03-31 17:16:12 +02:00
Alexander Medvednikov 9d630dff30 allow slicing of fixed size arrays 2020-03-31 16:48:00 +02:00
Alexey a333ac1888
all: remove redundant parentheses in `if` statements 2020-03-29 10:08:42 +02:00
joe-conigliaro 718819eb7a
map/scope/checker: update just var type & ret zero in map.get3 2020-03-29 00:00:28 +11:00
Alexey cedf185b41
v2: fix Windows errors 2020-03-28 10:19:38 +01:00
Alexander Medvednikov 473d9fef55 checker: do not allow extra () in if conditions 2020-03-27 14:57:19 +01:00
Alexander Medvednikov 7fdce50718 cgen: write defer statements at the end of the function 2020-03-27 11:21:00 +01:00
Joe Conigliaro fd8bb2c95c tests: small array/struct test notes & tmp fix 2020-03-27 20:47:24 +11:00
Alexander Medvednikov db59c621e8 v2: minor fixes 2020-03-27 08:47:02 +01:00
Alexander Medvednikov f0334b2e12 cgen: fix `arr[i] *= x` and `2d_arr << arr` 2020-03-26 22:09:25 +01:00
Delyan Angelov f489c89987
v2: more informative assert output; string interpolation formatting 2020-03-26 19:17:14 +01:00
Alexander Medvednikov eb57f192d4 cgen: fix test 2020-03-26 17:21:52 +01:00
Alexander Medvednikov 75c2ef7947 cgen: fix octal and hex int literals 2020-03-26 17:14:24 +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 fc86269bc9 checker: array str fixes 2020-03-26 11:32:32 +01:00
Alexander Medvednikov 26fab9b274 cgen: fix mutable array args 2020-03-25 17:04:16 +01:00
Alexander Medvednikov 456750ac19 v2: array_test fixes 2020-03-25 14:24:48 +01:00
Alexander Medvednikov b495e78f0e v2: add _vinit to tests' fn main 2020-03-25 00:17:39 +01:00
Alexander Medvednikov 437bba5566 cgen: generate fn main for tests; fix consts bug 2020-03-24 22:24:03 +01:00
Alexander Medvednikov 5d976d841b v2: raw strings 2020-03-24 17:07:27 +01:00
Alexander Medvednikov 32c8eb6490 os: vfmt os_test.v 2020-03-24 16:18:37 +01:00
Alexander Medvednikov f101e9b9e2 v2: string fixes, is_dir fix 2020-03-24 11:14:11 +01:00
SleepyRoy 67ba56c65c
expression: set integer literals as int by default 2020-03-23 20:05:37 +01:00
Alexander Medvednikov 2e29e09b1b cgen: fix map_get: use zero value if the key was not found 2020-03-23 20:02:09 +01:00
Alexander Medvednikov 2738a0c776 cgen: backtrace and sigaction fixes 2020-03-22 14:47:45 +01:00
Joe Conigliaro 043ea80fa9 checker: comptime if expr/stmts & type check fixes 2020-03-22 23:36:27 +11:00
Alexander Medvednikov e5f6a0949f cgen: autofree: first step 2020-03-21 19:52:19 +01:00
penguindark 421f5b6fdf
builtin: int to str without offset buffer 2020-03-21 16:00:58 +01:00
ka-weihe bf97afb9ed
map: small cleanup 2020-03-21 13:55:07 +01:00
radare cc75fe4fe5
builtin: Fix undefined behaviour when allocating empty structs (#4088) 2020-03-21 12:24:34 +01:00
Delyan Angelov ba088056ed
solaris: make 'v test-compiler' pass (stage 2) 2020-03-21 09:48:02 +01:00
radare c21e976cad
builtin: do not use unsafe sprintf/vsprintf functions 2020-03-21 06:37:58 +01:00
Alexander Medvednikov 4fac09bcb4 array: simplify reverse() memcpy call 2020-03-20 16:51:36 +01:00
SleepyRoy f798a0937a
expression: set floats as f64 by default 2020-03-19 07:24:49 +01:00
Alexander Medvednikov 66639924a4 map: make compilable with V2 2020-03-19 07:05:20 +01:00
ka-weihe bd0548548a
map: new memory layout and map.get2() 2020-03-19 06:52:34 +01:00
Alexander Medvednikov ca0bae0fcd array: fix reverse() 2020-03-18 18:54:11 +01:00
Alexander Medvednikov fe6707b26d cgen: minor fixes 2020-03-18 16:47:37 +01:00
Alexander Medvednikov a011b8951a cgen: if/match expressions and other fixes 2020-03-18 08:41:49 +01:00
Major Taylor e2eb0f17d7
string: separate strip_margin tests into different functions 2020-03-17 02:49:51 +01:00
yuyi 456c0250b0
string: fix strip_margin 2020-03-16 15:46:09 +01:00
Alexander Medvednikov d39dd53998 string: bring back test_strip_margins 2020-03-16 15:45:54 +01:00
Joe Conigliaro d456cc479c builtin: revert map to version before 35dd785 until bug is fixed 2020-03-16 23:01:31 +11:00
radare 5581b2bd3c
builtin: fix backtrace for OpenBSD and NetBSD 2020-03-16 12:10:58 +01:00
Alexander Medvednikov 98fc9ab65b string: disable strip_margins test for now 2020-03-15 23:21:32 +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
Delyan Angelov 9bcb7d115f
panic: restore printing of detailed stack backtraces on linux 2020-03-13 04:32:44 +01:00
Alexander Medvednikov b43ac2783d map: make compilable with the new compiler 2020-03-12 20:26:29 +01:00
ka-weihe 35dd7855a0
map: new memory layout and optimizations 2020-03-12 19:36:05 +01:00
Joe Conigliaro b750f1d1bb compiler: prerequisite changes for upcoming map update 2020-03-12 22:19:13 +11: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
Delyan Angelov de7fed45dc
builtin: implement []int.str() 2020-03-11 18:48:59 +01:00
Alexander Medvednikov 75db3e4416 cgen: fix ptr indexing 2020-03-11 05:25:15 +01:00
penguindark 630913d872
builtin: new str(), hex() functions without C.printf 2020-03-11 00:38:11 +01:00
Alexander Medvednikov de55a26cfe cgen: lots of fixes 2020-03-10 23:21:29 +01:00
Alexander Medvednikov e3687dc257 checker: check C args 2020-03-08 22:11:56 +01:00
yuyi 783dee1f48
os: merge with filepath 2020-03-07 22:26:26 +01:00
Alexander Medvednikov 63032c4bb7 cgen: minor fixes 2020-03-07 16:23:10 +01:00
Alexander Medvednikov b0ece3a9d8
sync: implement pool.work_on_items to process a list of items in parallel 2020-03-04 20:28:42 +01:00
Alexander Medvednikov cd8a5d1f2e fix parser_test.v and string_test.v 2020-03-04 17:39:27 +01:00
Alexander Medvednikov f27f832ede cgen: definitions + other fixes; calloc fix 2020-03-04 17:08:28 +01:00
Hugo Locurcio 69f256b900
use LF line endings in examples/quick_sort.v 2020-03-03 14:41:05 +01:00
Delyan Angelov 615a4b3452
builtin: add V64_PRINTFORMAT (part 2) 2020-03-01 15:48:54 +01:00
Alexander Medvednikov 82b0024758 fix v2 parser int.v error 2020-03-01 14:57:54 +01:00
Nicolas Sauzede becd87141c
fix linux warnings in generated C code 2020-03-01 13:26:09 +01:00
Alexey cbffbf3438
array: reverse empty arrays correctly 2020-02-29 20:44:02 +01:00
Alexey 99cbc58db8
array: update `array.repeat` 2020-02-29 15:25:49 +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
penguindark 39429f7ac9
atof: lots of fixes
* removed sprintf for f64 and f32 use

* removed all pointers from the code, used unions instead

* solved module name problem

* fixed tests on vlib/math

* fix for alpine-linux math test

* small fix on byte allocation for ftoa
2020-02-26 12:14:06 +01:00
spaceface777 ef8c1203b4
cleanup: replace C for loops with range 2020-02-24 17:55:16 +01:00
SleepyRoy 7d2eb4f604
scanner: make `0o` prefix the only way to define octals 2020-02-23 23:43:04 +01:00
yuyi adb1d3f8c9
scanner: enable 0oxx to handle octals 2020-02-23 12:33:07 +01:00
Alexander Medvednikov e56bf42270 v2: xor, for x = ... 2020-02-20 21:28:08 +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
Alexander Medvednikov 7705281459 map: use hashmap instead of b-tree 2020-02-20 20:05:06 +01:00
Alexander Medvednikov f413b2fa49 Revert "map: use hashmap instead of b-tree"
This reverts commit 34d926350b.
2020-02-20 17:58:17 +01:00
ka-weihe 34d926350b
map: use hashmap instead of b-tree 2020-02-20 17:28:20 +01:00
yuyi 8be07194c7
string: fix capitalize 2020-02-20 11:33:38 +01:00
Alexander Medvednikov ec3d67c19f checker: print multiple errors; none 2020-02-19 19:54:42 +01:00
yuyi 391da0ba07
string: optimize starts_with and ends_with 2020-02-19 15:18:09 +01:00
Alexander Medvednikov 082acfad49 v2: fix more ast positions 2020-02-19 11:31:33 +01:00
Alexander Medvednikov 19520ccf4e v2: for in checker 2020-02-18 21:59:42 +01:00
Alexander Medvednikov c314ab7b60 fix cmdline_test.v 2020-02-18 20:31:15 +01:00
Alexander Medvednikov 31c1483b9d vfmt2: fn args, comments 2020-02-18 20:20:15 +01:00
Alexander Medvednikov 480af3f381 v2: checker fixes 2020-02-18 20:06:01 +01:00
prime31 a2838ae6f3
array: add `array.trim()` 2020-02-17 20:31:40 +01:00
Delyan Angelov 195f3f465b
option to disable bounds checking; examples/path_tracing.v: optimizations 2020-02-16 16:13:45 +01:00
Alexander Medvednikov d9cf98f772 v2: imports 2020-02-12 01:16:38 +01:00
Alexander Medvednikov 0ec5680156 array: bring back reduce test 2020-02-11 13:22:22 +01:00
Alexander Medvednikov 17212f816c v2: high order functions 2020-02-11 13:21:41 +01:00
joe-conigliaro e274c5c485 v2: type sys - store type idx/ptr in int & add helpers 2020-02-10 08:32:08 +01:00
Delyan Angelov f76651604d
compiler: bugfix for raw'"' 2020-02-09 16:29:05 +01:00
Alexey 1eeee40278
string: split into lines correctly 2020-02-09 09:23:57 +01:00
Alexander Medvednikov 18c440c990 fix int_test.v 2020-02-07 22:16:14 +01:00
Alexander Medvednikov d66bc24e7f remove `as` casts for basic types 2020-02-07 22:10:48 +01:00
Alexander Medvednikov f782388148 v2: minor fixes 2020-02-07 21:29:28 +01:00
Alexander Medvednikov 0510bc7744 fix int.v 2020-02-07 14:57:48 +01:00
Alexander Medvednikov 9034b1fd08 v2: match cgen; use `as` for casting 2020-02-07 14:50:52 +01:00
Alexander Medvednikov 18a3961992 array.v: use `as` cast 2020-02-07 09:38:28 +01:00
Alexander Medvednikov b23854b2ab array.v: fix the build 2020-02-07 09:22:52 +01:00