mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
[if vfmt] function attribute for skipping functions for performance
This commit is contained in:
parent
ee51313e2c
commit
ef022c2326
@ -113,6 +113,7 @@ pub mut:
|
||||
// This is on by default, since a vast majority of users do not
|
||||
// work on the builtin module itself.
|
||||
//generating_vh bool
|
||||
comptime_define string // -D vfmt for `if $vfmt {`
|
||||
}
|
||||
|
||||
// Should be called by main at the end of the compilation process, to cleanup
|
||||
@ -765,6 +766,7 @@ pub fn new_v(args[]string) &V {
|
||||
|
||||
joined_args := args.join(' ')
|
||||
target_os := get_arg(joined_args, 'os', '')
|
||||
comptime_define := get_arg(joined_args, 'd', '')
|
||||
mut out_name := get_arg(joined_args, 'o', 'a.out')
|
||||
|
||||
mut dir := args.last()
|
||||
@ -922,6 +924,7 @@ pub fn new_v(args[]string) &V {
|
||||
cflags: cflags
|
||||
ccompiler: find_c_compiler()
|
||||
building_v: !is_repl && (rdir_name == 'compiler' || rdir_name == 'v.v' || dir.contains('vlib'))
|
||||
comptime_define: comptime_define
|
||||
}
|
||||
if pref.is_verbose || pref.is_debug {
|
||||
println('C compiler=$pref.ccompiler')
|
||||
|
@ -3872,7 +3872,13 @@ fn (p mut Parser) js_decode() string {
|
||||
|
||||
fn (p mut Parser) attribute() {
|
||||
p.check(.lsbr)
|
||||
if p.tok == .key_if {
|
||||
// [if vfmt]
|
||||
p.next()
|
||||
p.attr = 'if ' + p.check_name()
|
||||
} else {
|
||||
p.attr = p.check_name()
|
||||
}
|
||||
attr_token_idx := p.cur_tok_index()
|
||||
if p.tok == .colon {
|
||||
p.check(.colon)
|
||||
|
@ -7,6 +7,7 @@ module compiler
|
||||
import strings
|
||||
|
||||
// fmt helpers
|
||||
//[if vfmt]
|
||||
fn (scanner mut Scanner) fgen(s_ string) {
|
||||
mut s := s_
|
||||
if scanner.fmt_line_empty {
|
||||
|
Loading…
Reference in New Issue
Block a user