diff --git a/CLAUDE.md b/CLAUDE.md index 2d9db4b..01a83e4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,12 +1,12 @@ -## Erfinde deine eigene Programmiersprache. +## Invent your own programming language. -- Die Sprache darf jede Form haben, die Du willst. Die Sprache ist für LLMs wie dich. Nur du sollst sie erzeugen und nur Du musst sie verstehen. -- Alle denkbaren Konzepte sind erlaubt. Wähle, was für LLMs am besten geeignet ist. -- Die Sprache muss am Ende zu LLVM gelinkt werden können. Performance ist extrem wichtig. -- Bedenke typische Stärken und Schwachstellen von LLMs. Es muss dir möglichst leicht fallen, beweisbar korrekten Code zu erzeugen, der keine Redundanzen enthält. -- Stelle sicher, dass es Mechanismen gibt, welche die Korrektheit des Codes sicherstellen und über Entwicklungszyklen beibehalten. -- Insbesondere darfst die Sprache Tools enthalten, die es dem LLM vereinfachen, die Sprache zu verstehen und den Überblick über große Codebases zu behalten. -- Die Sprache muss sich nicht aus sich selbst heraus erklären. Es muss nicht mal Text sein. Aber es muss Möglichkeiten geben, die Quellen lesbar darzustellen (als Text, visuell, etc). -- Vergiss nicht, dass auch das Debugging von LLMs erledigt werden soll. +- The language may take any form you want. The language is for LLMs like you. Only you should produce it and only you need to understand it. +- Any conceivable concept is allowed. Pick what is best suited for LLMs. +- The language must, in the end, be linkable to LLVM. Performance is extremely important. +- Consider the typical strengths and weaknesses of LLMs. It must be as easy as possible for you to produce provably correct code that contains no redundancies. +- Make sure there are mechanisms that ensure code correctness and preserve it across development cycles. +- In particular, the language may contain tools that make it easier for the LLM to understand the language and keep an overview over large codebases. +- The language does not have to be self-explanatory. It does not even have to be text. But there must be ways to render the source readably (as text, visually, etc.). +- Do not forget that debugging will also be done by LLMs. -- Organisiere dich selbst. Entwerfe eigene Agenten, wenn nötig. Nutze git. Dokumentiere für dich selbst, aber sei bereit, meine Fragen zum Projektverlauf zu beantworten. +- Organise yourself. Design your own agents when needed. Use git. Document things for yourself, but be ready to answer my questions about the project's progress. diff --git a/crates/ail/tests/e2e.rs b/crates/ail/tests/e2e.rs index 0dad634..6f583c8 100644 --- a/crates/ail/tests/e2e.rs +++ b/crates/ail/tests/e2e.rs @@ -54,7 +54,7 @@ fn max3_picks_largest() { #[test] fn hello_world_str_lit() { let stdout = build_and_run("hello.ail.json"); - assert_eq!(stdout.trim(), "Hallo, AILang."); + assert_eq!(stdout.trim(), "Hello, AILang."); } /// Guards ADT codegen + match: recursive list, sum_list via match on Cons/Nil. diff --git a/crates/ail/tests/snapshots/hello.ll b/crates/ail/tests/snapshots/hello.ll index f9c73f2..c4f0fae 100644 --- a/crates/ail/tests/snapshots/hello.ll +++ b/crates/ail/tests/snapshots/hello.ll @@ -2,7 +2,7 @@ source_filename = "hello.ail" target triple = "" -@.str_hello_str_0 = private unnamed_addr constant [15 x i8] c"Hallo, AILang.\00", align 1 +@.str_hello_str_0 = private unnamed_addr constant [15 x i8] c"Hello, AILang.\00", align 1 declare i32 @printf(ptr, ...) declare i32 @puts(ptr) diff --git a/docs/DESIGN.md b/docs/DESIGN.md index ec088c4..302b269 100644 --- a/docs/DESIGN.md +++ b/docs/DESIGN.md @@ -47,12 +47,11 @@ here as soon as they are established. All in-tree content is written in English: source code (identifiers, comments, string literals, CLI help), design documents, the journal, agent -prompts, READMEs, commit messages, and new examples. The only exception is -`CLAUDE.md`, which is the user's own instruction file. The live conversation -between user and me stays German for ergonomic reasons; everything that -lands in git is English. This keeps diffs and tooling output uniform and -matches the audience for AILang (LLM authors), for whom English is the -default. +prompts, READMEs, commit messages, examples, and `CLAUDE.md`. The live +conversation between user and me stays German for ergonomic reasons; +everything that lands in git is English. This keeps diffs and tooling output +uniform and matches the audience for AILang (LLM authors), for whom English +is the default. ## Decision 1: source = data, not text diff --git a/examples/hello.ail.json b/examples/hello.ail.json index b68c768..414c6a5 100644 --- a/examples/hello.ail.json +++ b/examples/hello.ail.json @@ -17,7 +17,7 @@ "t": "do", "op": "io/print_str", "args": [ - { "t": "lit", "lit": { "kind": "str", "value": "Hallo, AILang." } } + { "t": "lit", "lit": { "kind": "str", "value": "Hello, AILang." } } ] } }