cat
8821d34b10
internal/pkg: deduplicate unwrapped input errors
...
This avoids repeating errors belonging to multiple instances of the same artifact in different locations in memory.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-08-12 22:34:12 +09:00
cat
a431f16e6f
internal/pkg: in-flight error resolution
...
The DCE is a slow and overcomplicated solution to a simple problem. This change replaces the DCE by resolving errors in-flight.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-08-12 16:21:47 +09:00
cat
280a736ce3
internal/pkg: cure entry/exit notification
...
This enables cure status display without inspecting internal state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-31 13:58:32 +09:00
cat
e73f9e0626
internal/pkg: highlight miscellaneous verbose output
...
These were missed when adding highlight for core cache verbose output.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-30 22:41:18 +09:00
cat
1567a3e582
internal/pkg: highlight cache verbose output
...
This highlights sections of messages, increasing readability in some cases.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-30 17:35:49 +09:00
cat
6fb2065a51
internal/pkg: optionally colour output
...
This increases readability in some cases.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-30 05:15:19 +09:00
cat
e0eec632d0
internal/pkg: optional executable files
...
This enables a FileArtifact implementation to specify whether its resulting file should be executable. This change also implements shebang and ELF magic checks in the file artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-23 17:10:22 +09:00
cat
67dbb68818
internal/pkg: implementation revisions
...
This enables changing the behaviour of an artifact implementation without changing its IR structure. Unfortunately this changes the IR header structure resulting in many rebuilds.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-23 16:39:34 +09:00
cat
6cfd8fb934
internal/pkg: loadavg target in container environment
...
This exposes preferred loadavg target to the container initial process.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-09 09:45:43 +09:00
cat
2f1534853a
internal/pkg: consolidate cache attributes
...
This makes the interface stable.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-09 09:34:27 +09:00
cat
472849cfd6
internal/pkg: optionally force implementation entry
...
For validation of build determinism.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-08 15:26:42 +09:00
cat
3c6e9b3d05
internal/pkg: expose cure whence
...
Useful for cure determinism validation of KindExec.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-08 14:19:17 +09:00
cat
aa5d38981d
internal/pkg: optional shallow external cure
...
This saves time and is often more practical even for package maintainers.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-07 16:35:08 +09:00
cat
512d9b95bd
internal/pkg: remove status acquisition from extern helper
...
Doing this together just makes it awkward to query status early, having to deal with cleaning up.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-04 23:46:50 +09:00
cat
5bf87561f5
internal/pkg: move concurrent cure implementation
...
This is useful independent of cure and might replace the Collect hack.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-04 23:27:12 +09:00
cat
dde69dde61
internal/pkg: rename inputs method
...
Inputs is more correct than dependencies in the current terminology.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-02 23:21:31 +09:00
cat
3ba6609444
internal/pkg: move outcome dereferencing
...
This prepares substitute computation for shallow extern replacements.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-02 22:52:37 +09:00
cat
b538c69e01
internal/pkg: cache extern responses
...
This prepares substitute computation for shallow extern replacements.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-07-02 20:08:28 +09:00
cat
a4fab67811
internal/pkg: optionally exempt implementations from cures counter
...
This avoids holding up many slots with a long pipeline.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-20 01:03:28 +09:00
cat
f869ff95a1
all: apply modernisers
...
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-08 14:58:24 +09:00
cat
22e508fe17
internal/pkg: expose measured reader to extern status
...
This is always required by the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 16:14:54 +09:00
cat
ec29e755fb
internal/pkg: replace outcomes from external cache
...
This is primarily useful for implementing a mirror service. This change also works around the zero-dependency FloodArtifact edge case.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 13:52:26 +09:00
cat
9aaf160ff4
internal/pkg: do not hold up cures during status link
...
This is a bunch of string operation and a single syscall. Do not hold up queue here.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 02:28:45 +09:00
cat
e192fca762
internal/pkg: check for unclean shutdown
...
This avoids running into nasty surprises opening a cache that suffered unclean shutdown due to power loss. All other parts of the cache are not prone to inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-07 01:21:00 +09:00
cat
8e8410ce38
internal/pkg: archive unpack artifact
...
This unpacks an internal/pkg archive stream used in the upcoming mirror service.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 19:46:36 +09:00
cat
76c1fb84c8
internal/pkg: stream decompress artifact
...
The tarArtifact predates FileArtifact pipelining. This migrates decompression and buffering into a standalone artifact implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 18:33:04 +09:00
cat
729be19af3
internal/pkg: rename archive checksum helpers
...
These names are more consistent with other helper names, so rename them while the API is still internal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-04 14:13:20 +09:00
cat
74c18390b4
internal/pkg: correctly scrub substitute status
...
Scrubbing for status predates substitutes. This change fixes scrub handling of substitute status entries.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-02 15:37:55 +09:00
cat
fbd2329d50
internal/pkg: garbage collection
...
This destroys cache entries not referred to by user-specified artifacts and optionally their inputs.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-06-02 13:28:24 +09:00
cat
f5e9a0c04e
internal/pkg: destroy new substitution status on fault
...
This avoids leaving behind the substitution status path of a faulted cure.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:31:13 +09:00
cat
3bd4ef616c
internal/pkg: report errors exiting cure
...
This makes ongoing errors more obvious when multiple failures occur.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-23 01:25:42 +09:00
cat
f2f1726190
internal/pkg: record cure faults
...
These are useful for troubleshooting. This change records them in a separate directory.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 17:58:18 +09:00
cat
f63203cb0a
internal/pkg: populate substitute status
...
These are not created when taking the fast path, but should be inherited from the alternative.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 16:16:37 +09:00
cat
4bede7ecdd
internal/pkg: discontinue DCE resolution on signal
...
This serves as a stopgap measure to skip long-running DCE resolutions.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:29:01 +09:00
cat
487a03b5a3
internal/pkg: deduplicate DCE by ident
...
This eliminates edge cases where target artifacts do not compare equal.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-13 00:18:27 +09:00
cat
a167c1aba5
internal/pkg: hold artifact in DCE
...
This is significantly slower but enables much better error reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 19:45:25 +09:00
cat
6e113b8836
internal/pkg: content-based dependency substitution
...
This change introduces a new fast path for FloodArtifact. It is taken when a curing artifact has identical-by-content controlled relevant inputs and are otherwise identical to an already-cured artifact.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-12 00:19:42 +09:00
cat
5a26895a22
internal/pkg: optionally suppress init verbosity
...
This flag applies to every exec artifact cured by the cache. It has no effect on cure outcome.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-05-05 20:03:06 +09:00
cat
ceb4d26087
internal/pkg: record cache variant on-disk
...
This makes custom artifacts much less error-prone to use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-23 00:53:21 +09:00
cat
9e752b588a
internal/pkg: drop cached error on cancel
...
This avoids disabling the artifact when using the individual cancel method. Unfortunately this makes the method blocking.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:24:48 +09:00
cat
27b1aaae38
internal/pkg: pending error alongside done channel
...
This significantly simplifies synchronisation of access to identErr.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 03:10:37 +09:00
cat
9e18de1dc2
internal/pkg: flush cached errors on abort
...
This avoids disabling the artifact until cache is reopened. The same has to be implemented for Cancel in a future change.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-18 02:59:44 +09:00
cat
30a9dfa4b8
internal/pkg: abort all pending cures
...
This cancels all current pending cures without closing the cache.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 22:40:35 +09:00
cat
3942272c30
internal/pkg: fine-grained cancellation
...
This enables a specific artifact to be targeted for cancellation.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 19:33:21 +09:00
cat
0ff7ab915b
internal/pkg: move IR primitives out of cache
...
These are memory management and caching primitives. Having them as part of Cache is cumbersome and requires a temporary directory that is never used. This change isolates them from Cache to enable independent use.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-17 01:02:13 +09:00
cat
f7f48d57e9
internal/pkg: pass impure job count
...
This is cleaner than checking cpu count during cure, it is impossible to avoid impurity in both situations but this is configurable.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-15 15:36:44 +09:00
cat
10f8b1c221
internal/pkg: optional landlock LSM
...
The alpine linux riscv64 kernel does not enable Landlock LSM, and kernel compilation is not yet feasible.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-07 12:44:07 +09:00
cat
9feac7738f
internal/pkg: optionally suppress via assumed checksum
...
This is quite error-prone and causes cache inconsistency similar to the store inconsistency seen on nix when a similar condition happens. Keep this behind a flag in case it is ever beneficial.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 20:33:59 +09:00
cat
591a60bac9
internal/pkg: per-cache SCHED_IDLE
...
This is cleaner than setting it globally, and is impossible to race.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 16:49:34 +09:00
cat
5093a06026
internal/pkg: cache flags
...
This is cleaner for extending the API.
Signed-off-by: Ophestra <cat@gensokyo.uk >
2026-04-03 16:16:55 +09:00