HeadlinesBriefing HeadlinesBriefing 12 languages

Valen's Memory Safety: A New Kind of Borrow Checking

Hacker News ·

🇬🇧 English

Valen introduces a new flexible borrow checker designed to solve memory safety challenges. It combines group borrowing with reference counting and generational references. Unlike Rust, Valen uses a single borrow reference type and remembers where references point to, enabling complex data access. The system supports interop with Rust code and aims to be as simple as garbage collection while maintaining borrow-checking power. This approach addresses the shared-xor-mutable conflict by allowing references to coexist with mutability under controlled conditions.

Group borrowing, originally proposed by Nick Smith, was revived after being abandoned for Mojo. It has since influenced languages like Google's Carbon, Ante, Plecra, Zeta, and Fang. Valen integrates this concept with Vale's approach and Rust compatibility. The compiler tracks reference origins to enforce memory safety without strict ownership rules. This flexibility could redefine how modern languages balance performance and safety.

View original article →


🇸🇦 العربية

شرح مدقق الاستعارة الجديد من Valen

يقدم Valen مدقق استعارة مرن جديد مصمم لحل تحديات أمان الذاكرة. يجمع بين الاستعارة الجماعية مع عد المراجع والمراجع الجيلية. على عكس Rust، يستخدم Valen نوع مرجع استعارة واحد ويتذكر إلى أين تشير المراجع، مما يتيح الوصول المعقد للبيانات. يدعم النظام التشغيل البيني مع كود Rust ويهدف إلى أن يكون بسيطاً مثل جمع القمامة مع الحفاظ على قوة مدقق الاستعارة. تعالج هذه الطريقة تعارض المشترك-xor-القابل للتغيير من خلال السماح للمراجع بالتعايش مع القابلية للتغيير تحت ظروف خاضعة للرقابة.

تم إحياء الاستعارة الجماعية، التي اقترحها في الأصل Nick Smith، بعد التخلي عنها لصالح Mojo. ومنذ ذلك الحين أثرت على لغات مثل Carbon من Google، وAnte، وPlecra، وZeta، وFang. يدمج Valen هذا المفهوم مع نهج Vale وتوافق Rust. يتتبع المترجم أصول المراجع لفرض أمان الذاكرة دون قواعد ملكية صارمة. يمكن أن تعيد هذه المرونة تعريف كيفية موازنة اللغات الحديثة بين الأداء والأمان.

كيف يختلف مدقق استعارة Valen عن Rust؟

يستخدم Valen نوع مرجع استعارة واحد ويتذكر إلى أين تشير المراجع، مما يوفر مرونة أكبر. يجمع بين الاستعارة الجماعية مع عد المراجع ويدعم التوافق مع Rust، على عكس نظام المراجع المزدوج ونموذج الملكية الصارم في Rust.

العربية version →


🇧🇩 বাংলা

ভ্যালেনের নতুন বোরো চেকার ব্যাখ্যা

ভ্যালেন মেমরি সুরক্ষার চ্যালেঞ্জ সমাধানের জন্য একটি নতুন নমনীয় বোরো চেকার চালু করেছে। এটি গ্রুপ বোরোইংকে রেফারেন্স কাউন্টিং এবং জেনারেশনাল রেফারেন্সের সাথে একত্রিত করে। রাস্টের বিপরীতে, ভ্যালেন একটি একক বোরো রেফারেন্স টাইপ ব্যবহার করে এবং মনে রাখে রেফারেন্সগুলো কোথায় নির্দেশ করছে, যা জটিল ডেটা অ্যাক্সেস সক্ষম করে। সিস্টেম রাস্ট কোডের সাথে ইন্টারঅপ সমর্থন করে এবং গারবেজ কালেকশনের মতো সহজ হওয়ার লক্ষ্য রাখে বোরো-চেকিং ক্ষমতা বজায় রেখে। এই পদ্ধতিটি শেয়ারড-এক্সওআর-মিউটেবল দ্বন্দ্ব সমাধান করে নিয়ন্ত্রিত শর্তের অধীনে রেফারেন্সগুলিকে মিউটেবিলিটির সাথে সহ-অস্তিত্বে থাকতে দিয়ে।

