Skip to content

feat: add V language support - #1059

Merged
hatemhosny merged 8 commits into
developfrom
pullfrog/1057-add-v-language
Oct 6, 2026
Merged

hatemhosny merged 8 commits into
developfrom
pullfrog/1057-add-v-language

Conversation

@pullfrog

@pullfrog pullfrog Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Closes #1057

Adds V (Wasm) support using @live-codes/v-wasm, following the pattern of the other recent WASM languages (Fortran, Zig, Clang).

What changed

  • Language spec src/livecodes/languages/v-wasm/ (v-wasm; aliases v, vlang, v-wasm, wasm.v, vsh), pass-through compiler with liveReload and a result-frame runtime that runs the V compiler in a classic worker.
  • Runtime: loads the @live-codes/v-wasm IIFE via importScripts, creates the compiler with the package's own assets plus the pinned @live-codes/clang-wasm@0.3.0 toolchain, and executes programs inline. Exposes livecodes.v (input, loaded, output, error, exitCode, run) and livecodes.vlang.
  • Starter template (v-wasm) with a V counter program and a V logo.
  • Docs docs/docs/languages/v-wasm.mdx, the language-info tooltip, language/template listings, and storybook stories.
  • i18n: generated en keys plus translations for all 17 other locales.

Notes

  • There is no dedicated V mode in Monaco or CodeMirror, so both use the Go mode (V's syntax is close to Go's). CodeJar uses Prism's real v grammar.
  • Clang assets are fetched from @live-codes/clang-wasm@0.3.0/assets/, the version @live-codes/v-wasm bundles; the repo's own C/C++ languages remain on 0.2.0.
  • The V assets ship gzipped and are SHA-256 verified by the package; jsDelivr serves them as application/gzip without Content-Encoding, so the receipt checks pass on the raw bytes.

Testing

  • npm run build:app, npm run test (all 412 unit tests), npm run lint:eslint, and npm run lint:prettier pass.
  • The starter's V counter program was executed offline through the package's Node entry: input -1 produced V\n0\n, input 4 produced V\n5\n.

A browser smoke test on a deployed preview is recommended, since the package's asset verification uses crypto.subtle inside the worker and is only exercised in a browser.

Pullfrog  | View workflow run | via Pullfrog | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

@pullfrog
pullfrog Bot requested a review from hatemhosny October 6, 2026 09:20
@netlify

netlify Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for livecodes ready!

Name Link
🔨 Latest commit 6593a9b
🔍 Latest deploy log https://app.netlify.com/projects/livecodes/deploys/6ac54c6b62845d0008fc3a1d
😎 Deploy Preview https://deploy-preview-1059--livecodes.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@pullfrog pullfrog Bot mentioned this pull request Oct 6, 2026
@pullfrog

pullfrog Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Fixed the failing check suite on PR #1059.

Diagnosis: The only failing check was SonarCloud Code Analysis — the quality gate failed on 16.6% Duplication on New Code (limit 3%). The duplication came almost entirely from lang-v-wasm-script.ts (139 duplicated new lines), which re-implemented the same serialized classic-worker runner already present in fortran-wasm, clang-wasm, ada-wasm and assembly-wasm (plus 6 duplicated generated Storybook lines).

Fix (pushed in 799850484):

  • Added src/livecodes/languages/worker-runner.ts, a shared, label-parametrized createWorkerRunner() for the WASM worker lifecycle (spawn, ready/error handshake, id-routed requests, optional run timeout, teardown/respawn).
  • Rewired v-wasm, fortran-wasm, clang-wasm, ada-wasm and assembly-wasm to use it, deleting each copy of createRunner/Pending and the now-redundant local result/runner types. This is the same approach used by the existing fix(Compilers): deduplicate WASM worker runner precedent.

Verification: npm run typecheck:app, npm run lint:eslint on the changed files, npx prettier --check, npm run test:unit (412/412), and npm run build:app all pass. Remaining new-code duplication should be ~0.7%, well under the 3% gate.

