Commit Graph

754 Commits (dce3275df47ef1debf4e379fa33466d8b5fba975)

Author SHA1 Message Date
Alexander Medvednikov 6a951751f7 compiler: fix building_v 2019-10-14 03:56:53 +03:00
Alexander Medvednikov b237ffcf09 Revert "move compiler/main.v to v.v"
This reverts commit 3748de8736.
2019-10-14 03:48:36 +03:00
Alexander Medvednikov 3748de8736 move compiler/main.v to v.v 2019-10-14 03:38:06 +03:00
Alexander Medvednikov 61af044316 Revert "parser: fix programs without fn main"
This reverts commit bf21108fdb.
2019-10-13 17:55:12 +03:00
Alexander Medvednikov b1806b57d8 tests: no main fn 2019-10-13 17:50:55 +03:00
joe-conigliaro a90427a663 parser: fix variadic function unused var C error 2019-10-13 16:58:54 +03:00
Delyan Angelov 53c64abdeb compiler: make compiler an ordinary vlib/compiler module
* Move compiler/ under vlib/compiler/ .

* Add a minimal compiler/main.v driver program.

* Cleanup compiler/main.v .

* Make most compiler tests pass again.

* Apply the fix by @joe-conigliaro , so that the rest of the compiler tests are fixed too.

* Thanks to @avitkauskas, now the vlib/vcompiler/tests/str_gen_test.v test does not need to be special cased anymore.