গ্রুপ বোরোইং, যা মূলত নিক স্মিথ দ্বারা প্রস্তাবিত হয়েছিল, মোজোর জন্য ত্যাগ করার পর পুনর্জীবিত হয়েছে। এর পর থেকে এটি গুগলের কার্বন, অ্যান্টে, প্লেক্রা, জেটা এবং ফ্যাং এর মতো ভাষাগুলিকে প্রভাবিত করেছে। ভ্যালেন এই ধারণাটি ভ্যালের পদ্ধতি এবং রাস্ট সামঞ্জস্যের সাথে একীভূত করেছে। কম্পাইলার কঠোর মালিকানা নিয়ম ছাড়াই মেমরি সুরক্ষা বাধ্য করার জন্য রেফারেন্সের উৎস ট্র্যাক করে। এই নমনীয়তা আধুনিক ভাষাগুলি কীভাবে পারফরম্যান্স এবং সুরক্ষা ভারসাম্য করে তা পুনঃনির্দেশ করতে পারে।

ভ্যালেনের বোরো চেকার রাস্ট থেকে কিভাবে আলাদা?

ভ্যালেন একটি একক বোরো রেফারেন্স টাইপ ব্যবহার করে এবং মনে রাখে রেফারেন্সগুলো কোথায় নির্দেশ করছে, যা আরও নমনীয়তা দেয়। এটি গ্রুপ বোরোইংকে রেফারেন্স কাউন্টিং-এর সাথে একত্রিত করে এবং রাস্ট ইন্টারঅপ সমর্থন করে, রাস্টের ডুয়াল-রেফারেন্স সিস্টেম এবং কঠোর মালিকানা মডেলের বিপরীতে।

বাংলা version →


🇩🇪 Deutsch

Valens neuer Borrow Checker erklärt

Valen führt einen neuen flexiblen Borrow Checker ein, der entwickelt wurde, um Speichersicherheitsherausforderungen zu lösen. Er kombiniert Gruppenborrowing mit Referenzzählung und generationalen Referenzen. Im Gegensatz zu Rust verwendet Valen einen einzigen Borrow-Referenztyp und merkt sich, wohin Referenzen zeigen, was komplexen Datenzugriff ermöglicht. Das System unterstützt Interoperabilität mit Rust-Code und zielt darauf ab, so einfach wie Garbage Collection zu sein, während es die Borrow-Checking-Leistung beibehält. Dieser Ansatz löst den Shared-XOR-Mutable-Konflikt, indem er Referenzen erlaubt, unter kontrollierten Bedingungen mit Veränderlichkeit zu koexistieren.

Gruppenborrowing, ursprünglich von Nick Smith vorgeschlagen, wurde nach der Aufgabe für Mojo wiederbelebt. Seitdem hat es Sprachen wie Googles Carbon, Ante, Plecra, Zeta und Fang beeinflusst. Valen integriert dieses Konzept mit Vales Ansatz und Rust-Kompatibilität. Der Compiler verfolgt Referenzursprünge, um Speichersicherheit ohne strikte Eigentumsregeln durchzusetzen. Diese Flexibilität könnte neu definieren, wie moderne Sprachen Leistung und Sicherheit ausbalancieren.

Wie unterscheidet sich Valens Borrow Checker von Rusts?

Valen verwendet einen einzigen Borrow-Referenztyp und merkt sich, wohin Referenzen zeigen, was mehr Flexibilität bietet. Er kombiniert Gruppenborrowing mit Referenzzählung und unterstützt Rust-Interop, im Gegensatz zu Rusts Dual-Referenz-System und striktem Eigentumsmodell.

Deutsch version →


🇪🇸 Español

Explicación del nuevo verificador de préstamos de Valen

Valen presenta un nuevo verificador de préstamos flexible diseñado para resolver los desafíos de seguridad de memoria. Combina préstamos grupales con conteo de referencias y referencias generacionales. A diferencia de Rust, Valen utiliza un único tipo de referencia de préstamo y recuerda a dónde apuntan las referencias, lo que permite un acceso complejo a los datos. El sistema soporta interoperabilidad con código de Rust y aspira a ser tan simple como la recolección de basura manteniendo la potencia del verificado de préstamos. Este enfoque aborda el conflicto compartido-xor-mutable al permitir que las referencias coexistan con la mutabilidad bajo condiciones controladas.