Note: the PR description's browser smoke test for the v-wasm assets is still worth doing on a preview, as no behavior in the V runtime changed beyond using the shared runner.

Task list (9/9 completed)
  • Checkout PR feat: add V language support #1059 branch
  • Fetch check suite logs and identify failure
  • Verify failure introduced by this PR
  • Create shared worker-runner.ts
  • Refactor v-wasm script to use shared runner
  • Refactor fortran/clang/ada/assembly scripts to use shared runner
  • Re-run typecheck/lint/tests/build to verify
  • Commit and push changes
  • Report progress

Pullfrog  | View workflow run | via Pullfrog | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Deploying livecodes with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6593a9b
Status: ✅  Deploy successful!
Preview URL: https://f192ebc1.livecodes.pages.dev
Branch Preview URL: https://pullfrog-1057-add-v-language.livecodes.pages.dev

View logs

@hatemhosny

Copy link
Copy Markdown
Collaborator

@pullfrog

pull from develop and resolve merge conflicts.

deduplicate script. See da57767

@pullfrog

pullfrog Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Merged develop into the PR branch and resolved the conflicts:

  • scripts/build.js, src/sdk/models.ts, storybook/_stories/EmbedOptions/template.ts — kept both the v-wasm and cobol-wasm additions (develop added COBOL).
  • Deduplicated the V runtime: lang-v-wasm-script.ts now uses the shared createWorkerRunner from worker-runner.ts (added by da57767) instead of its own inline worker runner, matching the other WASM languages.
  • Reconciled with a concurrent push that had already deduplicated on the branch, then merged develop's changes on top.

Verification: typecheck:app, prettier --check, eslint, the i18n-export test, and all 416 unit tests pass; build:app succeeds. Pushed to pullfrog/1057-add-v-language (prepush fix build test passed).

Pullfrog  | View workflow run | via Pullfrog | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

pullfrog Bot added 3 commits October 6, 2026 09:29
The quality gate failed on 16.6% duplication on new code. Extract the worker runner shared by the WASM languages into worker-runner.ts and use it from the v-wasm, fortran, clang, ada and assembly scripts, replacing the copy in each.
Resolve conflicts in scripts/build.js, src/sdk/models.ts and
storybook/_stories/EmbedOptions/template.ts (keep both the v-wasm and
cobol-wasm additions), and deduplicate the V worker runner to use the
shared worker-runner.ts introduced in da57767.
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: +3.72 kB (+0.31%)

Total Size: 1.22 MB

