Skip to main content

signaloid-cli cores update

Update core configuration.

Synopsis​

signaloid-cli cores update --core-id <id> [options]

Options​

OptionRequiredDescription
--core-id <id>YesCore ID to update
--name <str>NoNew name
--class <class>NoNew class: C0Pro, r7i, C0-microSD, C0-microSD-plus, C0-SD
--microarchitecture <arch>NoNew microarchitecture: Athens, Rome, Jupiter, Mercury, Europa, Bypass, Reference, Native. Required to change an r7i core to another class. An r7i core takes only Native.
--precision <n>NoNew precision. Power of two from 4 to 8,192 for Athens, Rome, Jupiter, Mercury, and Europa. Integer from 4 to 1,000,000 for Reference. Leave it out for Bypass, or pass 0. Required to change an r7i or Bypass core to a microarchitecture that takes a precision.
--dependency-tracking <mode>NoNew dependency-tracking mode: None, Basic, Advanced. Required when the stored mode does not suit the new microarchitecture and that microarchitecture accepts more than one mode.
--memory <n>NoCan be ignored. The Signaloid Cloud Compute Engine sets the memory size from the core class, so the CLI does not send this value and prints a warning.

Description​

The cores update command modifies the configuration of an existing custom core. You can update one or more properties, including the name, class, microarchitecture, precision, and dependency-tracking mode. Only the properties you specify change. All other properties keep their stored values. The same rules apply as for cores create.

Changing to or from the r7i class​

  • Changing a core to r7i sets its microarchitecture to Native and drops its precision and dependency tracking. The CLI rejects a --microarchitecture other than Native, a --precision other than 0, or a --dependency-tracking other than None for an r7i core.
  • Changing an r7i core to another class needs --microarchitecture, because Native suits no other class, and --precision unless the new microarchitecture is Bypass.

Changing to or from Bypass​

  • A Bypass core always has a precision of 0 and a dependency tracking mode of None. Changing a core to Bypass sets them, and the CLI rejects a --precision other than 0 or a --dependency-tracking other than None.
  • Changing a Bypass core to another microarchitecture needs --precision, because a precision of 0 suits no other microarchitecture.

Dependency tracking​

If you leave out --dependency-tracking, the CLI keeps the stored value as long as the core's new microarchitecture accepts it. If the microarchitecture does not accept the stored value:

  • If the microarchitecture accepts only one value, the CLI uses that value, i.e., Advanced for Jupiter, Mercury, and Europa, None for Bypass and Reference.
  • If it accepts more than one value, the CLI reports a usage error (exit code 2) and asks for --dependency-tracking. For example, changing a Jupiter core to Athens needs --dependency-tracking set to None or Basic.

Older cores​

  • A core that still has the retired C0 class can only be updated together with --class, for example C0Pro, which replaced it.
  • A core that still has the retired Atlas microarchitecture can only be updated together with --microarchitecture, for example Rome, which replaced it.

The CLI reports a missing --class or --microarchitecture in these cases as a usage error (exit code 2) before sending the update.

Examples​

Update microarchitecture and dependency tracking of core core_abc123:

signaloid-cli cores update \
--core-id core_abc123 \
--microarchitecture Rome \
--dependency-tracking Basic

Migrate a core with the retired C0 class:

signaloid-cli cores update --core-id core_abc123 --class C0Pro

Change a core to the r7i class:

signaloid-cli cores update \
--core-id core_abc123 \
--class r7i \
--microarchitecture Native

Notes​

  • Only custom cores can be updated. Default cores cannot be modified
  • All options except --core-id are optional
  • Only the specified properties will be updated
  • Validation rules apply to all updated properties (same as create)

Troubleshooting​

"Core not found" Error​

Problem: Cannot access specified core for updating.

Solutions:

  1. Verify the core ID is correct
  2. Check if the core still exists: signaloid-cli cores list
  3. Ensure you have permissions to modify the core

"Cannot update default core" Error​

Problem: Attempting to update a system default core.

Solutions:

  • Default cores cannot be modified
  • Create a custom core with your desired configuration instead

See Also​