aboutsummaryrefslogtreecommitdiff
path: root/src/error.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-02-16 13:25:30 -0500
committerAndrew Kelley <andrew@ziglang.org>2020-02-16 13:25:30 -0500
commit4b02a39aa93b0043f05de0d90443051c019643ab (patch)
tree12632d2e43bc6e13911d8e88d1f91e84b11106f6 /src/error.cpp
parent5e37fc0746a75ed319fc57ae62d8cc966382c592 (diff)
downloadzig-4b02a39aa93b0043f05de0d90443051c019643ab.tar.gz
zig-4b02a39aa93b0043f05de0d90443051c019643ab.zip
self-hosted libc detection
* libc_installation.cpp is deleted. src-self-hosted/libc_installation.zig is now used for both stage1 and stage2 compilers. * (breaking) move `std.fs.File.access` to `std.fs.Dir.access`. The API now encourages use with an open directory handle. * Add `std.os.faccessat` and related functions. * Deprecate the "C" suffix naming convention for null-terminated parameters. "C" should be used when it is related to libc. However null-terminated parameters often have to do with the native system ABI rather than libc. "Z" suffix is the new convention. For example, `std.os.openC` is deprecated in favor of `std.os.openZ`. * Add `std.mem.dupeZ` for using an allocator to copy memory and add a null terminator. * Remove dead struct field `std.ChildProcess.llnode`. * Introduce `std.event.Batch`. This API allows expressing concurrency without forcing code to be async. It requires no Allocator and does not introduce any failure conditions. However it is not thread-safe. * There is now an ongoing experiment to transition away from `std.event.Group` in favor of `std.event.Batch`. * `std.os.execvpeC` calls `getenvZ` rather than `getenv`. This is slightly more efficient on most systems, and works around a limitation of `getenv` lack of integration with libc. * (breaking) `std.os.AccessError` gains `FileBusy`, `SymLinkLoop`, and `ReadOnlyFileSystem`. Previously these error codes were all reported as `PermissionDenied`. * Add `std.Target.isDragonFlyBSD`. * stage2: access to the windows_sdk functions is done with a manually maintained .zig binding file instead of `@cImport`. * Update src-self-hosted/libc_installation.zig with all the improvements that stage1 has seen to src/libc_installation.cpp until now. In addition, it now takes advantage of Batch so that evented I/O mode takes advantage of concurrency, but it still works in blocking I/O mode, which is how it is used in stage1.
Diffstat (limited to 'src/error.cpp')
-rw-r--r--src/error.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/error.cpp b/src/error.cpp
index 871b6b9e35..1e0267eb67 100644
--- a/src/error.cpp
+++ b/src/error.cpp
@@ -65,6 +65,20 @@ const char *err_str(Error err) {
case ErrorInvalidLlvmCpuFeaturesFormat: return "invalid LLVM CPU features format";
case ErrorUnknownApplicationBinaryInterface: return "unknown application binary interface";
case ErrorASTUnitFailure: return "compiler bug: clang encountered a compile error, but the libclang API does not expose the error. See https://github.com/ziglang/zig/issues/4455 for more details";
+ case ErrorBadPathName: return "bad path name";
+ case ErrorSymLinkLoop: return "sym link loop";
+ case ErrorProcessFdQuotaExceeded: return "process fd quota exceeded";
+ case ErrorSystemFdQuotaExceeded: return "system fd quota exceeded";
+ case ErrorNoDevice: return "no device";
+ case ErrorDeviceBusy: return "device busy";
+ case ErrorUnableToSpawnCCompiler: return "unable to spawn system C compiler";
+ case ErrorCCompilerExitCode: return "system C compiler exited with failure code";
+ case ErrorCCompilerCrashed: return "system C compiler crashed";
+ case ErrorCCompilerCannotFindHeaders: return "system C compiler cannot find libc headers";
+ case ErrorLibCRuntimeNotFound: return "libc runtime not found";
+ case ErrorLibCStdLibHeaderNotFound: return "libc std lib headers not found";
+ case ErrorLibCKernel32LibNotFound: return "kernel32 library not found";
+ case ErrorUnsupportedArchitecture: return "unsupported architecture";
}
return "(invalid error)";
}