* Reapply @joe-conigliaro fix for vgen.
2019-10-13 16:37:43 +03:00
Alexander Medvednikov ae2af4c36d parser: a small immutable field fix 2019-10-13 01:50:19 +03:00
Nicolas Sauzede 1292163637 runtime: add windows support for nr_cpus() 2019-10-13 01:01:15 +03:00
Alexander Medvednikov 432e074b4e fix complex_test.v 2019-10-12 22:39:18 +03:00
Alexander Medvednikov a76165828b snake_case consts 2019-10-12 22:36:14 +03:00
Alexander Medvednikov 81f8b26127 os.path_separator 2019-10-12 22:18:19 +03:00
Vitalie Ciubotaru ae6a426689 bitfield: remove workaround in assignment operations 2019-10-12 22:03:18 +03:00
joe-conigliaro a06e2298f0 compiler: detect and error on public init function & remove empty init functions 2019-10-12 13:54:58 +03:00
Don Alfons Nisnoni 5ef2c947f7 szip: use `&zip` instead of `*zip` (#2301) 2019-10-12 12:46:33 +03:00
joe-conigliaro 40156392f8
compiler: cached modules - windows fixes & organise cached module path (#2302)
compiler: cached modules - windows fixes & organise cached module path (#2302)
2019-10-12 16:41:41 +11:00
joe-conigliaro dd053d79b0 vlib/examples: fix gl/glfw/gg examples. rename init functions 2019-10-12 06:03:15 +03:00
Alexander Medvednikov b107b4f1e5 modules: create the modules directory if it's missing, use cache/ 2019-10-12 05:04:59 +03:00
Alexander Medvednikov 4c91a5c94b module caching: generate type aliases 2019-10-12 04:09:37 +03:00
Alexander Medvednikov 4cd9099f74 disable $if for headers for now 2019-10-12 03:49:36 +03:00
Alexander Medvednikov 6db7518189 make $if work with includes: skip the body if the target is different 2019-10-12 03:48:32 +03:00
joe-conigliaro 51388fea75 compiler: module init function & init consts for cached modules 2019-10-12 01:17:37 +03:00
Don Alfons Nisnoni c7e47e6884 array: minor clean up 2019-10-12 00:06:30 +03:00
Delyan Angelov 2b087dbf95 backtraces: add source line numbers too on linux
* Add source line numbers to backtraces on linux.

* Fix -g (broken after token caching).

* reset the #line directives after all the v code is compiled

* cleanup p.cgen.line setting inside p.next() .

* Support windows filepaths like "C:\Users\travis\build\vlang\v\v.exe.tmp.c" inside generated #line directives.

* Try to diagnose better windows-gcc failing.

* Revert "Try to diagnose better windows-gcc failing."

* implement and use cescaped_path/1 .

* Use cescaped_path/1 consistently throughout compiler/ .
2019-10-12 00:04:42 +03:00
Alexander Medvednikov 9193242a76 fix runtime module test 2019-10-11 14:16:02 +03:00
Alexander Medvednikov af46bf515f glfw: bring back 64 bit glfw3.dll 2019-10-11 13:47:56 +03:00
Alexander Medvednikov 52c2fa44b8 runtime: nr_cpus() 2019-10-11 13:47:56 +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
Don Alfons Nisnoni 942c56ca95 array: add reduce() method 2019-10-11 04:12:40 +03:00
Alexander Medvednikov e1dd4c19b5 compiler: cache modules if they are not built yet 2019-10-10 22:53:59 +03:00
vitalyster a5ccc4673b http: handle and print socket errors 2019-10-10 20:24:36 +03:00
vitalyster f86a52aae6 socket: reuse socket parameters in addrinfo hints 2019-10-10 20:09:43 +03:00
Delyan Angelov e61dce6441 freetype: fix compiler warning about ctx._draw_text 2019-10-10 20:09:19 +03:00
vitalyster e64609387d term: colors on Windows console
* isConsole moved to builtin is_atty function
* Windows console initialization moved to builtin.init
2019-10-10 20:08:36 +03:00
joe-conigliaro f8fefd5a60 urllib: rem underscore methods from; add strings index_bytes 2019-10-10 20:04:11 +03:00
Delyan Angelov f3abb9e682 fix 'v -debug examples/hello_world.v' 2019-10-10 20:02:32 +03:00
Alexander Medvednikov 9385ed27ae fix v.js 2019-10-10 01:27:16 +03:00
Alexander Medvednikov 1f6535afb0 array/map: remove _get(), _push() etc 2019-10-10 01:15:19 +03:00
Alexander Medvednikov 2411b8d1e7 module cache fixes; do not allow function names starting with _ 2019-10-10 00:44:26 +03:00
vitalyster 0796e1dd69 socket: no need to initialize WinSock on each request 2019-10-09 21:01:31 +03:00
Alexander Medvednikov b1da59845e array: fix initialization of empty fixed size arrays 2019-10-09 15:26:30 +03:00
Alexander Medvednikov 29f578d172 cc: bring back os.rm() 2019-10-09 07:02:45 +03:00
Alexander Medvednikov 7690b58691 remove experimental os2 test 2019-10-09 06:41:55 +03:00
Alexander Medvednikov a9a73d9315 caching modules: almost there 2019-10-09 06:35:58 +03:00
Unknown User c1eb714a7f bitfield: change `[0;n]` to `[0].repeat(n)` 2019-10-08 13:24:02 +03:00
Unknown User 6edc25f512 pg: remove unused imports 2019-10-08 13:23:39 +03:00
Don Alfons Nisnoni fecf3f19c3 array: add filter() method 2019-10-08 13:23:17 +03:00
vitalyster e10848e0d5 windows: read console with ReadConsole when it is not redirected 2019-10-08 12:29:09 +03:00
Delyan Angelov 60d4f47f7a improve crash diagnosis/detection when a test segfaults 2019-10-08 02:34:55 +03:00
Delyan Angelov ac5241b5bd compiler: implement -stats option for running a _test.v file
* Draft implementation of `v -stats file_test.v` .

* compiler: call stuff in vlib/benchmark/tests/always_imported.v, when doing `v -stats file_test.v`

* Nicer looking output from 'v -stats file_test.v' .

* Tweak colors and layout of -stats file_test.v .

* Fix a hardcoded path in compiler/main.v .

* Show colorized OK/FAIL for the examples in 'v test v' too.

* Add some comments about the purpose of the methods inside vlib/benchmark/tests/always_imported.v .

* when fails are 0, do not colorize their number at all.
2019-10-07 08:51:26 +03:00
Alexander Medvednikov f1923d454c parser: make verbose mode less verbose 2019-10-07 01:25:53 +03:00
Henrixounez 5acadbab32 readline: optional return, automatic raw mode and standalone functions 2019-10-06 16:28:41 +03:00
Enrico Lefass b0573bd4e4 time: add new public format function ddmmy() 2019-10-06 16:24:37 +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 65aafb3cf1 3d arrays are not supported yet 2019-10-06 04:18:55 +03:00
Alexander Medvednikov 6a0599b5f4 raw strings with r'raw' 2019-10-06 04:11:08 +03:00
Alexander Medvednikov 735336e569 array: 2d and 3d test 2019-10-05 16:03:19 +03:00
joe-conigliaro 72ae12877e
remvoe dupe in main & fix js string.builder (#2233) 2019-10-05 18:07:10 +10:00
Alexander Medvednikov e14861694c another v.js fix 2019-10-05 08:03:26 +03:00
Alexander Medvednikov ed99fc2d42 v.js: fix strings.Builder 2019-10-05 07:40:32 +03:00
Don Alfons Nisnoni 68bcf6830c array: add index() method 2019-10-04 23:07:19 +03:00
Alexander Medvednikov 52f4f4026b
compiler: cache modules 2019-10-04 15:48:09 +03:00
Alexander Medvednikov f45d3f07ed fix 3 last C warnings and make sure no new warnings are introduced 2019-10-04 05:49:41 +03:00
unknown-v b3805140ec Remove json_test.exp & json_test.lib 2019-10-03 02:00:11 +03:00
Swastik Baranwal 7d763e0776 fix js build 2019-10-02 15:46:08 +03:00
Alexander Medvednikov 5ba354fa2c `if a := foo() {` syntax for handling optionals 2019-10-01 22:57:38 +03:00
hazohelet 56e4ed1e6b compiler: float comparison uses machine epsilon by default 2019-10-01 22:38:36 +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 2ac80485c0 C backend: fix a couple of C warnings on Linux 2019-10-01 14:35:59 +03:00
Alexander Medvednikov 243626c7c1 readline: capitalize structs 2019-10-01 06:28:06 +03:00
Alexander Medvednikov 841d824216 builtin: a very early version of the hashmap 2019-10-01 06:20:50 +03:00
Alexander Medvednikov 2aa6ab71db darwin: no need to free the buffer 2019-09-30 23:29:53 +03:00
Tony Kostanjsek 39cfb1d6a6 darwin: resource_path() 2019-09-30 23:29:14 +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
joe-conigliaro 918edad525 crypto: make sum methods safe 2019-09-29 16:44:52 +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 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 ed93185cb7 fix base64 test 2019-09-28 22:23:22 +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
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
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
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
vitalyster a1e45e3247 darwin: use system ssl headers 2019-09-27 01:35:25 +03:00
Alexander Medvednikov 74bbf592d1 solaris: another fix 2019-09-27 00:30:41 +03:00
Alexander Medvednikov fcf8f7fc93 solaris: small fix 2019-09-27 00:24:15 +03:00
Alexander Medvednikov 107e9107c8 solaris support 2019-09-27 00:23:27 +03:00
Don Alfons Nisnoni fb4f14ba76 string: add repeat() method 2019-09-26 22:54:53 +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
joe-conigliaro 47da52b85b crypto.[sha256/sha512]: remove extraneous casts & use rotations from math.bits 2019-09-26 16:38:12 +03:00
joe-conigliaro c069525e8c crypto.[md5/rc4/sha1]: remove extraneous casts 2019-09-26 14:57:31 +03:00
joe-conigliaro f1f720cc78 pg: update optional return syntax 2019-09-26 14:23:29 +03:00
joe-conigliaro 896f978b94 crypto.aes: remove extraneous casts 2019-09-26 14:22:47 +03:00
joe-conigliaro a5ea7e4304 math.bits: remove extraneous casts 2019-09-26 14:14:04 +03:00
Alexander Medvednikov 04e4018228 compiler: small fixes + some logic for freeing strings 2019-09-26 03:24:58 +03:00
Don Alfons Nisnoni b1f0df0fd1 mysql: make compile 2019-09-26 03:18:26 +03:00
Delyan Angelov 33df5edc08 http: remove const started, use _ instead 2019-09-25 23:58:32 +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
Alexander Medvednikov 4c898ab6b3 strings: simplify repeat() 2019-09-25 22:08:51 +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
Alexander Medvednikov ab52b453cb
map: make .keys() pure 2019-09-25 05:56:10 +03:00
Alexander Medvednikov f7d8fb0cf4 string: bring back old index() without an allocation 2019-09-23 23:34:42 +03:00
Alexander Medvednikov d2d75f3824 parser: do not allow "int?", only "?int" 2019-09-23 23:17:06 +03:00
Alexander Medvednikov 8d52d877fb compiler: free local_vars 2019-09-23 22:16:52 +03:00
Delyan Angelov 0e39df24d4 net: make socket.recv return the allocated buffer and the message length 2019-09-23 19:48:18 +03:00
Alexander Medvednikov bf1ee28194 ui: Objective-C @interface support for Cocoa; minor clean-ups 2019-09-23 15:54:17 +03:00
Henrixounez db44004d51 readline: utf8 compatibility 2019-09-23 13:43:24 +03:00
joe-conigliaro 23c84516e2 compiler: error on unused imports 2019-09-23 13:42:20 +03:00
Alexander Medvednikov b4207e1be7 compiler: allow "u64_var == 0" without casting the const literal 2019-09-23 02:14:10 +03:00
joe-conigliaro 7aaf4012e4 math.bits: add missing pub to fn's 2019-09-23 00:51:03 +03:00
Delyan Angelov 1b91b31698 rand: add pcg32 and splitmix64 implementations 2019-09-23 00:50:22 +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
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
Michiel Vlootman 9b7ca248f0 similarity.v: update a comment 2019-09-21 14:59:06 +03:00
vitalyster 111007470e array: malloc => calloc 2019-09-21 02:29:09 +03:00
Henrixounez ffcff9ebd4 builtins: ustring comparisons, concatenation and other functions 2019-09-20 19:07:38 +03:00
joe-conigliaro d80a3365c4 math.bits: add some more helpers, to be used in upcoming biginteger 2019-09-20 17:39:36 +03:00
vitalyster a42b4e219c net.socket: windows fixes and test
* added missing ai_canonname in addrinfo structure
* ai_canonname, ai_addr and ai_addrlen must be zeroed before getaddrinfo call
* write() must not be used on windows sockets
* added (Socket).get_port() function which is useful when socket was initialized with 0 (random) port
* tests is fixed, test server started listening on random port to avoid conflicts
2019-09-20 17:04:39 +03:00
vitalyster f1bb25bfaf windows: Unicode input in REPL 2019-09-20 17:03:13 +03:00
joe-conigliaro 486b3d2f92 crypto.rand: fix rand test from failing sometimes 2019-09-19 13:12:40 +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
joe-conigliaro b9cc6535f6 crypto.rand: rename read_u64 to int_u64 + clean up 2019-09-18 16:12:16 +03:00
joe-conigliaro f187c35fb2 vlib: inline certain functions 2019-09-18 15:45:32 +03:00
Alexander Medvednikov d1500511e6 "none" keyword for optionals + more memory fixes 2019-09-18 14:15:10 +03:00
joe-conigliaro 32ad33558d crypto.rand: add PRNG function read_u64 2019-09-17 22:03:54 +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
joe-conigliaro 9c9e6290a6 remove unnecessary mut argument (#2016) 2019-09-17 01:09:19 +03:00
Alexander Medvednikov 19b04d5427 math: fix const warnings 2019-09-16 22:49:18 +03:00
Nicolas Sauzede ff009f1c4e rand: rand_r(seed) 2019-09-16 22:21:21 +03:00
vitalyster f7a0fefe27 glfw: printf -> println 2019-09-16 21:07:34 +03:00
Alexander Medvednikov c76d09f9a5 make V.js compile 2019-09-16 18:31:13 +03:00
Delyan Angelov 7cf7215557 testing: always show benchmarks 2019-09-16 18:27:55 +03:00
hazohelet 9158ba4640 vlib: add Android checks to build V on Android 2019-09-16 18:23:11 +03:00
Delyan Angelov a45895a3af new benchmark module + make the tests use it 2019-09-16 17:29:06 +03:00
joe-conigliaro 075a8e5ccb compiler: improve typo detection 2019-09-15 20:07:12 +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
Alexander Medvednikov 849bef987c more C warnings fixed 2019-09-15 15:53:57 +03:00