1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
|
<!-- SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> -->
<!-- SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 -->
<script setup lang="ts">
import DocShell from "../components/DocShell.vue";
import { computed } from "vue";
import { RouterLink } from "vue-router";
import { arrow, locale } from "../preferences";
const text = {
"en-US": {
navOverview: "Overview",
navStart: "Getting started",
section: "DOCUMENTATION / GETTING STARTED",
title: "Start with the source",
lead: "Tala is in active development. For now, the repository is the reliable entry point for building the compiler and checking which language features run end to end.",
step1: "1. Get the repository",
step1Text:
"Clone the compiler repository with its submodules. Use a supported development host: Windows 10/11, macOS 26 Tahoe on Apple silicon or Ubuntu 26.04 LTS.",
step2: "2. Check the toolchain",
step2Text:
"The repository's Go development command checks local requirements. The compiler uses GHC2024 for its Haskell front end, Clang/LLVM for C++20 native stages and Bazel for native builds.",
platform:
"The supported development hosts are Windows 10/11, macOS 26 Tahoe on Apple silicon and Ubuntu 26.04 LTS. On Windows, standalone LLVM clang-cl and LLD are used with Windows SDK and MSVC CRT/STL libraries. On macOS, install the Xcode Command Line Tools; the full Xcode application is not required. On Ubuntu, Clang, LLD and libc++ come from the distribution, and the repository's helper downloads LLVM built with libc++.",
toolchainHelp:
"If the check reports missing tools, the optional bootstrap can install prerequisites through the host package manager. Open a new terminal afterward so PATH changes take effect. LLVM_ROOT may point to the LLVM development installation prefix; do not put a machine-specific path in project files.",
bootstrap: "Optional host bootstrap",
step3: "3. Build and test",
step3Text:
"Build the native compiler and run its native contract suites. The Go command orchestrates the checks; Bazel remains the owner of the C++20 build graph. Cabal builds the Haskell packages.",
step4: "4. Read and check a real program",
step4Text:
"The HelloWorld example uses a class method as the entry point. Tala does not use a top-level function as its program entry. Check the exact source file, then build it using the current compiler subset.",
fileCheck: "Check a single source file",
fileBuild: "Build a native executable",
subset:
"The accepted source subset is narrower than the full public specification. A successful build is stronger evidence for a particular program than a syntax example in the specification; a successful test run is stronger evidence for a feature family.",
step5: "5. Follow the public contract",
step5Text:
"Use the public specification for intended language semantics and the repository's Documents for implementation and tooling details. talac --help lists the options the installed compiler accepts, and tazel help the commands of the build system.",
links: [
{
title: "Language specification",
detail: "Syntax and semantic contracts, including valid and invalid examples.",
href: "https://github.com/Progmasoft/tala/tree/main/Spec",
},
{
title: "Building guide",
detail: "Official hosts, toolchain discovery, and native build targets.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/BUILDING.md",
},
{
title: "CLI reference",
detail: "Current commands, flags, artifact behavior, and implementation status.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/CLI.md",
},
{
title: "Example programs",
detail: "Source examples next to C# 13, C++20, Java 21 and Rust counterparts.",
href: "https://github.com/Progmasoft/tala/tree/main/Examples",
},
{
title: "Tazel",
detail: "The build system has a repository of its own and needs Temurin JDK 25.",
href: "https://github.com/Progmasoft/tazel",
},
],
note: "Implementation status",
noteText:
"A spec example is not proof of compiler support. Run repository tests and consult current implementation notes before relying on a feature. Binary downloads and a stable installation flow are not promised yet.",
more: "Understand the design",
spec: "Public specification",
examples: "More examples",
},
"de-DE": {
navOverview: "Überblick",
navStart: "Erste Schritte",
section: "DOKUMENTATION / ERSTE SCHRITTE",
title: "Mit dem Quellcode beginnen",
lead: "Tala wird aktiv entwickelt. Das Repository ist derzeit der zuverlässige Einstieg, um den Compiler zu bauen und den tatsächlich funktionierenden Sprachumfang zu prüfen.",
step1: "1. Repository holen",
step1Text:
"Klonen Sie das Compiler-Repository mit seinen Submodulen. Unterstützt werden Entwicklungsrechner mit Windows 10/11, macOS 26 Tahoe auf Apple Silicon oder Ubuntu 26.04 LTS.",
step2: "2. Toolchain prüfen",
step2Text:
"Der Go-Entwicklungsbefehl prüft lokale Voraussetzungen. Das Frontend verwendet GHC2024, die nativen C++20-Stufen Clang/LLVM und Bazel.",
platform:
"Unterstützte Entwicklungsrechner sind Windows 10/11, macOS 26 Tahoe auf Apple Silicon und Ubuntu 26.04 LTS. Unter Windows werden eigenständiges LLVM clang-cl und LLD mit Windows SDK sowie MSVC-CRT/STL-Bibliotheken verwendet. Unter macOS genügen die Xcode Command Line Tools; die vollständige Xcode-Anwendung ist nicht erforderlich. Unter Ubuntu kommen Clang, LLD und libc++ aus der Distribution, und das Hilfswerkzeug des Repositorys lädt ein mit libc++ gebautes LLVM herunter.",
toolchainHelp:
"Falls Werkzeuge fehlen, kann der optionale Bootstrap die Voraussetzungen über den Paketmanager installieren. Öffnen Sie danach ein neues Terminal, damit PATH-Änderungen greifen. LLVM_ROOT darf auf das LLVM-Entwicklungspaket zeigen; schreiben Sie keinen rechnerbezogenen Pfad in Projektdateien.",
bootstrap: "Optionaler Host-Bootstrap",
step3: "3. Bauen und testen",
step3Text:
"Bauen Sie den nativen Compiler und führen Sie die nativen Vertragstests aus. Der Go-Befehl koordiniert die Prüfungen; Bazel besitzt weiterhin den C++20-Buildgraphen. Cabal baut die Haskell-Pakete.",
step4: "4. Ein echtes Programm lesen und prüfen",
step4Text:
"Im HelloWorld-Beispiel ist eine Klassenmethode der Einstiegspunkt. Eine Top-Level-Funktion ist kein Programmeinstieg in Tala. Prüfen Sie die Quelldatei und bauen Sie sie mit dem derzeit unterstützten Compilerumfang.",
fileCheck: "Eine Quelldatei prüfen",
fileBuild: "Eine native Anwendung bauen",
subset:
"Der unterstützte Quellcode-Teilumfang ist kleiner als die vollständige öffentliche Spezifikation. Ein erfolgreicher Build ist für ein konkretes Programm ein stärkerer Beleg als ein Syntaxbeispiel; ein erfolgreicher Testlauf ist für eine Funktionsgruppe aussagekräftiger.",
step5: "5. Den öffentlichen Vertrag nachlesen",
step5Text:
"Die öffentliche Spezifikation beschreibt die beabsichtigte Sprachsemantik; die Dokumente im Repository erklären Implementierung und Werkzeuge. talac --help zeigt die Optionen, die der installierte Compiler akzeptiert, und tazel help die Befehle des Build-Systems.",
links: [
{
title: "Sprachspezifikation",
detail: "Syntax und Semantik mit gültigen und ungültigen Beispielen.",
href: "https://github.com/Progmasoft/tala/tree/main/Spec",
},
{
title: "Build-Anleitung",
detail: "Offizielle Hosts, Toolchain-Suche und native Build-Ziele.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/BUILDING.md",
},
{
title: "CLI-Referenz",
detail: "Aktuelle Befehle, Optionen, Artefakte und Implementierungsstand.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/CLI.md",
},
{
title: "Beispielprogramme",
detail: "Beispiele neben Fassungen in C# 13, C++20, Java 21 und Rust.",
href: "https://github.com/Progmasoft/tala/tree/main/Examples",
},
{
title: "Tazel",
detail: "Das Build-System hat ein eigenes Repository und braucht Temurin JDK 25.",
href: "https://github.com/Progmasoft/tazel",
},
],
note: "Implementierungsstand",
noteText:
"Ein Spezifikationsbeispiel beweist keine Compiler-Unterstützung. Prüfen Sie Tests und aktuelle Implementierungshinweise, bevor Sie eine Funktion voraussetzen. Stabile Downloads werden noch nicht versprochen.",
more: "Entwurf verstehen",
spec: "Öffentliche Spezifikation",
examples: "Weitere Beispiele",
},
"ru-RU": {
navOverview: "Обзор",
navStart: "Начало работы",
section: "ДОКУМЕНТАЦИЯ / НАЧАЛО РАБОТЫ",
title: "Начните с исходного кода",
lead: "Tala находится в активной разработке. Пока что репозиторий — надёжная отправная точка, чтобы собрать компилятор и проверить, какие возможности языка работают от начала до конца.",
step1: "1. Получите репозиторий",
step1Text:
"Клонируйте репозиторий компилятора вместе с подмодулями. Используйте поддерживаемую машину разработки: Windows 10/11, macOS 26 Tahoe на Apple Silicon или Ubuntu 26.04 LTS.",
step2: "2. Проверьте набор инструментов",
step2Text:
"Команда разработки на Go из репозитория проверяет локальные требования. Компилятор использует GHC2024 для фронтенда на Haskell, Clang/LLVM для нативных стадий на C++20 и Bazel для нативных сборок.",
platform:
"Поддерживаемые машины разработки — Windows 10/11, macOS 26 Tahoe на Apple Silicon и Ubuntu 26.04 LTS. В Windows используются отдельные LLVM clang-cl и LLD вместе с Windows SDK и библиотеками MSVC CRT/STL. В macOS установите Xcode Command Line Tools; полное приложение Xcode не требуется. В Ubuntu Clang, LLD и libc++ берутся из дистрибутива, а вспомогательная утилита репозитория загружает LLVM, собранный с libc++.",
toolchainHelp:
"Если проверка сообщает об отсутствующих инструментах, необязательная начальная настройка может установить их через менеджер пакетов системы. После этого откройте новый терминал, чтобы изменения PATH вступили в силу. LLVM_ROOT может указывать на каталог установки LLVM для разработки; не записывайте путь, относящийся к конкретной машине, в файлы проекта.",
bootstrap: "Необязательная начальная настройка системы",
step3: "3. Соберите и протестируйте",
step3Text:
"Соберите нативный компилятор и запустите его нативные контрактные наборы тестов. Команда на Go координирует проверки; графом сборки C++20 по-прежнему владеет Bazel. Cabal собирает пакеты Haskell.",
step4: "4. Прочитайте и проверьте настоящую программу",
step4Text:
"В примере HelloWorld точкой входа служит метод класса. В Tala функция верхнего уровня не является точкой входа программы. Проверьте сам исходный файл, а затем соберите его текущим подмножеством компилятора.",
fileCheck: "Проверить один исходный файл",
fileBuild: "Собрать нативный исполняемый файл",
subset:
"Принимаемое подмножество исходного кода уже полной публичной спецификации. Успешная сборка — более сильное свидетельство для конкретной программы, чем синтаксический пример в спецификации; успешный прогон тестов — более сильное свидетельство для семейства возможностей.",
step5: "5. Следуйте публичному контракту",
step5Text:
"Задуманную семантику языка смотрите в публичной спецификации, а сведения о реализации и инструментах — в каталоге Documents репозитория. talac --help перечисляет параметры, которые принимает установленный компилятор, а tazel help — команды системы сборки.",
links: [
{
title: "Спецификация языка",
detail: "Синтаксические и семантические контракты с допустимыми и недопустимыми примерами.",
href: "https://github.com/Progmasoft/tala/tree/main/Spec",
},
{
title: "Руководство по сборке",
detail: "Официальные платформы, поиск набора инструментов и цели нативной сборки.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/BUILDING.md",
},
{
title: "Справочник по CLI",
detail: "Текущие команды, флаги, поведение артефактов и состояние реализации.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/CLI.md",
},
{
title: "Примеры программ",
detail: "Примеры исходного кода рядом с вариантами на C# 13, C++20, Java 21 и Rust.",
href: "https://github.com/Progmasoft/tala/tree/main/Examples",
},
{
title: "Tazel",
detail: "У системы сборки свой репозиторий; ей нужен Temurin JDK 25.",
href: "https://github.com/Progmasoft/tazel",
},
],
note: "Состояние реализации",
noteText:
"Пример из спецификации не доказывает поддержку в компиляторе. Прежде чем полагаться на возможность, запустите тесты репозитория и сверьтесь с актуальными заметками о реализации. Готовые двоичные сборки и стабильный процесс установки пока не обещаны.",
more: "Понять замысел",
spec: "Публичная спецификация",
examples: "Больше примеров",
},
"he-IL": {
navOverview: "סקירה",
navStart: "צעדים ראשונים",
section: "תיעוד / צעדים ראשונים",
title: "מתחילים מקוד המקור",
lead: "Tala נמצאת בפיתוח פעיל. לעת עתה המאגר הוא נקודת הכניסה האמינה לבניית המהדר ולבדיקה אילו יכולות של השפה פועלות מקצה לקצה.",
step1: "1. השגת המאגר",
step1Text:
"שכפלו את מאגר המהדר יחד עם תת־המודולים שלו. השתמשו במחשב פיתוח נתמך: Windows 10/11, macOS 26 Tahoe על Apple Silicon או Ubuntu 26.04 LTS.",
step2: "2. בדיקת שרשרת הכלים",
step2Text:
"פקודת הפיתוח של המאגר, הכתובה ב-Go, בודקת את הדרישות המקומיות. המהדר משתמש ב-GHC2024 ל-frontend הכתוב ב-Haskell, ב-Clang/LLVM לשלבי ה-native ב-C++20 וב-Bazel לבניית חלקי ה-native.",
platform:
"מחשבי הפיתוח הנתמכים הם Windows 10/11, macOS 26 Tahoe על Apple Silicon ו-Ubuntu 26.04 LTS. ב-Windows נעשה שימוש ב-clang-cl וב-LLD עצמאיים של LLVM יחד עם Windows SDK וספריות ה-CRT/STL של MSVC. ב-macOS יש להתקין את Xcode Command Line Tools; יישום Xcode המלא אינו נדרש. ב-Ubuntu Clang, LLD ו-libc++ מגיעים מההפצה, וכלי העזר של המאגר מוריד LLVM שנבנה עם libc++.",
toolchainHelp:
"אם הבדיקה מדווחת על כלים חסרים, ה-bootstrap האופציונלי יכול להתקין את הדרישות דרך מנהל החבילות של המערכת. לאחר מכן פתחו מסוף חדש כדי ששינויי PATH ייכנסו לתוקף. LLVM_ROOT יכול להצביע על תחילית ההתקנה של חבילת הפיתוח של LLVM; אין לכתוב נתיב ייחודי למחשב בקובצי הפרויקט.",
bootstrap: "הכנת מחשב אופציונלית",
step3: "3. בנייה ובדיקה",
step3Text:
"בנו את מהדר ה-native והריצו את חבילות בדיקות החוזה שלו. פקודת ה-Go מתזמרת את הבדיקות; Bazel נשאר הבעלים של גרף הבנייה של C++20. Cabal מטפל בחבילות Haskell.",
step4: "4. קריאה ובדיקה של תוכנית אמיתית",
step4Text:
"בדוגמה HelloWorld נקודת הכניסה היא מתודה של מחלקה. Tala אינה משתמשת בפונקציה ברמה העליונה כנקודת הכניסה לתוכנית. בדקו את קובץ המקור המדויק, ואז בנו אותו בתת־הקבוצה הנוכחית של המהדר.",
fileCheck: "בדיקת קובץ מקור יחיד",
fileBuild: "בניית קובץ הרצה בקוד מכונה",
subset:
"תת־הקבוצה של קוד המקור שמתקבלת צרה מהמפרט הציבורי המלא. בנייה מוצלחת היא ראיה חזקה יותר לתוכנית מסוימת מאשר דוגמת תחביר במפרט; הרצת בדיקות מוצלחת היא ראיה חזקה יותר למשפחת יכולות.",
step5: "5. לעקוב אחר החוזה הציבורי",
step5Text:
"המפרט הציבורי מתאר את הסמנטיקה המיועדת של השפה, ומסמכי המאגר מפרטים את המימוש ואת הכלים. talac --help מפרט את האפשרויות שהמהדר המותקן מקבל, ו-tazel help את הפקודות של מערכת הבנייה.",
links: [
{
title: "מפרט השפה",
detail: "חוזי תחביר וסמנטיקה, כולל דוגמאות תקינות ושגויות.",
href: "https://github.com/Progmasoft/tala/tree/main/Spec",
},
{
title: "מדריך בנייה",
detail: "מחשבים רשמיים, איתור שרשרת הכלים ויעדי הבנייה של חלקי ה-native.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/BUILDING.md",
},
{
title: "מדריך ה-CLI",
detail: "הפקודות, הדגלים, התנהגות התוצרים ומצב המימוש הנוכחיים.",
href: "https://github.com/Progmasoft/tala/blob/main/Documents/CLI.md",
},
{
title: "תוכניות לדוגמה",
detail: "דוגמאות קוד לצד מקבילות ב-C# 13, ב-C++20, ב-Java 21 וב-Rust.",
href: "https://github.com/Progmasoft/tala/tree/main/Examples",
},
{
title: "Tazel",
detail: "למערכת הבנייה יש מאגר משלה, והיא זקוקה ל-Temurin JDK 25.",
href: "https://github.com/Progmasoft/tazel",
},
],
note: "מצב המימוש",
noteText:
"דוגמה במפרט אינה הוכחה לתמיכה במהדר. לפני שמסתמכים על יכולת, הריצו את בדיקות המאגר ועיינו בהערות המימוש העדכניות. הורדות בינאריות ותהליך התקנה יציב עדיין אינם מובטחים.",
more: "להבין את התכנון",
spec: "המפרט הציבורי",
examples: "דוגמאות נוספות",
},
} as const;
const c = computed(() => text[locale.value]);
const hello = `namespace Examples.HelloWorld;
public class HelloWorld {
public static void Main() {
String language = "Tala";
Console.Println("Hello from " + language + "!");
}
}`;
</script>
<template>
<DocShell path="/docs/getting-started" edit-path="src/pages/GettingStartedPage.vue">
<h1>{{ c.title }}</h1>
<p class="doc-lead">{{ c.lead }}</p>
<h2>{{ c.step1 }}</h2>
<p>{{ c.step1Text }}</p>
<pre
class="doc-code"
><code>git clone --recurse-submodules https://github.com/Progmasoft/tala.git</code></pre>
<h2>{{ c.step2 }}</h2>
<p>{{ c.step2Text }}</p>
<p>{{ c.platform }}</p>
<pre class="doc-code"><code>go run ./helpers/cmd/develop doctor</code></pre>
<h3>{{ c.bootstrap }}</h3>
<p>{{ c.toolchainHelp }}</p>
<pre class="doc-code"><code>go run ./helpers/cmd/prebuild check
go run ./helpers/cmd/prebuild install</code></pre>
<h2>{{ c.step3 }}</h2>
<p>{{ c.step3Text }}</p>
<pre class="doc-code"><code>go run ./helpers/cmd/develop build
go run ./helpers/cmd/develop test</code></pre>
<h2>{{ c.step4 }}</h2>
<p>{{ c.step4Text }}</p>
<pre class="doc-code"><code>{{ hello }}</code></pre>
<h3>{{ c.fileCheck }}</h3>
<pre
class="doc-code"
><code>talac Examples/HelloWorld/HelloWorld.tala --emit=metadata</code></pre>
<h3>{{ c.fileBuild }}</h3>
<pre
class="doc-code"
><code>talac Examples/HelloWorld/HelloWorld.tala --entry=Examples.HelloWorld.HelloWorld</code></pre>
<p>{{ c.subset }}</p>
<h2>{{ c.step5 }}</h2>
<p>{{ c.step5Text }}</p>
<pre class="doc-code"><code>talac --help
tazel help</code></pre>
<div class="doc-resource-list">
<a v-for="link in c.links" :key="link.href" :href="link.href">
<strong>{{ link.title }} <span aria-hidden="true">↗</span></strong>
<span>{{ link.detail }}</span>
</a>
</div>
<div class="doc-note">
<h3>{{ c.note }}</h3>
<p>{{ c.noteText }}</p>
</div>
<div class="doc-actions">
<RouterLink class="button button-primary" to="/docs/overview"
>{{ c.more }} {{ arrow }}</RouterLink
><a class="inline-link" href="https://github.com/Progmasoft/tala/tree/main/Spec"
>{{ c.spec }} ↗</a
><a class="inline-link" href="https://github.com/Progmasoft/tala/tree/main/Examples"
>{{ c.examples }} ↗</a
>
</div>
</DocShell>
</template>
|