Commit Graph

851 Commits (e5b0478e19fede5f8f6729d3b5fb0a11399709b5)

Author SHA1 Message Date
hazohelet f35f6083cd add C default comparison operator macros for future bitwise comparisons 2019-10-01 21:21:05 +03:00
hazohelet 30ca149be7 table.v: fix typo 2019-10-01 18:08:10 +03:00
joe-conigliaro 7fd2ef975b parser: add v error if assigning var to blank identifier `_`
also fix C warn & double semicolon
2019-10-01 15:40:11 +03:00
Delyan Angelov b7d1a175a8 compiler: print relative paths for user code 2019-10-01 15:39:19 +03:00
joe-conigliaro 9e7ee40477 compiler: fix expression in multiple return 2019-10-01 14:53:52 +03:00
joe-conigliaro 8fe0e88c05 parser: fix multi return with multiple blank identifiers 2019-10-01 14:49:15 +03:00
joe-conigliaro 282cd44cec compiler: variadic fn - improve error, fix bug when only arg is varg 2019-10-01 14:48:19 +03:00
Delyan Angelov f332e858d1 compiler: enhanced wording of obsolete import const error message 2019-10-01 14:43:26 +03:00
Alexander Medvednikov 841d824216 builtin: a very early version of the hashmap 2019-10-01 06:20:50 +03:00
Alexander Medvednikov aaba7fdb29 download vlib if it is missing 2019-09-30 23:56:53 +03:00
Alexander Medvednikov 223032f0ce V 0.1.21 2019-09-30 22:39:52 +03:00
Alexander Medvednikov fa7e0ce58a make `v test v` work in any directory 2019-09-30 21:58:02 +03:00
joe-conigliaro 7311db60a0 compiler: vargs - for loop support & indexing / dot fixes 2019-09-30 17:11:12 +03:00
joe-conigliaro f7c8e923c0 compiler/lang: add variadic function args support 2019-09-30 13:46:50 +03:00
joe-conigliaro 5fb3c0e3a8 compiler: add error when embedding struct in itself 2019-09-30 13:41:11 +03:00
joe-conigliaro a5b4ed2909 compiler: typo in module name erroneously reports "import cycle" 2019-09-30 13:40:19 +03:00
Delyan Angelov e72fe25224 compiler: more precise 'declared and not used' error positioning
* compiler: extract and cleanup error handling functionality into its own file compiler/compile_errors.v

* compiler: implement p.error_with_token_index and p.warn_with_token_index and use them. Fix tests.

* tools/performance_compare: add a 'Source lines in compiler/' line

* MSVC does not have STDOUT_FILENO nor STDERR_FILENO ...
2019-09-29 20:37:39 +03:00
hazohelet 6d483c0a56 parser: float1 == float2 uses machine epsilon by default 2019-09-29 18:27:53 +03:00
hazohelet 21f9dc6b7c cheaders: add DEFAULT_EQUAL for future float eqbit() 2019-09-29 17:39:38 +03:00
Alexander Medvednikov 83022a2478 fix pushing to mutable array args 2019-09-29 17:02:28 +03:00
Alexander Medvednikov ee8ff39454 rename ModPath to v_modules_path; do not allow long variable names without _ 2019-09-29 05:34:17 +03:00
Delyan Angelov 8b8cd13929 parser: add some infrastructure for more specific errors
* compiler: change s.line_nr in just one place, so that s.last_nl_pos will be updated in tandem too.

* Cleanup spurious spaces.

* Store ScannerPos info inside the cached tokens.

Use the stored information when errors are encountered.

* Fix #2079 ( cannot use type...in assignment ).

* do not store scannerpos per each token, instead rescan the source once on error to get the position.

* compiler: implement highlighting for errors. Use only line/col info stored in the cached tokens.

* fixing building on windows

* Split can_show_color to _nix and _win files.
2019-09-29 04:33:23 +03:00
Alexander Medvednikov a52662fca0 do not allow duplicate methods; fix os_win.v; minor fixes and docs 2019-09-29 04:13:32 +03:00
Alexander Medvednikov d482b1f824 struct capitalization: fix the rest of tests 2019-09-28 22:26:44 +03:00
Alexander Medvednikov ed93185cb7 fix base64 test 2019-09-28 22:23:22 +03:00
Alexander Medvednikov 9eac16b976 parser: struct names must be capitalized 2019-09-28 22:20:34 +03:00
Delyan Angelov a4cbe78d97 compiler: streamline main function handling
* compiler: streamline C main function generation

