You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fastcache-compile-node is configured entirely from argv and cannot install itself as a service. On Linux that is covered in practice — the packaged socket-activated unit is installed, enabled by the deb/rpm scriptlets and asserted in CI — but on macOS and Windows an operator has to run the worker in the foreground or wire up a supervisor by hand.
What the daemon already has and the worker does not:
IDaemonHost (ForegroundHost / PosixDaemonHost / WindowsServiceHost). src/apps/fastcache-compile-node/main.cpp includes Platform/DaemonControls.hpp and installs signal handlers, but never reaches for the host seam.
--install-service / --uninstall-service.InstallService/UninstallService (src/FastCache/Platform/ServiceControl.hpp) take Config const& — the daemon's config type — so they cannot serve a second binary without a descriptor seam between them. That seam is the ServiceSpec the PR Add distributed compilation: dispatch cache misses to worker nodes #78 description named; it has zero occurrences in the tree today.
A config file.DefaultConfigCandidates() (src/FastCache/Config/DefaultConfigPath.cpp) hardcodes fastcached.yaml in every row and takes no application name, so the worker has no discovered-config path to generalize onto.
Worth keeping in mind while doing it: BuildServiceArgv's exclusion list and its ServiceControl_test case exist because a flag that reaches a supervisor has to survive its own parser (see AGENT.md, "What reaches a supervisor must survive its own parser"). A worker registration would need the same treatment for --advertise, which under socket activation is required — a wrong one registers happily and then nobody can reach it.
Deferred from #78, which is otherwise complete; docs/tools/fastcache-compile-node.md records the gap under "Not yet done".
fastcache-compile-nodeis configured entirely fromargvand cannot install itself as a service. On Linux that is covered in practice — the packaged socket-activated unit is installed, enabled by the deb/rpm scriptlets and asserted in CI — but on macOS and Windows an operator has to run the worker in the foreground or wire up a supervisor by hand.What the daemon already has and the worker does not:
IDaemonHost(ForegroundHost/PosixDaemonHost/WindowsServiceHost).src/apps/fastcache-compile-node/main.cppincludesPlatform/DaemonControls.hppand installs signal handlers, but never reaches for the host seam.--install-service/--uninstall-service.InstallService/UninstallService(src/FastCache/Platform/ServiceControl.hpp) takeConfig const&— the daemon's config type — so they cannot serve a second binary without a descriptor seam between them. That seam is theServiceSpecthe PR Add distributed compilation: dispatch cache misses to worker nodes #78 description named; it has zero occurrences in the tree today.DefaultConfigCandidates()(src/FastCache/Config/DefaultConfigPath.cpp) hardcodesfastcached.yamlin every row and takes no application name, so the worker has no discovered-config path to generalize onto.Worth keeping in mind while doing it:
BuildServiceArgv's exclusion list and itsServiceControl_testcase exist because a flag that reaches a supervisor has to survive its own parser (see AGENT.md, "What reaches a supervisor must survive its own parser"). A worker registration would need the same treatment for--advertise, which under socket activation is required — a wrong one registers happily and then nobody can reach it.Deferred from #78, which is otherwise complete;
docs/tools/fastcache-compile-node.mdrecords the gap under "Not yet done".