compiler: optimize, don't rescan module directory for files (#2334)
* optimize, don't rescan module directory for files * move from table to vpull/2336/head
parent
6a951751f7
commit
e5b0478e19
|
@ -574,7 +574,6 @@ pub fn (v mut V) add_v_files_to_compile() {
|
||||||
// main files will get added last
|
// main files will get added last
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// use cached built module if exists
|
// use cached built module if exists
|
||||||
if v.pref.build_mode != .build_module && !mod.contains('vweb') {
|
if v.pref.build_mode != .build_module && !mod.contains('vweb') {
|
||||||
mod_path := mod.replace('.', os.path_separator)
|
mod_path := mod.replace('.', os.path_separator)
|
||||||
|
@ -587,8 +586,7 @@ pub fn (v mut V) add_v_files_to_compile() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// standard module
|
// standard module
|
||||||
mod_path := v.find_module_path(mod) or { verror(err) break }
|
vfiles := v.get_imported_module_files(mod)
|
||||||
vfiles := v.v_files_from_dir(mod_path)
|
|
||||||
for file in vfiles {
|
for file in vfiles {
|
||||||
v.files << file
|
v.files << file
|
||||||
}
|
}
|
||||||
|
@ -633,7 +631,7 @@ pub fn (v &V) get_user_files() []string {
|
||||||
if dir.ends_with('.v') {
|
if dir.ends_with('.v') {
|
||||||
// Just compile one file and get parent dir
|
// Just compile one file and get parent dir
|
||||||
user_files << dir
|
user_files << dir
|
||||||
dir = dir.all_before('${os.path_separator}')
|
dir = dir.all_before(os.path_separator)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Add .v files from the directory being compiled
|
// Add .v files from the directory being compiled
|
||||||
|
@ -653,6 +651,17 @@ pub fn (v &V) get_user_files() []string {
|
||||||
return user_files
|
return user_files
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get module files from already parsed imports
|
||||||
|
fn (v &V) get_imported_module_files(mod string) []string {
|
||||||
|
mut files := []string
|
||||||
|
for _, fit in v.table.file_imports {
|
||||||
|
if fit.module_name == mod {
|
||||||
|
files << fit.file_path_id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return files
|
||||||
|
}
|
||||||
|
|
||||||
// parse deps from already parsed builtin/user files
|
// parse deps from already parsed builtin/user files
|
||||||
pub fn (v mut V) parse_lib_imports() {
|
pub fn (v mut V) parse_lib_imports() {
|
||||||
mut done_fits := []string
|
mut done_fits := []string
|
||||||
|
|
Loading…
Reference in New Issue