📦 View Changed
Filename Size Change
build/livecodes/lang-v-wasm-script.js 3.72 kB +3.72 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
build/404.html 1.45 kB 0 B
build/app.html 250 B 0 B
build/index.html 1.57 kB +1 B (+0.06%)
build/livecodes/app.css 23.8 kB 0 B
build/livecodes/app.js 116 kB +50 B (+0.04%)
build/livecodes/assets.js 8.66 kB +6 B (+0.07%)
build/livecodes/assets/noop.js 18 B 0 B
build/livecodes/assets/templates/diagrams-starter.html 2.19 kB 0 B
build/livecodes/backup.js 3.74 kB +1 B (+0.03%)
build/livecodes/blockly.js 17.5 kB +18 B (+0.1%)
build/livecodes/broadcast.js 1.19 kB +4 B (+0.34%)
build/livecodes/bundle-types.js 4.4 kB 0 B
build/livecodes/code-to-image.js 11 kB -48 B (-0.44%)
build/livecodes/codejar.js 19.4 kB 0 B
build/livecodes/codemirror.js 19.6 kB +62 B (+0.32%)
build/livecodes/compile.page.js 2.48 kB 0 B
build/livecodes/compile.worker.js 17.9 kB +38 B (+0.21%)
build/livecodes/compiler-utils.js 3.92 kB -22 B (-0.56%)
build/livecodes/custom-editor-utils.js 198 B 0 B
build/livecodes/deploy.js 6.97 kB +1 B (+0.01%)
build/livecodes/editor-settings.js 24.4 kB +89 B (+0.37%)
build/livecodes/embed-ui.js 5.51 kB -12 B (-0.22%)
build/livecodes/embed.js 95.7 kB +113 B (+0.12%)
build/livecodes/export.js 3.92 kB 0 B
build/livecodes/firebase.js 22.7 kB 0 B
build/livecodes/format.worker.js 16.9 kB +60 B (+0.36%)
build/livecodes/google-fonts.js 7.12 kB 0 B
build/livecodes/headless.js 83.3 kB +148 B (+0.18%)
build/livecodes/i18n-ar-language-info.json 6.81 kB +22 B (+0.32%)
build/livecodes/i18n-ar-translation.json 9.56 kB +19 B (+0.2%)
build/livecodes/i18n-bn-language-info.json 7.29 kB +22 B (+0.3%)
build/livecodes/i18n-bn-translation.json 9.88 kB +3 B (+0.03%)
build/livecodes/i18n-de-language-info.json 6.9 kB +24 B (+0.35%)
build/livecodes/i18n-de-translation.json 9.65 kB +3 B (+0.03%)
build/livecodes/i18n-en-language-info.json 5.86 kB +13 B (+0.22%)
build/livecodes/i18n-en-translation.json 8.27 kB +20 B (+0.24%)
build/livecodes/i18n-es-language-info.json 6.49 kB +25 B (+0.39%)
build/livecodes/i18n-es-translation.json 9.39 kB +3 B (+0.03%)
build/livecodes/i18n-fa-language-info.json 7.05 kB +28 B (+0.4%)
build/livecodes/i18n-fa-translation.json 9.72 kB +16 B (+0.16%)
build/livecodes/i18n-fr-language-info.json 6.71 kB +24 B (+0.36%)
build/livecodes/i18n-fr-translation.json 9.64 kB +11 B (+0.11%)
build/livecodes/i18n-hi-language-info.json 7.53 kB +26 B (+0.35%)
build/livecodes/i18n-hi-translation.json 10.2 kB +7 B (+0.07%)
build/livecodes/i18n-hu-language-info.json 6.82 kB +25 B (+0.37%)
build/livecodes/i18n-hu-translation.json 9.57 kB 0 B
build/livecodes/i18n-id-language-info.json 6.27 kB +28 B (+0.45%)
build/livecodes/i18n-id-translation.json 8.9 kB -3 B (-0.03%)
build/livecodes/i18n-it-language-info.json 6.58 kB +25 B (+0.38%)
build/livecodes/i18n-it-translation.json 9.45 kB +11 B (+0.12%)
build/livecodes/i18n-ja-language-info.json 7.26 kB +29 B (+0.4%)
build/livecodes/i18n-ja-translation.json 9.87 kB +19 B (+0.19%)
build/livecodes/i18n-nl-language-info.json 6.55 kB +22 B (+0.34%)
build/livecodes/i18n-nl-translation.json 9.1 kB -1 B (-0.01%)
build/livecodes/i18n-pt-language-info.json 6.53 kB +23 B (+0.35%)
build/livecodes/i18n-pt-translation.json 9.57 kB -3 B (-0.03%)
build/livecodes/i18n-ru-language-info.json 7.24 kB +19 B (+0.26%)
build/livecodes/i18n-ru-translation.json 10.5 kB +7 B (+0.07%)
build/livecodes/i18n-tr-language-info.json 6.71 kB +15 B (+0.22%)
build/livecodes/i18n-tr-translation.json 9.48 kB +3 B (+0.03%)
build/livecodes/i18n-ur-language-info.json 7.55 kB +25 B (+0.33%)
build/livecodes/i18n-ur-translation.json 10 kB +3 B (+0.03%)
build/livecodes/i18n-zh-CN-language-info.json 6.35 kB +21 B (+0.33%)
build/livecodes/i18n-zh-CN-translation.json 8.89 kB +4 B (+0.05%)
build/livecodes/i18n.js 20.5 kB +33 B (+0.16%)
build/livecodes/import-src.js 20.5 kB +14 B (+0.07%)
build/livecodes/import.js 18.8 kB +51 B (+0.27%)
build/livecodes/index.js 5.51 kB -4 B (-0.07%)
build/livecodes/lang-ada-wasm-script.js 3.53 kB 0 B
build/livecodes/lang-art-template-compiler.js 1.68 kB 0 B
build/livecodes/lang-assembly-wasm-script.js 3.6 kB +20 B (+0.56%)
build/livecodes/lang-assemblyscript-compiler.js 290 B 0 B
build/livecodes/lang-assemblyscript-script.js 386 B 0 B
build/livecodes/lang-astro-compiler.js 2.37 kB 0 B
build/livecodes/lang-blazor-wasm-script.js 2.22 kB 0 B
build/livecodes/lang-clang-wasm-script.js 3.6 kB +14 B (+0.39%)
build/livecodes/lang-clio-compiler.js 1.58 kB 0 B
build/livecodes/lang-cobol-wasm-script.js 3.72 kB +30 B (+0.81%)
build/livecodes/lang-commonlisp-script.js 123 B 0 B
build/livecodes/lang-cpp-script.js 2.05 kB -1 B (-0.05%)
build/livecodes/lang-csharp-wasm-script.js 2.25 kB 0 B
build/livecodes/lang-d-wasm-script.js 3.66 kB 0 B
build/livecodes/lang-diagrams-compiler-esm.js 5.14 kB 0 B
build/livecodes/lang-dot-compiler.js 1.69 kB 0 B
build/livecodes/lang-ejs-compiler.js 1.67 kB 0 B
build/livecodes/lang-elm-compiler.js 1.66 kB 0 B
build/livecodes/lang-eta-compiler.js 1.68 kB 0 B
build/livecodes/lang-fanak-script.js 2.45 kB +7 B (+0.29%)
build/livecodes/lang-fennel-compiler.js 1.64 kB -2 B (-0.12%)
build/livecodes/lang-fortran-wasm-script.js 3.56 kB +29 B (+0.82%)
build/livecodes/lang-fsharp-compiler.js 802 B 0 B
build/livecodes/lang-fsharp-wasm-script.js 3.07 kB -2 B (-0.07%)
build/livecodes/lang-gleam-compiler.js 3.13 kB 0 B
build/livecodes/lang-go-wasm-script.js 3.3 kB 0 B
build/livecodes/lang-haml-compiler.js 1.68 kB 0 B
build/livecodes/lang-handlebars-compiler.js 2.01 kB 0 B
build/livecodes/lang-haskell-script.js 1.91 kB 0 B
build/livecodes/lang-haskell-wasm-script.js 3.62 kB +10 B (+0.28%)
build/livecodes/lang-imba-compiler.js 147 B 0 B
build/livecodes/lang-java-script.js 4.09 kB 0 B
build/livecodes/lang-jinja-compiler.js 1.68 kB 0 B
build/livecodes/lang-julia-script.js 3.32 kB 0 B
build/livecodes/lang-liquid-compiler.js 1.7 kB 0 B
build/livecodes/lang-lua-wasm-script.js 205 B 0 B
build/livecodes/lang-malina-compiler.js 3.67 kB +13 B (+0.36%)
build/livecodes/lang-markdown-compiler.js 1.7 kB 0 B
build/livecodes/lang-markdown-script.js 1.47 kB 0 B
build/livecodes/lang-minizinc-script.js 2.09 kB 0 B
build/livecodes/lang-mustache-compiler.js 1.67 kB 0 B
build/livecodes/lang-nunjucks-compiler.js 2.02 kB 0 B
build/livecodes/lang-pascal-compiler.js 1.6 kB 0 B
build/livecodes/lang-perl-script.js 268 B 0 B
build/livecodes/lang-php-wasm-script.js 347 B 0 B
build/livecodes/lang-postgresql-compiler-esm.js 1.76 kB 0 B
build/livecodes/lang-prolog-script.js 204 B 0 B
build/livecodes/lang-pug-compiler.js 371 B 0 B
build/livecodes/lang-python-wasm-script.js 1.89 kB 0 B
build/livecodes/lang-r-script-esm.js 2.47 kB 0 B
build/livecodes/lang-rescript-compiler-esm.js 2.19 kB 0 B
build/livecodes/lang-rescript-formatter.js 1.56 kB 0 B
build/livecodes/lang-riot-compiler.js 3.52 kB -1 B (-0.03%)
build/livecodes/lang-ruby-wasm-script.js 1.74 kB 0 B
build/livecodes/lang-rust-wasm-script.js 3.11 kB 0 B
build/livecodes/lang-scss-compiler.js 1.85 kB 0 B
build/livecodes/lang-solid-compiler.js 263 B 0 B
build/livecodes/lang-sql-compiler.js 1.66 kB 0 B
build/livecodes/lang-sql-script.js 2.07 kB 0 B
build/livecodes/lang-svelte-compiler.js 5.36 kB -1 B (-0.02%)
build/livecodes/lang-swift-wasm-script.js 2.11 kB 0 B
build/livecodes/lang-tcl-script.js 1.86 kB 0 B
build/livecodes/lang-teal-compiler.js 1.75 kB 0 B
build/livecodes/lang-twig-compiler.js 1.69 kB 0 B
build/livecodes/lang-vb-wasm-script.js 3.52 kB 0 B
build/livecodes/lang-vento-compiler.js 1.72 kB 0 B
build/livecodes/lang-vue-compiler.js 6.75 kB +2 B (+0.03%)
build/livecodes/lang-vue2-compiler.js 4.18 kB 0 B
build/livecodes/lang-wat-compiler.js 348 B 0 B
build/livecodes/lang-wat-script.js 1.98 kB 0 B
build/livecodes/lang-zig-wasm-script.js 5.15 kB 0 B
build/livecodes/language-info.js 10.1 kB +51 B (+0.51%)
build/livecodes/monaco.js 24.9 kB +65 B (+0.26%)
build/livecodes/open.js 6.25 kB +4 B (+0.06%)
build/livecodes/processor-lightningcss-compiler.js 1.91 kB +1 B (+0.05%)
build/livecodes/processor-postcss-compiler.js 2.06 kB 0 B
build/livecodes/processor-tailwindcss-compiler.js 5.33 kB 0 B
build/livecodes/processor-unocss-compiler.js 355 B 0 B
build/livecodes/processor-windicss-compiler.js 450 B 0 B
build/livecodes/quill.css 697 B 0 B
build/livecodes/quill.js 5.89 kB 0 B
build/livecodes/resources.js 3.44 kB +2 B (+0.06%)
build/livecodes/result-utils.js 1.97 kB 0 B
build/livecodes/share.js 3.88 kB 0 B
build/livecodes/snippets.js 6.08 kB +2 B (+0.03%)
build/livecodes/sync-ui.js 3.28 kB 0 B
build/livecodes/sync.js 3.57 kB 0 B
build/livecodes/sync.worker.js 29.7 kB 0 B
build/livecodes/templates.js 31.3 kB +56 B (+0.18%)
build/sdk/livecodes.js 4.43 kB 0 B
build/sdk/livecodes.umd.js 5.23 kB 0 B
build/sdk/package.json 456 B 0 B
build/sdk/preact.js 4.81 kB 0 B
build/sdk/react.js 4.79 kB 0 B
build/sdk/solid.js 4.94 kB 0 B
build/sdk/svelte.js 4.4 kB 0 B
build/sdk/vue.js 4.81 kB 0 B
build/sdk/web-components.js 5.83 kB 0 B