Los préstamos grupales, propuestos originalmente por Nick Smith, fueron revividos tras ser abandonados para Mojo. Desde entonces han influido en lenguajes como Carbon de Google, Ante, Plecra, Zeta y Fang. Valen integra este concepto con el enfoque de Vale y la compatibilidad con Rust. El compilador rastrea los orígenes de las referencias para garantizar la seguridad de memoria sin reglas estrictas de propiedad. Esta flexibilidad podría redefinir cómo los lenguajes modernos equilibran rendimiento y seguridad.

¿En qué se diferencia el verificador de préstamos de Valen del de Rust?

Valen usa un único tipo de referencia de préstamo y recuerda a dónde apuntan las referencias, lo que brinda más flexibilidad. Combina préstamos grupales con conteo de referencias y soporta interoperabilidad con Rust, a diferencia del sistema de referencias duales y el modelo de propiedad estricto de Rust.

Español version →


🇫🇷 Français

Le nouveau vérificateur d'emprunt de Valen expliqué

Valen présente un nouveau vérificateur d'emprunt flexible conçu pour résoudre les défis de sécurité mémoire. Il combine l'emprunt groupé avec le comptage de références et les références générationnelles. Contrairement à Rust, Valen utilise un type unique de référence d'emprunt et se souvient où pointent les références, permettant un accès complexe aux données. Le système prend en charge l'interopérabilité avec le code Rust et vise à être aussi simple que la collecte de déchets tout en conservant la puissance de la vérification d'emprunt. Cette approche résout le conflit partagé-xor-mutable en permettant aux références de coexister avec la mutabilité sous conditions contrôlées.

L'emprunt groupé, proposé à l'origine par Nick Smith, a été relancé après avoir été abandonné pour Mojo. Il a depuis influencé des langages comme Carbon de Google, Ante, Plecra, Zeta et Fang. Valen intègre ce concept avec l'approche de Vale et la compatibilité Rust. Le compilateur suit les origines des références pour garantir la sécurité mémoire sans règles de propriété strictes. Cette flexibilité pourrait redéfinir la façon dont les langages modernes équilibrent performance et sécurité.

En quoi le vérificateur d'emprunt de Valen diffère-t-il de celui de Rust ?

Valen utilise un type unique de référence d'emprunt et se souvient où pointent les références, offrant plus de flexibilité. Il combine l'emprunt groupé avec le comptage de références et prend en charge l'interopérabilité Rust, contrairement au système de références doubles et au modèle de propriété strict de Rust.

Français version →


🇮🇳 हिन्दी

वेलन का नया बॉरो चेकर समझाया गया

वेलन एक नया लचीला बॉरो चेकर पेश करता है जिसे मेमोरी सुरक्षा चुनौतियों को हल करने के लिए डिज़ाइन किया गया है। यह ग्रुप बॉरोइंग को रेफरेंस काउंटिंग और जेनरेशनल रेफरेंस के साथ जोड़ता है। रस्ट के विपरीत, वेलन एक सिंगल बॉरो रेफरेंस टाइप का उपयोग करता है और याद रखता है कि रेफरेंस कहाँ इंगित करते हैं, जिससे जटिल डेटा एक्सेस सक्षम होता है। सिस्टम रस्ट कोड के साथ इंटरऑप का समर्थन करता है और गार्बेज कलेक्शन जितना सरल होने का लक्ष्य रखता है जबकि बॉरो-चेकिंग पावर को बनाए रखता है। यह दृष्टिकोण साझा-एक्सओआर-म्यूटेबल संघर्ष को संबोधित करता है जिससे रेफरेंस नियंत्रित शर्तों के तहत म्यूटेबिलिटी के साथ सह-अस्तित्व में रह सकते हैं।

ग्रुप बॉरोइंग, जिसे मूल रूप से निक स्मिथ द्वारा प्रस्तावित किया गया था, Mojo के लिए छोड़ दिए जाने के बाद पुनर्जीवित किया गया। तब से इसने Google के कार्बन, एंटे, प्लेक्रा, ज़ेटा और फैंग जैसी भाषाओं को प्रभावित किया है। वेलन इस अवधारणा को वेल के दृष्टिकोण और रस्ट संगतता के साथ एकीकृत करता है। कंपाइलर सख्त स्वामित्व नियमों के बिना मेमोरी सुरक्षा लागू करने के लिए रेफरेंस मूल को ट्रैक करता है। यह लचीलापन आधुनिक भाषाओं के प्रदर्शन और सुरक्षा को संतुलित करने के तरीके को फिर से परिभाषित कर सकता है।

