compiler: remove -keepc option (it is now always on)

pull/5654/head^2
Delyan Angelov 2020-07-06 13:42:11 +03:00
parent c94038af89
commit 25771a1afe
9 changed files with 7 additions and 23 deletions

View File

@ -115,10 +115,10 @@ $(VC)/.git/config:
$(MAKE) fresh_vc $(MAKE) fresh_vc
selfcompile: selfcompile:
./v -keepc -cg -o v cmd/v ./v -cg -o v cmd/v
selfcompile-static: selfcompile-static:
./v -keepc -cg -cflags '--static' -o v-static cmd/v ./v -cg -cflags '--static' -o v-static cmd/v
modules: module_builtin module_strings module_strconv modules: module_builtin module_strings module_strconv
module_builtin: module_builtin:

View File

@ -34,10 +34,6 @@ These build flags are enabled on `build` and `run` as long as the backend is set
-compress -compress
Strip the compiled executable to compress it. Strip the compiled executable to compress it.
-keepc
Specify that you want V to not delete the intermediate generated C source code.
Use with -cg for best debugging experience.
-freestanding -freestanding
Build the executable without dependency on libc. Build the executable without dependency on libc.
Supported only on `linux` targets currently. Supported only on `linux` targets currently.

View File

@ -6,7 +6,7 @@ Usage:
Examples: Examples:
v hello.v Compile the file `hello.v` and output it as `hello` or `hello.exe`. v hello.v Compile the file `hello.v` and output it as `hello` or `hello.exe`.
v run hello.v Same as above but also run the produced executable immediately after compilation. v run hello.v Same as above but also run the produced executable immediately after compilation.
v -keepc -cg run hello.v Same as above, but make debugging easier (in case your program crashes). v -cg run hello.v Same as above, but make debugging easier (in case your program crashes).
v -o h.c hello.v Translate `hello.v` to `h.c`. Do not compile further. v -o h.c hello.v Translate `hello.v` to `h.c`. Do not compile further.
V supports the following commands: V supports the following commands:

View File

@ -1739,10 +1739,9 @@ To cast a `voidptr` to a V reference, use `user := &User(user_void_ptr)`.
To debug issues in the generated C code, you can pass these flags: To debug issues in the generated C code, you can pass these flags:
- `-cg` - produces a less optimized executable with more debug information in it. - `-cg` - produces a less optimized executable with more debug information in it.
- `-keepc` - keep the generated C file, so your debugger can also use it.
- `-showcc` - prints the C command that is used to build the program. - `-showcc` - prints the C command that is used to build the program.
For the best debugging experience, you can pass all of them at the same time: `v -cg -keepc -showcc yourprogram.v` , then just run your debugger (gdb/lldb) or IDE on the produced executable `yourprogram`. For the best debugging experience, you can pass all of them at the same time: `v -cg -showcc yourprogram.v` , then just run your debugger (gdb/lldb) or IDE on the produced executable `yourprogram`.
If you just want to inspect the generated C code, without further compilation, you can also use the `-o` flag (e.g. `-o file.c`). This will make V produce the `file.c` then stop. If you just want to inspect the generated C code, without further compilation, you can also use the `-o` flag (e.g. `-o file.c`). This will make V produce the `file.c` then stop.

View File

