nix-super/src/libstore
John Ericson 6208ca7209 Separate SystemError from SysError
Most of this is a `catch SysError` -> `catch SystemError` sed. This
is a rather pure-churn change I would like to get out of the way. **The
intersting part is `src/libutil/error.hh`.**

On Unix, we will only throw the `SysError` concrete class, which has
the same constructors that `SystemError` used to have.

On Windows, we will throw `WinError` *and* `SysError`. `WinError`
(which will be created in a later PR), will use a `DWORD` instead of
`int` error value, and `GetLastError()`, which is the Windows equivalent
of the `errno` machinery. Windows will *also* use `SysError` because
Window's "libc" (MSVCRT) implements the POSIX interface, and we use it
too.

As the docs describe, while we *throw* one of the 3 choices above (2
concrete classes or the alias), we should always *catch* `SystemError`.
This ensures no matter how the implementation changes for Windows (e.g.
between `SysError` and `WinError`) the catching logic stays the same
and stays correct.

Co-Authored-By volth <volth@volth.com>
Co-Authored-By Eugene Butler <eugene@eugene4.com>
2024-01-12 12:00:33 -05:00
..
build Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
builtins HashType: Rename to HashAlgorithm 2023-12-06 23:43:42 +01:00
binary-cache-store.cc Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
binary-cache-store.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
build-result.cc Test the rest of the worker protocol serializers 2023-10-04 15:31:52 -04:00
build-result.hh Test the rest of the worker protocol serializers 2023-10-04 15:31:52 -04:00
builtins.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
ca-specific-schema.sql ca: add sqlite index on RealisationsRefs(realisationReference) 2022-04-21 10:06:39 +02:00
common-protocol-impl.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
common-protocol.cc Merge pull request #6236 from obsidiansystems/store-dir-config 2023-12-01 15:38:14 +01:00
common-protocol.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
content-address.cc Organize content addressing, use SourceAccessor with Store::addToStore 2023-12-18 10:41:54 -05:00
content-address.hh Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
daemon.cc Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
daemon.hh Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
derivations.cc reduce copies during drv parsing 2023-12-30 18:44:15 +01:00
derivations.hh Give Derivation::tryResolve an evalStore argument 2023-12-08 10:01:05 -05:00
derived-path-map.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
derived-path-map.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
derived-path.cc use std::tie() for macro-generated operators 2023-12-19 19:32:16 +01:00
derived-path.hh Merge pull request #6236 from obsidiansystems/store-dir-config 2023-12-01 15:38:14 +01:00
downstream-placeholder.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
downstream-placeholder.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
dummy-store.cc Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
dummy-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
export-import.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
filetransfer.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
filetransfer.hh Allow tarball URLs to redirect to a lockable immutable URL 2023-06-13 14:17:45 +02:00
gc-store.hh Clean up store hierarchy with IndirectRootStore 2023-07-24 09:19:44 -04:00
gc.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
globals.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
globals.hh Merge pull request #9670 from DavHau/log-lines 2024-01-05 14:39:50 +01:00
http-binary-cache-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
http-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
indirect-root-store.hh MountedSSHStore: stores on shared filesystems 2023-11-21 13:34:01 -05:00
keys.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
keys.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
legacy-ssh-store.cc Create header for LegacySSHStore 2023-12-10 14:29:09 -05:00
legacy-ssh-store.hh Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
legacy-ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
length-prefixed-protocol-helper.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
local-binary-cache-store.cc Add Store::isTrustedClient() 2023-04-06 19:59:57 -04:00
local-binary-cache-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
local-fs-store.cc LocalStoreAccessor: Reuse PosixSourceAccessor 2023-11-01 17:22:25 +01:00
local-fs-store.hh Merge FSAccessor into SourceAccessor 2023-11-01 17:09:28 +01:00
local-store.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
local-store.hh Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
local-store.md Tweaks 2023-03-23 15:32:59 +01:00
local.mk Only link with -pthread on Unix 2024-01-10 20:38:39 -05:00
lock.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
lock.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
log-store.cc Move the getBuildLog implementation to its own implementation file 2023-01-13 11:05:44 +01:00
log-store.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
machines.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
machines.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
make-content-addressed.cc HashType: Rename to HashAlgorithm 2023-12-06 23:43:42 +01:00
make-content-addressed.hh makeContentAddressed: Add single path helper 2023-06-30 18:22:47 +02:00
misc.cc Fix building CA derivations with and eval store 2023-12-11 12:17:36 -05:00
mounted-ssh-store.md MountedSSHStore: stores on shared filesystems 2023-11-21 13:34:01 -05:00
names.cc return string_views from forceString* 2022-01-27 17:15:43 +01:00
names.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
nar-accessor.cc Fix consts and casts 2023-11-08 17:29:55 +01:00
nar-accessor.hh Fix consts and casts 2023-11-08 17:29:55 +01:00
nar-info-disk-cache.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
nar-info-disk-cache.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
nar-info.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
nar-info.hh Fix consts and casts 2023-11-08 17:29:55 +01:00
nix-store.pc.in Fix building with GCC 9 2023-02-10 18:38:57 +01:00
optimise-store.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
outputs-spec.cc Fix moves that accidentally copy anyway 2023-10-16 21:48:35 +01:00
outputs-spec.hh Introduce OutputName and OutputNameView type aliases 2023-08-25 09:55:07 -04:00
parsed-derivations.cc Renamed HashFormat::Base32 to HashFormat::Nix32 2023-12-06 23:43:42 +01:00
parsed-derivations.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
path-info.cc Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
path-info.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
path-references.cc HashType: Rename to HashAlgorithm 2023-12-06 23:43:42 +01:00
path-references.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
path-regex.hh StorePath: reject names starting with '.' 2023-10-04 22:10:52 +00:00
path-with-outputs.cc Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
path-with-outputs.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
path.cc Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
path.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
pathlocks.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
pathlocks.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
posix-fs-canonicalise.cc Fix NetBSD build 2024-01-02 12:33:51 -05:00
posix-fs-canonicalise.hh Put canonicaliseTimestampAndPermissions in its own header/file 2023-11-21 12:57:59 -05:00
profiles.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
profiles.hh Clean up a few things related to profiles (#8526) 2023-06-19 04:04:59 +00:00
realisation.cc Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
realisation.hh Signer infrastructure: Prep for #9076 2024-01-03 16:13:55 -05:00
remote-fs-accessor.cc Separate SystemError from SysError 2024-01-12 12:00:33 -05:00
remote-fs-accessor.hh Merge FSAccessor into SourceAccessor 2023-11-01 17:09:28 +01:00
remote-store-connection.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
remote-store.cc withFramedSink(): Receive interrupts on the stderr thread 2024-01-03 19:14:50 +01:00
remote-store.hh Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
s3-binary-cache-store.cc Remove bug-avoiding StoreConfig * casts for settings 2023-10-31 12:09:46 -04:00
s3-binary-cache-store.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
s3-binary-cache-store.md Merge how-to section on S3 buckets into S3 store docs (#7972) 2023-10-23 13:22:33 -04:00
s3.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
schema.sql schema.sql: add comment about hash being in base16 2022-06-01 14:59:57 +02:00
serve-protocol-impl.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
serve-protocol.cc Create ServeProto::BuildOptions and a serializer for it 2023-12-09 11:35:13 -05:00
serve-protocol.hh Create ServeProto::BuildOptions and a serializer for it 2023-12-09 11:35:13 -05:00
sqlite.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
sqlite.hh Support opening local store with database on read-only filesystem (#8356) 2023-06-20 11:34:09 +02:00
ssh-store-config.hh Document each store type on its own page 2023-12-01 01:27:52 +01:00
ssh-store.cc MountedSSHStore: stores on shared filesystems 2023-11-21 13:34:01 -05:00
ssh-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
ssh.cc fix(ssh): log first line of stdout 2023-11-06 08:46:19 -05:00
ssh.hh Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
store-api.cc Merge pull request #9662 from shlevy/flat-fixed-references-assert 2024-01-08 10:46:37 -05:00
store-api.hh Combine AbstractPos, PosAdapter, and Pos 2024-01-08 10:59:41 -08:00
store-cast.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
store-dir-config.hh Remove now-redundant text-hashing store methods 2023-12-18 10:44:10 -05:00
uds-remote-store.cc Split up util.{hh,cc} 2023-11-05 12:20:02 -05:00
uds-remote-store.hh Merge FSAccessor into SourceAccessor 2023-11-01 17:09:28 +01:00
uds-remote-store.md Support per-store Markdown documentation 2023-03-21 14:03:40 +01:00
worker-protocol-impl.hh Restrict some code to StoreDirConfig 2023-11-04 19:05:36 -04:00
worker-protocol.cc worker protocol: serialise cgroup stats in BuildResult (#9598) 2023-12-13 16:37:17 -05:00
worker-protocol.hh worker protocol: serialise cgroup stats in BuildResult (#9598) 2023-12-13 16:37:17 -05:00