aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorMarc Tiehuis <marctiehuis@gmail.com>2018-03-31 19:04:01 +1300
committerMarc Tiehuis <marctiehuis@gmail.com>2018-04-01 17:03:06 +1200
commit2e5115b0687ee9b7078dbf70da7d7070a7c80399 (patch)
tree23f3acc2db17931b0bbb2ef4837de7b06dcfcc25 /src/codegen.cpp
parent67f11190d10caac1d08b76d60ec28eb2f5173946 (diff)
downloadzig-2e5115b0687ee9b7078dbf70da7d7070a7c80399.tar.gz
zig-2e5115b0687ee9b7078dbf70da7d7070a7c80399.zip
Add run compiler command
'zig run file.zig' builds a file and stores the artifacts in the global cache. On successful compilation the binary is executed. 'zig run file.zig -- a b c' does the same, but passes the arguments a, b and c as runtime arguments to the program. Everything after an '--' are treated as runtime arguments. On a posix system, a shebang can be used to run a zig file directly. An example shebang would be '#!/usr/bin/zig run'. You may not be able pass extra compile arguments currently as part of the shebang. Linux for example treats all arguments after the first as a single argument which will result in an 'invalid command'. Currently there is no customisability for the cache path as a compile argument. For a posix system you can use `TMPDIR=. zig run file.zig` to override, in this case using the current directory for the run cache. The input file is always recompiled, even if it has changed. This is intended to be cached but further discussion/thought needs to go into this. Closes #466.
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 0ebdf7fa3d..bdd28b86fd 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -6286,7 +6286,7 @@ static ImportTableEntry *add_special_code(CodeGen *g, PackageTableEntry *package
zig_panic("unable to open '%s': %s", buf_ptr(&path_to_code_src), err_str(err));
}
Buf *import_code = buf_alloc();
- if ((err = os_fetch_file_path(abs_full_path, import_code))) {
+ if ((err = os_fetch_file_path(abs_full_path, import_code, false))) {
zig_panic("unable to open '%s': %s", buf_ptr(&path_to_code_src), err_str(err));
}
@@ -6374,7 +6374,7 @@ static void gen_root_source(CodeGen *g) {
}
Buf *source_code = buf_alloc();
- if ((err = os_fetch_file_path(rel_full_path, source_code))) {
+ if ((err = os_fetch_file_path(rel_full_path, source_code, true))) {
zig_panic("unable to open '%s': %s", buf_ptr(rel_full_path), err_str(err));
}
@@ -6439,7 +6439,7 @@ static void gen_global_asm(CodeGen *g) {
int err;
for (size_t i = 0; i < g->assembly_files.length; i += 1) {
Buf *asm_file = g->assembly_files.at(i);
- if ((err = os_fetch_file_path(asm_file, &contents))) {
+ if ((err = os_fetch_file_path(asm_file, &contents, false))) {
zig_panic("Unable to read %s: %s", buf_ptr(asm_file), err_str(err));
}
buf_append_buf(&g->global_asm, &contents);