वेलन का बॉरो चेकर रस्ट से कैसे अलग है?

वेलन एक सिंगल बॉरो रेफरेंस टाइप का उपयोग करता है और याद रखता है कि रेफरेंस कहाँ इंगित करते हैं, जिससे अधिक लचीलापन मिलता है। यह ग्रुप बॉरोइंग को रेफरेंस काउंटिंग के साथ जोड़ता है और रस्ट इंटरऑप का समर्थन करता है, रस्ट के डुअल-रेफरेंस सिस्टम और सख्त स्वामित्व मॉडल के विपरीत।

हिन्दी version →


🇮🇩 Bahasa Indonesia

Penjelasan Borrow Checker Baru Valen

Valen memperkenalkan borrow checker fleksibel baru yang dirancang untuk menyelesaikan tantangan keamanan memori. Ia menggabungkan group borrowing dengan reference counting dan generational references. Berbeda dengan Rust, Valen menggunakan tipe referensi borrow tunggal dan mengingat ke mana referensi menunjuk, memungkinkan akses data yang kompleks. Sistem mendukung interop dengan kode Rust dan bertujuan se-sederhana garbage collection sambil mempertahankan kekuatan borrow-checking. Pendekatan ini mengatasi konflik shared-xor-mutable dengan mengizinkan referensi untuk coexist dengan mutability di bawah kondisi terkontrol.

Group borrowing, yang awalnya diusulkan oleh Nick Smith, dihidupkan kembali setelah ditinggalkan untuk Mojo. Sejak itu, ia telah mempengaruhi bahasa seperti Carbon Google, Ante, Plecra, Zeta, dan Fang. Valen mengintegrasikan konsep ini dengan pendekatan Vale dan kompatibilitas Rust. Compiler melacak asal referensi untuk menegakkan keamanan memori tanpa aturan kepemilikan yang ketat. Fleksibilitas ini bisa mendefinisikan ulang cara bahasa modern menyeimbangkan performa dan keamanan.

Bagaimana borrow checker Valen berbeda dari Rust?

Valen menggunakan tipe referensi borrow tunggal dan mengingat ke mana referensi menunjuk, memberikan lebih banyak fleksibilitas. Ia menggabungkan group borrowing dengan reference counting dan mendukung interop Rust, tidak seperti sistem dual-referensi dan model kepemilikan ketat Rust.

Bahasa Indonesia version →


🇯🇵 日本語

Valenの新しい借用チェッカーの解説

Valenは、メモリ安全性の課題を解決するために設計された新しい柔軟な借用チェッカーを導入します。これはグループ借用と参照カウント、世代参照を組み合わせたものです。Rustとは異なり、Valenは単一の借用参照型を使用し、参照がどこを指しているかを記憶することで、複雑なデータアクセスを可能にします。このシステムはRustコードとの相互運用をサポートし、ガベージコレクションと同じくらいシンプルであることを目指しながら、借用チェックの強力さを維持します。このアプローチは、制御された条件下で参照が可変性と共存できるようにすることで、共有-XOR-可変の競合に対処します。

グループ借用は、もともとNick Smithによって提案され、Mojoのために放棄された後に復活しました。以来、GoogleのCarbon、Ante、Plecra、Zeta、Fangなどの言語に影響を与えてきました。Valenはこの概念をValeのアプローチとRust互換性と統合します。コンパイラは参照の起源を追跡し、厳格な所有権ルールなしでメモリ安全性を強制します。この柔軟性は、現代の言語がパフォーマンスと安全性をどのようにバランスさせるかを再定義する可能性があります。

Valenの借用チェッカーはRustとどう違うのですか?

Valenは単一の借用参照型を使用し、参照がどこを指しているかを記憶するため、より柔軟性があります。グループ借用と参照カウントを組み合わせ、Rust相互運用をサポートします。これはRustのデュアル参照システムと厳格な所有権モデルとは異なります。

