How useplx/synapse works
SYNaPSe is a PLeX project and package manager: users initialize or configure a project, resolve dependencies and capability bindings, inspect the resulting plan, then build packages into a deployable .mln artifact. The graph preserves README capabilities such as package composition, hooks, policy/device configuration, weight conversion, and multi-language toolchains. Source excerpts show CLI dispatch, manifest parsing, dependency traversal, compiler graph emission, and toolchain process use; other documented subsystem links are dashed where implementation was not sampled.
Main entry points: compiler.cpp Graph compiler · compiler_plan.cpp Build plan · resolver.cpp Dependency resolver · main.cpp Command dispatch
Components 27
CLI workflow
- Command dispatch
src/main.cpp - Project commands
src/cli - Build command
src/cli/build.cpp - Inspect and graph
src/cli
Project and packages
- Project manifest
src/config/project.cpp - Typed configuration
src/config/value.cpp - Dependency resolver
src/package/resolver.cpp - Dependency lockfile
src/package/lockfile.cpp - Package registry
src/compiler/package_registry.cpp - Build plan
src/cli/compiler_plan.cpp - Package composition
include/syn/package.hpp - Hooks and policies
include/syn/compiler.hpp
Compilation and artifacts
- Compiler API
src/compiler/compiler_api.cpp - Graph compiler
src/compiler/compiler.cpp - Operation lowering
include/syn/operations.hpp - Functional operations
src/compiler/functional - Backend selection
src/compiler/backend.cpp - Weight conversion
src/compiler/weights_pack.cpp - Artifact and deployment
src/compiler/artifact.cpp
Toolchains
- Toolchain selection
src/toolchain/driver.cpp - Language drivers
src/toolchain - External processes
src/system/process.cpp
Other components
- Project author
- MyeLiN SDK/runtime
- Compiler library
- Language toolchains
- MLN artifact
Connections 29
- Project author → Command dispatch: invokes
src/main.cpp - Command dispatch → Project commands: dispatches
- Command dispatch → Build command: dispatches
- Command dispatch → Inspect and graph: dispatches
- Project commands → Project manifest: configures
- Build command → Project manifest: loads
- Project manifest → Typed configuration: parses values
src/config/project.cpp - Dependency resolver → Project manifest: loads packages
src/package/resolver.cpp - Dependency resolver → Dependency lockfile: writes lock
- Dependency resolver → Package registry: resolves packages
- Inspect and graph → Dependency resolver: resolves project
- Inspect and graph → Build plan: prints plan
- Build command → Build plan: prepares plan
src/cli/compiler_plan.cpp - Build plan → Dependency resolver: resolves dependencies
src/cli/compiler_plan.cpp - Build plan → Toolchain selection: selects toolchains
- Build plan → Package composition: composes packages
- Build command → Compiler API: requests compilation
- Compiler API → Graph compiler: compiles request
src/compiler/compiler_api.cpp - Graph compiler → Operation lowering: emits graph
- Operation lowering → Functional operations: dispatches emitters
include/syn/operations.hpp - Graph compiler → Hooks and policies: applies configuration
include/syn/compiler.hpp - Graph compiler → Backend selection: selects backend
- Graph compiler → Weight conversion: converts weights
- Graph compiler → Artifact and deployment: produces package
- Compiler API → MyeLiN SDK/runtime: uses SDK
src/compiler/compiler_api.cpp - Artifact and deployment → MLN artifact: writes artifact
- Toolchain selection → Language drivers: selects driver
src/toolchain/driver.cpp - Language drivers → External processes: runs commands
src/toolchain/cpp.cpp - External processes → Language toolchains: executes