* fix most tests

* compiler: fix for 'go update()' in graph.v . More precise parser error messages.

* Fix temporarily examples/hot_reload/message.v by using os inside it (os.clear).

* Make graph.v easier to quickly modify by defining y outside the loop.

* Fix failure of /v/nv/compiler/tests/defer_test.v when run with 'v -g' (#line directive was not on its own line, but right after } ).

* Do not pass the os.args to tests, even if the tests import os (they are more stable when run in a controlled environment).

* fix declared and not used in the js backend.

* fix js main => main__main too.
2019-09-28 20:42:29 +03:00
Delyan Angelov 0160c7a89d compiler: change s.line_nr in just one place in tandem with s.last_nl_pos
* compiler: change s.line_nr in just one place, so that s.last_nl_pos will be updated in tandem too.

* v test v: run repl tests again

* Show gcc version in both windows gcc cases in a) github actions, and b) travis .

* adding inline to is_name_char is_nl and contains_capital does not help actually, just increases slightly binary size.

* Cleanup spurious spaces.
2019-09-28 20:41:11 +03:00
joe-conigliaro ed3a4961d0 compiler: blank identifier for loops. dont declare any variables 2019-09-28 19:53:56 +03:00
Swastik Baranwal 7952d591b9 parser: Update Division or Modulo by Zero Message 2019-09-28 19:52:52 +03:00
Alexander Medvednikov d59d921e84 disable the vget test for now 2019-09-28 15:18:48 +03:00
Alexander Medvednikov e19b630ab1 disable the vget test for now 2019-09-28 15:00:51 +03:00
Alexander Medvednikov 0bfb88e2e6 fix the vget test 2019-09-28 14:58:24 +03:00
Alexander Medvednikov dc28c787d1 travis: re-write the vget test in V 2019-09-28 14:40:09 +03:00
sunnylcw 4b03abdaff compiler: enable FreeBSD's cflags for freetype & glfw 2019-09-28 14:18:04 +03:00
lutherwenxu 5c79c0e743 compiler: enforce reserved keywords replacement
* compiler: Enforce reserved keywords replacement on empty value initialization

* compiler: Add test for reserved keywords enforcement

