Skip to main content

Deprecation Notes

IOWarp was renamed from chimaera / hermes_shm to clio / clio_ctp. For a period, every legacy name kept working as a compatibility alias.

The compatibility shims have been removed

The CHI_* env vars, <chimaera/…> and <hermes_shm/…> header shims, the hshm:: / hipc:: namespace aliases, the HSHM_* and CHI_* macro #defines, the ~/.chimaera/ config paths, and the chimaera CLI symlink no longer exist. Code or scripts still written against them will fail to compile or will silently fall back to defaults.

The migration sweep below is now mandatory rather than optional.

The rest of the documentation uses the canonical name in every example. This page is where you look up "what was the old name?" and "what should I update to?".


What still works

CanonicalLegacy aliasHow the alias works
clio_caeclio_cae_omniclio_cae_omni is installed as a symlink to clio_cae (a copy on Windows).

Flat vs nested clio_run subcommands

clio_run accepts both a flat and a nested subcommand form:

Canonical (flat)Legacy (nested)
clio_run startclio_run runtime start
clio_run stopclio_run runtime stop
clio_run restartclio_run runtime restart
clio_run refreshclio_run repo refresh

Both forms resolve to the same handler. The flat form is shorter and is the form used in docs and examples. The newer subcommands — compose, config, migrate, monitor — have no nested form.


What has been removed

CLI binaries

CanonicalRemoved alias
clio_runchimaera — the symlink is no longer installed.

Configuration files and directories

The runtime now looks only at $CLIO_SERVER_CONF and then ~/.clio/clio.yaml. These paths are no longer consulted:

  • ~/.clio/chimaera.yaml
  • ~/.chimaera/clio.yaml
  • ~/.chimaera/chimaera.yaml

Installers seed ~/.clio/clio.yaml only. If your config still lives under ~/.chimaera/, move it or point CLIO_SERVER_CONF at it — otherwise the runtime starts on the built-in defaults, which have an empty compose section and therefore no storage tiers.

Repository and module manifests are likewise clio_repo.yaml and clio_mod.yaml only; the chimaera_repo.yaml / chimaera_mod.yaml fallbacks are gone. The file contents did not change — only the filename.

Environment variables

Every runtime env var moved from a CHI_ prefix to a CLIO_ prefix. The GetCompat() helper that used to fall back to CHI_<suffix> now reads CLIO_<suffix> and nothing else.

This is the failure mode to watch for: an unset variable is not an error, so a launch script still exporting CHI_SERVER_CONF or CHI_PORT will start the runtime successfully on the wrong configuration. Rename them:

CanonicalRemoved alias
CLIO_SERVER_CONFCHI_SERVER_CONF
CLIO_IPC_MODECHI_IPC_MODE
CLIO_WITH_RUNTIMECHI_WITH_RUNTIME
CLIO_PORTCHI_PORT
CLIO_SERVER_ADDRCHI_SERVER_ADDR
CLIO_REPO_PATHCHI_REPO_PATH
CLIO_NUM_CONTAINERSCHI_NUM_CONTAINERS
CLIO_GPU_BLOCKS, CLIO_GPU_THREADSCHI_GPU_BLOCKS, CHI_GPU_THREADS
CLIO_INIT_ATTEMPTS, CLIO_INIT_SLEEP_MS, CLIO_INIT_STAGGER_MSCHI_INIT_*
CLIO_CLIENT_RETRY_TIMEOUT, CLIO_CLIENT_TRY_NEW_SERVERSCHI_CLIENT_*
CLIO_LBM_THALLIUM_PROTOCOL, CLIO_LBM_THALLIUM_RPC_THREADS, CLIO_LBM_ZMQ_STATSCHI_LBM_*
CLIO_MEMFD_DIR, CLIO_TEST_DATA_DIR, CLIO_WAIT_SERVER, CLIO_ZMQ_IO_THREADSCHI_* (same suffix)

The rule is mechanical: CHI_<suffix>CLIO_<suffix>. See the Configuration Reference for the full current list.

C++ headers

CanonicalRemoved alias
<clio_runtime/clio_runtime.h><chimaera/chimaera.h>
<clio_runtime/…> (whole tree)<chimaera/…>
<clio_ctp/clio_ctp.h><hermes_shm/hermes_shm.h>
<clio_ctp/…> (whole tree)<hermes_shm/…>

The forwarder shims have been deleted; the legacy trees are not installed.

C++ macros and namespaces

