Commit Graph

764 Commits (68bcf6830cb0a3572b21880cdb949dd187548424)

Author SHA1 Message Date
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
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
Cytown fbe8f6c774 fix array initial with [0.0/f32/f64; length] compile error
solution: add array_f32/array_f64 type
Signed-off-by: Cytown <cytown@gmail.com>
2019-07-04 13:01:51 +02:00
Alexander Medvednikov 68ed555e91 V 0.1.12 2019-07-04 02:21:27 +02:00
marco 155e1fa961 FIX #202
allow interface method with empty (void) return type

-> only look for type declaration if no new line has been
   while skipping whitespace
2019-07-04 01:04:10 +02:00
Alexander Medvednikov 7fdd94fcbb println: fix a bug with u64 etc and newlines 2019-07-04 00:54:40 +02:00
Alexander Medvednikov 1e32a4cec4 println: optimize and remove memory leaks 2019-07-04 00:40:30 +02:00
Alexander Medvednikov 5d4d3b838b StringsBuilder => strings.Builder; strings.repeat() 2019-07-03 22:18:46 +02:00
Alexander Medvednikov 8c36b9499d make json work with new optionals 2019-07-03 21:50:06 +02:00
Alexander Medvednikov dec0d961f5 os: clean up file functions, use optionals 2019-07-03 21:37:12 +02:00
Ivan Sharavuev 290e1df893 Move token string length from magic number to constant. 2019-07-03 18:58:50 +02:00
Alexander Medvednikov d9753ee2c6 lots of vfmt fixes 2019-07-03 16:37:21 +02:00
Zaoqi 015467778d Update .gitignore 2019-07-03 16:12:37 +02:00
Justice Suh a25c4bb59f compiler: add debug flag 2019-07-03 16:10:21 +02:00
AtjonTV ab20db8e6e look for modules in current path 2019-07-02 21:55:57 +02:00
Alexander Medvednikov 1bbf3a3a0c make compiler 2019-07-02 21:45:51 +02:00
Alexander Medvednikov a9b8bc067f enums (`mode == .default_mode` syntax); fix `foo.bar[0].baz = val` 2019-07-02 21:39:26 +02:00
joe-conigliaro 4ed67fbe7e implement get_line & get_raw_line for windows + REPL 2019-07-02 16:39:40 +02:00
yep84 b57d227aa0 Allow to parse uppercase hex number 2019-07-02 15:03:01 +02:00
jiro4989 30633ff14f Fix "Nested comments won't compile" (#908) 2019-07-02 02:19:15 +02:00
Henrixounez dc8c84a2a8 compiler: tmp variables on scripts inside generated main function 2019-07-01 23:42:09 +02:00
yep84 2ca9866f86 Handle --version arg as it already do for help 2019-07-01 22:04:28 +02:00
d2verb e27a3b65f1 Fix #898 2019-07-01 20:56:31 +02:00
Alexander Medvednikov d09758f723 fix a typo 2019-07-01 17:29:29 +02:00
Alexander Medvednikov 6ddc57c190 fix cc_windows_cross() 2019-07-01 17:23:30 +02:00
Maulana Akmal 24b0fd5097 Refactor BuildMode enum to lowercase 2019-07-01 17:20:59 +02:00
Alexander Medvednikov 4c3f1386ef V 0.1.11 2019-07-01 16:53:54 +02:00
Alexander Medvednikov 99a9a6572a lots of Windows fixes and cross compilation for Windows 2019-07-01 16:51:17 +02:00
Zaoqi 00174cdb83 fix #872 2019-07-01 10:46:42 +02:00
Alexander Medvednikov 5936ab16c8 fix maps; use maps for storing functions; verify struct initialization 2019-07-01 02:24:39 +02:00
Archan Patkar 74d234f8cd remove duplication by using a new Preferences struct 2019-06-30 22:03:17 +02:00
Alexander Medvednikov 9062338cb4 fix compilation 2019-06-30 20:48:26 +02:00
Alexander Medvednikov 61b51f6149 os.File clean up + socket.v (dial()) 2019-06-30 20:28:50 +02:00
Zaoqi 5bd188edad Update main.v 2019-06-30 15:34:28 +02:00
Alexander Medvednikov 820aa3d3b3 os: remove os_mac.v and os_win.v, fix os.ls() on Windows 2019-06-30 14:57:27 +02:00
Alexander Medvednikov b0c844415d time.ticks() on Linux/macOS 2019-06-30 14:48:13 +02:00
Zaoqi 437b32fe78 fmt: `id []typ` 2019-06-30 13:06:45 +02:00
bitsnaps 067f131b53 remove unnecessary println
comment out unnecessary println for interface.
2019-06-30 11:51:34 +02:00
Alexander Medvednikov 159990132f fix `v run .` on Windows 2019-06-29 23:41:12 +02:00
Alexander Medvednikov a2b80d5b3d REPL: `exit` to exit 2019-06-29 22:56:23 +02:00
Alexander Medvednikov acaa19054b V 0.1.10 2019-06-29 21:51:25 +02:00
Alexander Medvednikov 1bcf94f7f4 Windows: another \r\n fix 2019-06-29 21:31:13 +02:00
Alexander Medvednikov 18525922fd Windows fixes 2019-06-29 21:26:39 +02:00
lutherwenxu 4b3b69ab15 gitignore: Add gitignore to the build location
This commit moved gitignore to the build location
2019-06-29 16:45:05 +02:00
Alexander Medvednikov 08c8b4ba22 V 0.1.9 2019-06-29 13:11:15 +02:00
Alexander Medvednikov 5b7a1e84a4 move Makefile to root 2019-06-29 12:54:57 +02:00
Alexander Medvednikov 761ba17018 move compiler tests to compiler/ 2019-06-29 12:10:19 +02:00
Alexander Medvednikov 4594d78bd6 move all vlib modules to vlib/ 2019-06-29 12:00:31 +02:00
Alexander Medvednikov bdcbcb075b make test: test V prod build 2019-06-29 11:45:30 +02:00
Alexander Medvednikov 249fa95eab Revert 'compiler: allow mut passed as argument to be modified'. This broke 2019-06-29 11:42:47 +02:00
Alexander Medvednikov 37e2da9d23 exit REPL on Windows 2019-06-28 21:28:55 +02:00
Alexander Medvednikov 2a2b402277 $if fix 2019-06-28 21:28:03 +02:00
Alexander Medvednikov 1bcccf0d1e make V compilable on Windows with mingw-w64 2019-06-28 21:24:51 +02:00
Henrixounez d8caa6431f compiler: checks if variables are unused on scripts main function 2019-06-28 21:05:04 +02:00
Henrixounez 165dfe5fe0 compiler: allow mut passed as argument to be modified 2019-06-28 20:15:49 +02:00
Henrixounez b6b313d246 compiler: clears MainFn when recompile on repl 2019-06-28 17:24:18 +02:00
Henrixounez 748c45203d compiler: add EOF checks in scanner to prevent panic exits
swap s.text[s.pos + 1] to nextc
2019-06-28 17:14:47 +02:00
Alexander Medvednikov 56608dfd2b remove #ifdef, #ifndef, etc 2019-06-28 17:07:03 +02:00
Henrixounez 0026b228c3 scanner: fix on single letter variable declaration on first line 2019-06-28 16:22:23 +02:00
Alexander Medvednikov b81f615a75 parser.v: string interpolation for pointers 2019-06-28 15:56:07 +02:00
Zaoqi 4cd48a6e18 Update main.v: fix typos (#753) 2019-06-28 15:47:38 +02:00
shivakishore14 65fed2d784 Create new line while pressing enter in repl.
Pressing Enter in repl should create new line instead of quiting the repl.
2019-06-28 15:44:54 +02:00
Alexander Medvednikov 99a0aa2300 fix main.v 2019-06-28 15:06:39 +02:00
Alexander Medvednikov 42bb85197a force `mut a := ...`, do not allow `mut a = ...` 2019-06-28 15:04:41 +02:00
Alexander Medvednikov 50012ae57b V 0.1.8 2019-06-28 13:49:34 +02:00
Alexander Medvednikov bd49977feb fix single file programs without `fn main` and REPL (allow imports,
function definitions, consts, etc)
2019-06-28 13:43:32 +02:00
wfhtqp fd9163f715 update Makefile clean old file in all 2019-06-28 11:16:57 +02:00
Alexander Medvednikov 02131d1ae5 fix http 2019-06-27 23:20:30 +02:00
Alexander Medvednikov dc161fb20f V 0.1.7 2019-06-27 23:14:18 +02:00
Alexander Medvednikov 6824e6e7db Replace all remaining C code with V in the compiler and vlib (hoorah!) 2019-06-27 23:11:27 +02:00
Dirk Loss b1682e929d Add '-v' option as described in help text 2019-06-27 22:22:30 +02:00
Alexander Medvednikov f39111bdff V 0.1.6 2019-06-27 18:51:45 +02:00
Alexander Medvednikov 494010d2af os.v: replace remaining C code with V 2019-06-27 18:49:20 +02:00
Henrixounez c83ebe2c66 compiler & builtin: bitshifts CAO fix and C code removal in utf8
utf8: removed bitshift cao in code

utf8: added pub on functions

utf8: byteptr to voidptr

utf8: converts voidptr to byteptr
2019-06-27 15:10:28 +02:00
Alexander Medvednikov 959cc2ea03 some more tests 2019-06-27 15:01:09 +02:00
Alexander Medvednikov 76bf732e63 builtin: public/private functions, remove lots of duplicate functionality
(string.eq, compare_strings, etc)
2019-06-27 13:29:31 +02:00
Alexander Medvednikov b846d02cb2 V 0.1.5 2019-06-27 12:52:06 +02:00
Alexander Medvednikov 90c0791345 replace ugly `tos2(bytes)` with `string(bytes)` 2019-06-27 12:50:02 +02:00
Alexander Medvednikov b61d2ac346 Revert "compiler & builtin: bitshifts CAO fix and C code removal in utf8"
This reverts commit 223c35ffb9.
2019-06-27 12:06:32 +02:00
Henrixounez 223c35ffb9 compiler & builtin: bitshifts CAO fix and C code removal in utf8 2019-06-27 12:01:48 +02:00
drswinghead 7ca00c8f5e Fix decl c struct follow a v struct
struct C.CURL

struct Curl {
    h *C.CURL
}
2019-06-27 02:25:39 +02:00
Henrixounez 8b3802d9b8 help: cleaner help informations
help: added repl informations
2019-06-27 02:00:08 +02:00
Henrixounez b1183dfe2c parser: prompt error if struct is made public and if pub is wrongly used
added *yet* to the pub struct error
2019-06-27 01:56:19 +02:00
Alexander Medvednikov 7e641cd5ba structure printing: minor fixes 2019-06-27 01:55:37 +02:00
Henrixounez 40df91fc08 compiler: added structure printing capabilities 2019-06-27 01:47:45 +02:00
Henrixounez c1400f725f parsing: fixed compound assignment operator bug on for loops 2019-06-26 22:21:54 +02:00
Alexander Medvednikov ef737c5e61 parser.v: document "e" check 2019-06-26 21:44:08 +02:00
Henrixounez 6c7eaa7fd3 parser: fixed problem hexa being casted into float 2019-06-26 21:39:30 +02:00
Alexander Medvednikov 5e89c1399a make test: build examples 2019-06-26 20:44:20 +02:00
S-YOU d998313bb1 fix tests 2019-06-26 19:37:02 +02:00
Alexander Medvednikov 5b5c6b7918 fix make clean 2019-06-26 18:12:30 +02:00
Alexander Medvednikov fa51b24a60 remove @ token 2019-06-26 17:45:54 +02:00
Alexander Medvednikov fa925f3092 os.v: clean up, remove C code, os.exec() 2019-06-26 17:01:50 +02:00
Ryota.I (yabu) 61e4367aa8 👍 Fix up redundant type declare and remove space (#603) 2019-06-26 16:39:40 +02:00
whoami 302645cba0 Makefile curl
`curl` should be used in Makefile as more common and lightweight
2019-06-26 14:54:44 +02:00
Alexander Medvednikov b65ef9022a parser.v: a cleaner hint message 2019-06-26 14:53:55 +02:00
Alexander Medvednikov 1e6f90481e add make clean instruction 2019-06-26 14:50:15 +02:00
drswinghead 4812f92845 avoid literal number #651 2019-06-26 14:46:52 +02:00
Henrixounez f0e6a1c1c1 added arguments handling for run 2019-06-26 14:39:31 +02:00
S-YOU 6a0ac35af2 use matrix and add osx build 2019-06-26 13:57:48 +02:00
whoami 032d8609c7 Makefile cleanup 2019-06-26 13:32:27 +02:00
Alexander Medvednikov b0a5cac0c0 clean up 2019-06-26 13:17:45 +02:00
Alexander Medvednikov c860bac7bf don't allow calling private functions/methods 2019-06-26 13:15:47 +02:00
Alexander Medvednikov 2a3cf0bec9 os.v: clean up init_os_args() 2019-06-26 11:15:05 +02:00
Alexander Medvednikov 8417fec5dc os.read_file(): replace C code with V, return `?string`, handle errors
everywhere
2019-06-26 11:04:05 +02:00
Wink Saville 67f68db530 Add several gitignore files
- compiler/.gitignore and remove the corresponding entries in root/.gitignore.
 - examples/game_of_life/.gitignore
 - examples/tetris/.gitignore
 - examples/word_counter/.gitignore
2019-06-26 01:22:35 +02:00
S-YOU 9e9480f638 run tests in travis 2019-06-26 01:20:15 +02:00
Alexander Medvednikov 6a2afa1cfe Parser.error(): information about what to do when V doesn't compile 2019-06-26 01:11:09 +02:00
Alex Medvednikov a0dbee7e45
Makefile: use the new github v.c 2019-06-25 23:05:16 +02:00
Alexander Medvednikov f3f24b25bb remove old types and 2019-06-25 22:19:17 +02:00
Alexander Medvednikov f26e65a943 remove old `float` type entirely 2019-06-25 22:10:22 +02:00
jumblerg a911146182 fix typo in parser 2019-06-25 21:50:38 +02:00
Alexander Medvednikov b16828dd4d simpler Makefile 2019-06-25 21:46:07 +02:00
Wink Saville 63431ead94 Remove vc dependency from all
Since v already has a dependency on vc it's not necessary for all to
depend on both vc and v it just needs v.
2019-06-25 21:41:49 +02:00
Alexander Medvednikov 54bcbe0708 remove smap.v, it was not supposed to be released 2019-06-25 21:22:50 +02:00
Alexander Medvednikov d71904823e V 0.1.3 2019-06-25 20:49:27 +02:00
Alexander Medvednikov 688bbcff9c v.exe: clone the repo on first launch 2019-06-25 20:41:54 +02:00
Alexander Medvednikov 056b41521a Revert "fixed indentation on multiline condition"
This reverts commit 8f6ca60876.
2019-06-25 15:41:33 +02:00
Henrixounez 8f6ca60876 fixed indentation on multiline condition 2019-06-25 15:41:04 +02:00
Henrixounez 663cbadf60 quick fix for compound assignment operators
a better fix would be to change lot of things inside parser
2019-06-25 15:41:04 +02:00
Alexander Medvednikov 61a8e6e47c V 0.1.2 2019-06-25 14:45:07 +02:00
Alexander Medvednikov 9c1fc6717f main.v: fix broken thirdparty dependencies 2019-06-25 14:31:51 +02:00
Alex Medvednikov 353a6edb7c
Update Makefile 2019-06-25 02:12:03 +02:00
Alexander Medvednikov a1b6e4e523 V 0.1.1 2019-06-25 02:07:32 +02:00
Alex Medvednikov 5d988fdcbd
Update Makefile 2019-06-25 02:03:58 +02:00
Alexander Medvednikov 5a469c2e37 main.v: remove hardcoded path ~/code/v and allow V to be installed anywhere 2019-06-25 01:55:27 +02:00
Aurélien Foucault e285311290 Add all types of int and float to json decode/encode 2019-06-25 00:27:18 +02:00
Henrixounez 31a03ae93e parser.v: changed the booleans controlling if pub or mut 2019-06-25 00:20:03 +02:00
Henrixounez 47ad7a4c5e parser.v: fixed pub mut handling 2019-06-25 00:20:03 +02:00
Alexander Medvednikov 11861fe9fa translate arg 2019-06-24 17:42:44 +02:00
Alexander Medvednikov 877d1c6255 table.v: stdout 2019-06-24 17:30:32 +02:00
Alexander Medvednikov da1e1f34fc update help text 2019-06-24 14:43:26 +02:00
Alex Medvednikov baa4f9d0c9
Makefile: gnu11 2019-06-24 14:18:23 +02:00
Alexander Medvednikov 1ba53a39cb V 0.1.0 2019-06-24 14:11:56 +02:00
Alexander Medvednikov b13f233521 re-write `$if os {` and fix GCC segfaults on compilation 2019-06-24 14:05:31 +02:00
Alexander Medvednikov b990f04064 main.v: error if vlib is missing + instruction to clone the repo 2019-06-24 00:54:23 +02:00
Henrixounez 13f5429dae Removed # and added new error message case 2019-06-23 18:50:12 +02:00
Henrixounez ad5e1fd8d4 Checks if dir given exists and is a directory before ls 2019-06-23 18:50:12 +02:00
Alexander Medvednikov a401b5e242 remove old and unused @ syntax 2019-06-23 17:06:00 +02:00
Henrixounez d71410dff5 REPL - Fix variable declare and not used by print
by using an empty line to call the variables
2019-06-23 14:20:51 +02:00
Alexander Medvednikov c619243067 fix Tetris example 2019-06-23 13:17:56 +02:00
Alexander Medvednikov 64a5dc3f23 json.v example 2019-06-23 12:58:53 +02:00
Alexander Medvednikov 6e50421f99 Makefile: minor fixes 2019-06-23 11:45:57 +02:00
chai2010 99c781bf07 compiler: add makefile for build v 2019-06-23 11:40:27 +02:00
Henrixounez f1cd3580eb main.v: checking directory before trying to fetch files in said directory 2019-06-23 11:39:38 +02:00
Henrixounez e1e8a50a46 main.v: updated help message concerning run option 2019-06-23 10:57:23 +02:00
Alexander Medvednikov 06a4dfa290 replace silly `exit(reason string)` with `exit(code int)` 2019-06-23 10:14:37 +02:00
Alexander Medvednikov 20b5c4b88b Remove println2 2019-06-23 10:03:03 +02:00
Alexander Medvednikov ee5d6f1e7f make -prod no longer hide println() 2019-06-23 09:59:34 +02:00
Ivan Greene 6c6be7acaa Convert OS to enum 2019-06-23 09:24:40 +02:00
musou1500 1152180a71 fix cc option order 2019-06-23 09:23:53 +02:00
musou1500 c3df224c97 add include path for cJSON 2019-06-23 09:23:53 +02:00
chai2010 978ec58fe3 all: add copyright 2019-06-23 09:22:49 +02:00
Oxylibrium 461b78bc77 fix: add CRLF handling to scanner.v 2019-06-23 09:22:32 +02:00
Henrixounez 889d564f43 main.v: added run option example in help message 2019-06-23 03:19:03 +02:00
Yoshiya Hinosawa cf6aa16ee4 fix: fix error messages 2019-06-23 02:49:48 +02:00
Henrixounez f5b8f34a05 main.v: exits when prompting help 2019-06-23 02:47:36 +02:00
Alexander Medvednikov acb00bf623 main.v: use `cc` 2019-06-23 01:51:04 +02:00
musou1500 ccb5591447 fix `b_error` to `v_error` 2019-06-23 01:05:41 +02:00
Alexander Medvednikov 46ba66c24c fix apple headers, clean up the parser 2019-06-22 22:16:39 +02:00
Alexander Medvednikov 96e15b0f0f don't use /var/tmp 2019-06-22 22:00:38 +02:00
Alexander Medvednikov d32e538073 V 0.0.12 open-source release 2019-06-22 20:20:28 +02:00