skip to content
[readonly]

NAME

sexc - build, test, install and publish C packages

SYNOPSIS

sexc <command> [options] [package...]

COMMANDS

build [package...]
Build the named packages and everything they depend on; all of them when none are named. A package is named by its name, its bin or its folder.
test [package...]
Build, then compile and run each test program. Output is shown for failures. Tests time out after 60 seconds.
run <target> [-- args...]
Build a program and run it with args.
ls
List the workspace's packages: name, version, kind, folder and dependencies.
graph
The build order, and which package depends on which.
init <dir> [--name N] [--kind library|executable|ptx|wasm]
Start a package: a sexc.json, a source, a header and a test. ptx starts with a kernel, wasm with an exported function.
clean
Remove .sexc/out.
install [--frozen]
Resolve every registry dependency in the workspace, write sexc-lock.json, fetch into the store and link .sexc/deps. With --frozen, fail instead of changing the lock.
add <pkg>[@range]... [--to P]
Add dependencies (default ^<latest>) to the package here, or to P, then install.
remove <pkg>... [--from P]
Remove dependencies, then install.
update [pkg...]
Re-resolve the named packages (or all) to the newest versions their ranges allow.
outdated
Locked, wanted and latest version of each dependency.
why <pkg>
Which workspace packages pull a dependency in, and through what.
pack [pkg] [--out DIR]
Write the package's .tgz as it would be published.
publish [pkg...] [-r] [--dry-run]
Pack and upload. -r publishes every non-private package in dependency order, skipping versions already published.
yank <pkg>@<version> [--reason R]
Hide a version from new installs; unyank undoes it.
register --username U --email E --password-stdin
Make an account, then log in.
login --username U --password-stdin | --token T
Store a token in ~/.sexc/credentials.
logout
Revoke the stored token and forget it.
whoami
Who the stored token belongs to.
search <query>
Search the registry.
info <pkg>[@version]
A package's versions, dependencies and owners.
token list | create [--name N] [--scope S] | revoke <id>
Manage API tokens.
help [command] [--json]
Help for every command, or one. With --json, a description of every command, argument and flag that a program can read.
version
Print the version.

OPTIONS

--json
Print one JSON document on stdout and nothing else: results, errors, and compiler diagnostics as file, line, column, severity, message.
-j N, --jobs N
Run N compilers at once. Default: one per CPU.
--profile NAME
Build with a profile from the root manifest: debug (the default), release, asan.
--release
Short for --profile release.
-v, --verbose
Show every command as it runs.
--registry URL
Use another registry. Default https://sexc.dev, or $SEXC_REGISTRY.

EXIT STATUS

0
Everything built, or every test passed.
1
A build or a test failed.
2
The command line was wrong.
3
A manifest or the workspace is wrong: bad JSON, an unknown field, a missing dependency, a cycle.
4
The registry couldn't be reached, or refused the request.

EXAMPLES

$ sexc build --release
$ sexc test @sexc/core
$ sexc build --json | jq '.diagnostics'
$ sexc run sexc-web -- serve --port 8080
$ sexc add @ajax/strbuf
$ sexc publish -r

SEE ALSO