<feed xmlns='http://www.w3.org/2005/Atom'>
<title>website/frontend/tests, branch main</title>
<subtitle>The site of tala.run: a Vue frontend and an ASP.NET Core API.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/'/>
<entry>
<title>Check the tazel.tala.run redirect and describe it in the documents</title>
<updated>2026-11-06T04:58:09+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-06T04:58:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=1439b240a8231c5206e3c8d4f245493a076f2841'/>
<id>1439b240a8231c5206e3c8d4f245493a076f2841</id>
<content type='text'>
The integrity tests still expected tazel.tala.run to serve the Vue build
with its own robots.txt and sitemap.xml. They now count four app-shell
hosts and check the redirect itself: the two former pages go to their
pages under tazel.net/docs/reference/ with the query string, other docs
paths to tazel.net/docs, everything else to the same path, the /docs/
prefix is a plain one so the regular expression is reached, and HSTS
stays.

OPERATIONS.md and ARCHITECTURE.md list tazel.tala.run as a permanent
redirect instead of a documentation site.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The integrity tests still expected tazel.tala.run to serve the Vue build
with its own robots.txt and sitemap.xml. They now count four app-shell
hosts and check the redirect itself: the two former pages go to their
pages under tazel.net/docs/reference/ with the query string, other docs
paths to tazel.net/docs, everything else to the same path, the /docs/
prefix is a plain one so the regular expression is reached, and HSTS
stays.

OPERATIONS.md and ARCHITECTURE.md list tazel.tala.run as a permanent
redirect instead of a documentation site.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add the talafmt.tala.run and talalint.tala.run sites</title>
<updated>2026-10-23T10:04:21+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-23T10:04:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=48c79fffa74e00f9cfbf0a731bc4f53190206c61'/>
<id>48c79fffa74e00f9cfbf0a731bc4f53190206c61</id>
<content type='text'>
The build that serves tala.run, talac.tala.run and tazel.tala.run now
also serves the formatter and the linter, chosen by host name like the
others. Each site has a landing page and two documentation pages in
en-US, de-DE, ru-RU and he-IL:

- talafmt: the command line (inputs, --check, --emit, exit status 2 for
  an unreadable line) and what it changes (indentation, line endings,
  trailing whitespace, the final newline; protected text; encodings from
  talafmt.kts).
- talalint: the command line (--fix) and what it checks: the compiler's
  diagnostics as compiler.&lt;code&gt;, and format.trailingWhitespace,
  format.mixedLineEndings and format.missingFinalNewline. --fix rewrites a
  file with talafmt's default layout, which also re-indents blocks.

The facts follow the READMEs of Progmasoft/talafmt and Progmasoft/talalint
0.1.0 and the talalint source. site.ts lists the sites once, with their
names, so the header, the landing page and the documentation shell no
longer keep their own copies. Each host has its robots.txt and
sitemap.xml, nginx gains the two server blocks, and the tests check the
new hosts like the others.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The build that serves tala.run, talac.tala.run and tazel.tala.run now
also serves the formatter and the linter, chosen by host name like the
others. Each site has a landing page and two documentation pages in
en-US, de-DE, ru-RU and he-IL:

- talafmt: the command line (inputs, --check, --emit, exit status 2 for
  an unreadable line) and what it changes (indentation, line endings,
  trailing whitespace, the final newline; protected text; encodings from
  talafmt.kts).
- talalint: the command line (--fix) and what it checks: the compiler's
  diagnostics as compiler.&lt;code&gt;, and format.trailingWhitespace,
  format.mixedLineEndings and format.missingFinalNewline. --fix rewrites a
  file with talafmt's default layout, which also re-indents blocks.

