Der unvermeidliche Borrow-Checker in Inko: Ein Kompromiss zwischen Stack-Allokation und Compile-Time-Checks
Der Entwickler der Inko-Sprache untersucht optimale Lösungen für die Stack-Allokation und die Borrow-Prüfung. Standardmäßig werden Inko-Typen auf dem Heap allokiert, was Flexibilität bietet, aber zu Performance-Overhead führt. Um die Performance zu verbessern, wurde ein `inline`-Modifizierer eingeführt, um die Stack-Allokation zu unterstützen, aber dies bringt neue Herausforderungen mit sich: Wie werden Borrows und Move-Semantik gehandhabt, während gleichzeitig die Speichersicherheit gewährleistet wird? Der Artikel untersucht verschiedene Lösungen, darunter das Zulassen von Feldzuweisungen, die Einführung eindeutiger Typen und die Escape-Analyse, und kommt zu dem Schluss, dass die Borrow-Prüfung zur Compile-Time der beste Ansatz ist, aber die Implementierungskomplexität hoch ist und sie kurzfristig nicht implementiert wird. Derzeit verwendet Inko immer noch eine Strategie, die keine Neuzuweisung von Feldern von Inline-Typen zulässt.
Mehr lesen