Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLeitwolf112026-08-10 00:57:45 +0300
committerLeitwolf112026-08-10 00:57:45 +0300
commit86e4d179c9201c77e353e888fa6732af3fa7e8d6 (patch)
treeec7c0e8ff02844147a117bc3e4dc6b10f146333e
parent9be05a7f0ca555d61033d0feadff34b68ad6255c (diff)
downloadwebsite-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.
-rw-r--r--README.md14
-rw-r--r--backend/Auth/AuthEndpoints.cs6
-rw-r--r--backend/Email/EmailOptions.cs2
-rw-r--r--backend/Email/RegistryEmailSender.cs2
-rw-r--r--backend/appsettings.json4
-rw-r--r--frontend/package-lock.json4
-rw-r--r--frontend/package.json2
-rw-r--r--frontend/public/scripts/auth-flow.v2.js8
-rw-r--r--frontend/public/scripts/dashboard.v1.js6
-rw-r--r--frontend/src/components/AuthPanel.astro18
-rw-r--r--frontend/src/components/RepositoryHeader.astro14
-rw-r--r--frontend/src/content/java/xlil.md73
-rw-r--r--frontend/src/pages/index.astro86
-rw-r--r--frontend/src/pages/java/index.astro55
-rw-r--r--frontend/src/pages/java/xlil/index.astro75
-rw-r--r--frontend/src/pages/repo/dashboard/index.astro6
-rw-r--r--frontend/src/pages/repo/index.astro18
-rw-r--r--frontend/src/pages/repo/login/index.astro2
-rw-r--r--frontend/src/pages/repo/recover/index.astro2
-rw-r--r--frontend/src/pages/repo/register/index.astro2
-rw-r--r--ops/nginx/xsharp.conf9
-rw-r--r--ops/systemd/xsharp-web-api.service2
22 files changed, 136 insertions, 274 deletions
diff --git a/README.md b/README.md
index 1fb3481..b06032c 100644
--- a/README.md
+++ b/README.md
@@ -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>