The facts follow the READMEs of Progmasoft/talafmt and Progmasoft/talalint
0.1.0 and the talalint source. site.ts lists the sites once, with their
names, so the header, the landing page and the documentation shell no
longer keep their own copies. Each host has its robots.txt and
sitemap.xml, nginx gains the two server blocks, and the tests check the
new hosts like the others.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update vite and launch-editor for the npm audit and format the route test</title>
<updated>2026-10-23T03:07:01+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-23T03:07:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=1a82704248753633d1d546e59a21efda9d07e96b'/>
<id>1a82704248753633d1d546e59a21efda9d07e96b</id>
<content type='text'>
npm audit fix moves the development dependencies vite to 7.3.7 and
launch-editor past GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw and
GHSA-587h-7wmj-h5pm; the frontend audit gate failed on them. Prettier
formats tests/site-integrity.test.mjs, which the format check flagged.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
npm audit fix moves the development dependencies vite to 7.3.7 and
launch-editor past GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw and
GHSA-587h-7wmj-h5pm; the frontend audit gate failed on them. Prettier
formats tests/site-integrity.test.mjs, which the format check flagged.
</pre>
</div>
</content>
</entry>
<entry>
<title>Answer unknown paths of the tala.run sites with 404</title>
<updated>2026-10-23T00:26:55+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-23T00:26:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=c2787446c019458d635a152e113dc0f265c31f52'/>
<id>c2787446c019458d635a152e113dc0f265c31f52</id>
<content type='text'>
Nginx sent every path that is not a file to index.html with 200, so
probes such as /wp-admin/install.php, xmlrpc.php and phpinfo.php were
answered as pages: scanners take that for a hit, and search engines
index soft 404s.

The three server blocks now fall back to @application, which serves
the app shell only for the routes of the application, / and
/docs/&lt;page&gt;, and answers every other path with 404. error_page keeps
index.html as the body of the 404, so a visitor still reaches the
landing page through the router.

A test reads the three sitemaps and requires every listed page to
match the accepted routes, and scanner paths, /docs and nested paths
not to; it also requires the same route rule in all three blocks.
OPERATIONS.md describes the expected 404s, and asks for
--no-same-owner, chown -R root:root and LF line endings when files are
copied from a developer machine: the 2026-10-18 release had left the
frontend owned by a Windows user ID.

Applied on the server with the owner's approval and verified: nginx -t
is clean; /, /docs/overview, talac /docs/command-line, tazel
/docs/commands, robots.txt and /api/v1/site answer 200;
/wp-admin/install.php, /no-such-page and /docs answer 404. npm test
passes, 45 tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nginx sent every path that is not a file to index.html with 200, so
probes such as /wp-admin/install.php, xmlrpc.php and phpinfo.php were
answered as pages: scanners take that for a hit, and search engines
index soft 404s.

The three server blocks now fall back to @application, which serves
the app shell only for the routes of the application, / and
/docs/&lt;page&gt;, and answers every other path with 404. error_page keeps
index.html as the body of the 404, so a visitor still reaches the
landing page through the router.

A test reads the three sitemaps and requires every listed page to
match the accepted routes, and scanner paths, /docs and nested paths
not to; it also requires the same route rule in all three blocks.
OPERATIONS.md describes the expected 404s, and asks for
--no-same-owner, chown -R root:root and LF line endings when files are
copied from a developer machine: the 2026-10-18 release had left the
frontend owned by a Windows user ID.

Applied on the server with the owner's approval and verified: nginx -t
is clean; /, /docs/overview, talac /docs/command-line, tazel
/docs/commands, robots.txt and /api/v1/site answer 200;
/wp-admin/install.php, /no-such-page and /docs answer 404. npm test
passes, 45 tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Give each site a calm landing page with a "Why" section</title>
<updated>2026-10-17T22:45:32+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-17T22:45:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=43c431a793affe2fa41ead816268d6af760f72d0'/>
<id>43c431a793affe2fa41ead816268d6af760f72d0</id>
<content type='text'>
tala.run, talac.tala.run and tazel.tala.run now each open on a landing page
of their own. talac.tala.run and tazel.tala.run used to redirect "/" to
their first documentation topic. Every landing page has one headline, two
ways in, a "Why Tala?", "Why Talac?" or "Why Tazel?" section of tabs over
one code panel, and a short row of next links. The tabs follow the ARIA
tabs pattern: arrow keys, Home and End move between them. The code panel
stays left to right on the Hebrew pages and has a copy button.

Every sample is something that works today. The Tala tabs show
HelloWorld and PrimeNumbers, which are copies of Examples/ (a test compares
them), a small program that shows an argument evaluated by need, the
LLVM IR that talac -O2 made of the gcd loop of Examples/GCD, and a Tazel
project file. The Talac tabs show the terminal output of talac 0.6.0 for
one command, --emit=metadata, each --emit stage, the optimized IR and a
type error. The Tazel tabs show the project file, the everyday commands,
target selection, lock graph and a did-you-mean hint. Of the fifteen
programs in Examples/, talac 0.6.0 builds four (HelloWorld, GCD,
PrimeNumbers, CollatzTrace), so the classes, generators and pattern
matching of the others are not shown yet.

