1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

410 Commits

Author SHA1 Message Date
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
Alexander Medvednikov
eb7aee5ae0 store temp C files in the same directory 2019-07-16 02:12:05 +02:00
Alexander Medvednikov
cc06fe7ae6 os.dir(); fix vroot on Windows 2019-07-16 01:57:06 +02:00
Alexander Medvednikov
8902256592 V 0.1.15 2019-07-15 23:56:18 +02:00
Alexander Medvednikov
edbcefb811 fix and simplify VROOT 2019-07-15 23:33:31 +02:00
Alexander Medvednikov
840e496a51 force snake_case in variable names 2019-07-15 22:53:33 +02:00
Alexander Medvednikov
100bcc2034 use defer 2019-07-15 22:18:43 +02:00
Alexander Medvednikov
17c6ba04a2 defer statement 2019-07-15 22:13:12 +02:00
Alexander Medvednikov
62e6e03492 -ldl is only required on Linux 2019-07-15 20:40:37 +02:00
Alexander Medvednikov
9b020fad53 fix OpenBSD build 2019-07-15 20:22:48 +02:00
Alexander Medvednikov
374781da1a OpenBSD, NetBSD, DragonFly support 2019-07-15 20:19:07 +02:00
Alexander Medvednikov
449fd372f9 *_nix.v support 2019-07-15 19:23:09 +02:00
Alexander Medvednikov
b36a9f7e55 glfw always on top 2019-07-15 19:23:09 +02:00
Delyan Angelov
37aff9b107 hot reload: no -sanitize is needed anymore, -live is now enough on both Linux and MacOS X
* hot reload for GL programs: force the main executable (the shared library loader) to be build with -rdynamic flag, when -live is passed to v compiler.

* hot reload: optimize away a redundant load_so/0 call at the start of the reload_so thread.

