Commit Graph

485 Commits (f34d14d901ab5ed473bea0d002ed7a64bf33fa79)

Author SHA1 Message Date
Emily Hudson 802ff1d012 compiler: scoped defer + build tests with msvc 2019-08-07 17:51:21 +02:00
Joe Conigliaro 1270e8a9f2 fix error in msvc_win 2019-08-07 16:31:19 +02:00
Alexander Medvednikov 4b69d43f9f fix examples 2019-08-07 14:16:10 +02:00
Alexander Medvednikov 78c20e02ee tmp test fix 2019-08-07 13:50:28 +02:00
Alexander Medvednikov 4b86ba6f6a main.v: fix msvc 2019-08-07 13:41:40 +02:00
Alexander Medvednikov cebb6cd537 ft: minor fixes 2019-08-07 13:39:54 +02:00
Alexander Medvednikov ff6e0df0a5 array: minor fixes 2019-08-07 13:39:54 +02:00
joe-conigliaro 511a3d3901 vlib.crypto+other: fix mut args 2019-08-07 13:37:07 +02:00
Alexander Medvednikov 818c4a14e5 compiler: fix a bug with mutable array args 2019-08-07 12:36:45 +02:00
joe-conigliaro 0bcc53c366 vlib: fix mutable args 2019-08-07 09:53:33 +02:00
Alexander Medvednikov 34e0b164eb make function arguments immutable by default 2019-08-07 08:59:00 +02:00
Delyan Angelov d072178cef v run: recompile and execute changed file.v just once. 2019-08-07 08:04:40 +02:00
Alexander Medvednikov 52f473d1c7 all: fix immutable fn args 2019-08-07 05:28:00 +02:00
Alexander Medvednikov 76def48f01 compiler: make Windows headers work with clang-format 2019-08-07 05:28:00 +02:00
Alexander Medvednikov 8b75f2125a http: init_module() to init openssl once 2019-08-06 14:03:01 +02:00
Alexander Medvednikov bea8f6d7e5 http: remove libcurl dependency; replace it with a simple OpenSSL backend 2019-08-06 13:32:09 +02:00
Henrixounez 347e59d604 compiler: fix scanner overflowing string on numbers without newline 2019-08-06 11:50:09 +02:00
Alexander Medvednikov 7a7b5040e2 http: fix response headers and status code; clean up ft and gg 2019-08-06 03:06:27 +02:00
Marco Böttcher aff8d05040 compiler: add a test case to ensure more stable local modules 2019-08-05 10:05:00 +02:00
joe-conigliaro 01c2d25ae5 compiler: rename pkg to mod and auto save file import table 2019-08-05 09:49:52 +02:00
S-YOU 5939238655 add @VMOD to resolve modules path 2019-08-05 09:42:50 +02:00
Joe Conigliaro 2fab73983b add builtin import pass + use builder in map 2019-08-05 06:01:53 +02:00
Alexander Medvednikov 5ed338dc2e bring back map.str() 2019-08-05 04:34:12 +02:00
Alexander Medvednikov 8d3617b3de fix fn_test.v and urllib.v 2019-08-05 03:31:22 +02:00
Alexander Medvednikov 350e13679c force `()` in complex bool expressions: `(a && b) || c` instead of `a && b || c` 2019-08-05 03:22:28 +02:00
Delyan Angelov 0379b9cc69 compiler: conditional guard for platform specific #includes directives in _xxx.v files. 2019-08-05 02:17:49 +02:00
Emily Hudson 59a4c923c4 Fix for jsdecode struct initialisation 2019-08-04 13:42:48 +02:00
ma6174 12dfd5f016 fix Raspberry Pi build 2019-08-04 11:24:23 +02:00
Delyan Angelov 9a3570a5b3 compiler: proper line numbers in debuggers (fixes regression after 207bab5). 2019-08-04 11:05:54 +02:00
Alexander Medvednikov ee437de8d3 type name check fixes 2019-08-04 09:38:46 +02:00
Alexander Medvednikov 8bce5cb810 force snake_case in struct fields 2019-08-04 09:18:16 +02:00
Alexander Medvednikov 576192949d fixed size array with const size: `numbers := [N]int` 2019-08-04 04:11:16 +02:00
Alexander Medvednikov 01531369f7 bring back local modules 2019-08-04 00:11:56 +02:00
Alexander Medvednikov e446f988f7 clean up map initialization 2019-08-03 10:26:36 +02:00
Alexander Medvednikov a5f5b52204 `map := { 'foo': 'bar' }` syntax 2019-08-03 10:20:04 +02:00
Alvydas Vitkauskas 69084b0c57 change error printing format 2019-08-02 23:26:23 +02:00
Alexander Medvednikov 8ecd62e56f comptime: fix app.$action() or {} 2019-08-02 05:20:18 +02:00
Alexander Medvednikov f81562ee7e vweb: 404 2019-08-02 04:11:42 +02:00
Alexander Medvednikov a7e464fee9 user modules + `v install` from vpm 2019-08-01 17:28:25 +02:00
Alexander Medvednikov 8058bf3750 http_nix.v: remove remaining C code 2019-07-31 23:01:06 +02:00
Alexander Medvednikov 15f1169102 disable REPL until it is fixed 2019-07-31 21:05:20 +02:00
Henrixounez 715bd21118 compiler: check is ptr when free in closing scope (#1399) 2019-07-31 19:21:49 +02:00
vitalyster 37a0e6ebef Travis: run tests for Windows (#1403) 2019-07-31 19:01:52 +02:00
Henrixounez 7918a790b4 compiler: check if output file is a folder 2019-07-31 12:02:59 +02:00
Joe Conigliaro 8c04b5fe9c use map.delete and last_node 2019-07-31 10:56:12 +02:00
Vitaly Takmazov 9b45b9ce66 repl: do not eat first line
for some reason first line was skipped
2019-07-31 10:52:39 +02:00
Alexander Medvednikov ddb4f45b02 another map bug fix + fix some warnings 2019-07-31 10:47:58 +02:00
Vitaly Takmazov 68b46bb943 windows: utf-8 stdout was not initialized when we have main()
Initialization moved to init_consts for that
2019-07-31 10:20:40 +02:00
Vitaly Takmazov f3d6bc9146 compiler: no need to optimize println on Windows
this fixes string interpolation
2019-07-31 10:01:02 +02:00
Alexander Medvednikov a4882f1955 better C error message 2019-07-31 07:16:18 +02:00
Alexander Medvednikov 5c9a08ce81 v up: Windows fix 2019-07-31 04:49:29 +02:00
Alexander Medvednikov f6e717a5fd v up to update V 2019-07-31 04:40:38 +02:00
Alexander Medvednikov 8a7ddd102e vweb: tmpl fixes 2019-07-31 04:00:43 +02:00
AtjonTV 5b68e2ff50 Fix module import errors by checking dirs with dir_exists 2019-07-30 19:57:27 +02:00
Alexander Medvednikov 79be98d2fb Revert "Support for the printf optimisation for windows and wide strings"
This reverts commit acd28fa495.
2019-07-30 18:28:00 +02:00
d2verb 9bcb5aaa55 defer: fix #1281 2019-07-30 18:05:06 +02:00
F1ssi0N acd28fa495 Support for the printf optimisation for windows and wide strings 2019-07-30 18:04:19 +02:00
joe-conigliaro 5e57d099d7 v panic debug information 2019-07-30 15:08:14 +02:00
joe-conigliaro 74b3ef3a3f minor module fixes 2019-07-30 03:49:47 +02:00
Alexander Medvednikov 626da27ad6 better C error message 2019-07-29 19:39:56 +02:00
Alexander Medvednikov ba6bcdb469 fix vweb template compilation 2019-07-29 19:14:07 +02:00
Alexander Medvednikov 54f847a85b V 0.1.17 2019-07-29 18:31:47 +02:00
Alexander Medvednikov ce1288e946 clean up 2019-07-29 18:24:48 +02:00
Alexander Medvednikov 207bab5f79 generics, vweb, comptime codegen, etc 2019-07-29 18:24:48 +02:00
Delyan Angelov f1373874ef compiler: fix issue #1350 - an error is produced, when a void fn returns a value 2019-07-29 16:35:56 +02:00
joe-conigliaro 1a22482c09 move module tests 2019-07-28 17:20:24 +02:00
Joe Conigliaro 2a30564ed1 fix 2019-07-28 17:15:24 +02:00
Alexander Medvednikov dbb64ec149 Revert "modules: fix "is not a directory" error"
This reverts commit d38940ad57.
2019-07-28 01:22:15 +02:00
Alexander Medvednikov d38940ad57 modules: fix "is not a directory" error 2019-07-28 01:11:38 +02:00
Alexander Medvednikov b0913dc5a8
print "running [exe name]" only in verbose mode 2019-07-27 16:42:17 +02:00
F1ssi0N 720648703b Hack interfaces into working with arguments 2019-07-27 16:30:57 +02:00
joe-conigliaro 26a1762156 make empty module dir error less confusing 2019-07-27 02:18:56 +02:00
Joe Conigliaro 3850227b46 use mod var 2019-07-27 01:14:35 +02:00
joe-conigliaro 7b95f09f86 detect import of non existent modules 2019-07-26 18:24:40 +02:00
joe-conigliaro 979917144f internal modules 2019-07-26 18:02:58 +02:00
Emily Hudson 90bb48db5d interactive debugging 2019-07-26 16:45:16 +02:00
Alexander Medvednikov f7530234c7 fix Windows build 2019-07-25 15:05:44 +02:00
Alexander Medvednikov 2ad0d0200d make the new mut check work with `fn foo(mut bar)` 2019-07-25 14:04:45 +02:00
Alexander Medvednikov 9ccd3bde01 do not allow declaring a mutable variable if it's never modified 2019-07-25 13:44:34 +02:00
Emily Hudson dbf027acb8 MSVC: Use vswhere instead of mscrazy (#1307)
* Use vswhere + our own reg stuff instead of microsoft_craziness

* Cleanup code

* HKEY is a pointer so RegKey should be a pointer
2019-07-25 12:29:24 +02:00
Delyan Angelov 61fea2d82a #! support on Unix systems 2019-07-25 12:27:59 +02:00
Alexander Medvednikov 3a8cdadcf5 free strings 2019-07-25 01:22:45 +02:00
Alexander Medvednikov d1b732cbcc function argument benchmark 2019-07-25 00:13:54 +02:00
Alexander Medvednikov 9837d6cf69 fix option_test.v 2019-07-24 22:49:16 +02:00
Alexander Medvednikov d2b33397cc optionals: better errors 2019-07-24 22:41:46 +02:00
Emily Hudson 049d78a78d Change CGen so that v.c is compileable with msvc 2019-07-24 17:46:41 +02:00
Alexander Medvednikov 09c447e2b8 remove type keyword hack 2019-07-24 15:44:25 +02:00
Alexander Medvednikov 6b2063a2ea mutable args: don't allow primitives 2019-07-24 15:33:41 +02:00
Alexander Medvednikov 7ea688aa43 fix mutable array args 2019-07-24 15:10:48 +02:00
Emily Hudson 32aae80a64 Windows: fix some heap corruptions, fix msvc not building with unicode flags, fix os.getwd, fix mscrazy using a less recent installation 2019-07-24 15:00:26 +02:00
Vitaly Takmazov 0bbefca875 Windows: unicode command line 2019-07-24 14:32:36 +02:00
Alexander Medvednikov 7f29928aec examples: fix news_fetcher on Windows 2019-07-24 12:34:25 +02:00
vitalyster fcb1f211e3 Windows Unicode I/O 2019-07-24 12:16:45 +02:00
Alexander Medvednikov c28a490c17 @ for escaping keywords 2019-07-24 02:28:29 +02:00
Alexander Medvednikov 13e1b4edb1 V 0.1.16 2019-07-24 00:45:32 +02:00
Alexander Medvednikov 2291e9fcfe Revert "Windows Unicode support"
This reverts commit 8462e99bc5.
2019-07-24 00:24:34 +02:00
Alexander Medvednikov b48e23757f msvc fixes 2019-07-24 00:20:07 +02:00
d2verb 88758082d2 scanner.v: refactoring 2019-07-24 00:06:48 +02:00
vitalyster 8462e99bc5 Windows Unicode support 2019-07-23 23:40:24 +02:00
Emily Hudson e25ea7f9dd add MSVC C backend support; fix live code reloading on Windows; other Windows fixes 2019-07-23 23:23:13 +02:00
Alexander Medvednikov 3cf8e18cf6 include <pthread> on all BSDs 2019-07-23 23:15:21 +02:00
joe-conigliaro b06cfd702d module aliasing and sub modules for import () syntax 2019-07-23 23:12:55 +02:00
Alexander Medvednikov 527b9e13fa `key in map` syntax 2019-07-23 23:00:09 +02:00
Delyan Angelov 04bd8d7f7d compiler: Fix for #1268 . Passing -o file.c, skips the C compiler invocation and leaves the intermediary file.c . 2019-07-23 13:35:19 +02:00
Delyan Angelov a307a51b46 live reload: stability fixes 2019-07-22 19:08:32 +02:00
Alexander Medvednikov 390394b56b string: make substr() copy the data, like in Java and C#; remove .cstr()
this makes managing memory used by strings much easier
V strings are now fully compatible with C strings
2019-07-22 17:03:45 +02:00
Alexander Medvednikov 01caee5b53 include <pthread> on macOS 2019-07-22 13:45:02 +02:00
joe-conigliaro 0ed240e123 modules: cycle error improvements 2019-07-22 12:44:08 +02:00
Delyan Angelov a65ae726ee live reload: fix SIGSEGV when calling dlclose, while a live fn is still running. 2019-07-22 12:25:41 +02:00
Alexander Medvednikov e11c23a817 main.v: print how much time cc() took; more flags explained 2019-07-21 19:42:51 +02:00
Alexander Medvednikov 18d95114e0 testing: do not print anything if a test passed successfully 2019-07-21 17:59:25 +02:00
joe-conigliaro 135f200ea2 modules: cyclic import detection 2019-07-21 17:53:35 +02:00
Alexander Medvednikov 23c5f88f3e Revert "Windows Unicode I/O "
This reverts commit 3e005074a3.
2019-07-21 17:29:40 +02:00
Alexander Medvednikov ac238a5362 allow multiple defers 2019-07-21 16:34:21 +02:00
Alexander Medvednikov 5d188130e5 fix memory free 2019-07-21 16:30:10 +02:00
Alexander Medvednikov e2364f6285 main.v: update help 2019-07-21 14:42:54 +02:00
Alexander Medvednikov 40c31f701f free arrays when they are out of scope
main.v: update help
2019-07-21 14:42:31 +02:00
vitalyster 3e005074a3 Windows Unicode I/O 2019-07-21 13:29:32 +02:00
Alexander Medvednikov 6e6f6bc387 free/malloc fixes 2019-07-21 12:36:21 +02:00
Alexander Medvednikov 3245377683 fix defer before returns 2019-07-21 00:52:21 +02:00
Alexander Medvednikov 1b4656a4dc string cast: better error message 2019-07-21 00:04:34 +02:00
Alexander Medvednikov c3c6648c57 string(bytes_array) cast 2019-07-20 22:03:38 +02:00
Alexander Medvednikov 769cda1d1f simplify gg; remove forced OpenGL dependency; graph builder /w hot code reloading 2019-07-20 16:06:15 +02:00
Brian Callahan 876dee6435 OpenBSD needs pthread.h
Like Linux, OpenBSD also needs pthread.h (likely that all the BSDs do).
2019-07-20 11:48:06 +02:00
d2verb 67c2932f34 parser: change cur_line, tmp_line only in main pass 2019-07-18 20:21:23 +02:00
Delyan Angelov 38c58f9f1b compiler: fix #1193 . Flag -c_options is now named -cflags.
You can also pass -cflags '-Os -fno-inline-small-functions'
2019-07-18 19:45:31 +02:00
Delyan Angelov 97e97222ee live reload: All of the [live] functions are reloaded now, not just the first one. 2019-07-18 19:34:28 +02:00
joe-conigliaro b3bdcfda42 Fix modules order 2019-07-18 19:25:46 +02:00
Alexander Medvednikov 382f85fa39 -live: fix an info message 2019-07-18 18:03:09 +02:00
Alexander Medvednikov 53b6c91d18 allow building code with [live] without -live 2019-07-18 16:02:06 +02:00
Delyan Angelov 1ef0f3b549 live reload: the reload_so function now uses too, instead of hard coding the v name (which some people do not have in their PATH or have as an alias) 2019-07-18 15:56:38 +02:00
joe-conigliaro 53ac6d352f auto detect u64 const 2019-07-18 10:55:39 +02:00
Alexander Medvednikov f5c8ee4742 string(buffer, len) cast 2019-07-18 04:50:44 +02:00
d2verb 92fbe56276 table: fix #1219 2019-07-18 04:32:49 +02:00
Alexander Medvednikov c35adbea91 vfmt fixes 2019-07-17 21:00:39 +02:00
Alexander Medvednikov 7dc7502fe2 fix REPL and hot code reloading for users that don't have V in PATH 2019-07-17 19:23:47 +02:00
Alexander Medvednikov b9f3f2d622 v script 2019-07-17 13:49:42 +02:00
Alexander Medvednikov 14ad70d3a0 match: else 2019-07-17 02:47:45 +02:00
Alexander Medvednikov 76d6e9fd1a minor match_test.v fixes 2019-07-17 02:44:41 +02:00
Alexander Medvednikov a9463a180d new match statement 2019-07-17 02:41:08 +02:00
Igor Pershikov 3f506714ec Fix bug with BOM 2019-07-17 00:05:04 +02:00
Delyan Angelov 5d0cb1437c Add support for VFLAGS environment variable, merged with cmd args.
Using VFLAGS, you can pass common options through it to the V compiler,
without having to manually specify them everytime when you type V ...
In addition, since environment variables are *inherited*, all subprocess
V compilers, which V launches (for example when compiling with -live),
will *also* use the same VFLAGS environment variable.

Example usage:
  export VFLAGS="-debug -show_c_cmd"
  v -live message.v

=> This will keep *both* of the generated C source files .message.c
   *AND* .message_shared_lib.c . It will also cause both V compile
   subprocesses to print their resulting C compiler backend lines.
   This is very useful when using GDB to debug problems.
2019-07-16 19:35:16 +02:00
Delyan Angelov 17580f3013 Support for passing different options to the C compiler backend.
Example: 'v -c_options=-Os' will pass -Os to the C compiler.
In effect the C compiler will optimize the generated binary for size.
2019-07-16 19:34:44 +02:00
Alexander Medvednikov 1748632144 do not create ~/.vlang directory 2019-07-16 17:44:25 +02:00
Alexander Medvednikov 8aa7da1be1 http_win: fix BUF_MAX 2019-07-16 15:29:27 +02:00
Alexander Medvednikov 54b069f9ad fix high order fns 2019-07-16 14:39:34 +02:00
Alexander Medvednikov 8c516bec4f [][]int 2019-07-16 13:56:48 +02:00
Alexander Medvednikov 31032d3a62 allow field 'type' 2019-07-16 13:01:39 +02:00
Alexander Medvednikov 830f63e86a make maps work with structs defined in different modules 2019-07-16 12:18:52 +02:00
Alexander Medvednikov 0a4a9a35c3 .key_type 2019-07-16 12:17:17 +02:00