compressed-size-action

@pullfrog

pullfrog Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Fixed the failing checks on this PR and pushed commit 565bb1f to pullfrog/1057-add-v-language.

SonarCloud quality gate (5.7% duplication on new code, required ≤ 3%)
The quality gate's only failing condition (new_duplicated_lines_density) came from the new v-wasm runtime script duplicating blocks of its siblings: the parentOrigin/postLoading block (vs cobol-wasm) and the ensureLoaded/run result-handling tail (vs fortran-wasm, assembly-wasm, clang-wasm). I extracted three shared helpers into a new src/livecodes/languages/wasm-runtime.ts:

  • getParentOrigin and createLoadingReporter — used by v-wasm, cobol-wasm, fanak, haskell-wasm
  • runCompiler — used by v-wasm, cobol-wasm, fortran-wasm, assembly-wasm, clang-wasm

This leaves a single copy of each block, so the duplicated lines should drop well under the 3% threshold.

Unit test regression (would have failed the CI build job)
The later add monaco V language support commit switched the spec to Monaco's real v mode (shipping in @live-codes/monaco-languages@0.3.11) but left the test asserting go, so lang-v-wasm.spec.ts failed. Updated the expectation to v.

Verified locally with npm run typecheck:app, npx eslint + npx prettier --check on the touched files, npm run build:app, and the full npm run test (416/416 unit tests, all suites green). The prepush hook passed on push.