The old home page said in nearly every paragraph that the work was
unfinished, linked "Why Tala?" three times, and numbered its sections. It
is gone. The state of the project is said once, as a small badge beside
the name in the header. The header no longer repeats a Home link, since
the name leads home. On talac and tazel it lists their documentation
topics. Styles that only the old home page used are removed.

The titles and descriptions of "/" come from the landing content of each
site, and the talac and tazel sitemaps list "/". The tests follow:
siteHome is "/" everywhere, the tazel canonical path is "/", and the
example comparison reads the landing samples.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tala.run, talac.tala.run and tazel.tala.run now each open on a landing page
of their own. talac.tala.run and tazel.tala.run used to redirect "/" to
their first documentation topic. Every landing page has one headline, two
ways in, a "Why Tala?", "Why Talac?" or "Why Tazel?" section of tabs over
one code panel, and a short row of next links. The tabs follow the ARIA
tabs pattern: arrow keys, Home and End move between them. The code panel
stays left to right on the Hebrew pages and has a copy button.

Every sample is something that works today. The Tala tabs show
HelloWorld and PrimeNumbers, which are copies of Examples/ (a test compares
them), a small program that shows an argument evaluated by need, the
LLVM IR that talac -O2 made of the gcd loop of Examples/GCD, and a Tazel
project file. The Talac tabs show the terminal output of talac 0.6.0 for
one command, --emit=metadata, each --emit stage, the optimized IR and a
type error. The Tazel tabs show the project file, the everyday commands,
target selection, lock graph and a did-you-mean hint. Of the fifteen
programs in Examples/, talac 0.6.0 builds four (HelloWorld, GCD,
PrimeNumbers, CollatzTrace), so the classes, generators and pattern
matching of the others are not shown yet.

The old home page said in nearly every paragraph that the work was
unfinished, linked "Why Tala?" three times, and numbered its sections. It
is gone. The state of the project is said once, as a small badge beside
the name in the header. The header no longer repeats a Home link, since
the name leads home. On talac and tazel it lists their documentation
topics. Styles that only the old home page used are removed.

The titles and descriptions of "/" come from the landing content of each
site, and the talac and tazel sitemaps list "/". The tests follow:
siteHome is "/" everywhere, the tazel canonical path is "/", and the
example comparison reads the landing samples.
</pre>
</div>
</content>
</entry>
<entry>
<title>Write the compiler's name as Talac in prose</title>
<updated>2026-10-16T20:11:14+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-16T20:11:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=ae680314045aedb291ef773f1b9941a22971e734'/>
<id>ae680314045aedb291ef773f1b9941a22971e734</id>
<content type='text'>
The site wrote the compiler as talac wherever it named it: the brand and
the sibling link of talac.tala.run, the page titles, descriptions and
leads of its documentation, and the Tazel pages that say which program
Tazel starts. As a name it is now Talac, like Tazel, in all four
languages. What a reader types stays lowercase: the command lines, the
`talac --help` the guide asks for, and the host talac.tala.run.

The site test that reads the German title of the outputs page expects
the new name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The site wrote the compiler as talac wherever it named it: the brand and
the sibling link of talac.tala.run, the page titles, descriptions and
leads of its documentation, and the Tazel pages that say which program
Tazel starts. As a name it is now Talac, like Tazel, in all four
languages. What a reader types stays lowercase: the command lines, the
`talac --help` the guide asks for, and the host talac.tala.run.

The site test that reads the German title of the outputs page expects
the new name.
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct stale statements on tala.run and rename the vxs storage keys</title>
<updated>2026-10-16T03:05:28+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-16T03:05:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=3c3c9b10e1ccf218831789bcc59d488200ed12c6'/>
<id>3c3c9b10e1ccf218831789bcc59d488200ed12c6</id>
<content type='text'>
An audit of the site against the compiler repository found statements
that no longer hold, in all four languages:

- the overview named BUILD.kts as the project definition, while Tazel
  reads one of five names; it now says a project file, BUILD.kts or one
  of four other names;
- the overview and the getting-started guide named Windows and macOS as
  the only development hosts. Ubuntu 26.04 LTS and Fedora 43 are official
  hosts too, and the guide says which toolchain they use;
- the getting-started guide listed the counterparts of the examples in
  C#, C++ and Java; the examples also have Rust ones;
