<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Memory-Safety on TrustLang</title>
		<link>https://trust-lang.net/en/tags/memory-safety/</link>
		<description>Recent content in Memory-Safety on TrustLang</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Wed, 09 Sep 2026 15:37:53 +0300</lastBuildDate>
		
			<atom:link href="https://trust-lang.net/en/tags/memory-safety/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Memory management and shared access</title>
				<link>https://trust-lang.net/en/docs/safety/memory/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/docs/safety/memory/</guid>
				<description>&lt;p&gt;No single memory management approach is the best or universal: different approaches win under different conditions:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Manual memory management can do anything, except one thing — guarantee the absence of errors.&lt;/li&gt;&#xA;&lt;li&gt;Ownership and borrowing analysis at compile time makes it possible to prove the correctness of code without additional&#xA;runtime checks, but some scenarios and algorithms cannot be proven statically at compile time.&lt;/li&gt;&#xA;&lt;li&gt;Counting strong and weak references at runtime is convenient for shared ownership, but has a non-zero&#xA;cost and does not protect against cyclic and cross dependencies.&lt;/li&gt;&#xA;&lt;li&gt;Garbage collection simplifies working with complex cyclic structures, but has the most expensive overhead&#xA;and non-deterministic execution.&lt;/li&gt;&#xA;&lt;li&gt;None of the listed memory management approaches includes the issues of inter-thread&#xA;memory access synchronization.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Therefore, choosing only one memory management approach in a programming language means deliberately limiting its capabilities and adding unnecessary overhead. For these reasons, the memory management concept of &lt;em&gt;TrustLang&lt;/em&gt; allows extending the implementation of the memory management model with minimal impact on the language syntax and is defined by the requirements (guarantees) for working with memory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Software safety</title>
				<link>https://trust-lang.net/en/blog/safety/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/safety/</guid>
				<description></description>
			</item>
			<item>
				<title>The Achilles&#39; heel of C&#43;&#43; and the future r̶e̶ evolution</title>
				<link>https://trust-lang.net/en/blog/comparison/cpp-evolution/</link>
				<pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/comparison/cpp-evolution/</guid>
				<description>&lt;p&gt;Recently I published an opinion about a fundamental economic model of software development that does not contribute (and objectively should not contribute) to a mass transition from C/C++ to &amp;ldquo;safe&amp;rdquo; programming languages &lt;a href=&#34;https://trust-lang.net/en/blog/comparison/code-safety-economy/&#34;&gt;The economics of code safety, or why Rust is not needed&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;But to remain honest with the readers, I decided to also publish a counter-argument article describing the other side of the coin, that is, why C++ will still be replaced sooner or later, and at the same time to try to analyze what the new programming language that will inevitably replace C++ will look like.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The economics of code safety, or why Rust is not needed</title>
				<link>https://trust-lang.net/en/blog/comparison/code-safety-economy/</link>
				<pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/comparison/code-safety-economy/</guid>
				<description>&lt;p&gt;I read the article Parallelism with shared state in Rust and noticed that its general meaning can be expressed by the well-known phrase: &amp;ldquo;do what must be done, and what must not be done — do not do&amp;rdquo;. In other words, it is exactly the same advice that can be given to a developer of any other programming language, for example C++.&lt;/p&gt;&#xA;&lt;p&gt;And I decided not to continue the discussion in the comments, but to express my opinion as a short article describing a fundamental economic model of software development that does not contribute (and objectively should not contribute) to a mass transition from C/C++ to &amp;ldquo;safe&amp;rdquo; alternatives. Because, due to the peculiarities of cost distribution, the software developer has no economic motivation for the complete elimination of errors, and as a consequence — for the transition to the use of &amp;ldquo;safe&amp;rdquo; programming languages.&lt;/p&gt;</description>
			</item>
			<item>
				<title>C&#43;&#43; safety and Buridan&#39;s mice in IT</title>
				<link>https://trust-lang.net/en/blog/comparison/cpp-safety/</link>
				<pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/comparison/cpp-safety/</guid>
				<description>&lt;p&gt;In IT there is a strange form of &amp;ldquo;informational inertia&amp;rdquo;: when a phrase once landed well on reality, became a quote, turned into a marker of &amp;ldquo;one of us&amp;rdquo; — and then continued to live on its own. Reality moved on, practices changed, tools became different, the economics of development flipped over, but the cliché of the formulation remained. And it is repeated especially willingly by those who need to write quickly and convincingly, but have no time (or competence) to sort out the technical details.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Getting rid of Segmentation fault errors due to stack overflow in C&#43;&#43;</title>
				<link>https://trust-lang.net/en/blog/safety/stack-overflow/</link>
				<pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/safety/stack-overflow/</guid>
				<description>&lt;p&gt;January 7 at 14:53 2026&lt;/p&gt;&#xA;&lt;p&gt;Developing the idea of a &lt;a href=&#34;https://trust-lang.net/en/blog/safety/language-guarantees/&#34;&gt;trusted programming language&lt;/a&gt;, I came to the conclusion that, through restrictions of the syntax and the creation of corresponding checks in the static code analyzer, it is possible to protect against practically all technical errors except two — the control of dynamically allocated memory and stack overflow.&lt;/p&gt;&#xA;&lt;p&gt;Moreover, while solutions exist for reference counting at runtime, stack overflow control cannot be done not only during the analysis of the source text of the program, but it is practically impossible even during the execution of the application! After all, a stack overflow error is always fatal, since there is no way to catch and handle this error from inside the running program in order to then continue its execution as if nothing had happened.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A possible solution to the problem of references in programming languages</title>
				<link>https://trust-lang.net/en/blog/language-design/reference-solution/</link>
				<pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>
				<guid>https://trust-lang.net/en/blog/language-design/reference-solution/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://trust-lang.net/en/blog/language-design/reference-solution.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Any programmer is familiar with the notion of a &amp;ldquo;reference&amp;rdquo;. This term usually means a small object whose main task is to provide access to another object physically located elsewhere. Because of this, references are convenient to use, they are easily copied, and with their help it is very easy to gain access to the object that the reference refers to, and one can gain access to the same data from different places in the program.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