* hot code reload for MacOSX requires -flat_namespace flag instead of -rdynamic (on linux).
2019-07-15 17:32:00 +02:00
Alexander Medvednikov
7c6f59afa6 FreeBSD support 2019-07-15 17:24:44 +02:00
d2verb
4020a3ab8c Prevent main function form returning value 2019-07-15 17:19:24 +02:00
d2verb
40ad868f22 Fix #1107 2019-07-15 16:30:06 +02:00
Henrixounez
48c06df5f5 parser: fix bug not printing percentages 2019-07-15 14:26:39 +02:00
d2verb
916b13b286 fix maps 2019-07-15 12:33:18 +02:00
Delyan Angelov
0556f5fd4e When compiling with -shared (a step in compiling with -live), store the C intermediary file in a different file than main (loader) file, so that debugging symbol lookup information is correct (the files are not replaced constantly with each other). 2019-07-15 12:30:03 +02:00
Delyan Angelov
60ad97c4fb fix hot code reloading for GUI example bounce on linux: works when compiled with 'v -live -sanitize bounce.v' .
It crashes with SIGSEGV, when -sanitize is not given.
Also thirdparty/glad/glad.o should be build with -fPIC .
2019-07-15 12:28:35 +02:00
Alexander Medvednikov
f7dbbf5810 re-write map.v and update the compiler 2019-07-14 22:08:17 +02:00
hazohelet
441281dd4f parser: fix small typo 2019-07-14 16:48:57 +02:00
Alexander Medvednikov
48f841bb26 make enums defined in other modules work 2019-07-14 00:10:53 +02:00
joe-conigliaro
b4afa964fc hash/crc32 2019-07-13 15:11:32 +02:00
Nick Treleaven
cec3ea5b4d Document v -lib and don't advertise --help long option
--help and --version are accepted, but these don't fit the `-option`
format of V's other options. To avoid confusion, don't mention them.
2019-07-13 14:54:31 +02:00
d2verb
2811145437 Add enum_test.v 2019-07-13 12:19:57 +02:00
joe-conigliaro
298ca8676f Change import syntax to "import as alias" 2019-07-13 12:15:16 +02:00
aguspiza
d0e7d0070d fix travis windows user home 2019-07-12 20:35:01 +02:00
hazohelet
2a0d8072c1 delete unnecessary lines 2019-07-12 15:46:15 +02:00
joe-conigliaro
9a957ccc18 module aliasing & file import scope 2019-07-12 07:37:54 +02:00
Alexander Medvednikov
56b7c9e35f for key, val in map syntax 2019-07-12 07:27:30 +02:00
hazohelet
b039538a27 parser: fix if expressions with multiple else if's 2019-07-12 06:54:01 +02:00
Alexander Medvednikov
5b3295db94 remove # from gg and glm 2019-07-12 06:50:25 +02:00
hazohelet
e15c2da1f4 enable else-if expression 2019-07-12 06:04:37 +02:00
Alexander Medvednikov
22b41c7873 V 0.1.14 2019-07-12 05:23:00 +02:00
hazohelet
560ba55572 enable consts with operators in scripts 2019-07-12 04:53:51 +02:00
Alexander Medvednikov
f834644db4 make gg work on Windows; prebuild glad and cJSON; new ft module 2019-07-12 04:50:14 +02:00
Alexander Medvednikov
da51fea605 fix disappearing printf when compiling with 2019-07-10 22:07:56 +02:00
Alexander Medvednikov
4a8ba9756f disable u32 check for now 2019-07-10 22:05:50 +02:00
Alexander Medvednikov
9efe305093 fix Linux build 2019-07-10 21:57:15 +02:00
Alexander Medvednikov
3d4cd0bbc0 check integer const overflow at compilation 2019-07-10 21:22:03 +02:00
Alexander Medvednikov
1b09e37a80 fix typ_to_fmt() 2019-07-10 14:38:39 +02:00
Alexander Medvednikov
c8fc262da3 println: make aliases printable 2019-07-10 14:26:37 +02:00
Alexander Medvednikov
fba8443f30 allow defining methods on aliases 2019-07-10 14:18:21 +02:00
Alexander Medvednikov
9907f07602 fix the __ error message 2019-07-10 10:08:37 +02:00
Alexander Medvednikov
28843a12c7 cache string.hash() 2019-07-10 10:00:12 +02:00
Alexander Medvednikov
e1ddac1590 utf8: remove unused UTF8_CHAR_LEN macro and add a simple utf8 test 2019-07-10 09:07:04 +02:00
Alexander Medvednikov
68228f9977 parser: clean up submodule implementation a bit 2019-07-10 09:02:04 +02:00
Alexander Medvednikov
87762d6cf3 DOT => .dot 2019-07-10 02:07:54 +02:00
Alexander Medvednikov
c44d54fb4c V 0.1.13 2019-07-10 02:03:09 +02:00
Alexander Medvednikov
26ef99293d new enum syntax; update the compiler (p.tok == .name) 2019-07-10 02:02:38 +02:00
Henrixounez
26af513e1b repl: remove void line for unused and compile as repl 2019-07-09 20:55:37 +02:00
Delyan Angelov
932f6d1bef Fix hot code reloading on linux 2019-07-09 20:54:23 +02:00
Henrixounez
7b1be8a2bd CI: Add back erased commits and dont test hot code examples 2019-07-09 20:44:30 +02:00
Alexander Medvednikov
045d480c8c clean up the examples a bit 2019-07-07 22:09:08 +02:00
Alexander Medvednikov
7fed451226 inotify TODO 2019-07-07 22:04:41 +02:00
Alexander Medvednikov
de8dc4cddb hot code reloading examples 2019-07-07 22:02:27 +02:00
Nick Treleaven
af19aa5096 Fix #1021 - Optional or branch doesn't define err 2019-07-07 01:24:36 +02:00
joe-conigliaro
8a2d25247f submodules 2019-07-07 01:22:47 +02:00
aguspiza
36908fa304 fix for #1020 2019-07-07 01:20:56 +02:00
Alexander Medvednikov
59796a4168 small REPL fixes 2019-07-06 15:39:26 +02:00
Shivanjan Chakravorty
f630d3f342 main: vrepl interactive shell update 2019-07-06 12:07:44 +02:00
Henrixounez
28c2a949b2 compiler: fix errors on dots methods 2019-07-06 12:02:18 +02:00
hazohelet
204bcee951 fix typo 2019-07-06 12:01:58 +02:00
Alexander Medvednikov
68b7ae26b3 fix tests 2019-07-05 22:12:06 +02:00
Alexander Medvednikov
8d407cec90 another Windows \r\n bug fix 2019-07-05 22:07:44 +02:00
Alexander Medvednikov
871fb3831a do not allow fn main() to return a value 2019-07-05 22:03:00 +02:00
Alexander Medvednikov
d47e2f113f Revert "make function arguments immutable"
This reverts commit 0f0ed8d716.
2019-07-05 02:44:22 +02:00
Alexander Medvednikov
0f0ed8d716 make function arguments immutable 2019-07-05 00:24:13 +02:00
Alexander Medvednikov
74dbb1bce3 interface: fix function is private bug 2019-07-04 23:30:11 +02:00
Alexander Medvednikov
92528205c1 minor fixes 2019-07-04 22:39:15 +02:00
Alexander Medvednikov
cc77d8cdd2 fix Windows line ending bug 2019-07-04 21:55:29 +02:00
Alexander Medvednikov
9b0bb2f72c make.bat for easier compilation on Windows 2019-07-04 20:44:44 +02:00
Alexander Medvednikov
300ed59598 do not allow import builtin 2019-07-04 17:36:53 +02:00
Alexander Medvednikov
8f10e37370 make << work with appending arrays; PostgreSQL driver 2019-07-04 17:31:14 +02:00