@ -482,9 +482,6 @@ fn (mut v Builder) cc() {
println('linux cross compilation done. resulting binary: "$v.out_name"') println('linux cross compilation done. resulting binary: "$v.out_name"')
} }
*/ */
if !v.pref.keep_c && v.out_name_c != 'v.c' {
os.rm(v.out_name_c)
}
if v.pref.compress { if v.pref.compress {
$if windows { $if windows {
println('-compress does not work on Windows for now') println('-compress does not work on Windows for now')

View File

@ -192,10 +192,6 @@ fn find_msvc() ?MsvcResult {
pub fn (mut v Builder) cc_msvc() { pub fn (mut v Builder) cc_msvc() {
r := find_msvc() or { r := find_msvc() or {
// TODO: code reuse
if !v.pref.keep_c && v.out_name_c != 'v.c' && v.out_name_c != 'v_macos.c' {
os.rm(v.out_name_c)
}
verror('Cannot find MSVC on this OS') verror('Cannot find MSVC on this OS')
return return
} }
@ -309,9 +305,6 @@ pub fn (mut v Builder) cc_msvc() {
} }
// println(res) // println(res)
// println('C OUTPUT:') // println('C OUTPUT:')
if !v.pref.keep_c && v.out_name_c != 'v.c' && v.out_name_c != 'v_macos.c' {
os.rm(v.out_name_c)
}
// Always remove the object file - it is completely unnecessary // Always remove the object file - it is completely unnecessary
os.rm(out_name_obj) os.rm(out_name_obj)
} }

View File

@ -82,7 +82,7 @@ fn (g &Gen) generate_hotcode_reloading_main_caller() {
file := util.cescaped_path( g.pref.path ) file := util.cescaped_path( g.pref.path )
msvc := if g.pref.ccompiler == 'msvc' { '-cc msvc' } else { '' } msvc := if g.pref.ccompiler == 'msvc' { '-cc msvc' } else { '' }
so_debug_flag := if g.pref.is_debug { '-cg' } else { '' } so_debug_flag := if g.pref.is_debug { '-cg' } else { '' }
vopts := '$msvc $so_debug_flag -keepc -sharedlive -shared' vopts := '$msvc $so_debug_flag -sharedlive -shared'
// //
g.writeln('\t\t// start background reloading thread') g.writeln('\t\t// start background reloading thread')
if g.pref.os == .windows { if g.pref.os == .windows {

View File

@ -69,7 +69,6 @@ pub mut:
sanitize bool // use Clang's new "-fsanitize" option sanitize bool // use Clang's new "-fsanitize" option
is_debug bool // false by default, turned on by -g or -cg, it tells v to pass -g to the C backend compiler. is_debug bool // false by default, turned on by -g or -cg, it tells v to pass -g to the C backend compiler.
is_vlines bool // turned on by -g, false by default (it slows down .tmp.c generation slightly). is_vlines bool // turned on by -g, false by default (it slows down .tmp.c generation slightly).
keep_c bool // -keepc , tell v to leave the generated .tmp.c alone (since by default v will delete them after c backend finishes)
show_cc bool // -showcc, print cc command show_cc bool // -showcc, print cc command
// NB: passing -cg instead of -g will set is_vlines to false and is_g to true, thus making v generate cleaner C files, // NB: passing -cg instead of -g will set is_vlines to false and is_g to true, thus making v generate cleaner C files,
// which are sometimes easier to debug / inspect manually than the .tmp.c files by plain -g (when/if v line number generation breaks). // which are sometimes easier to debug / inspect manually than the .tmp.c files by plain -g (when/if v line number generation breaks).
@ -197,7 +196,7 @@ pub fn parse_args(args []string) (&Preferences, string) {
res.use_cache = true res.use_cache = true
} }
'-keepc' { '-keepc' {
res.keep_c = true eprintln('-keepc is deprecated. V always keeps the generated .tmp.c files now.')
} }
'-parallel' { '-parallel' {
res.is_parallel = true res.is_parallel = true

View File

@ -38,7 +38,7 @@ fn test_all() {
full_test_path := os.real_path(test) full_test_path := os.real_path(test)
println('x.v: $wrkdir/x.v') println('x.v: $wrkdir/x.v')
os.system('cp ${dir}/${test} $wrkdir/x.v') // cant run .vv file os.system('cp ${dir}/${test} $wrkdir/x.v') // cant run .vv file
compile_cmd := '$vexe -cflags "-w" -verbose=3 -autofree -keepc -cg $wrkdir/x.v' compile_cmd := '$vexe -cflags "-w" -verbose=3 -autofree -cg $wrkdir/x.v'
vprintln('compile cmd: $compile_cmd') vprintln('compile cmd: $compile_cmd')
res := os.exec(compile_cmd) or { res := os.exec(compile_cmd) or {
bench.fail() bench.fail()