- the project-file page wrote build/debug/Example without the .exe a
  Windows build has.

The talac, Tazel and syntax pages were checked against Documents/CLI.md,
Documents/PROJECT_FILES.md and Spec/Language and are otherwise accurate.
Of the 43 links in the repository, only the address inside the Fira Sans
licence text no longer answers; that text is third-party and verbatim.

The browser storage keys still carried the former name of the language:
vxs-locale-choice, vxs-theme and vxs-forum-theme become tala-locale-choice,
tala-theme and tala-forum-theme. A value under a former key moves to the
current one on the first page load, so no visitor loses a choice; a forum
test covers the move. The npm package is renamed from
@visual-xsharp/website to @progmasoft/tala-website, and the forum assets
get a new version query so Cloudflare serves the new script.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An audit of the site against the compiler repository found statements
that no longer hold, in all four languages:

- the overview named BUILD.kts as the project definition, while Tazel
  reads one of five names; it now says a project file, BUILD.kts or one
  of four other names;
- the overview and the getting-started guide named Windows and macOS as
  the only development hosts. Ubuntu 26.04 LTS and Fedora 43 are official
  hosts too, and the guide says which toolchain they use;
- the getting-started guide listed the counterparts of the examples in
  C#, C++ and Java; the examples also have Rust ones;
- the project-file page wrote build/debug/Example without the .exe a
  Windows build has.

The talac, Tazel and syntax pages were checked against Documents/CLI.md,
Documents/PROJECT_FILES.md and Spec/Language and are otherwise accurate.
Of the 43 links in the repository, only the address inside the Fira Sans
licence text no longer answers; that text is third-party and verbatim.

The browser storage keys still carried the former name of the language:
vxs-locale-choice, vxs-theme and vxs-forum-theme become tala-locale-choice,
tala-theme and tala-forum-theme. A value under a former key moves to the
current one on the first page load, so no visitor loses a choice; a forum
test covers the move. The npm package is renamed from
@visual-xsharp/website to @progmasoft/tala-website, and the forum assets
get a new version query so Cloudflare serves the new script.
</pre>
</div>
</content>
</entry>
<entry>
<title>Treat tala.run as an HSTS-preloaded domain</title>
<updated>2026-10-15T15:28:17+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T15:28:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=a460c4c7e922f37705b2be3f1fa7c789f514cd51'/>
<id>a460c4c7e922f37705b2be3f1fa7c789f514cd51</id>
<content type='text'>
.run has no HSTS requirement of its own, but tala.run is served as if it
had one: every HTTPS response of tala.run, www, talac, tazel and forum
sends max-age=63072000; includeSubDomains; preload, and plain HTTP only
answers the ACME challenge and otherwise redirects to HTTPS. A test
checks both for every tala.run block of the three Nginx files. The
redirects of the former .xyz domain keep their header.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
.run has no HSTS requirement of its own, but tala.run is served as if it
had one: every HTTPS response of tala.run, www, talac, tazel and forum
sends max-age=63072000; includeSubDomains; preload, and plain HTTP only
answers the ACME challenge and otherwise redirects to HTTPS. A test
checks both for every tala.run block of the three Nginx files. The
redirects of the former .xyz domain keep their header.
</pre>
</div>
</content>
</entry>
<entry>
<title>Serve tala.run and the documentation of talac and Tazel</title>
<updated>2026-10-15T15:00:48+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-15T15:00:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=ef68517d39fc329cf3286ad70056e00acf8b4855'/>
<id>ef68517d39fc329cf3286ad70056e00acf8b4855</id>
<content type='text'>
The language now lives at tala.run. One frontend build serves three
sites and picks its content from the host name:

- tala.run: the home page, /docs/overview, /docs/getting-started and a
  new /docs/syntax, a first look at programs, comments, declarations,
  operators and evaluation by need, with every sample taken from the
  public specification.
- talac.tala.run: /docs/command-line and /docs/outputs, the compiler's
  options, the entry rule, warnings, --build and --emit, and the record
  of a check.
- tazel.tala.run: /docs/commands and /docs/project-file, the commands of
  the build system, target selection, workspaces and the project DSL.

The new pages are written in all four locales from one content model;
a test keeps code samples and option names identical across them. The
header links the three sites and forum.tala.run. On a development host
?site=talac or ?site=tazel selects a site.

Corrections to the existing pages:

