From bcf3dbf974ab4f4a22863cadfeb22d966c13fcca Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Sun, 15 Sep 2019 14:08:40 +0300 Subject: [PATCH] improve vhelp.v a bit --- CHANGELOG.md | 2 +- compiler/vhelp.v | 54 +++++++++++++++++++++++++++--------------------- september.plan | 2 +- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ddd527a1d..c64acec886 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,7 +31,7 @@ - A bug with struct ordering was fixed, now structs can be declared in any order. - V modules can now be built with `v build module`. - `@FILE, @LINE, @FN, @COLUMN` for debugging. -- JavaScript backend! (big project, WIP until Sep 13) +- JavaScript backend! diff --git a/compiler/vhelp.v b/compiler/vhelp.v index 9b4d6895d3..eef8301af4 100644 --- a/compiler/vhelp.v +++ b/compiler/vhelp.v @@ -1,47 +1,55 @@ module main const ( - HelpText = 'Usage: v [options/subcommands] [file.v | directory] + HelpText = 'Usage: v [options/commands] [file.v | directory] - When V is run without any arguments, it is a shorthand for `v runrepl`. + When V is run without any arguments, it is run in REPL mode. - When given a .v file, it will be compiled. The output executable will have the same name as the input .v file. - You can use -o to specify a different output name. + When given a .v file, it will be compiled. The executable will have the + same name as the input .v file: `v foo.v` produces `./foo` on *nix systems, + `foo.exe` on Windows. - When given a directory, all the .v files contained in it, will be compiled as part of a single main module. - By default the executable will be named a.out. + You can use -o to specify a different output executable's name. + + When given a directory, all .v files contained in it will be compiled as + part of a single main module. + + By default the executable will have the same name as the directory. + + To compile all V files in current directory, run `v .` Any file ending in _test.v, will be treated as a test. - It will be compiled and run, evaluating the assert statements in every function named test_xxx. + It will be compiled and run, evaluating the assert statements in every + function named test_xxx. - You can put common options inside an environment variable named VFLAGS, so that you do not repeat them. - You can set it like this: `export VFLAGS="-cc clang -debug"` on unix, `set VFLAGS=-os msvc` on windows. + You can put common options inside an environment variable named VFLAGS, so that + you don\'t have to repeat them. -Options: - - Shorthand for `v runrepl`. - -h, --help Display this information. + You can set it like this: `export VFLAGS="-cc clang -debug"` on *nix, + `set VFLAGS=-os msvc` on Windows. + +Options/commands: + -h, help Display this information. + -o Write output to . + -o .c Produce C source without compiling it. + -o .js Produce JavaScript source. + -prod Build an optimized executable. + -v, version Display compiler version and git hash of the compiler source. -live Enable hot code reloading (required by functions marked with [live]). -os Produce an executable for the selected OS. - OS can be linux, mac, windows, msvc, etc... - -os msvc is useful, if you want to use the MSVC compiler on Windows. - -prod Build an optimized executable. - -v, --version Display compiler version and git hash of the compiler source. - -Debugging options: + OS can be linux, mac, windows, msvc. + Use msvc if you want to use the MSVC compiler on Windows. -cc Specify which C compiler you want to use as a C backend. The C backend compiler should be able to handle C99 compatible C code. Common C compilers are gcc, clang, tcc, icc, cl... -cflags Pass additional C flags to the C backend compiler. Example: -cflags `sdl2-config --cflags` - -debug Keep the generated C file for debugging in program.tmp.c even after compilation. -g Show v line numbers in backtraces. Implies -debug. - -o Place output into . If file has a .c suffix, produce C source, and do not compile it further. -obf Obfuscate the resulting binary. -show_c_cmd Print the full C compilation command and how much time it took. + - Shorthand for `v runrepl`. - -Subcommands: up Update V. Run `v up` at least once per day, since V development is rapid and features/bugfixes are added constantly. run Build and execute the V program in file.v. You can add arguments for the V program *after* the file name. build Compile a module into an object file. @@ -49,11 +57,9 @@ Subcommands: symlink Useful on unix systems. Symlinks the current V executable to /usr/local/bin/v, so that V is globally available. install Install a user module from https://vpm.vlang.io/. test v Run all V test files, and compile all V examples. - fmt Run vfmt to format the source code. [wip] doc Run vdoc over the source code and produce documentation. [wip] translate Translates C to V. [wip, will be available in V 0.3] - version Display compiler version and git hash of the compiler source. ' ) diff --git a/september.plan b/september.plan index cc2b1c515c..2f55aa35bc 100644 --- a/september.plan +++ b/september.plan @@ -23,7 +23,7 @@ - declarative ui with hot reload (similar to swiftui) - "building a simple blog with vweb" tutorial + youtube video - webassembly backend (via emscripten) -- javascript backend ++ javascript backend - new playground with a v compiler running in the browser + o(log n) type lookup - remove all compiler memory leaks