CanonicalRemoved alias
CLIO_RUNTIME_INIT(mode, with_runtime)CHIMAERA_INIT(mode, with_runtime)
CLIO_RUNTIME_FINALIZE()CHIMAERA_FINALIZE()
CLIO_IPC, CLIO_ADMIN, CLIO_POOL_MANAGER, CLIO_CONFIG_MANAGER, CLIO_MODULE_MANAGER, CLIO_WORK_ORCHESTRATOR, CLIO_CUR_WORKERCHI_* (same suffix)
CLIO_CHIMOD_CC(...), CLIO_TASK_CC(...)CHI_CHIMOD_CC(...), CHI_TASK_CC(...)
CLIO_TASK_BODY_BEGIN, CLIO_TASK_BODY_END, CLIO_CO_AWAIT, CLIO_CO_RETURNCHI_* (same suffix)
CLIO_QUEUE_ALLOC_T, CLIO_TASK_ALLOC_T, CLIO_PRIV_ALLOC[_T], CLIO_PRIV_SHARED_ALLOC[_T]CHI_* (same suffix)
ctp:: namespacehshm::
ctp::ipc:: namespacehshm::ipc::, hipc::
ctp::thread::, ctp::lbm::, …hshm::thread::, hshm::lbm::, …
CTP_* macros (CTP_CROSS_FUN, CTP_INLINE, CTP_GPU_FUN, CTP_MALLOC, …)matching HSHM_* forms

The compat header <clio_ctp/compat/hshm_aliases.h> no longer exists.

Namespaces, enums, and CMake targets

The chi:: namespace, the ChimaeraMode enum, and the chimaera_* CMake target and library filenames were previously kept for ABI and dynamic-loader stability. They have since been renamed too:

CanonicalRemoved
clio::run:: namespace (plus clio::run::priv::, clio::run::ipc::)chi::
clio::run::RuntimeMode::kClient / kServerChimaeraMode::kClient / kServer
clio_run_cxx, clio_admin_client, …chimaera_cxx, chimaera_admin_runtime, …

Downstream CMake must find_package / link the clio_* target names.


Migrating a downstream project

The mechanical sweep:

# Header paths
grep -rl '<chimaera/' --include='*.cc' --include='*.h' --include='*.cpp' \
| xargs sed -i -E \
's|<chimaera/|<clio_runtime/|g; s|<clio_runtime/chimaera\.h>|<clio_runtime/clio_runtime.h>|g'

grep -rl '<hermes_shm/' --include='*.cc' --include='*.h' --include='*.cpp' \
| xargs sed -i -E \
's|<hermes_shm/|<clio_ctp/|g; s|<clio_ctp/hermes_shm\.h>|<clio_ctp/clio_ctp.h>|g'

# Init / singleton macros
grep -rl '\bCHIMAERA_INIT\b\|\bCHIMAERA_FINALIZE\b\|\bCHI_[A-Z_]' \
--include='*.cc' --include='*.h' --include='*.cpp' \
| xargs sed -i -E \
-e 's/\bCHIMAERA_INIT\b/CLIO_RUNTIME_INIT/g' \
-e 's/\bCHIMAERA_FINALIZE\b/CLIO_RUNTIME_FINALIZE/g' \
-e 's/\bCHI_(ADMIN|IPC|CPU_IPC|POOL_MANAGER|CONFIG_MANAGER|MODULE_MANAGER|WORK_ORCHESTRATOR|CUR_WORKER|CHIMOD_CC|TASK_CC|TASK_BODY_BEGIN|TASK_BODY_END|CO_AWAIT|CO_RETURN|QUEUE_ALLOC_T|TASK_ALLOC_T|PRIV_ALLOC_T|PRIV_ALLOC|PRIV_SHARED_ALLOC_T|PRIV_SHARED_ALLOC|CHIMAERA_MANAGER)\b/CLIO_\1/g'

# Transport-primitive namespaces / macros
grep -rl '\bhshm::\|\bhipc::\|\bHSHM_' \
--include='*.cc' --include='*.h' --include='*.cpp' \
| xargs sed -i -E \
-e 's/\bhshm::/ctp::/g' \
-e 's/\bhipc::/ctp::ipc::/g' \
-e 's/\bHSHM_/CTP_/g'

# Runtime namespace and mode enum
grep -rl '\bchi::\|\bChimaeraMode\b' \
--include='*.cc' --include='*.h' --include='*.cpp' \
| xargs sed -i -E \
-e 's/\bchi::/clio::run::/g' \
-e 's/\bChimaeraMode\b/RuntimeMode/g'

# Env vars in launch scripts: rename CHI_<suffix> -> CLIO_<suffix>.
grep -rl '\bCHI_[A-Z_]' --include='*.sh' --include='*.bash' --include='*.yaml' \
| xargs sed -i -E 's/\bCHI_([A-Z_]+)\b/CLIO_\1/g'

# Config YAMLs (in your repo, not the runtime's):
# rename chimaera_repo.yaml -> clio_repo.yaml and
# rename chimaera_mod.yaml -> clio_mod.yaml. No content changes needed.

# Per-user config, if you still have one under the legacy directory:
# mkdir -p ~/.clio && mv ~/.chimaera/chimaera.yaml ~/.clio/clio.yaml

Then update your CMakeLists.txt to find_package / link the clio_* target names, and grep your launch scripts one more time for a stray CHI_ — that is the failure that does not announce itself.