Commit Graph

273 Commits (e40ab547ba3b02e34a3aa81f19b5503cd4a69dcf)

Author SHA1 Message Date
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 31032d3a62 allow field 'type' 2019-07-16 13:01:39 +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 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
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
Alexander Medvednikov f7dbbf5810 re-write map.v and update the compiler 2019-07-14 22:08:17 +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
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
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 9efe305093 fix Linux build 2019-07-10 21:57:15 +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 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
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
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 92528205c1 minor fixes 2019-07-04 22:39:15 +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
Alexander Medvednikov 5d4d3b838b StringsBuilder => strings.Builder; strings.repeat() 2019-07-03 22:18:46 +02:00
Alexander Medvednikov dec0d961f5 os: clean up file functions, use optionals 2019-07-03 21:37:12 +02:00
Alexander Medvednikov d9753ee2c6 lots of vfmt fixes 2019-07-03 16:37:21 +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 2ca9866f86 Handle --version arg as it already do for help 2019-07-01 22:04:28 +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
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 18525922fd Windows fixes 2019-06-29 21:26:39 +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 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
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 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
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 b846d02cb2 V 0.1.5 2019-06-27 12:52:06 +02:00
Henrixounez 8b3802d9b8 help: cleaner help informations
help: added repl informations
2019-06-27 02:00:08 +02:00
Alexander Medvednikov fa925f3092 os.v: clean up, remove C code, os.exec() 2019-06-26 17:01:50 +02:00
Henrixounez f0e6a1c1c1 added arguments handling for run 2019-06-26 14:39:31 +02:00
Alexander Medvednikov c860bac7bf don't allow calling private functions/methods 2019-06-26 13:15:47 +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
Alexander Medvednikov f26e65a943 remove old `float` type entirely 2019-06-25 22:10:22 +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 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
Alexander Medvednikov a1b6e4e523 V 0.1.1 2019-06-25 02:07:32 +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
Alexander Medvednikov 11861fe9fa translate arg 2019-06-24 17:42:44 +02:00
Alexander Medvednikov da1e1f34fc update help text 2019-06-24 14:43:26 +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
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
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
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
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
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