mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
V 0.1.23
This commit is contained in:
parent
43d0199604
commit
881584d04c
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@ -90,9 +90,9 @@ jobs:
|
|||||||
runs-on: windows-2019
|
runs-on: windows-2019
|
||||||
steps:
|
steps:
|
||||||
- name: Download V
|
- name: Download V
|
||||||
run: wget https://github.com/vbinaries/vbinaries/releases/download/latest/v_windows.zip && unzip v_windows.zip && ./v.exe --version
|
# run: wget https://github.com/vbinaries/vbinaries/releases/download/latest/v_windows.zip && unzip v_windows.zip && ./v.exe --version
|
||||||
- name: Test V
|
- name: Test V
|
||||||
run: ./v.exe examples/hello_world.v && examples/hello_world.exe
|
# run: ./v.exe examples/hello_world.v && examples/hello_world.exe
|
||||||
|
|
||||||
|
|
||||||
ubuntu-tcc:
|
ubuntu-tcc:
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
pub const (
|
pub const (
|
||||||
Version = '0.1.22'
|
Version = '0.1.23'
|
||||||
)
|
)
|
||||||
|
|
||||||
enum BuildMode {
|
enum BuildMode {
|
||||||
@ -248,10 +248,10 @@ pub fn (v mut V) compile() {
|
|||||||
cgen.genln('#include <inttypes.h>') // int64_t etc
|
cgen.genln('#include <inttypes.h>') // int64_t etc
|
||||||
} else {
|
} else {
|
||||||
cgen.genln('#include <stdint.h>')
|
cgen.genln('#include <stdint.h>')
|
||||||
}
|
}
|
||||||
|
|
||||||
cgen.genln(c_builtin_types)
|
cgen.genln(c_builtin_types)
|
||||||
|
|
||||||
if !v.pref.is_bare {
|
if !v.pref.is_bare {
|
||||||
cgen.genln(c_headers)
|
cgen.genln(c_headers)
|
||||||
}
|
}
|
||||||
@ -351,8 +351,8 @@ pub fn (v mut V) compile_x64() {
|
|||||||
println('v -x64 can only generate Linux binaries for now')
|
println('v -x64 can only generate Linux binaries for now')
|
||||||
println('You are not on a Linux system, so you will not ' +
|
println('You are not on a Linux system, so you will not ' +
|
||||||
'be able to run the resulting executable')
|
'be able to run the resulting executable')
|
||||||
}
|
}
|
||||||
|
|
||||||
v.files << v.v_files_from_dir(filepath.join(v.pref.vlib_path, 'builtin', 'bare'))
|
v.files << v.v_files_from_dir(filepath.join(v.pref.vlib_path, 'builtin', 'bare'))
|
||||||
v.files << v.dir
|
v.files << v.dir
|
||||||
v.x64.generate_elf_header()
|
v.x64.generate_elf_header()
|
||||||
@ -363,7 +363,7 @@ pub fn (v mut V) compile_x64() {
|
|||||||
v.parse(f, .main)
|
v.parse(f, .main)
|
||||||
}
|
}
|
||||||
v.x64.generate_elf_footer()
|
v.x64.generate_elf_footer()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (v mut V) generate_init() {
|
fn (v mut V) generate_init() {
|
||||||
$if js { return }
|
$if js { return }
|
||||||
@ -541,7 +541,7 @@ pub fn (v V) run_compiled_executable_and_exit() {
|
|||||||
println('============ running $v.out_name ============')
|
println('============ running $v.out_name ============')
|
||||||
}
|
}
|
||||||
mut cmd := '"' + final_target_out_name(v.out_name).replace('.exe','') + '"'
|
mut cmd := '"' + final_target_out_name(v.out_name).replace('.exe','') + '"'
|
||||||
|
|
||||||
mut args_after := ' '
|
mut args_after := ' '
|
||||||
for i,a in args {
|
for i,a in args {
|
||||||
if i == 0 { continue }
|
if i == 0 { continue }
|
||||||
@ -552,7 +552,7 @@ pub fn (v V) run_compiled_executable_and_exit() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmd += args_after
|
cmd += args_after
|
||||||
|
|
||||||
if v.pref.is_test {
|
if v.pref.is_test {
|
||||||
ret := os.system(cmd)
|
ret := os.system(cmd)
|
||||||
if ret != 0 {
|
if ret != 0 {
|
||||||
@ -575,7 +575,7 @@ pub fn (v &V) v_files_from_dir(dir string) []string {
|
|||||||
if dir == 'compiler' && os.dir_exists('vlib') {
|
if dir == 'compiler' && os.dir_exists('vlib') {
|
||||||
println('looks like you are trying to build V with an old command')
|
println('looks like you are trying to build V with an old command')
|
||||||
println('use `v -o v v.v` instead of `v -o v compiler`')
|
println('use `v -o v v.v` instead of `v -o v compiler`')
|
||||||
}
|
}
|
||||||
verror("$dir doesn't exist")
|
verror("$dir doesn't exist")
|
||||||
} else if !os.dir_exists(dir) {
|
} else if !os.dir_exists(dir) {
|
||||||
verror("$dir isn't a directory")
|
verror("$dir isn't a directory")
|
||||||
@ -620,7 +620,7 @@ pub fn (v mut V) add_v_files_to_compile() {
|
|||||||
mut builtin_files := v.get_builtin_files()
|
mut builtin_files := v.get_builtin_files()
|
||||||
if v.pref.is_bare {
|
if v.pref.is_bare {
|
||||||
//builtin_files = []
|
//builtin_files = []
|
||||||
}
|
}
|
||||||
// Builtin cache exists? Use it.
|
// Builtin cache exists? Use it.
|
||||||
builtin_vh := '${v.pref.vlib_path}${os.path_separator}builtin.vh'
|
builtin_vh := '${v.pref.vlib_path}${os.path_separator}builtin.vh'
|
||||||
if v.pref.is_cache && os.file_exists(builtin_vh) {
|
if v.pref.is_cache && os.file_exists(builtin_vh) {
|
||||||
@ -647,7 +647,7 @@ pub fn (v mut V) add_v_files_to_compile() {
|
|||||||
p.register_import('os', 0)
|
p.register_import('os', 0)
|
||||||
p.table.imports << 'os'
|
p.table.imports << 'os'
|
||||||
p.table.register_module('os')
|
p.table.register_module('os')
|
||||||
}
|
}
|
||||||
//if p.pref.autofree { p.scanner.text.free() free(p.scanner) }
|
//if p.pref.autofree { p.scanner.text.free() free(p.scanner) }
|
||||||
v.add_parser(p)
|
v.add_parser(p)
|
||||||
}
|
}
|
||||||
@ -713,11 +713,11 @@ pub fn (v &V) get_user_files() []string {
|
|||||||
// TODO this somtimes fails on CI
|
// TODO this somtimes fails on CI
|
||||||
user_files << filepath.join(v.pref.vlib_path,'compiler','preludes','tests_assertions.v')
|
user_files << filepath.join(v.pref.vlib_path,'compiler','preludes','tests_assertions.v')
|
||||||
}
|
}
|
||||||
|
|
||||||
if v.pref.is_test && v.pref.is_stats {
|
if v.pref.is_test && v.pref.is_stats {
|
||||||
user_files << filepath.join(v.pref.vlib_path,'compiler','preludes','tests_with_stats.v')
|
user_files << filepath.join(v.pref.vlib_path,'compiler','preludes','tests_with_stats.v')
|
||||||
}
|
}
|
||||||
|
|
||||||
// v volt/slack_test.v: compile all .v files to get the environment
|
// v volt/slack_test.v: compile all .v files to get the environment
|
||||||
// I need to implement user packages! TODO
|
// I need to implement user packages! TODO
|
||||||
is_test_with_imports := dir.ends_with('_test.v') &&
|
is_test_with_imports := dir.ends_with('_test.v') &&
|
||||||
@ -839,7 +839,7 @@ pub fn new_v(args[]string) &V {
|
|||||||
os.mkdir(v_modules_path) or { panic(err) }
|
os.mkdir(v_modules_path) or { panic(err) }
|
||||||
os.mkdir('$v_modules_path${os.path_separator}cache') or { panic(err) }
|
os.mkdir('$v_modules_path${os.path_separator}cache') or { panic(err) }
|
||||||
}
|
}
|
||||||
|
|
||||||
// optional, custom modules search path
|
// optional, custom modules search path
|
||||||
user_mod_path := get_cmdline_option(args, '-user_mod_path', '')
|
user_mod_path := get_cmdline_option(args, '-user_mod_path', '')
|
||||||
|
|
||||||
@ -852,7 +852,7 @@ pub fn new_v(args[]string) &V {
|
|||||||
vgen_buf.writeln('module vgen\nimport strings')
|
vgen_buf.writeln('module vgen\nimport strings')
|
||||||
|
|
||||||
joined_args := args.join(' ')
|
joined_args := args.join(' ')
|
||||||
|
|
||||||
target_os := get_arg(joined_args, 'os', '')
|
target_os := get_arg(joined_args, 'os', '')
|
||||||
comptime_define := get_arg(joined_args, 'd', '')
|
comptime_define := get_arg(joined_args, 'd', '')
|
||||||
//println('comptimedefine=$comptime_define')
|
//println('comptimedefine=$comptime_define')
|
||||||
@ -936,8 +936,8 @@ pub fn new_v(args[]string) &V {
|
|||||||
if !os.dir_exists(d) {
|
if !os.dir_exists(d) {
|
||||||
println('creating a new directory "$d"')
|
println('creating a new directory "$d"')
|
||||||
os.mkdir(d) or { panic(err) }
|
os.mkdir(d) or { panic(err) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mut _os := OS.mac
|
mut _os := OS.mac
|
||||||
// No OS specifed? Use current system
|
// No OS specifed? Use current system
|
||||||
if target_os == '' {
|
if target_os == '' {
|
||||||
@ -991,10 +991,10 @@ pub fn new_v(args[]string) &V {
|
|||||||
cflags := get_cmdline_cflags(args)
|
cflags := get_cmdline_cflags(args)
|
||||||
rdir := os.realpath(dir)
|
rdir := os.realpath(dir)
|
||||||
rdir_name := os.filename(rdir)
|
rdir_name := os.filename(rdir)
|
||||||
|
|
||||||
if '-bare' in args {
|
if '-bare' in args {
|
||||||
verror('use -freestanding instead of -bare')
|
verror('use -freestanding instead of -bare')
|
||||||
}
|
}
|
||||||
|
|
||||||
obfuscate := '-obf' in args
|
obfuscate := '-obf' in args
|
||||||
is_repl := '-repl' in args
|
is_repl := '-repl' in args
|
||||||
@ -1044,7 +1044,7 @@ pub fn new_v(args[]string) &V {
|
|||||||
$if !linux {
|
$if !linux {
|
||||||
if pref.is_bare && !out_name.ends_with('.c') {
|
if pref.is_bare && !out_name.ends_with('.c') {
|
||||||
verror('-bare only works on Linux for now')
|
verror('-bare only works on Linux for now')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return &V{
|
return &V{
|
||||||
os: _os
|
os: _os
|
||||||
|
Loading…
Reference in New Issue
Block a user