Commit Graph

2138 Commits (26b99878803b9ce88f65582053b803a788d700f7)

Author SHA1 Message Date
yuyi 8ac0739858
os api: cp_r => cp_all 2020-03-02 19:30:04 +01:00
Alexander Medvednikov 22ffe336cb checker: AsCast, CharLiteral, fix integer index check 2020-03-02 19:00:33 +01:00
Alexander Medvednikov 156e36c082 cgen: handle unhandled nodes 2020-03-02 18:43:41 +01:00
Alexander Medvednikov 07a2233220 fix prod build 2020-03-02 18:28:11 +01:00
Alexander Medvednikov baaa55f196 cgen: fix methods; println 2020-03-02 18:27:00 +01:00
Alexey 78c885d657
fmt: add support for goto 2020-03-02 17:41:32 +01:00
Delyan Angelov c6107276df
compiler: stabilize the interface code generation a little 2020-03-02 17:10:26 +01:00
Alexey 8fafaf38a3
fmt: add function with variadic arg to test file 2020-03-02 17:10:06 +01:00
Alexey cca5c5537f
fmt: extract common code to methods 2020-03-02 17:09:45 +01:00
Joe Conigliaro 8497d637d9 v2: allow pointers to be initialized with 0 2020-03-02 23:52:41 +11:00
Joe Conigliaro 5b08f307c8 v2: fix map initialization 2020-03-02 22:34:02 +11:00
Joe Conigliaro 16528b12fa v2: allow enum value to be used as int 2020-03-02 21:32:28 +11:00
Joe Conigliaro f57a651e3b v2: match expr fixes & tmp typeof skip 2020-03-02 20:53:38 +11:00
joe-conigliaro a8f07157dd v2: implement sym types & handle in table.check 2020-03-02 16:40:18 +11:00
joe-conigliaro b65fad9ca8 v2: fix if guard var type & handle blank ident in assign 2020-03-02 16:05:40 +11:00
joe-conigliaro a118c72423 v2: checker - save type in MapInit node 2020-03-02 14:24:45 +11:00
joe-conigliaro b333d02e3b v2: allow none & error for functions that return optional - checker 2020-03-02 13:58:36 +11:00
Alexander Medvednikov d05bdad638 pratt: handle &= 2020-03-01 23:26:23 +01:00
Alexander Medvednikov f921ea2fb7 cgen: test module fns and consts 2020-03-01 22:06:36 +01:00
Alexander Medvednikov 38de6c98fc cgen: test local modules 2020-03-01 21:56:07 +01:00
Joe Conigliaro a707ffc04a v2: name_expr mod & type & var fixes 2020-03-02 02:14:52 +11:00
Delyan Angelov 1066ec5cd9
compiler: import modules relative to v.mod 2020-03-01 15:49:39 +01:00
Delyan Angelov 615a4b3452
builtin: add V64_PRINTFORMAT (part 2) 2020-03-01 15:48:54 +01:00
Delyan Angelov 2700fd712b
builtin: add V64_PRINTFORMAT (part 1) 2020-03-01 15:30:33 +01:00
Joe Conigliaro 1ab830da4b v2: fix var mistaken for enum in parser 2020-03-02 01:19:10 +11:00
Alexander Medvednikov 82b0024758 fix v2 parser int.v error 2020-03-01 14:57:54 +01:00
Alexander Medvednikov d7a8b1b4f2 checker: set fn arg expected_type 2020-03-01 14:10:10 +01:00
Nicolas Sauzede becd87141c
fix linux warnings in generated C code 2020-03-01 13:26:09 +01:00
Alexander Medvednikov 7a499b3cd3 checker: fix first() and last(); call_args; method cgen 2020-03-01 13:07:51 +01:00
Joe Conigliaro 9978fb3e2c v2: fix map_init return type in checker 2020-03-01 21:45:44 +11:00
Joe Conigliaro 00dcaf0e04 v2: ArrayInit + all errs & unhandled + arrange nodes + type fix 2020-03-01 15:14:36 +11:00
Alexey cbffbf3438
array: reverse empty arrays correctly 2020-02-29 20:44:02 +01:00
Alexey c1e095e587
fmt: process `MatchExpr` 2020-02-29 20:43:15 +01:00
Alexander Medvednikov 4e88c2286e checker: IfGuard, map fixes 2020-02-29 20:11:04 +01:00
Alexander Medvednikov ee05b51f47 checker: fix match expected_type 2020-02-29 18:34:25 +01:00
Alexander Medvednikov a15dcbfb2d checker: set expected_type in several places 2020-02-29 18:25:38 +01:00
Alexander Medvednikov 27ce38937c checker: fix Assoc 2020-02-29 18:07:29 +01:00
Alexander Medvednikov 85f67a3f73 fix prod build 2020-02-29 17:53:04 +01:00
Alexander Medvednikov d5faf36aa9 fmt: comments 2020-02-29 17:51:38 +01:00
Alexey 5a5f4ce99a
fmt: simplify `IndexExpr` processing 2020-02-29 17:45:08 +01:00
yuyi a678be7195
fix interface on all platforms 2020-02-29 15:27:28 +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
lydiandy a485533dc9
make sure scanner and parser both check BOM 2020-02-29 15:05:25 +01:00
yuyi 6c85e285e7
vdoc: show variadic args correctly 2020-02-29 15:04:07 +01:00
Alexey ee0a0afb25
v2: process `or` block for `CallExpr` 2020-02-29 15:03:32 +01:00
Alexey efff66ada7
fmt: add `pub` modifier for public enums 2020-02-29 14:38:23 +01:00
Major Taylor d4b0de2dce
log: extended logging level names when printed 2020-02-29 14:31:59 +01:00
Delyan Angelov f9d5c0110f
compiler: @VMODULE 2020-02-29 14:23:45 +01:00
Joe Conigliaro f67fca826e v2: fix C function & type prefixing 2020-02-29 21:47:47 +11:00
Joe Conigliaro 48f912c2e9 v2: handle variadic in selector_expr 2020-02-29 19:04:47 +11:00
Joe Conigliaro 71b5b0d955 v2: fix C fn calls, save C fns with prefix besides odd cases 2020-02-29 17:24:28 +11:00
Joe Conigliaro 236b7b15bb v2: handle optional in return stmt in checker 2020-02-29 16:32:00 +11:00
Joe Conigliaro 8e013d2174 v2: skip minus in string expr for now 2020-02-29 15:56:16 +11:00
Joe Conigliaro eb80accfee v2: add ParExpr to checker 2020-02-29 15:36:39 +11:00
Alexander Medvednikov 6855c746bb vfmt: EnumDecl 2020-02-28 17:21:24 +01:00
Major Taylor ee9cfe22ec
scanner: fix a typo in right_shift 2020-02-28 17:16:24 +01:00
Alexander Medvednikov ccf4f61521 ast: ParExpr, OrExpr, IfGuardExpr; ForInStmt fix; remove all cap vars 2020-02-28 15:36:41 +01:00
Alexander Medvednikov 6a198df3af v2: ParExpr; mut var decl 2020-02-28 14:41:19 +01:00
Alexander Medvednikov 7f5a15372f os: fix get_raw_line() + minor v2 fixes 2020-02-28 14:05:20 +01:00
Joe Conigliaro c4b9ef388f v2: handle var decl & assign stmt together 1st step combining 2020-02-28 23:29:04 +11:00
Nicolas Sauzede f5fdbfd004
os: fix getline warning for linux 2020-02-28 02:43:42 +01:00
penguindark b8f6284daf
ftoa: tables with hex constants 2020-02-28 02:43:15 +01:00
Alexander Medvednikov 87205367d1 v2: minor fixes 2020-02-27 21:51:40 +01:00
Alexander Medvednikov 3204f036da ast: move all str() methods to ast/str.v 2020-02-27 21:29:38 +01:00
Alexander Medvednikov d619944cf5 vfmt: []xxx; mut args 2020-02-27 21:00:33 +01:00
Alexander Medvednikov 4f0d505c65 v2: `if x := `; fix `for key, val in`; CastExpr 2020-02-27 18:02:40 +01:00
Alexander Medvednikov 3bde876097 v2: checker: fix --/++ 2020-02-27 17:31:10 +01:00
Alexander Medvednikov 09b7a7c872 v2: checker: handle clone() 2020-02-27 17:21:13 +01:00
Alexander Medvednikov b1357d9641 v2: checker: fix filter() 2020-02-27 16:51:47 +01:00
yuyi b580a497fe
compiler: fix an interface bug 2020-02-27 16:31:05 +01:00
Joe Conigliaro aba0bb5e01 v2: fix condition in AssignStmt 2020-02-27 21:15:30 +11:00
Joe Conigliaro 237d83b2ee v2: more work on AssignStmt & multi ret & initial blank ident 2020-02-27 21:12:30 +11:00
joe-conigliaro cfbd8ab7e7 v2: parser - use defer to make sure scope is closed for filter 2020-02-27 17:00:24 +11:00
Alexander Medvednikov 06fc8a830b v2: fix a bug with `mod.const` 2020-02-27 03:30:17 +01:00
Alexander Medvednikov a5db9c3519 os: bring back write_bytes_at() 2020-02-27 00:41:05 +01:00
Alexander Medvednikov bb6098e2d3 v2: fix `type f fn...` 2020-02-27 00:18:14 +01:00
Alexander Medvednikov c51f464446 v2: fix `mod.Enum.val` and `x = .val` 2020-02-27 00:12:40 +01:00
Alexey 59d6a675dd
vdoc: trim result value 2020-02-26 23:18:31 +01:00
Major Taylor c72e505fe4
pg: use unsafe 2020-02-26 23:17:56 +01:00
Alexey 394d64bfd0
vdoc: remove duplicated code 2020-02-26 22:44:28 +01:00
Alexey ca9fa6407f
v2: distinguish public and private constants 2020-02-26 22:43:37 +01:00
yuyi 46ec400cb3
vdoc: sort function names 2020-02-26 20:46:09 +01:00
Alexey 70f085be18
v2: process unsafe statements 2020-02-26 20:45:03 +01:00
Alexey b1ea908b3b
fmt: process `defer` statement 2020-02-26 20:44:42 +01:00
Delyan Angelov 9d61f4fad1
benchmark: make measuring small snippets of code less verbose/easier to use 2020-02-26 16:29:46 +01:00
Alexander Medvednikov 857cbfb0d2 v2: short struct init syntax; .xxx enum checks; unions; assert 2020-02-26 15:51:05 +01:00
Nicolas Sauzede 30f905999a
math: add powf and other float32 functions 2020-02-26 13:31:54 +01:00
Delyan Angelov 7a72167eb7
strings: optimization of repeat + repeat_string() 2020-02-26 13:22:12 +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
joe-conigliaro c4e83faa57 compiler: allow a type to be used as a variant of multiple sum types 2020-02-26 15:15:38 +11:00
SleepyRoy bc3d1eaf6e
scanner: simplify and unify style 2020-02-25 22:58:51 +01:00
Alexander Medvednikov 0f8b2399ee fmt: fix new EnumVal 2020-02-25 19:59:47 +01:00
Alexander Medvednikov 28ee0f4ebe checker: check enums 2020-02-25 15:02:34 +01:00
SleepyRoy 05ed6c57b6
scanner: add check for wrong decimal numbers 2020-02-25 14:33:29 +01:00
Alexander Medvednikov f6c2b3a54b v2: enum fixes 2020-02-25 13:30:43 +01:00
Alexander Medvednikov 7e930c2a75 cgen: enum 2020-02-25 11:52:41 +01:00
lydiandy d4ffed89c0
add typeof test for fn (#3832) 2020-02-25 11:14:59 +01:00
penguindark 200f25a38f
ftoa in V (#3831) 2020-02-25 11:12:37 +01:00
SleepyRoy b17e49ad25
scanner: add check for bin/oct/hex with wrong digits 2020-02-25 11:11:12 +01:00
SleepyRoy f859c7f93e
scanner: fix special case - `e` or `E` at the end 2020-02-25 11:10:05 +01:00
Delyan Angelov b17ade1257
compiler: implement typeof(x) 2020-02-24 21:45:47 +01:00
SleepyRoy 794ee6fc9d
scanner: fix bin/oct/hex without number parts 2020-02-24 18:02:36 +01:00
lydiandy 3c0b73c2d6
sokol: fixes 2020-02-24 18:02:22 +01:00
SleepyRoy 96da5b33c0
scanner: fix special case - 0 at the end 2020-02-24 18:01:51 +01:00
spaceface777 ef8c1203b4
cleanup: replace C for loops with range 2020-02-24 17:55:16 +01:00
Alexey 5918946feb
fmt: process attributes 2020-02-24 17:18:14 +01:00
vitalyster a3a7e0531a
darwin: fix MacPorts build 2020-02-24 16:54:04 +01:00
Alexey 87ad5a96b9
v2: stringify multi-return types 2020-02-24 16:38:31 +01:00
Alexey 2bbb8526a3
fmt: process RangeExpr properly 2020-02-24 16:37:20 +01:00
SleepyRoy 7d2eb4f604
scanner: make `0o` prefix the only way to define octals 2020-02-23 23:43:04 +01:00
yuyi 9d2a60bb11
os: optimize os_windows.v 2020-02-23 20:46:13 +01:00
yuyi adb1d3f8c9
scanner: enable 0oxx to handle octals 2020-02-23 12:33:07 +01:00
Alexey 26fa833984
fmt: process assignment statement correctly 2020-02-23 11:22:07 +01:00
Alexander Medvednikov 2eb4f663d6 fix fmt test 2020-02-22 17:14:38 +01:00
Alexander Medvednikov dd29bfe4d2 fix fmt test 2020-02-22 17:07:03 +01:00
Alexander Medvednikov d510cd1e0d fmt: else, for in 2020-02-22 16:59:50 +01:00
Alexander Medvednikov 5fef8390a1 fmt: assoc 2020-02-22 14:39:25 +01:00
Alexander Medvednikov cd41967aa1 fmt: struct pub/mut fields, map init 2020-02-22 14:13:22 +01:00
joe-conigliaro b250ded3fa v2: fix typo & remove unneeded field 2020-02-22 23:08:14 +11:00
joe-conigliaro 30c8a5a010 v2: temp const fix 2020-02-22 23:04:56 +11:00
Alexander Medvednikov 6f577321f1 checker: fix build 2020-02-22 12:58:16 +01:00
Alexander Medvednikov e459e6d24a checker: remove unnecessary exits 2020-02-22 12:57:18 +01:00
yuyi 1a1aa267b7
vlib: remove malloc unsafe warning 2020-02-22 12:41:24 +01:00
Alexander Medvednikov 3c3ca1e61f fmt: fix test 2020-02-21 22:56:50 +01:00
joe-conigliaro 15c288b444 v2: small type cleanup 2020-02-22 08:50:21 +11:00
yuyi b325320f29
os: minor fixes 2020-02-21 20:14:01 +01:00
Alexander Medvednikov 7acf8efde3 fmt: fix import alias 2020-02-21 20:12:55 +01:00
Alexander Medvednikov 9be87d03f5 type_to_str: fix imported types 2020-02-21 19:56:37 +01:00
Alexander Medvednikov e0c6766a79 make "unreachable code" a warning in non-prod builds 2020-02-21 18:55:18 +01:00
Alexander Medvednikov 1d90c1cbbf nice 2020-02-21 18:15:41 +01:00
Alexander Medvednikov 4c95e59d5c fmt, doc: &; update 0.2 roadmap 2020-02-21 18:13:34 +01:00
Alexander Medvednikov 9e6773cba8 fmt: optionals; none 2020-02-21 17:52:20 +01:00
Alexander Medvednikov d075be73e8 fmt: single line if 2020-02-21 16:48:45 +01:00
yuyi 15a2927f09
optimize table.all_test_function_names 2020-02-21 16:29:41 +01:00
Alexander Medvednikov e9931e6f84 fmt: wrap_long_line() 2020-02-21 16:14:15 +01:00
Alexander Medvednikov 728aeb8092 fmt: wrap long lines 2020-02-21 15:32:48 +01:00
Alexander Medvednikov b309e7d0e5 type_to_str() 2020-02-21 14:47:42 +01:00
Alexander Medvednikov 6dac2edeef checker: is_number() 2020-02-21 13:44:03 +01:00
yuyi 527377dc86
fix os_test.v 2020-02-21 12:24:13 +01:00
Delyan Angelov d90a291c5e
ui: cleanup warnings from glm module 2020-02-21 12:20:59 +01:00
ka-weihe 6b706a0c99
Add FastestHash to cheaders.v 2020-02-21 12:20:03 +01:00
joe-conigliaro 8bb8b7d76e v2: add ability to store extra information with Type such as optional 2020-02-21 21:44:06 +11:00
Alexey 8677a5981c
os: use unified way to deprecate functions 2020-02-20 23:00:02 +01:00
Delyan Angelov 88b402fcf8
bugfix: v should not panic when encountering a file that consists only of comments 2020-02-20 22:59:47 +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 ab8d883fee fix wyhash.h 2020-02-20 18:45:44 +01:00
Alexander Medvednikov 5d5373764e embed wyhash.h 2020-02-20 18:38:05 +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
Alexander Medvednikov e35f8e9e23 checker: return errors 2020-02-20 17:05:16 +01:00
Alexander Medvednikov 296e736f5b checker: minor fixes 2020-02-20 16:16:44 +01:00
joe-conigliaro 72bbec89a9 v2: fix error in checker, continue instead of break 2020-02-21 00:20:08 +11:00
joe-conigliaro 6f7c103e50 v2: checker use kind instead of idx 2020-02-20 23:27:23 +11:00
joe-conigliaro e7e2c68d09 v2: allow type with str method to be used as fn string argument 2020-02-20 23:18:55 +11:00
Alexander Medvednikov c099cd8bf6 pratt: fix precedence 2020-02-20 12:59:05 +01:00
Alexander Medvednikov 0074976636 checker: exit if there are errors 2020-02-20 12:05:53 +01:00
yuyi 8be07194c7
string: fix capitalize 2020-02-20 11:33:38 +01:00
yuyi d51019dd77
unify vexe_path 2020-02-20 11:33:01 +01:00
joe-conigliaro fcd97f513a v2: module/type/fn name fixes, compile fixes 2020-02-20 21:13:18 +11:00
joe-conigliaro aab1045045 v2: reorder types idxs, > string defined with v struct. rm unresovled 2020-02-20 11:39:59 +11:00
penguindark d2cb5ad725
math.bits: make certain functions public + small fixes 2020-02-20 01:31:42 +01:00
Alexander Medvednikov 92e3e48bce v2: checker: [] and in 2020-02-19 21:13:42 +01:00
Alexander Medvednikov e30bd04579 fix fmt test 2020-02-19 19:57:21 +01:00
Alexander Medvednikov ec3d67c19f checker: print multiple errors; none 2020-02-19 19:54:42 +01:00
SleepyRoy d91945cc99
parser: some pure logic code simplifications 2020-02-19 19:43:57 +01:00
Alexander Medvednikov 31b74f02b6 doc: handle submodules 2020-02-19 16:21:46 +01:00
Alexander Medvednikov 092c09d81f vdoc using the new parser 2020-02-19 16:13:34 +01:00
yuyi 391da0ba07
string: optimize starts_with and ends_with 2020-02-19 15:18:09 +01:00
joe-conigliaro e4179c0008 v2: more array init & index expr fixes 2020-02-20 00:34:44 +11:00
joe-conigliaro 478c48cd6f Merge branch 'master' of https://github.com/vlang/v 2020-02-19 21:45:45 +11:00
joe-conigliaro 69634c60b3 v2: start to fix index expr for map/array/fixed array 2020-02-19 21:45:06 +11:00
joe-conigliaro 42399d24d9 v2: fix index expr for fixed array & map 2020-02-19 21:39:30 +11:00
Alexander Medvednikov 082acfad49 v2: fix more ast positions 2020-02-19 11:31:33 +01:00
Alexander Medvednikov bc11419ff9 v2: fix for position and check 2020-02-19 11:06:36 +01:00
joe-conigliaro 042bce4b6c v2: dont preifx C fns with module & add todo 2020-02-19 18:08:08 +11:00
joe-conigliaro 83bfd0805e v2: prefix functions with module, except in main & builtin 2020-02-19 17:16:38 +11:00
joe-conigliaro 9b271d1728 v2: remove left over testing printlns 2020-02-19 16:06:16 +11:00
joe-conigliaro f91bded9b3 v2: add missing table/modules.v 2020-02-19 13:11:55 +11:00
joe-conigliaro b62a90a212 v2: module/import fixes, use parent_idx instead of parent ptr to remove need to preallocate types array 2020-02-19 13:09:35 +11:00
Alexey 200d3e6446
vfmt: process imports and module name 2020-02-18 22:35:14 +01:00
SleepyRoy aaf3ced750
parser: add type check for +=, -=, *=, /= 2020-02-18 22:14:52 +01:00
Alexander Medvednikov 19520ccf4e v2: for in checker 2020-02-18 21:59:42 +01:00
Alexey 39c4842bf9
vfmt2: skip arg type if possible 2020-02-18 21:02:43 +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
Delyan Angelov 290feaac51
vfmt2: allow running the new vfmt with 'v fmt -2' 2020-02-18 20:00:06 +01:00
Delyan Angelov b991ca4ebc
vfmt2: more convenient way to test multiple files for correct formatting 2020-02-18 17:54:14 +01:00
Alexander Medvednikov 4e9bfa95ec v2: the new parser can now parse the entire V compiler 2020-02-18 17:45:59 +01:00
Alexander Medvednikov 4de8d3ae8c parser: short struct syntax for all structs 2020-02-18 16:25:09 +01:00
joe-conigliaro 67756c53dc
v2: more cleanup (#3765) 2020-02-18 18:58:20 +11:00
yuyi 392eb1fb55
fix vlib/compiler/aparser.v (#3764) 2020-02-18 18:45:04 +11:00
Alexander Medvednikov ed01ab763c v2/vfmt2: more fixes 2020-02-18 03:28:41 +01:00
joe-conigliaro ecb0af36b3
v2: cleanup old & unused code, add new simple tmp vars in cgen 2020-02-18 03:17:21 +01:00
vitalyster 2e1dbd9f5a
windows: use %USERPROFILE% for os.home_dir() 2020-02-18 02:12:10 +01:00
Alexander Medvednikov 2ea2fed8a5 vfmt: minor clean up 2020-02-17 22:52:48 +01:00