| Age | Commit message (Collapse) | Author |
|
This side is the read end of a pipe and buffering reads from it ended up performing better than buffering one half of the TeeReader (which already goes through the kernel page cache anyway).
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for external tooling.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These cause build to fail to start.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This fixes a use-after-free.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids filtering some unrelated os.ErrExist.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is currently only used by execArtifact. A later patch will add additional logging facilities.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids discarding output thus appearing unresponsive.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is not as necessary as it was for nix, since internal/pkg only unblocks exclusive artifacts one at a time. Still, this is useful when running alongside an unprivileged music player which cannot set itself to a higher priority.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
A string holds "current" hakurei source code. For now the compressed tarball is 4.9 MiB long.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is a useful helper for external tooling.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for external tooling providing an execArtifact-like environment.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This got brought up earlier today as a potential optimisation. This change documents why it is not viable, and hopefully clears up some performance implications of using IRDecoder, namely that its decoding costs do not amortise.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is required by the GLib test suite, and possibly others.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is useful for FileArtifact processing another stream.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
For making these methods available to RContext.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves error resolution performance.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves performance and is a good assumption since the primary use case of FileArtifact is over the network.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Reader has a non-insignificant buffer that is worth saving as well.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
TContext no longer validates FileArtifact ahead of time, validation outcome is instead determined after consuming the reader to EOF. All data must therefore be treated as untrusted input until the reader is closed.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly increases IR generation performance.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This should hopefully provide good separation between the artifact curing backend implementation and the (still work in progress) language. Making the IR parseable also guarantees uniqueness of the representation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This was taking way too long for early failures.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Avoid living under the default user agent and be at the mercy of some IDS.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The armv8l busybox binary release needs this to run correctly.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This also rearranges the ident ir to be more predictable, and avoids an obvious and somewhat easy to get into inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This alleviates scheduler overhead when curing many artifacts.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
The Close method panics otherwise.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This cannot be relative since the curing process is not in the temp directory.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This uses the new measured reader provided by Cache. This should make httpArtifact zero-copy.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This will be fully implemented in httpArtifact in a future commit.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids blocking while not in Cure method of the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This avoids truncating unreasonably long lines from llvm.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is an interesting value to know when profiling.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
No good reason to filter this in the execArtifact container, and the extended filter breaks certain programs.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This enables deduplication by value as implemented in execArtifact.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly simplifies error reporting for caller.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Any fine-grained file-based locking here significantly hurts performance and is not part of the use case of the package. This change guarantees exclusive access to prevent inconsistent state on the filesystem.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This significantly improves scrubbing performance. Since the cache directory structure is friendly to simultaneous access, this is possible without synchronisation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This eliminates duplicate identifier computations. The new implementation also significantly reduces allocations while computing identifier for a large dependency tree.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This provides a quick check against cyclic dependencies without hurting cure performance.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This is significantly more practical than keeping track of them in directory flattening format and setting this in every non-artifact implementation. Only tarArtifact can have meaningful deterministic checksums that are not zero and zeroing them still keeps autotools happy.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
Expanding this enables sharing of code common between types.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This proxies program output through msg with a name and fd prefix. This also avoids introducing additional information to the container via process stdout/stderr.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This reports cure completions to the user.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
These are generally for generating configuration files or build scripts, naming them is quite useful.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This does not have a reasonable way of inferring the underlying name. For zero value it falls back to base of executable pathname.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This makes verbose messages much more useful.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This change also updates the documentation of NewExec.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
This result was mistakenly unused resulting in incorrect identifiers for artifacts with duplicate dependencies.
Signed-off-by: Ophestra <cat@gensokyo.uk>
|
|
An upcoming improvement in the container init makes the current host net check return the same result for both cases. This change
Signed-off-by: Ophestra <cat@gensokyo.uk>
|