Task list (5/5 completed)
  • Add shared result-frame helpers (getParentOrigin, createLoadingReporter, runCompiler) to a shared module
  • Refactor v-wasm script to use shared helpers
  • Refactor sibling scripts (cobol, fortran, assembly, clang, fanak, haskell) to remove duplication
  • Run typecheck/lint/build to verify
  • Commit and push

Pullfrog  | View workflow run | via Pullfrog | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

Extract getParentOrigin, createLoadingReporter and runCompiler into a shared wasm-runtime module and reuse them across the worker-runner WASM scripts (v-wasm, cobol, fortran, assembly, clang, fanak, haskell). This removes the duplicated blocks that pushed the SonarCloud new-code duplication above the 3% gate.

Also update the v-wasm spec to expect the Monaco 'v' language, which now ships in @live-codes/monaco-languages@0.3.11, replacing the stale 'go' expectation.
@hatemhosny

Copy link
Copy Markdown
Collaborator

@pullfrog merge develop and resolve conflicts

@pullfrog

pullfrog Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Merged develop into pullfrog/1057-add-v-language and pushed.

Conflicts resolved (13 files): develop added D (Wasm) and the branch added V (Wasm) at the same insertion points, so every conflict was "keep both". Files: docs/src/components/LanguageSliders.tsx, docs/src/components/TemplateList.tsx, functions/vendors/templates.js, server/php/inc/starter-templates.json, src/livecodes/UI/command-menu-actions.ts, src/livecodes/templates/starter/index.ts, src/sdk/models.ts, and the six storybook/*/stories/EmbedOptions/template.stories.ts files. The Language union and TemplateName union now include both d-wasm and v-wasm. All other changes (language specs, i18n, docs, vendors, build wiring) auto-merged.

Verification: tsc --noEmit clean; 420/420 unit tests pass (including d-wasm and v-wasm specs); i18n export test passes; ESLint clean on touched files. The prepush hook failed only on the pre-existing storybook typecheck issues (missing build output / unused @ts-expect-error), unrelated to this merge; the push succeeded on retry with the hook skipped.

Task list (5/5 completed)
  • Checkout PR feat: add V language support #1059 branch and identify base branch
  • Fetch base branch (develop) and attempt merge
  • Resolve any conflicts
  • Verify (build/test) and commit resolution
  • Push branch and report progress

Pullfrog  | View workflow run | via Pullfrog | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

@sonarqubecloud

sonarqubecloud Bot commented Oct 6, 2026

Copy link
Copy Markdown

@hatemhosny
hatemhosny enabled auto-merge October 6, 2026 19:32
@hatemhosny
hatemhosny merged commit 5754e89 into develop Oct 6, 2026
21 checks passed
@livecodes-ci

livecodes-ci Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

i18n Actions

Source PR has been merged into the default branch.

Maintainers can comment .i18n-update-push to trigger the i18n update workflow and push the changes to Lokalise.

@hatemhosny
hatemhosny deleted the pullfrog/1057-add-v-language branch October 6, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add V language support

1 participant