- Getting started used `go run scripts/develop.go`, `talac check -File`,
  `talac build -File` and `-Help`; it now uses `go run ./helpers/cmd/...`,
  `--emit=metadata`, `--entry=` and `--help`.
- The overview no longer names the retired .vxse extension, and the
  project DSL is evaluated by Tazel.
- Canonical URLs, Open Graph data, robots.txt and the sitemap name
  tala.run; talac and tazel have their own robots and sitemap files,
  served per host by Nginx. The notice about the move is gone: the
  former domain redirects instead.
- The leopard mark files are called tala-mark.svg and tala.svg.

Nginx: ops/nginx/tala.conf serves the three hosts, redirects www.tala.run
to tala.run and every path of xsharp-lang.xyz to the same path of
tala.run, and keeps viget.xsharp-lang.xyz pointing at
viget.progmasoft.com; tala.run has no ViGet host of its own.
ops/nginx/forum.conf serves the informational page at forum.tala.run and
redirects the former forum address to it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The language now lives at tala.run. One frontend build serves three
sites and picks its content from the host name:

- tala.run: the home page, /docs/overview, /docs/getting-started and a
  new /docs/syntax, a first look at programs, comments, declarations,
  operators and evaluation by need, with every sample taken from the
  public specification.
- talac.tala.run: /docs/command-line and /docs/outputs, the compiler's
  options, the entry rule, warnings, --build and --emit, and the record
  of a check.
- tazel.tala.run: /docs/commands and /docs/project-file, the commands of
  the build system, target selection, workspaces and the project DSL.

The new pages are written in all four locales from one content model;
a test keeps code samples and option names identical across them. The
header links the three sites and forum.tala.run. On a development host
?site=talac or ?site=tazel selects a site.

Corrections to the existing pages:

- Getting started used `go run scripts/develop.go`, `talac check -File`,
  `talac build -File` and `-Help`; it now uses `go run ./helpers/cmd/...`,
  `--emit=metadata`, `--entry=` and `--help`.
- The overview no longer names the retired .vxse extension, and the
  project DSL is evaluated by Tazel.
- Canonical URLs, Open Graph data, robots.txt and the sitemap name
  tala.run; talac and tazel have their own robots and sitemap files,
  served per host by Nginx. The notice about the move is gone: the
  former domain redirects instead.
- The leopard mark files are called tala-mark.svg and tala.svg.

Nginx: ops/nginx/tala.conf serves the three hosts, redirects www.tala.run
to tala.run and every path of xsharp-lang.xyz to the same path of
tala.run, and keeps viget.xsharp-lang.xyz pointing at
viget.progmasoft.com; tala.run has no ViGet host of its own.
ops/nginx/forum.conf serves the informational page at forum.tala.run and
redirects the former forum address to it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Call the language Tala in the text of the site</title>
<updated>2026-10-12T01:30:26+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-12T01:30:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/website/commit/?id=1fe6c7c32323f4dce488cbe11172f2963685b8e0'/>
<id>1fe6c7c32323f4dce488cbe11172f2963685b8e0</id>
<content type='text'>
The logo already said Tala while the header, the titles, the pages and the
forum notice still said Visual X#. The text now names the language Tala in
the four languages of the site, in the page metadata and in the forum notice.

With the name go the things that changed with it: source files end in .tala,
the project file is BUILD.kts, the compiler is talac, and the links lead to
Progmasoft/tala. A native executable still ends in .vxse, so that stays.

The forum page refers to its stylesheet and script with a new version value,
because the script changed and a cache in front of the host keeps the old
file for hours.

Not changed: the host names, the file name of the mark, and the keys under
which the browser keeps the chosen language and theme, so that a visitor
does not lose them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The logo already said Tala while the header, the titles, the pages and the
forum notice still said Visual X#. The text now names the language Tala in
the four languages of the site, in the page metadata and in the forum notice.

With the name go the things that changed with it: source files end in .tala,
the project file is BUILD.kts, the compiler is talac, and the links lead to
Progmasoft/tala. A native executable still ends in .vxse, so that stays.

The forum page refers to its stylesheet and script with a new version value,
because the script changed and a cache in front of the host keeps the old
file for hours.

Not changed: the host names, the file name of the mark, and the keys under
which the browser keeps the chosen language and theme, so that a visitor
does not lose them.
</pre>
</div>
</content>
</entry>
</feed>
