Development
V# is developed in the open at github.com/v-sharp-lang/v-sharp.
Repository layout
vsharp-boot/ launch preflight (the only module built for Java 11)
vsharp-runtime/ runtime support emitted code links against: formatting, ranges, tuples, console
vsharp-compiler/ source model, diagnostics, lexer, parser, binder, typed IR, lowering, backend
vsharp-cli/ the vsharp command
vsharp-lsp/ the language server
vsharp-vscode/ editor extension and its generated TextMate grammar
vsharp-testkit/ dependency-free test harness (no JUnit)
vsharp-tests/ the executable suite: 865 cases
samples/hello/ the sample the build itself compiles and runs as an acceptance gate
docs/ language, bytecode, CLI, editor and grammar documentation
Building and testing
The requirements are a JDK 25 and Gradle 9.x, and nothing else — the dependency list is empty.
gradle build # compiles everything, runs the suite and the sample gate
gradle :vsharp-tests:runTests # the suite alone
gradle :vsharp-tests:runTests --args="lexer" # one area
gradle build is the acceptance gate: it compiles the compiler, runs all 865 cases,
then compiles samples/hello with the produced CLI, runs the emitted class on a real
JVM, and asserts its output.
The test harness (vsharp-testkit) is written in the repository and does not use
JUnit, consistent with the project's rule that the dependency list stays empty.
The toolchain
| Tool | What it is |
|---|---|
vsharp |
The compiler CLI: .vs → .class or a deterministic JAR, with stable exit codes and C#-exact diagnostics |
vsharp-lsp |
A language server: diagnostics, completion, signature help, hover, go-to-definition, symbols |
vsharp-vscode |
VS Code / VSCodium extension, packaged as a .vsix with the server bundled |
gradle/vsharp.gradle.kts |
A dependency-free Gradle script plugin: apply(from = ...) and gradle build compiles your .vs sources |
| Native images | Export GRAAL_HOME and a single-entry-point compilation also produces a native executable |
Implementation status
V# is at version 0.0.93-A, language surface 4. There are no
tagged releases; the project is built from source. The test suite contains 865 cases and runs as
part of every build.
The project is explicit about the limits of its own verification: the suite is executed
end-to-end on Linux, and the other hosts are “supported by construction rather than by
assumption” — each platform-dependent decision is either computed from the running
JVM or observed from the filesystem, and each is covered by the test suite, including the
Windows-shaped native-image.cmd installation, the .exe image name and
the musl loader search. Four single-line os.name branches and one %*
in a batch file are the only code a first run on another host would exercise for the first time.
Feature-level status — every C# 13 construct, whether it is implemented, how it is
lowered, and which tests cover it — is tracked in
docs/FEATURE-MATRIX.md.
Features listed as deliberately excluded are decisions rather
than pending work.
Contributing
The repository does not yet carry a written contribution guide. In its absence, the practical route is the ordinary GitHub one:
- Read the README and the reference documents for the design rules a change is expected to respect — in particular the three strict rules and the empty dependency list.
- Discuss a change or report a defect on the issue tracker.
-
Verify that
gradle buildpasses — it is the project's acceptance gate, and it runs the full suite and the sample. - Propose the change as a pull request.
