Mittwoch um 15:083 Tage Hallo zusammen,ich möchte hier ein aktuelles Pilotprojekt von mir teilen und zur Diskussion stellen. Es geht um die Frage, wie weit man die Code-Generierung durch KI treiben kann, wenn man als Mensch konsequent nur noch die Rolle des Software-Architekten einnimmt.Das Projekt: Axiom Trader (aktuell v0.4.0-alpha) – ein hochperformantes Handelssystem für macOS.Das Experiment: Ich schreibe keine einzige Zeile Code selbst. Jede Implementierung, jeder Bugfix, das Speichermanagement und die Render-Pipelines werden komplett von der KI umgesetzt.Der Tech-Stack:* Sprachen: C++20 und Objective-C++ (Gewichtung ca. 52% zu 45% im Repo).* UI/Rendering: Ein "Blender-Modell". Dear ImGui eingebettet in ein natives CAMetalLayer-Hosting-View für minimale Latenzen unter macOS 15/16.* Plattform: Optimiert für Apple Silicon (M-Chips), Zero-Overhead-Schleifen, explizite Metal-Pipeline-Zustände.Wie funktioniert das in der Praxis?Der Schlüssel zum Erfolg ist eine extrem strikte ARCHITECT.md im Repository. Diese fungiert als unumstößliches Regelwerk (Guardrails) für die KI. Die wichtigsten Regeln, die das System stabil halten:1. Strikte Schichtentrennung: Der Core src/core/) enthält die deterministische Logik und darf absolut keine UI- oder Grafik-Header (ImGui, Metal) importieren.2. RAII-Zwang: Ressourcenmanagement erfolgt ausnahmslos über RAII, um Speicherlecks im C++-Code von vornherein auszuschließen.3. UI-Scoping: Dynamische ImGui-Tabellen müssen zwingend über ID-Scoping ImGui::PushID / PopID) abgesichert werden, um State-Konflikte im UI-Thread zu verhindern.Bisherige Erkenntnis:Wenn die architektonischen Leitplanken eng und mathematisch präzise genug gesteckt sind, neigt die KI nicht zu Halluzinationen. Stattdessen liefert sie hochoptimierten, sauberen C++20-Code, der sich in Xcode tadellos kompilieren lässt. Das Build-System von Xcode 16 verarbeitet diesen hybriden C++/Obj-C++ Mix extrem performant.Das Projekt steuert gerade auf die Version v0.5.x zu (Anbindung von SQLite für die Persistenz und Textur-Streaming via stb_image.h in die Metal-Buffer).Mich würde euer Feedback interessieren: Hat jemand von euch schon ähnliche Projekte umgesetzt, bei denen die KI vollständige* Code-Autonomie hatte?* Wie steuert ihr die Code-Qualität bei generiertem C++20-Code (Stichwort: statische Codeanalyse vs. Prompt-Guardrails)?* Seht ihr bei so einem "Architekt (Mensch) vs. Developer (KI)"-Modell langfristig die Zukunft in der Anwendungsentwicklung?Wer sich das Regelwerk oder den Code genauer ansehen möchte: Das Projekt ist Open Source auf GitHub (Link packe ich in die Kommentare/Signatur).Freue mich auf eine sachliche Diskussion!GitHubGitHub - tkreutz0-cmyk/axiom-trader: The Vision: A high-p...The Vision: A high-performance, deterministic trading journal built on the "Blender Model"—prioritizing full GUI control, local data sovereignty, and zero App Store friction. - tkreutz0-c...
Donnerstag um 09:333 Tage Hey, vielen Dank dass du das online stellst.Ich habe es mir selber oberflaechlich angeschaut und einmal durch Claude Opus 4.7 gejagt und es gibt da einige Punkte anzumerken.Ein smell ist fuer mich natuerlich das Darstellen von Geldwerten als Fliesskommazahl.Dokumentation is an verschiedenen Orten uneinhetlich abgelegt.Claudes Anmerkungen sind:- High Performance C++ ist in der Code Base selber nicht zu erkennen (Allokation im Hotpath und dergleichen)- Die verschiedenen konkurrierenden Implementierung (src.main.mm vs Sqlite.hpp vs StorageManager.hpp)Meine Erfahrungen mit komplett AI generiertem Code sind ehrlicherweise bisher ernuechternd.Ich wollte mal schauen wie es sich verhaelt wenn es mehr Richtung persistent Specs / BDD geht.
Donnerstag um 09:463 Tage Autor vor 7 Minuten, Wodar Hospur hat gesagt:Meine Erfahrungen mit komplett AI generiertem Code sind ehrlicherweise bisher ernuechternd.Ich wollte mal schauen wie es sich verhaelt wenn es mehr Richtung persistent Specs / BDD geht.Vielen Dank für das ehrliche und detaillierte Feedback!Genau das ist der springende Punkt: Es gibt hier definitiv noch einiges zu tun. Einige Funktionen und optimierte Codepfade sind aktuell auch bewusst temporär ausgeschaltet oder als Prototyp hinterlegt, während an ganz anderen Baustellen parallel weitergearbeitet wird.Man muss bei diesem Projekt massiv berücksichtigen, dass hier absolut iterativ vorgegangen wird. Der Code, den du jetzt siehst, ist der Zustand eines fließenden Übergangs. Insgesamt ist das ein völlig neuer, experimenteller Workflow, den es so in klassischen, (echten) Produktiv-Projekten eins zu eins wahrscheinlich nie geben wird – da dort von Anfang an ganz andere Code-Reviews und statische Analysen greifen.Es ist und bleibt ein Experiment, um die Grenzen der rein KI-gesteuerten Generierung auszuloten. Aber dafür ist es immerhin schon ein ganzes Stück weit gekommen und liefert eine stabile, native Metal-Oberfläche auf macOS, auf der wir jetzt die feineren architektonischen Klingen (wie Fixed-Point für Geldwerte und Allokations-Stopps im Hotpath) iterativ schleifen können.Ich halte euch hier über die nächsten Refactoring-Schritte auf dem Laufenden!
Donnerstag um 15:452 Tage vor 6 Stunden, Wodar Hospur hat gesagt:Claudes Anmerkungen sind:vor 5 Stunden, tkreutz2 hat gesagt:Grenzen der rein KI-gesteuerten Generierung auszulotenWas erwartest du genau zu erfahren?Die Grenzen hängen davon ab, wo du die Grenzen ziehst.Ein aussagekräftiger Vergleich zwischen KI-generierter und menschlicher Softwareentwicklung erfordert:Quantitative Metriken (z. B. Entwicklungszeit, Fehlerrate, Testabdeckung) für objektive Daten.Qualitative Metriken (z. B. Code-Design, Entwicklerzufriedenheit) für subjektive Bewertungen.Langfristige Studien zur Bewertung von Wartbarkeit und Skalierbarkeit und kontextspezifische Analysen (z. B. Projektgröße, Teamdynamik, Domänenkomplexität).Mir scheinen bestimmte Beobachtungen sehr nützlich zu sein, um zu einer Bewertung zu kommen.Am 13.5.2026 um 17:08, tkreutz2 hat gesagt:Wie steuert ihr die Code-Qualität bei generiertem C++20-Code (Stichwort: statische Codeanalyse vs. Prompt-Guardrails)?* Seht ihr bei so einem "Architekt (Mensch) vs. Developer (KI)"-Modell langfristig die Zukunft in der Anwendungsentwicklung?Die Qualität der KI-Ausgabe hängt stark von den Prompt-Guardrails ab.Testet du, welche Formulierungen mehr oder weniger gut arbeiten?Wenn sowas wie Best-Practice-to-generate herauskommt, würde ich das unterstützen.
Freitag um 03:252 Tage Autor Hallo @hellerKopf ,du triffst hier einen extrem wichtigen Punkt. Ein Experiment ohne klare Metriken und Definition von „Grenzen“ läuft Gefahr, rein anekdotisch zu bleiben. Vielen Dank für diesen methodischen Anstoß!Zu deiner Frage, was ich genau erfahren will und wo ich die Grenzen ziehe:Meine primäre Hypothese ist: Kann eine KI komplexe, plattformspezifische Systemarchitekturen (wie hardwarenahes Metal-Rendering gepaart mit deterministischer Trading-Logik) fehlerfrei verwalten, wenn der Mensch ausschließlich abstrakte Regeln vorgibt?Die Grenze ziehe ich da, wo die KI architektonische Brüche erzeugt (wie die von dir/Claude entdeckte Dreifach-Implementierung der Persistenz), weil der Kontext-Fenster-Horizont oder das logische Verständnis für das Gesamtgefüge reißt.Zu den Metriken (Quantitativ & Qualitativ):Da ich das Projekt alleine in meiner Freizeit hochziehe, sind vollumfängliche Langzeitstudien schwer machbar. Aber ich tracke für mich bereits einige Daten, die ich gerne im Verlauf des Projekts teilen kann:Entwicklungszeit (Time-to-Market): Wie viele Minuten vergehen vom Architektur-Konzept in der ARCHITECT.md bis zum kompilierbaren Feature in Xcode? (Spoiler: Bei UI-Prototypen extrem schnell, bei Refactorings im Core bricht die Geschwindigkeit ein).Fehlerrate / Regressionen: Wie oft führt ein neuer Prompt dazu, dass eigentlich funktionierende Features an anderer Stelle unbemerkt wegbrechen?Zu deiner Frage bezüglich der Formulierungen (Best-Practice-to-generate):Ja, absolut! Das ist im Grunde der Kern der ARCHITECT.md. Ich teste intensiv, welche Detailtiefe die KI benötigt.Meine bisherige Erkenntnis: Allgemeine Phrasen wie "Schreibe performanten Code" bewirken gar nichts. Die KI benötigt restriktive, imperative Verbote und mathematische Konzepte. Ein Beispiel: Erst als ich die Regel "Nutze RAII" durch die konkrete Anweisung "Nutze ausnahmslos std::unique_ptr oder Stack-Allokation für Ressourcen in src/core/" ersetzt habe, sank die Memory-Leak-Rate im generierten Code gegen Null.Ich dokumentiere diese Erkenntnisse parallel. Wenn daraus am Ende eine Art strukturiertes „Best-Practice-Template“ für C++20-Generierung entsteht, teile ich das sehr gerne hier im Forum!Die "feine Klinge" (Fixed-Point-Math für die Währungen) schlage ich übrigens gerade ein – ich poste das Update, sobald die Pipeline fehlerfrei steht.
Freitag um 06:582 Tage vor 3 Stunden, tkreutz2 hat gesagt:Ein Beispiel: Erst als ich die Regel "Nutze RAII" durch die konkrete Anweisung "Nutze ausnahmslos std::unique_ptr oder Stack-Allokation für Ressourcen in src/core/" ersetzt habe, sank die Memory-Leak-Rate im generierten Code gegen Null.Das ist ein Punkt, wo ich gerne tiefer gehen will.Verglichen werden kann:Ich fordere die Regeln von einem frisch Ausgebildeten, einem Junior (2 Jahre BE) und einem Senior.Ich nenne die Anforderung genauso in den Anweisungen an die KI.Das Ergebnis sollte sein zu erkennen, auf welchem Level beginnt die KI besser zu sein, als der humane Mitarbeiter.Dann erfolgt das Tuning. Wie muss ich die Anforderung formulieren, damit KI den Junior ersetzt und ab wann ist die KI dem Senior gleich.Ich habe das für zwei Systeme gemacht, die sich untereinander schon geringfügig unterscheiden.Was mir die drei Arten von Mitarbeiter geantwortet hätten und welche Memory-Leak-Rate diese verursachen, versuche ich gerade vor Ort zu ermitteln.Die LLM haben auf "Nutze RAII" wie folgt reagiert:LLM1LLM2Übereinstimmung/Ergänzung1. Ressourcen an Objektlebensdauer bindenRessourcen werden im Konstruktor erworben und im Destruktor freigegeben.✅ Übereinstimmung2. Kein manuelles new/delete im AnwendungscodeVermeide new/delete; nutze Smart Pointer oder Container.✅ Übereinstimmung3. Kein manuelles malloc/free in modernem C++Kein manuelles Speichermanagement; nutze Standardbibliothek.✅ Übereinstimmung4. Destruktor gibt die Ressource zuverlässig freiDestruktor gibt Ressourcen frei, auch bei Ausnahmen.✅ Übereinstimmung5. Destruktoren dürfen keine Exceptions werfenNicht explizit erwähnt, aber implizit durch Ausnahmesicherheit abgedeckt.⚠️ Ergänzung:6. Ressourcenbesitz eindeutig modellierenKonsistente Ownership-Semantik (z. B. unique_ptr, shared_ptr).✅ Übereinstimmung7. Rule of Zero bevorzugenNutzung von Standardtypen, die Ressourcen selbst verwalten.✅ Übereinstimmung8. Falls eigene Ressourcenklasse nötig: Rule of Five beachtenEigenen RAII-Wrapper erstellen, inkl. Move-Semantik.✅ Übereinstimmung (implizit durch Move-Semantik)9. Kopierbarkeit bewusst entscheidenMove-Semantik für Ownership-Übertragung; Kopieren oft gelöscht.✅ Übereinstimmung10. Locks per RAII verwaltenNutzung von std::lock_guard, std::scoped_lock.✅ Übereinstimmung11. Dateien per RAII verwaltenNutzung von std::fstream oder eigenen Wrappern.✅ Übereinstimmung12. Transaktionen und Rollbacks absichernNicht explizit erwähnt.❌ Fehlend13. Frühe Returns müssen sicher seinRAII stellt sicher, dass Ressourcen auch bei return/throw freigegeben werden.✅ Übereinstimmung (implizit)14. Keine „Cleanup“-Blöcke am FunktionsendeAufräumlogik gehört in Destruktoren.✅ Übereinstimmung15. Rohpointer nur als beobachtende Pointer verwendenRohe Zeiger nur für Nicht-Ownership; Ownership durch RAII-Typen.✅ Übereinstimmung16. Scope bewusst klein haltenNicht explizit erwähnt.⚠️ Ergänzung: Wichtiger Punkt,17. Initialisierung vollständig und gültig machenKonstruktoren sollten Objekte in gültigen Zustand versetzen.✅ Übereinstimmung (implizit)18. Keine halbgültigen Objekte bevorzugenKeine init()-Methoden; Objekte sollten nach Konstruktion gültig sein.✅ Übereinstimmung (implizit)19. Qt-spezifisch: Ownership beachtenQt’s Eltern-Kind-Mechanismus und QScopedPointer/QSharedPointer.✅ Übereinstimmung20. Qt-spezifisch: Smart Pointer passend wählenNutzung von std::unique_ptr, QSharedPointer etc.✅ Übereinstimmung Bearbeitet Freitag um 07:102 Tage von hellerKopf
Freitag um 07:302 Tage Autor Hallo @hellerKopf ,deine strukturierte Gegenüberstellung der LLM-Antworten deckt das Kernproblem perfekt auf. Sie zeigt genau das, was ich die „KI-Varianz-Krise“ (oder das Overconfidence-Pattern) nenne: Die KI optimiert auf Eloquenz, nicht auf Wahrheit (p. 6). Sie listet im Chat brav alle 20 RAII-Regeln auf, bricht diese aber im echten Code-Generierungsprozess, sobald der Kontext komplexer wird (p. 6). Sie verhält sich exakt wie ein Junior-Entwickler in der Theorieprüfung vs. Praxis.Um die KI auf das Level eines Seniors zu hieven, reicht rein esoterisches Prompt-Tuning oder das Erweitern von Text-Guidelines ab einem gewissen Punkt nicht mehr aus. Man muss die Software-Architektur selbst als Kontrollmechanismus aufbauen.Ich habe für diesen Zweck ein übergeordnetes Framework entwickelt, das ich als „Living Architecture Library“ (basierend auf einem SYNAPSE-CPP Kern) in meinen Projekten einsetze (pp. 1, 19). Das Ziel ist eine KI-Governance, die auf einem Drei-Instanzen-Modell basiert (pp. 1, 9):Instanz 1: Der Generator (Probabilistisch): Das ist die Entwickler-KI (wie Copilot oder Claude) (p. 9). Ihr Output ist grundsätzlich „untrusted“ (p. 9). Sie liefert lediglich Lösungs-Hypothesen im Akkord (Junior-Level) (p. 9).Instanz 2: Der Falsifikator (Antagonist): Ein separates KI-Agenten-System mit dem expliziten, destruktiven Auftrag: „Suche systematisch nach Fehlern, Memory Leaks und Logikbrüchen im Code von Instanz 1“ (p. 9).Instanz 3: Der Evaluator (Deterministisch): Ein harter, in C++20 geschriebener Kern, der nicht mehr auf Wahrscheinlichkeiten basiert (p. 9). Er prüft den generierten Code und die Systemzustände gegen unverrückbare mathematische und architektonische Invarianten (p. 9).Angewandt auf dein RAII-Beispiel:Wenn Instanz 1 Code generiert, jagt Instanz 3 (der Evaluator) diesen durch eine automatisierte Kette (z. B. zyklomatische Komplexitätsprüfung \(\le 10\), Clang-Tidy Matcher auf new/delete und automatisierte Test-Suites) (p. 9). Verletzt die KI eine dieser Invarianten, wird der Code rigoros verworfen, und das System triggert mit dem Fehlerprotokoll eine neue Iteration (p. 17).Erst durch diese deterministische Kontrollschicht (Instanz 3) wird die unzuverlässige „Junior-KI“ gezwungen, Code auf absolutem „Senior-Niveau“ abzuliefern (p. 9). Das System sichert sich selbst ab (p. 19).Dieses Prinzip der Markt- und Code-Governance nutzen wir auch im Axiom Trader (p. 16), um die KI-Autonomie mathematisch zu bändigen. Wenn dich (oder die anderen) die genauen mathematischen Invarianten-Prüfungen dieses Setups interessieren, kann ich das gerne mal näher aufdröseln!
Freitag um 07:462 Tage vor 8 Minuten, tkreutz2 hat gesagt:Sie verhält sich exakt wie ein Junior-Entwickler in der Theorieprüfung vs. Praxis.Genau hier sehe ich auch die Herausforderung.Die hitzige Diskussion, ob KI .... ersetzen kann, vernachlässigt vollkommen den 'Maßstab' nach dem man dies beurteilen kann.Der Junior könnte mir auch alle 20 Punkte zu RAII (nur als Beispiel) aufzählen.Aber auch beim Senior bin ich nicht sicher, ob er alle Punkte berücksichtigt.Und ob KI/LLM alle seine Punkte auch berücksichtigt, muss ich aufwendig nachprüfen.
Freitag um 08:022 Tage Autor Hallo zusammen,ich möchte die methodische Diskussion hier direkt aufgreifen und euch den nächsten Evolutionsschritt meines Experiments vorstellen. Die Frage, wie man die unzuverlässige „Junior-KI“ bändigt und reproduzierbare „Senior-Ergebnisse“ erzielt, hat mich zu einem radikalen Umdenken im Workflow gezwungen.Reines Prompt-Tuning in der IDE reicht ab einer gewissen Projektgröße nicht mehr aus. Wenn die KI direkt im Quellcode arbeitet, entstehen die von euch völlig zu Recht kritisierten Brüche (wie die Float-Leichen oder redundante Implementierungen).Ich habe daher ein automatisiertes KI-QS- und Pre-Check-System direkt in das Repository integriert. Die KI arbeitet ab sofort nicht mehr direkt auf den Quellcodedateien, sondern durchläuft eine strikte Vier-Phasen-Governance-Pipeline:Die Invarianten (decisions/prompt-guardrails.md): Hier sind die harten Architektur-Gesetze (wie das plattformunabhängige Blender-Prinzip, das absolute Float-Verbot und das Allokations-Verbot im Hotpath) maschinenlesbar für die KI hinterlegt.Die Sandbox (Pre-Check-Phase): Die KI darf bestehenden C++ Code nicht mehr direkt verändern. Sie muss jeden Code-Vorschlag zuerst in einer isolierten Review-Datei im neuen Verzeichnis docs/pre-checks/ablegen.Der Konformitäts-Beweis: In dieser Review-Datei muss die KI vorab schriftlich und logisch beweisen, dass ihr generierter Code-Vorschlag keine einzige Regel der Guardrails verletzt.Die Dialog-Historisierung: Parallel dazu wird der vollständige Konversations- und Prompt-Verlauf als Markdown-Dokument im Git-Repository versioniert. Wer das Repo klont, sieht somit in Zukunft nicht nur das fertige Produkt, sondern die lückenlose Evolution der "Mensch-Maschine-Diskussion".Die Praxisprobe läuft gerade:Ich habe die von euch angestoßene Architekturentscheidung ADR-0004 (Einführung von plattformunabhängiger FixedPoint-Arithmetik via int64_t zur Eliminierung aller Floats) ins Repo gepusht. Die Windows-Dev-Umgebung auf meinem Handheld steht.Die Entwickler-KI hat nun den Auftrag erhalten, das großflächige Core-Refactoring exakt nach diesem neuen Pre-Check-Muster in docs/pre-checks/0004-fixed-point-review.md vorzubereiten. Sobald die KI den Code und ihren Konformitätsbeweis dort abgelegt hat, werde ich als menschlicher Chef-Architekt das finale Review durchführen, bevor der Code live in den Xcode-Core fließt.Ich halte euch über die Ergebnisse dieses kontrollierten KI-Einsatzes auf dem Laufenden!
Freitag um 09:332 Tage Autor Hallo @hellerKopf ,exakt an diesem Punkt schließt sich der Kreis zu meinem neuen Pre-Check-System. Du hast vollkommen recht: Wenn ich den Code genauso mühsam Zeile für Zeile prüfen muss, habe ich zeitlich nichts gewonnen.Genau deshalb zwinge ich die KI, die Beweislast umzukehren und das Konformitäts-Audit vorab selbst zu schreiben. Als menschlicher Architekt lese ich nicht mehr kopflos C++ Code, sondern prüfe primär die Plausibilität der von der KI gelieferten Beweiskette gegen meine Invarianten.Und hier ist der direkte Praxis-Beweis, wie dieses System ein rein menschliches Review schlägt:Ich habe die KI über meine Pipeline das Refactoring der Festkomma-Arithmetik (ADR-0004) in die Sandbox docs/pre-checks/0004-fixed-point-review.md generieren lassen. Beim Überfliegen des von der KI geschriebenen Audits fiel der Blick sofort auf Kapitel 4: „Grenzen und Risiken – Compiler-Unterstützung“.Die KI stellte dort in ihrem eigenen Audit fest: „Implementierung nutzt int128. Wenn der Compiler keine int128-Unterstützung bietet (z. B. MSVC ohne Emulation), schlägt die Compilation fehl.“Einem menschlichen Junior-Entwickler (und Hand aufs Herz: auch vielen Senioren!) wäre dieser plattformspezifische Fehler beim schnellen Tippen unter macOS niemals aufgefallen. Sie hätten den Code eingecheckt, und das Windows-Build-System wäre Stunden später auf die Nase geflogen.Weil meine Pipeline die KI aber dazu zwingt, ein eigenes Risiko-Audit abzuliefern, wurde diese architektonische Sollbruchstelle sichtbar, bevor auch nur eine einzige Zeile Code live in den Core geflossen ist.Ich habe die KI aufgrund ihres eigenen Audits nun angewiesen, ein plattformunabhängiges Fallback via Compiler-Guards und x64-Hardware-Intrinsics (_umul128 / _udiv128) für den MSVC-Compiler auf Windows einzubauen, um das Blender-Prinzip (vollkommene OS-Unabhängigkeit) zu wahren.Der Code sieht im Pre-Check für Windows nun so aus: Vollständiger Source ist im Repository
vor 16 Stunden16 h Ich habe kurz den ADR gelesen, die aber eine 64 bit Ganzzahl als Entscheidung listet, warum wird dann also von 128 Bit Arithmetik gesprochen, klingt für mich nach einem Fehler?Deine angewandte Methodik hat mich an einen Artikel/ einen Beiträg zum Thema „Programmieren Lernen“ erinnert. Dabei ging es um die Beobachtung dass Studenten dazu neigen immer mehr Fallunterscheidungen jnd Komplexität in ihren Lösungen einzubauen wenn sie aufgrund von Feedback auf Fehler hingewiesen werden. So sehe ich dass mehr Prozessschritte eingeführt werden und ich frage mich ob „weniger“ auch oder besser zum Ziel führen kann. So kenne ich aus der Java Welt archunit.org oder auch Konsist und würde hoffen es gibt eine ähnliche Art und Weise solche Regeln zu beschreiben.
vor 4 Stunden4 h Autor Hallo @Wodar Hospur,guter Punkt – das wirkt auf den ersten Blick tatsächlich wie ein Widerspruch, ist aber im Kern eine bewusste Designentscheidung, die ich gerade aufgrund eines KI‑Prechecks angepasst habe.Zur 64‑bit vs. 128‑bit Frage:Im ADR ist bewusst festgelegt:Persistenz / Datenmodell → int64_t (Fixed Point, skalierte Ganzzahlen)128‑bit → nur als intermediäre Rechenhilfe (Multiply/Divide), nicht als Data-TypeDas Problem ist durch den Pre‑Check jetzt sichtbar geworden:__int128 ist kein standardisierter Bestandteil von C++, sondern eine Compiler-Erweiterung (Clang/GCC), die z. B. unter MSVC nicht existiert.Damit verletze ich mein eigenes Blender-/DNA-Prinzip:Es dürfen nur Sprach- und Compiler-Features verwendet werden, die plattformübergreifend gleichzeitig existieren.Das ist kein Optimierungsproblem, sondern ein architektonischer Regelbruch.Deshalb die Anpassung:64‑bit bleibt der definierte Datenraum128‑bit wird nicht mehr als „implizit vorhanden“ angenommensondern über:Compiler-Guardsoder platform-spezifische Intrinsics (_umul128 etc.)explizit behandeltDas ADR ist an der Stelle aktuell noch nicht nachgeführt – das ist genau der Punkt, den dieser Pre‑Check sichtbar gemacht hat.
vor 2 Stunden2 h Autor Kurzes Update dazu:Ich habe die daraus entstandene Architektur-Anpassung inzwischen sauber in das ADR-0004 überführt und versioniert.Konkret wurde dort jetzt explizit festgehalten, dass:__int128 keine valide Grundlage für Cross-Platform-Code istund alle entsprechenden Operationen über Compiler-Guards bzw. Intrinsics abgesichert werden müssenDas war im ursprünglichen ADR so nicht sauber formuliert und ist erst durch den Pre-Check sichtbar geworden.Für mich bestätigt das aktuell den Ansatz ganz gut: → reale Probleme führen zu architektonischen Präzisierungen, nicht nur zu Code-Fixes.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.