Resources
Platforms, licence, and where everything lives.
Platform support
The compiler, the CLI, the language server and the runtime are pure Java 25. There is no native code, no JNI, no shell-out and nothing to port: anywhere a JDK 25 runs, V# runs, on any architecture that the JDK supports.
| Host | Compiler · CLI · LSP | Gradle plugin | Native image (GRAAL_HOME) |
Get a JDK 25 |
|---|---|---|---|---|
| Linux (glibc) | ✓ | ✓ | ✓ | apt install openjdk-25-jdk · dnf install java-25-openjdk |
| Linux (musl / Alpine) | ✓ | ✓ | ✓ linked --static --libc=musl |
apk add openjdk25 |
| Windows 11 | ✓ | ✓ | ✓ produces Program.exe |
winget install Microsoft.OpenJDK.25 |
| macOS | ✓ | ✓ | ✓ | brew install openjdk@25 |
| FreeBSD | ✓ | ✓ | ○ no GraalVM for the host — the stage is skipped, not failed | pkg install openjdk25 |
| OpenBSD | △ needs a JDK 25 build for the host | △ same | ○ no GraalVM for the host | pkg_add jdk — ports have shipped up to 21 |
Legend: ✓ supported · ○ not available on the host, and never an error · △ blocked only by JDK availability.
What actually differs per host
Every path- and process-shaped decision is read from the running JVM rather than assumed.
| Decision | Source | POSIX hosts | Windows |
|---|---|---|---|
| Classpath separator, path spelling | File.pathSeparator |
: and / |
; and \ |
| Installed launcher | installDist writes both |
bin/vsharp (#!/bin/sh) |
bin\vsharp.bat |
java binary |
os.name |
bin/java |
bin\java.exe |
| GraalVM launcher | file-name search | bin/native-image |
bin\native-image.cmd |
| Native image file name | observed after the build | Program |
Program.exe |
| Native image linking | musl loader search | --static --libc=musl on musl |
n/a |
| Executable bit | supportedFileAttributeViews |
POSIX permissions | n/a |
The POSIX launcher is Gradle's own #!/bin/sh start script; it needs no
bash, which is what makes FreeBSD and OpenBSD ordinary rather than special.
Honest status. The suite is executed end-to-end on Linux. The other hosts are
supported by construction rather than by assumption — each decision above 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.
Licence
V# is free software released under the BSD 3-Clause License, Copyright © 2026, V# Lang. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the conditions in the licence text are met.
Project links
Source and issues
Documentation
Downloads
There are no tagged releases and no binary downloads yet. V# is obtained by cloning the
repository and running gradle installTools; see
Getting Started.
