diff options
| author | Leitwolf11 | 2026-08-10 00:57:45 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-08-10 00:57:45 +0300 |
| commit | 86e4d179c9201c77e353e888fa6732af3fa7e8d6 (patch) | |
| tree | ec7c0e8ff02844147a117bc3e4dc6b10f146333e | |
| parent | 9be05a7f0ca555d61033d0feadff34b68ad6255c (diff) | |
| download | website-86e4d179c9201c77e353e888fa6732af3fa7e8d6.tar.gz | |
Refresh the public Visual X# website for the renewed compiler and ViGet host: replace stale xss-lang links with Progmasoft repositories, move public source and executable examples to .vxs/.vxse and vxs CLI naming, describe the Haskell plus C++20 Typed AST to Core to Xpp to Xmm pipeline, remove the obsolete public XLIL Java catalog and publish the canonical Xmm writer, Xmm reader, and C FFI package names, rename repo.xsharp-lang.xyz to viget.xsharp-lang.xyz across frontend redirects, backend host validation, OAuth documentation, and nginx, and update registry branding without changing API routes.
22 files changed, 136 insertions, 274 deletions
@@ -3,9 +3,9 @@ SPDX-FileCopyrightText: 2026 Leitwolf <xs-lang.chess031@slmails.com> SPDX-License-Identifier: AGPL-3.0-or-later --> -# X# website +# Visual X# website -This repository contains the public web surface for the X# programming language at +This repository contains the public web surface for the Visual X# programming language at [`xsharp-lang.xyz`](https://xsharp-lang.xyz). ## Workspaces @@ -17,7 +17,7 @@ This repository contains the public web surface for the X# programming language Markdown at build time and Maven-compatible files are served separately from the static catalog. The registry account dashboard is available at -[`repo.xsharp-lang.xyz/dashboard`](https://repo.xsharp-lang.xyz/dashboard/). Package publication remains closed while +[`viget.xsharp-lang.xyz/dashboard`](https://viget.xsharp-lang.xyz/dashboard/). Package publication remains closed while the compiler package contract is completed. Registry tokens follow the Cargo model: the plaintext is returned once, only a SHA-256 digest is retained, and a user can revoke each token independently. Account deletion permanently removes the Identity account, external logins, verification records, and registry tokens. @@ -27,10 +27,10 @@ connection without exposing database or service credentials to the browser. Goog database connection, auth-code pepper, and data-protection certificate stay in host-managed secrets. The Google OAuth web client callback is -`https://repo.xsharp-lang.xyz/api/v1/auth/google/callback`. Configure it through +`https://viget.xsharp-lang.xyz/api/v1/auth/google/callback`. Configure it through `Authentication__Google__ClientId` and `Authentication__Google__ClientSecret`. Until both values exist, the frontend keeps the Google button visible but disabled and email/password authentication remains available. -Every completed Google authorization still requires the short-lived X# email code before a registry session is issued. +Every completed Google authorization still requires the short-lived Visual X# email code before a registry session is issued. ## Requirements @@ -83,6 +83,6 @@ baseline. ## License -X# website is licensed under the GNU Affero General Public License, version 3 or any later version. A deployed modified +The Visual X# website is licensed under the GNU Affero General Public License, version 3 or any later version. A deployed modified version must offer its corresponding source to users who interact with it over a network. The canonical source link is -[`github.com/xss-lang/website`](https://github.com/xss-lang/website). +[`github.com/Progmasoft/website`](https://github.com/Progmasoft/website). diff --git a/backend/Auth/AuthEndpoints.cs b/backend/Auth/AuthEndpoints.cs index e4ea645..d984727 100644 --- a/backend/Auth/AuthEndpoints.cs +++ b/backend/Auth/AuthEndpoints.cs @@ -12,9 +12,9 @@ namespace XSharp.Web.Api.Auth; internal static class AuthEndpoints { - private const string DashboardUrl = "https://repo.xsharp-lang.xyz/dashboard/"; - private const string LoginUrl = "https://repo.xsharp-lang.xyz/login/"; - private const string RegisterUrl = "https://repo.xsharp-lang.xyz/register/"; + private const string DashboardUrl = "https://viget.xsharp-lang.xyz/dashboard/"; + private const string LoginUrl = "https://viget.xsharp-lang.xyz/login/"; + private const string RegisterUrl = "https://viget.xsharp-lang.xyz/register/"; public static void MapAuthEndpoints(this WebApplication app) { diff --git a/backend/Email/EmailOptions.cs b/backend/Email/EmailOptions.cs index 3a5ec8b..0d55c56 100644 --- a/backend/Email/EmailOptions.cs +++ b/backend/Email/EmailOptions.cs @@ -8,5 +8,5 @@ internal sealed class EmailOptions public string Host { get; init; } = "127.0.0.1"; public int Port { get; init; } = 25; public string From { get; init; } = "noreply@xsharp-lang.xyz"; - public string SenderName { get; init; } = "X# Package Registry"; + public string SenderName { get; init; } = "Visual X# Package Registry"; } diff --git a/backend/Email/RegistryEmailSender.cs b/backend/Email/RegistryEmailSender.cs index 5576d4a..ac9d27f 100644 --- a/backend/Email/RegistryEmailSender.cs +++ b/backend/Email/RegistryEmailSender.cs @@ -17,7 +17,7 @@ internal sealed class RegistryEmailSender(IOptions<EmailOptions> options) using MailMessage message = new() { From = new MailAddress(configuration.From, configuration.SenderName), - Subject = purpose == "recovery" ? "Your X# password recovery code" : "Verify your X# registry email", + Subject = purpose == "recovery" ? "Your Visual X# password recovery code" : "Verify your Visual X# registry email", Body = $"Use this one-time code to {action}: {code}\n\n" + "The code expires in 15 minutes. If you did not request it, ignore this message.\n\n" + "This mailbox is not monitored.", diff --git a/backend/appsettings.json b/backend/appsettings.json index 98b8f6c..3b54bf3 100644 --- a/backend/appsettings.json +++ b/backend/appsettings.json @@ -5,7 +5,7 @@ "Microsoft.AspNetCore": "Warning" } }, - "AllowedHosts": "localhost;api.xsharp-lang.xyz;repo.xsharp-lang.xyz", + "AllowedHosts": "localhost;api.xsharp-lang.xyz;viget.xsharp-lang.xyz", "ConnectionStrings": { "Registry": "Host=127.0.0.1;Port=5432;Database=xs_registry;Username=xsharp_web" }, @@ -27,6 +27,6 @@ "Host": "127.0.0.1", "Port": 25, "From": "noreply@xsharp-lang.xyz", - "SenderName": "X# Package Registry" + "SenderName": "Visual X# Package Registry" } } diff --git a/frontend/package-lock.json b/frontend/package-lock.json index b79ae0d..ce598f2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,11 +1,11 @@ { - "name": "@xss-lang/website", + "name": "@visual-xsharp/website", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@xss-lang/website", + "name": "@visual-xsharp/website", "version": "1.0.0", "license": "AGPL-3.0-or-later", "dependencies": { diff --git a/frontend/package.json b/frontend/package.json index e5cfcf4..b713669 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "@xss-lang/website", + "name": "@visual-xsharp/website", "version": "1.0.0", "private": true, "type": "module", diff --git a/frontend/public/scripts/auth-flow.v2.js b/frontend/public/scripts/auth-flow.v2.js index 4bab52f..f8b9c69 100644 --- a/frontend/public/scripts/auth-flow.v2.js +++ b/frontend/public/scripts/auth-flow.v2.js @@ -87,7 +87,7 @@ function initializeGoogleVerification() { if (!emailInput.checkValidity()) return; email = requestedEmail; showStep("code"); - showAlert("Google sign-in succeeded. Check your email for the X# verification code."); + showAlert("Google sign-in succeeded. Check your email for the Visual X# verification code."); window.history.replaceState({}, "", window.location.pathname); } @@ -127,7 +127,7 @@ form?.addEventListener("submit", async (event) => { } const response = await request("login", { email, password }); if (!response.ok) return explainFailure(response); - window.location.assign("https://repo.xsharp-lang.xyz/dashboard/"); + window.location.assign("https://viget.xsharp-lang.xyz/dashboard/"); return; } @@ -144,7 +144,7 @@ form?.addEventListener("submit", async (event) => { } const response = await request("verify-email", { email, code }); if (!response.ok) return explainFailure(response); - window.location.assign("https://repo.xsharp-lang.xyz/dashboard/"); + window.location.assign("https://viget.xsharp-lang.xyz/dashboard/"); return; } @@ -155,7 +155,7 @@ form?.addEventListener("submit", async (event) => { } const response = await request("recovery/complete", { email, code: recoveryCode, password }); if (!response.ok) return explainFailure(response); - window.location.assign("https://repo.xsharp-lang.xyz/dashboard/"); + window.location.assign("https://viget.xsharp-lang.xyz/dashboard/"); }); initializeGoogleVerification(); diff --git a/frontend/public/scripts/dashboard.v1.js b/frontend/public/scripts/dashboard.v1.js index 82286d5..b6038d0 100644 --- a/frontend/public/scripts/dashboard.v1.js +++ b/frontend/public/scripts/dashboard.v1.js @@ -67,7 +67,7 @@ async function revokeToken(id) { async function initialize() { const response = await fetch("/api/v1/auth/me", { credentials: "include" }); if (response.status === 401) { - window.location.replace("https://repo.xsharp-lang.xyz/login/"); + window.location.replace("https://viget.xsharp-lang.xyz/login/"); return; } if (!response.ok) return showAlert("Account information could not be loaded.", true); @@ -90,7 +90,7 @@ async function initialize() { root?.querySelector("[data-signout]")?.addEventListener("click", async () => { await fetch("/api/v1/auth/logout", { method: "POST", credentials: "include" }); - window.location.assign("https://repo.xsharp-lang.xyz/login/"); + window.location.assign("https://viget.xsharp-lang.xyz/login/"); }); root?.querySelector("[data-token-open]")?.addEventListener("click", () => dialog?.showModal()); dialog?.querySelector("[data-token-close]")?.addEventListener("click", () => dialog?.close()); @@ -122,7 +122,7 @@ deleteForm?.addEventListener("submit", async (event) => { showAlert("The account could not be deleted.", true); return; } - window.location.replace("https://repo.xsharp-lang.xyz/?account=deleted"); + window.location.replace("https://viget.xsharp-lang.xyz/?account=deleted"); }); tokenForm?.addEventListener("submit", async (event) => { diff --git a/frontend/src/components/AuthPanel.astro b/frontend/src/components/AuthPanel.astro index 29ac1f8..0626784 100644 --- a/frontend/src/components/AuthPanel.astro +++ b/frontend/src/components/AuthPanel.astro @@ -10,19 +10,19 @@ const { mode } = Astro.props; const copy = { login: { title: "Sign in", - description: "Use your X# registry account.", + description: "Use your Visual X# registry account.", submit: "Next", switchText: "New to the registry?", switchLabel: "Create an account", - switchHref: "https://repo.xsharp-lang.xyz/register/", + switchHref: "https://viget.xsharp-lang.xyz/register/", }, register: { title: "Create account", - description: "Publish and manage X# packages.", + description: "Publish and manage Visual X# packages.", submit: "Next", switchText: "Already have an account?", switchLabel: "Sign in", - switchHref: "https://repo.xsharp-lang.xyz/login/", + switchHref: "https://viget.xsharp-lang.xyz/login/", }, recover: { title: "Recover account", @@ -30,7 +30,7 @@ const copy = { submit: "Send code", switchText: "Remembered your password?", switchLabel: "Sign in", - switchHref: "https://repo.xsharp-lang.xyz/login/", + switchHref: "https://viget.xsharp-lang.xyz/login/", }, } as const; const content = copy[mode]; @@ -38,13 +38,13 @@ const content = copy[mode]; <main class="auth-main" data-auth-flow data-mode={mode}> <section class="auth-card glass-panel"> - <a class="auth-brand" href="https://repo.xsharp-lang.xyz/" aria-label="X# package registry"> + <a class="auth-brand" href="https://viget.xsharp-lang.xyz/" aria-label="Visual X# package registry"> <img src="/xsharp-logo.webp" width="44" height="44" alt="" /> - <span>X# Registry</span> + <span>Visual X# Registry</span> </a> <div class="auth-heading"> - <p class="eyebrow">X# package registry</p> + <p class="eyebrow">Visual X# package registry</p> <h1>{content.title}</h1> <p>{content.description}</p> </div> @@ -99,7 +99,7 @@ const content = copy[mode]; <button class="auth-submit" type="submit">{mode === "register" ? "Create account" : "Sign in"}</button> { mode === "login" && ( - <a class="auth-recovery" href="https://repo.xsharp-lang.xyz/recover/">Forgot password?</a> + <a class="auth-recovery" href="https://viget.xsharp-lang.xyz/recover/">Forgot password?</a> ) } </div> diff --git a/frontend/src/components/RepositoryHeader.astro b/frontend/src/components/RepositoryHeader.astro index b157269..6a551b5 100644 --- a/frontend/src/components/RepositoryHeader.astro +++ b/frontend/src/components/RepositoryHeader.astro @@ -12,24 +12,24 @@ const { authenticated = false } = Astro.props; --- <header class="repository-header glass-panel"> - <a class="brand" href="https://repo.xsharp-lang.xyz/" aria-label="X# package registry home"> + <a class="brand" href="https://viget.xsharp-lang.xyz/" aria-label="Visual X# package registry home"> <img class="brand-mark" src="/xsharp-logo.webp" width="38" height="38" alt="" /> - <span class="brand-name">X#</span> + <span class="brand-name">Visual X#</span> <span class="brand-channel">package registry</span> </a> <nav class="repository-navigation" aria-label="Registry navigation"> - <a href="https://repo.xsharp-lang.xyz/">Packages</a> + <a href="https://viget.xsharp-lang.xyz/">Packages</a> { authenticated ? ( - <a href="https://repo.xsharp-lang.xyz/dashboard/">Dashboard</a> + <a href="https://viget.xsharp-lang.xyz/dashboard/">Dashboard</a> ) : ( <> - <a href="https://repo.xsharp-lang.xyz/login/">Log in</a> - <a class="repository-register" href="https://repo.xsharp-lang.xyz/register/">Register</a> + <a href="https://viget.xsharp-lang.xyz/login/">Log in</a> + <a class="repository-register" href="https://viget.xsharp-lang.xyz/register/">Register</a> </> ) } - <a class="repository-source" href="https://github.com/xss-lang" target="_blank" rel="noreferrer"> + <a class="repository-source" href="https://github.com/Progmasoft/visual-xsharp" target="_blank" rel="noreferrer"> <Icon name="github" /> <span>GitHub</span> </a> diff --git a/frontend/src/content/java/xlil.md b/frontend/src/content/java/xlil.md deleted file mode 100644 index edbaadd..0000000 --- a/frontend/src/content/java/xlil.md +++ /dev/null @@ -1,73 +0,0 @@ -# XLIL for Java - -`org.xsslang:xlil:2026.1` is the official Java 25 binding for the stable -XLIL C ABI. It can construct, verify, emit, parse, and inspect XLIL v1 -modules without maintaining a second Java parser. - -## Add the dependency - -The X# Gradle platform selects the official Java repository. Application -builds do not add a Maven repository URL directly. - -```kotlin -plugins { - id("java") - id("org.xsslang.platform") version "26.1" -} - -repositories { - mavenCentral() - - xsslangPlatform { - repositories() - } -} - -dependencies { - xsslangPlatform { - implementation("org.xsslang:xlil:2026.1") - } -} - -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(25)) - } -} -``` - -Enable FFM native access for modular applications: - -```text ---enable-native-access=org.xsslang.xlil -``` - -The installed `xs_lil` shared library must be discoverable through the -platform's normal native-library search rules. - -## Write XLIL - -```java -try (XlilWriter writer = XlilWriter.create("Example")) { - XlilFunctionWriter main = - writer.defineFunction("main", XlilType.I32, List.of()); - XlilBlockWriter entry = main.block("entry"); - XlilValue exitCode = entry.constI32(0); - entry.returnValue(exitCode); - - writer.verify(); - System.out.print(writer.emit()); -} -``` - -## Read XLIL - -```java -XlilModule module = XlilReader.parse("Example.xlil", source); -System.out.println(module.name()); -module.functions().forEach(function -> System.out.println(function.name())); -``` - -The reader delegates parsing and verification to `libxs_lil` and returns -immutable Java snapshots. `CString` helpers are available from -`org.xsslang.ffi.c` for other Java 25 FFM integrations. diff --git a/frontend/src/pages/index.astro b/frontend/src/pages/index.astro index 48e5c3b..9d64ff4 100644 --- a/frontend/src/pages/index.astro +++ b/frontend/src/pages/index.astro @@ -6,47 +6,47 @@ import SiteLayout from "../layouts/SiteLayout.astro"; import Icon from "../components/Icon.astro"; const pipeline = [ - { short: "XS", label: "Source", detail: "syntax + AST" }, - { short: "HI", label: "XHIR", detail: "typed intent" }, - { short: "MI", label: "XMIR", detail: "control flow" }, - { short: "LI", label: "XLIL", detail: "register IL" }, - { short: "EX", label: ".xse", detail: "native output" }, + { short: "VX", label: "Source", detail: ".vxs input" }, + { short: "AST", label: "Typed AST", detail: "resolved meaning" }, + { short: "CO", label: "Core", detail: "language semantics" }, + { short: "XP", label: "Xpp", detail: "prepared program" }, + { short: "XM", label: "Xmm", detail: "backend-ready IR" }, ]; const principles = [ { number: "01", - title: "Inspect every layer", - text: "XHIR, XMIR, and XLIL are versioned text formats designed for people, tools, and other languages.", + title: "Keep every boundary explicit", + text: "Parsed, resolved, and typed syntax stay distinct before semantics move through Core, Xpp, and Xmm.", icon: "layers", }, { number: "02", title: "Keep the core modular", - text: "The GNU++26 native core and Rust semantic core meet through narrow, versioned boundaries.", + text: "Haskell owns the language front end while the C++20 native pipeline begins at the CorePrep boundary.", icon: "modules", }, { number: "03", title: "Finish in native code", - text: "Verified XLIL lowers through LLVM IR to object code and a platform-native .xse executable.", + text: "Verified Xmm lowers through LLVM or VPI to object code and a platform-native .vxse executable.", icon: "native", }, ] as const; const capabilities = [ { icon: "braces", label: "Structural AST", detail: "source fidelity" }, - { icon: "layers", label: "Typed HIR", detail: "semantic intent" }, - { icon: "modules", label: "Borrow checking", detail: "ownership safety" }, - { icon: "registers", label: "XLIL registry", detail: "portable lowering" }, + { icon: "layers", label: "Typed AST", detail: "resolved semantics" }, + { icon: "modules", label: "Core pipeline", detail: "explicit boundaries" }, + { icon: "registers", label: "Xmm verifier", detail: "backend contract" }, { icon: "chip", label: "LLVM backend", detail: "native codegen" }, - { icon: "terminal", label: "Test runner", detail: "isolated .xse" }, + { icon: "terminal", label: "Test runner", detail: "isolated .vxse" }, ] as const; --- <SiteLayout - title="X# programming language" - description="The official home of X#, a native programming language with inspectable compiler layers." + title="Visual X# programming language" + description="The official home of Visual X#, a native programming language with inspectable compiler layers." > <div class="ambient" aria-hidden="true"> <span class="ambient-orb ambient-orb-a"></span> @@ -56,16 +56,16 @@ const capabilities = [ </div> <header class="site-header glass-panel"> - <a class="brand" href="/" aria-label="X# home"> + <a class="brand" href="/" aria-label="Visual X# home"> <img class="brand-mark" src="/xsharp-logo.webp" width="38" height="38" alt="" /> - <span class="brand-name">X#</span> + <span class="brand-name">Visual X#</span> <span class="brand-channel">language</span> </a> <nav aria-label="Primary navigation"> <a href="#pipeline">Pipeline</a> - <a href="https://repo.xsharp-lang.xyz/">Packages</a> - <a href="https://github.com/xss-lang/xs-project/tree/main/Spec" target="_blank" rel="noreferrer">Specification</a> - <a class="nav-source" href="https://github.com/xss-lang/xs-project" target="_blank" rel="noreferrer"> + <a href="https://viget.xsharp-lang.xyz/">Packages</a> + <a href="https://github.com/Progmasoft/visual-xsharp/tree/main/Spec" target="_blank" rel="noreferrer">Specification</a> + <a class="nav-source" href="https://github.com/Progmasoft/visual-xsharp" target="_blank" rel="noreferrer"> <Icon name="github" /> <span>GitHub</span> </a> @@ -77,30 +77,30 @@ const capabilities = [ <div class="hero-copy"> <div class="status-pill glass-panel"> <span class="status-light"></span> - X# 0.2.4 · Native compiler in active development + Visual X# · Native compiler in active development </div> <h1>See the language <em>all the way down.</em></h1> <p class="lede"> - X# is a native programming language built around explicit compiler stages, readable intermediate formats, + Visual X# is a native programming language built around explicit compiler stages, inspectable boundaries, and a direct path from source to platform executable. </p> <div class="actions"> - <a class="button primary" href="https://github.com/xss-lang/xs-project" target="_blank" rel="noreferrer"> + <a class="button primary" href="https://github.com/Progmasoft/visual-xsharp" target="_blank" rel="noreferrer"> Explore the compiler <Icon name="arrow" /> </a> - <a class="button secondary glass-panel" href="https://github.com/xss-lang/xs-project/tree/main/Spec/Programs" target="_blank" rel="noreferrer"> + <a class="button secondary glass-panel" href="https://github.com/Progmasoft/visual-xsharp/tree/main/Spec" target="_blank" rel="noreferrer"> View examples </a> </div> <div class="hero-facts" aria-label="Project facts"> - <div><strong>1</strong><span>IR format version</span></div> - <div><strong>GNU++26 + Rust</strong><span>compiler foundation</span></div> - <div><strong>.xse</strong><span>native artifact</span></div> + <div><strong>3</strong><span>semantic IR layers</span></div> + <div><strong>Haskell + C++20</strong><span>compiler foundation</span></div> + <div><strong>.vxse</strong><span>native artifact</span></div> </div> </div> - <div class="hero-visual" aria-label="Animated X# compiler pipeline visualization"> + <div class="hero-visual" aria-label="Animated Visual X# compiler pipeline visualization"> <div class="visual-glow"></div> <div class="orbit orbit-wide" aria-hidden="true"></div> <div class="orbit orbit-tight" aria-hidden="true"></div> @@ -109,32 +109,32 @@ const capabilities = [ <div class="compiler-core glass-panel"> <span class="core-scan" aria-hidden="true"></span> - <img src="/xsharp-logo.webp" width="132" height="132" alt="X#" /> + <img src="/xsharp-logo.webp" width="132" height="132" alt="Visual X#" /> <span>compiler core</span> </div> <div class="floating-node node-source glass-panel"> <span class="node-icon"><Icon name="braces" /></span> - <span><strong>source.xs</strong><small>parsed</small></span> + <span><strong>source.vxs</strong><small>parsed</small></span> </div> <div class="floating-node node-ir glass-panel"> <span class="node-icon"><Icon name="registers" /></span> - <span><strong>XLIL v1</strong><small>verified</small></span> + <span><strong>Xmm</strong><small>verified</small></span> </div> <div class="floating-node node-native glass-panel"> <span class="node-icon"><Icon name="native" /></span> - <span><strong>native.xse</strong><small>linked</small></span> + <span><strong>native.vxse</strong><small>linked</small></span> </div> <div class="build-console glass-panel"> <div class="console-bar"> <span></span><span></span><span></span> - <strong>xs build</strong> + <strong>vxs build</strong> </div> <div class="console-body"> <p><span>01</span><code>parse</code><i>done</i></p> - <p><span>02</span><code>lower → xlil</code><i>done</i></p> - <p><span>03</span><code>link → app.xse</code><i class="pulse-text">ready</i></p> + <p><span>02</span><code>lower → core → xpp → xmm</code><i>done</i></p> + <p><span>03</span><code>link → app.vxse</code><i class="pulse-text">ready</i></p> </div> </div> </div> @@ -145,10 +145,10 @@ const capabilities = [ <p class="eyebrow">One compiler, visible end to end</p> <h2 id="capabilities-title">Everything needed to understand the build.</h2> <p> - X# keeps the useful machinery in the open. Inspect typed decisions, follow control flow, and retain a readable + Visual X# keeps the useful machinery in the open. Inspect typed decisions, follow control flow, and retain a clear record before native code is emitted. </p> - <a class="text-link" href="https://github.com/xss-lang/xs-project/tree/main/docs" target="_blank" rel="noreferrer"> + <a class="text-link" href="https://github.com/Progmasoft/visual-xsharp/blob/main/docs/ARCHITECTURE.md" target="_blank" rel="noreferrer"> Read the architecture <span>→</span> </a> </div> @@ -195,8 +195,8 @@ const capabilities = [ <div class="code-window glass-panel"> <div class="window-top"> <div><span></span><span></span><span></span></div> - <p>Sources/main.xs</p> - <span class="window-badge">X#</span> + <p>Sources/main.vxs</p> + <span class="window-badge">Visual X#</span> </div> <pre><code>{`fn add(a: Long, b: Long) -> Long { a + b @@ -216,7 +216,7 @@ fn main() -> Long { Tail expressions, nominal types, explicit module boundaries, and native artifacts belong to one coherent pipeline—not a collection of disconnected tools. </p> - <a class="text-link" href="https://github.com/xss-lang/xs-project/tree/main/Spec/Programs" target="_blank" rel="noreferrer"> + <a class="text-link" href="https://github.com/Progmasoft/visual-xsharp/tree/main/Spec" target="_blank" rel="noreferrer"> Browse complete programs <span>→</span> </a> </div> @@ -250,13 +250,13 @@ fn main() -> Long { <h2>The compiler is open.</h2> <p>Read the source, inspect the formats, and watch each native milestone land.</p> </div> - <a class="button primary" href="https://github.com/xss-lang/xs-project" target="_blank" rel="noreferrer">Open repository</a> + <a class="button primary" href="https://github.com/Progmasoft/visual-xsharp" target="_blank" rel="noreferrer">Open repository</a> </section> </main> <footer> - <a class="footer-brand" href="/"><img src="/xsharp-logo.webp" width="32" height="32" alt="" /> X#</a> + <a class="footer-brand" href="/"><img src="/xsharp-logo.webp" width="32" height="32" alt="" /> Visual X#</a> <span>Native language · visible compiler</span> - <a href="https://github.com/xss-lang/website" target="_blank" rel="noreferrer">Website source · AGPL-3.0-or-later</a> + <a href="https://github.com/Progmasoft/website" target="_blank" rel="noreferrer">Website source · AGPL-3.0-or-later</a> </footer> </SiteLayout> diff --git a/frontend/src/pages/java/index.astro b/frontend/src/pages/java/index.astro index 474cd30..bd7ea98 100644 --- a/frontend/src/pages/java/index.astro +++ b/frontend/src/pages/java/index.astro @@ -7,8 +7,8 @@ import SiteLayout from "../../layouts/SiteLayout.astro"; --- <SiteLayout - title="X# Java Repository" - description="Official read-only Java packages for X# and XLIL integration." + title="Visual X# Java Repository" + description="Official read-only Java packages for Visual X# Xmm and native FFI integration." > <section class="repository-surface"> <div class="ambient" aria-hidden="true"> @@ -16,12 +16,12 @@ import SiteLayout from "../../layouts/SiteLayout.astro"; <span class="ambient-orb ambient-orb-b"></span> </div> <header class="repository-header glass-panel"> - <a class="brand" href="https://xsharp-lang.xyz/" aria-label="X# home"> + <a class="brand" href="https://xsharp-lang.xyz/" aria-label="Visual X# home"> <img class="brand-mark" src="/xsharp-logo.webp" width="38" height="38" alt="" /> - <span class="brand-name">X#</span> + <span class="brand-name">Visual X#</span> <span class="brand-channel">Java repository</span> </a> |