日本語 version →


🇧🇷 Português

Novo verificador de empréstimos da Valen explicado

A Valen apresenta um novo verificador de empréstimos flexível projetado para resolver desafios de segurança de memória. Ele combina empréstimos em grupo com contagem de referências e referências generacionais. Diferente do Rust, a Valen usa um único tipo de referência de empréstimo e lembra para onde as referências apontam, permitindo acesso complexo a dados. O sistema suporta interoperabilidade com código Rust e visa ser tão simples quanto a coleta de lixo, mantendo o poder da verificação de empréstimos. Esta abordagem aborda o conflito compartilhado-xor-mutável ao permitir que referências coexistam com mutabilidade sob condições controladas.

Empréstimos em grupo, originalmente propostos por Nick Smith, foram revividos após serem abandonados para o Mojo. Desde então, influenciaram linguagens como Carbon do Google, Ante, Plecra, Zeta e Fang. A Valen integra este conceito com a abordagem da Vale e compatibilidade com Rust. O compilador rastreia as origens das referências para impor segurança de memória sem regras estritas de propriedade. Esta flexibilidade pode redefinir como linguagens modernas equilibram desempenho e segurança.

Como o verificador de empréstimos da Valen difere do Rust?

A Valen usa um único tipo de referência de empréstimo e lembra para onde as referências apontam, permitindo mais flexibilidade. Combina empréstimos em grupo com contagem de referências e suporta interoperabilidade com Rust, diferente do sistema de referências duplas e modelo de propriedade estrito do Rust.

Português version →


🇷🇺 Русский

Объяснение нового проверки заимствований Valen

Valen представляет новый гибкий проверка заимствований, предназначенный для решения проблем безопасности памяти. Он объединяет групповые заимствования с подсчетом ссылок и поколениями ссылок. В отличие от Rust, Valen использует единственный тип ссылки заимствования и запоминает, куда указывают ссылки, что позволяет осуществлять сложный доступ к данным. Система поддерживает взаимодействие с кодом Rust и стремится быть такой же простой, как сборка мусора, сохраняя при этом мощь проверки заимствований. Этот подход решает конфликт shared-xor-mutable, позволяя ссылкам сосуществовать с изменяемостью при контролируемых условиях.

Групповые заимствования, изначально предложенные Nick Smith, были возрождены после отказа в пользу Mojo. С тех пор они повлияли на языки вроде Carbon от Google, Ante, Plecra, Zeta и Fang. Valen интегрирует эту концепцию с подходом Vale и совместимостью с Rust. Компилятор отслеживает происхождение ссылок, чтобы обеспечить безопасность памяти без строгих правил владения. Эта гибкость может переопределить то, как современные языки балансируют между производительностью и безопасностью.

Как проверка заимствований Valen отличается от Rust?

Valen использует единственный тип ссылки заимствования и запоминает, куда указывают ссылки, обеспечивая большую гибкость. Он объединяет групповые заимствования с подсчетом ссылок и поддерживает взаимодействие с Rust, в отличие от системы двойных ссылок и строгой модели владения Rust.

Русский version →


🇨🇳 简体中文

Valen的新借用检查器详解

Valen推出了一种新型灵活的借用检查器,旨在解决内存安全挑战。它将组借用与引用计数和代际引用相结合。与Rust不同,Valen使用单一借用引用类型并记录引用指向位置,从而实现复杂的数据访问。该系统支持与Rust代码互操作,旨在像垃圾回收一样简单,同时保持借用检查的强大功能。这种方法通过在受控条件下允许引用与可变性共存,解决了共享-异或-可变冲突。

组借用最初由Nick Smith提出,在被Mojo放弃后得以复兴。此后,它影响了Google的Carbon、Ante、Plecra、Zeta和Fang等语言。Valen将这一概念与Vale的方法及Rust兼容性相结合。编译器跟踪引用来源,在没有严格所有权规则的情况下强制执行内存安全。这种灵活性可能会重新定义现代语言平衡性能与安全的方式。

Valen的借用检查器与Rust有何不同?

Valen使用单一借用引用类型并记录引用指向位置,提供更大灵活性。它将组借用与引用计数相结合并支持Rust互操作,这与Rust的双引用系统和严格所有权模型不同。

简体中文 version →