diff options
author | JJ | 2023-11-05 03:17:25 +0000 |
---|---|---|
committer | JJ | 2023-11-05 03:17:25 +0000 |
commit | bfe0a6fa21f1124c60dd4cc4fd60cdd9c2ec6d4f (patch) | |
tree | 2b3c88b0f966d59a49397122927b4c4f34b6de50 /src/tooling | |
parent | 7f8c5a1de3ec14d3f517bcb7d082f0ed0bb02eab (diff) |
compiler: add blank interop and tooling folders
Diffstat (limited to 'src/tooling')
-rw-r--r-- | src/tooling/build.pk | 2 | ||||
-rw-r--r-- | src/tooling/check.pk | 2 | ||||
-rw-r--r-- | src/tooling/doc.pk | 2 | ||||
-rw-r--r-- | src/tooling/fmt.pk | 2 | ||||
-rw-r--r-- | src/tooling/init.pk | 7 | ||||
-rw-r--r-- | src/tooling/lsp.pk | 2 | ||||
-rw-r--r-- | src/tooling/pkg.pk | 2 | ||||
-rw-r--r-- | src/tooling/test.pk | 1 | ||||
-rw-r--r-- | src/tooling/toolchain.pk | 12 |
9 files changed, 32 insertions, 0 deletions
diff --git a/src/tooling/build.pk b/src/tooling/build.pk new file mode 100644 index 0000000..7bd5da0 --- /dev/null +++ b/src/tooling/build.pk @@ -0,0 +1,2 @@ +# Builds a puck project. +# Subcommands: --clean, --fetch, ... diff --git a/src/tooling/check.pk b/src/tooling/check.pk new file mode 100644 index 0000000..96d04d1 --- /dev/null +++ b/src/tooling/check.pk @@ -0,0 +1,2 @@ +# Syntactically and semantically checks code without compiling. +# This is a good test for Rust interop. diff --git a/src/tooling/doc.pk b/src/tooling/doc.pk new file mode 100644 index 0000000..89db169 --- /dev/null +++ b/src/tooling/doc.pk @@ -0,0 +1,2 @@ +# Produces documentation of a codebase. +# This is a good test for Rust interop: both to call into the parser, and to call into `rustdoc`. diff --git a/src/tooling/fmt.pk b/src/tooling/fmt.pk new file mode 100644 index 0000000..352d0d7 --- /dev/null +++ b/src/tooling/fmt.pk @@ -0,0 +1,2 @@ +# Standard formatter. Uses the main compiler as a library, pulls in the parsing functions, etc. +# This is a good test for Rust interop. diff --git a/src/tooling/init.pk b/src/tooling/init.pk new file mode 100644 index 0000000..1e7c189 --- /dev/null +++ b/src/tooling/init.pk @@ -0,0 +1,7 @@ +# Initializes a new Puck project in the current or passed directory. + +pub func main(args: varargs[str]) = + # Check if the directory is non-empty, and prompt the user + ... + +func init(path: Path): Result[Unit, ref Err] = ... diff --git a/src/tooling/lsp.pk b/src/tooling/lsp.pk new file mode 100644 index 0000000..dd999a9 --- /dev/null +++ b/src/tooling/lsp.pk @@ -0,0 +1,2 @@ +# The language server implementation. Calls into `puck check`. +# This is a good test for non-trivial code written in Puck. diff --git a/src/tooling/pkg.pk b/src/tooling/pkg.pk new file mode 100644 index 0000000..95df0d6 --- /dev/null +++ b/src/tooling/pkg.pk @@ -0,0 +1,2 @@ +# The standard Puck package manager. +# Subcommands: install, remove, search, update (lockfile) diff --git a/src/tooling/test.pk b/src/tooling/test.pk new file mode 100644 index 0000000..f1912b1 --- /dev/null +++ b/src/tooling/test.pk @@ -0,0 +1 @@ +# Runs tests inline and in the `tests/` directory of a project. diff --git a/src/tooling/toolchain.pk b/src/tooling/toolchain.pk new file mode 100644 index 0000000..c0f6e7e --- /dev/null +++ b/src/tooling/toolchain.pk @@ -0,0 +1,12 @@ +# Helper for switching between distro-provided versions of `puckc` and locally-managed toolchains. +# Hopefully, this helps eliminate the problems with distros packaging languages. +# Subcommands: install (nightly beta stable hash), default, show + +type Toolchain = union + Nightly, Stable, Beta, Hash(str) + +func main = ... + +func install(toolchain: Toolchain): Success[ref Err] +func default(toolchain: Toolchain): Success[ref Err] +func show(): str |