Commit Graph

2348 Commits (e32cbfcca7d838795fc7d872d07e54d140b9344c)

Author SHA1 Message Date
joe-conigliaro 7311db60a0 compiler: vargs - for loop support & indexing / dot fixes 2019-09-30 17:11:12 +03:00
Alexander Medvednikov 5ac62bbb75
Update README.md 2019-09-30 15:45:05 +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
joe-conigliaro 918edad525 crypto: make sum methods safe 2019-09-29 16:44:52 +03:00
Don Alfons Nisnoni a1f0e940b7 add .vrepl_temp.v to .gitignore and fix some grammar 2019-09-29 13:58:37 +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 cbf5de7c8f
PR template: add a test if you fixed a bug 2019-09-29 04:28:57 +03:00
Alexander Medvednikov d68e31a863 fix os_win.v 2019-09-29 04:16:15 +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
Dongliang Ma 46ac22f3e5 vget fixes
* refactor(tools): remove trailing spaces in vget.v

* refactor(tools): fix mix tabs and spaces

* fix(tools): vget should exit non-zero when call with invalid arguments

* refactor(tools): extract vmodules directory create and chdir logic

* feat(tools): add travis-ci check to vget
2019-09-28 14:21:52 +03:00
sunnylcw 4b03abdaff compiler: enable FreeBSD's cflags for freetype & glfw 2019-09-28 14:18:04 +03:00
Delyan Angelov 366c50674c tooling: add tools/compare_v_performance_between_commits
easily compare v performance/size across commits.

* fix eprintln on linux (it now uses stderr, and flushes it).

* flag: cleaner usage information.
2019-09-28 14:17:16 +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
hazohelet fd2d9c214c f64: fix .eq() 2019-09-28 14:04:03 +03:00
joe-conigliaro fbd414fd2f crypto.md5: fix u64 modulus operation 2019-09-28 14:02:57 +03:00
joe-conigliaro 0fc9ada0aa parser: use actual blank ident for consts 2019-09-28 13:59:54 +03:00
Delyan Angelov 6bba4b1be0 string: document the tradeoffs for V strings 2019-09-28 13:54:30 +03:00
Alexander Medvednikov 60eb73adb4 array: single element array test 2019-09-28 13:52:38 +03:00
luoheng 5348c667cc compiler/parser: fix single element in array error 2019-09-28 13:50:30 +03:00
lutherwenxu a4d2633a33 string: Properly null-terminate repeated string 2019-09-28 13:31:12 +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 a5391c8882 string.repeat: re-write without a libc function call 2019-09-28 02:51:42 +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
unknown-v 7c83c0569f make.bat: del v3.exe after gcc bootstrap 2019-09-27 21:42:42 +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
Alvydas Vitkauskas 931b71c428 string: improve repeat() 2019-09-27 15:49:09 +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