A new struct has been introduced in the tests that contains all C reserved keywords that are not reserved in V. Some read and write are tested too.
2019-09-28 14:13:09 +03:00
joe-conigliaro 0fc9ada0aa parser: use actual blank ident for consts 2019-09-28 13:59:54 +03:00
luoheng 5348c667cc compiler/parser: fix single element in array error 2019-09-28 13:50:30 +03:00
joe-conigliaro 802da8f31d compiler: clean up. remove new_parser_string_id (#2140)
* clean up

* fix comment

* fix comment
2019-09-28 04:56:05 +03:00
Alexander Medvednikov 1821dac795 compiler: remove old generics hack; disable generics and repl tests for
now
2019-09-28 02:29:04 +03:00
Alexander Medvednikov dd58298500 compiler: fix interfaces after the recent tokens change 2019-09-27 21:01:08 +03:00
unknown-v 14a8d4ae3c parser: replace "≠" with "!=" 2019-09-27 18:55:30 +03:00
joe-conigliaro ad99b82930 compiler: make vgen use strings.Builder & allow parser creation from string 2019-09-27 14:02:01 +03:00
Alexander Medvednikov 8cbfd7a9da parser: partial interface fix 2019-09-27 06:03:54 +03:00
Alexander Medvednikov 8f9c0b621e parser: fix columns in errors 2019-09-27 05:27:57 +03:00
Alexander Medvednikov da43267e09 parser: cached tokens (second step) 2019-09-27 04:01:12 +03:00
Alexander Medvednikov a45255337d bring back "parser: cache tokens (first step)"
This reverts commit 0fcdd7db35.
2019-09-27 04:00:48 +03:00
Alexander Medvednikov 367f8d6130 solaris: add -lm 2019-09-27 00:53:57 +03:00
Alexander Medvednikov 74bbf592d1 solaris: another fix 2019-09-27 00:30:41 +03:00
Alexander Medvednikov 107e9107c8 solaris support 2019-09-27 00:23:27 +03:00
vitalyster 9834ccfcd9 windows: Unicode and IPv6 http/sockets
cleanup schannel implementation (drop NT4.0 compatibility, use unicode strings, etc)
restore http tests
fix socket test: it did not throw before
2019-09-26 22:54:15 +03:00
Delyan Angelov 22d91148ca compiler: passing -g3 adds mode debug info 2019-09-26 21:58:08 +03:00
joe-conigliaro 157ef46d5a parser: fix a few things in with blank ident 2019-09-26 14:09:59 +03:00
Alexander Medvednikov 0fcdd7db35 Revert "parser: cache tokens (first step)"
This reverts commit 8992707fbb.
2019-09-26 06:05:18 +03:00
Alexander Medvednikov 8992707fbb parser: cache tokens (first step) 2019-09-26 05:20:08 +03:00
Alexander Medvednikov 04e4018228 compiler: small fixes + some logic for freeing strings 2019-09-26 03:24:58 +03:00
Delyan Angelov ab291902d8 compiler: remove special case for http__init_module call
tmp fix until `fn init()` is supported
2019-09-25 23:28:51 +03:00
Delyan Angelov 3fbfc5fbd4 repl: tests show difference (in color where available) 2019-09-25 22:00:56 +03:00
joe-conigliaro d4bae356ba compiler/vlib: add error for no new vars in loop ("_,_") & remove "." from errors 2019-09-25 17:59:50 +03:00
joe-conigliaro 8974aa4513 compiler/vlib: change `_ :=` to `_ =` and disable `_ :=` 2019-09-25 15:10:45 +03:00
joe-conigliaro 746655c1d5 compiler: re assignable blank identifier `_` & no longer a variable 2019-09-25 14:53:44 +03:00
Alexander Medvednikov 55d09d23b4 compiler: rename cerror() to verror(); some small optimizations 2019-09-24 19:38:04 +03:00
joe-conigliaro 3317d7fd7c compiler: clean up multiple returns and verify number of returned values 2019-09-24 13:14:04 +03:00
joe-conigliaro a44a03f9a5 compiler: fix mark_var_used() 2019-09-24 06:18:06 +03:00
Alexander Medvednikov d74c91616f remove all p.log()'s 2019-09-23 23:18:55 +03:00
Alexander Medvednikov d2d75f3824 parser: do not allow "int?", only "?int" 2019-09-23 23:17:06 +03:00
Alexander Medvednikov f27f3515ae compiler: optimize mark_var_used() etc 2019-09-23 23:06:40 +03:00
Alexander Medvednikov 8d52d877fb compiler: free local_vars 2019-09-23 22:16:52 +03:00
Alexander Medvednikov bf1ee28194 ui: Objective-C @interface support for Cocoa; minor clean-ups 2019-09-23 15:54:17 +03:00
joe-conigliaro fbc19311b5 compiler: clean up get_file_import_table 2019-09-23 15:12:23 +03:00
joe-conigliaro 422ba3a3ce compiler: unused module check always 2019-09-23 15:11:05 +03:00
joe-conigliaro 23c84516e2 compiler: error on unused imports 2019-09-23 13:42:20 +03:00
joe-conigliaro 090ca27b15 compiler: improve module typo error message 2019-09-23 13:40:18 +03:00
joe-conigliaro 23e30962b9 compiler: multiple returns - add test & fix use with array/map 2019-09-23 13:39:35 +03:00
joe-conigliaro 60d932e57d compiler: functions with multiple returns 2019-09-23 05:45:19 +03:00
Alexander Medvednikov b4207e1be7 compiler: allow "u64_var == 0" without casting the const literal 2019-09-23 02:14:10 +03:00
Delyan Angelov a585c8c22c compiler: compile thirdparty object files using module specific flags 2019-09-23 00:51:59 +03:00
Delyan Angelov 7421781150 CI: split jobs into more steps; compiler: fix "v test v" with tcc 2019-09-22 17:24:15 +03:00
Delyan Angelov 049e228003 compiler: pass -cflags to thirdparty building stage too 2019-09-22 10:56:02 +03:00
Alexander Medvednikov cec2173381 array: fix memory bug with mutable array args 2019-09-22 10:33:47 +03:00
Alexander Medvednikov 6a788bb364 testing: do not allow fn main in tests and make sure there is at least one test fn 2019-09-22 09:49:33 +03:00
luoheng f1d5f8e2bf parser: allow `!` only with bools 2019-09-21 18:21:45 +03:00
Alexander Medvednikov a232b215a7 double quotes for denoting strings 2019-09-21 17:18:02 +03:00
joe-conigliaro b1e1536d56 compiler: fix live reload on win with auto completed filename `.\file.v` 2019-09-21 17:08:48 +03:00
Nicolas Sauzede 56e880117e fix windows printf output to match standard unix line buffering 2019-09-21 01:29:11 +03:00
Alexander Medvednikov 90e26a34c5 scanner: better interpolation names + disable vweb html test for now 2019-09-21 01:27:13 +03:00
Alexander Medvednikov 6ebd62020a double quote 2019-09-21 01:23:53 +03:00
Alexander Medvednikov ecc8728643 vweb: allow running vweb apps from a different directory 2019-09-21 01:17:52 +03:00
Alexander Medvednikov 79abc0c16f vweb: fix html example 2019-09-21 01:10:37 +03:00
Henrixounez ffcff9ebd4 builtins: ustring comparisons, concatenation and other functions 2019-09-20 19:07:38 +03:00
vitalyster f1bb25bfaf windows: Unicode input in REPL 2019-09-20 17:03:13 +03:00
Delyan Angelov f042dfb861 compiler: fix line numbers in unused variable error messages 2019-09-20 13:42:37 +03:00
joe-conigliaro f657d70a67 typo detection: only check fn variables in same or higher scope 2019-09-20 12:23:42 +03:00
Alexander Medvednikov 9a7fface7d make the unused variable error a warning in non-production builds 2019-09-19 19:50:43 +03:00
Alexander Medvednikov b6bb6a5a60 do not allow `go print()` 2019-09-19 18:02:31 +03:00
Alexander Medvednikov c8a781bf77 disable -compress on windows 2019-09-19 16:05:17 +03:00
Alexander Medvednikov afb372bbdf -compress option 2019-09-19 15:52:38 +03:00
Alexander Medvednikov ad6ab39287 table: use ?Var in find_const() 2019-09-19 14:19:44 +03:00
Alexander Medvednikov f629069572 autofree: free strings 2019-09-19 14:04:27 +03:00
joe-conigliaro 153c6d5416 compiler: fix `v up` when run from dir with space in name 2019-09-19 13:11:25 +03:00
Alexander Medvednikov a94c1556ce array: remove temporary repeat2() 2019-09-19 05:22:24 +03:00
Alexander Medvednikov cb31eeec55 compiler: first step to require explicit definition of imported C fns 2019-09-19 05:16:25 +03:00
Alexander Medvednikov 13e4c79f58 table: use optional in find_method() 2019-09-19 04:56:22 +03:00
vitalyster 377956e969 js: no need to generate ES6 classes 2019-09-19 00:03:54 +03:00
Alexander Medvednikov 74b82b688c table: simplify find_method() 2019-09-18 19:48:28 +03:00
Danil-Lapirow b0092235fc parser: fix a more complicated "in" usage 2019-09-18 16:13:22 +03:00
joe-conigliaro 695d4018ea compiler: let attributes work with pub functions 2019-09-18 15:32:55 +03:00
Alexander Medvednikov 040d03912b table: use an optional for find_fn() 2019-09-18 15:06:34 +03:00
Alexander Medvednikov 1c6cbdace5 make sure "v test v" is run in the V repo 2019-09-18 14:43:44 +03:00
Alexander Medvednikov d180324413 find_field: use optional 2019-09-18 14:28:11 +03:00
Alexander Medvednikov d1500511e6 "none" keyword for optionals + more memory fixes 2019-09-18 14:15:10 +03:00
Alexander Medvednikov ecffa8e1d9 v.js: fix for .. 2019-09-17 22:21:44 +03:00
Alexander Medvednikov 1796869da7 V 0.1.20 2019-09-17 21:48:24 +03:00
vitalyster 52c5f0172e compiler: always define _UNICODE and UNICODE on Windows 2019-09-17 14:56:32 +03:00
Alexander Medvednikov 0a2f7a6ba7 fix tests 2019-09-17 13:37:25 +03:00
Alexander Medvednikov 1397d532c6 compiler: check if mutable receivers are modified 2019-09-17 13:10:43 +03:00
Alexander Medvednikov 19b04d5427 math: fix const warnings 2019-09-16 22:49:18 +03:00
Delyan Angelov 083d747302 V.js: on linux -lm is needed 2019-09-16 22:00:59 +03:00
Alexander Medvednikov a81656568b travis: test JS backend 2019-09-16 19:02:16 +03:00
Alexander Medvednikov c76d09f9a5 make V.js compile 2019-09-16 18:31:13 +03:00
BigBlack 3e52984e88 compiler: another C function call fix 2019-09-16 18:28:20 +03:00
Delyan Angelov 7cf7215557 testing: always show benchmarks 2019-09-16 18:27:55 +03:00
Delyan Angelov a45895a3af new benchmark module + make the tests use it 2019-09-16 17:29:06 +03:00
hazohelet 3325775944 compiler: add android to supported platforms 2019-09-16 17:16:24 +03:00
joe-conigliaro 155fecadb7 compiler: fix empty structs 2019-09-16 14:44:12 +03:00
Alexander Medvednikov 57cfdeeaf0 Revert "os: fix get_line in windows"
This reverts commit 279f7d57cb.
2019-09-16 13:54:30 +03:00
BigBlack 279f7d57cb os: fix get_line in windows 2019-09-16 13:43:59 +03:00
joe-conigliaro cbd4478b5e compiler: fix msvc empty struct & enable travis msvc 2019-09-16 13:01:07 +03:00
Delyan Angelov 854de4e7e0 repl: add more stats and tests; compiler: tcc fixes 2019-09-16 00:41:12 +03:00
Alvydas Vitkauskas ff4ef337da compiler: remove unreachable code 2019-09-16 00:40:31 +03:00
joe-conigliaro 5db25352e5 compiler: fix module typo detection 2019-09-15 20:39:48 +03:00
joe-conigliaro 075a8e5ccb compiler: improve typo detection 2019-09-15 20:07:12 +03:00
Alexander Medvednikov 0b81c5a3cb bring back `assert` outside of tests 2019-09-15 19:43:35 +03:00
Alexander Medvednikov 3db4d66824 operator | not defined on bool 2019-09-15 19:35:48 +03:00
Alexander Medvednikov 48c05b5a45 cgen: use *char in all functions with *char args to avoid warnings 2019-09-15 18:56:33 +03:00
Delyan Angelov 35f927e64e repl: add some timing statistics when running REPL test files 2019-09-15 18:08:16 +03:00
Alexander Medvednikov 849bef987c more C warnings fixed 2019-09-15 15:53:57 +03:00
Delyan Angelov e3bd72e8e2 travis: spawn 2 separate windows instances 2019-09-15 15:52:12 +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 897db23203 fix vhelp.v 2019-09-15 14:15:31 +03:00
Alexander Medvednikov bcf3dbf974 improve vhelp.v a bit 2019-09-15 14:08:40 +03:00
joe-conigliaro b71bb95f7d msvc: empty struct decl fix 2019-09-15 12:27:28 +03:00
joe-conigliaro f077fbd32d vlib: change `[0;n]` to `[0].repeat(n)` 2019-09-15 12:26:05 +03:00
Delyan Angelov 1d7b9a3b0b v up: on windows delete existing v_old.exe before renaming the new v.exe to it 2019-09-15 04:33:08 +03:00
Alexander Medvednikov 4a43c2fa1a Revert "compiler: pass -l flags without space (needed for tcc)"
This reverts commit 982a162fbf.
2019-09-15 03:55:56 +03:00
Alexander Medvednikov 5cc81b91cb JavaSript backend (early stage) 2019-09-15 03:49:57 +03:00
Delyan Angelov 982a162fbf compiler: pass -l flags without space (needed for tcc) 2019-09-14 23:55:12 +03:00
Alexander Medvednikov 3d2c266980 compiler: -autofree flag 2019-09-14 18:54:55 +03:00
Alexander Medvednikov 682eedce59 compiler: remove the temporary windows check 2019-09-14 18:34:59 +03:00
Henrixounez c604a5c02f compiler: no free on stack allocated array 2019-09-14 13:40:59 +03:00