Project Verona
- 2 min read
- 1 chapter
Explore on Lably
ToursExplore Lably’s 3D toursThe project is being supported by C# project manager Mads Torgensen and Microsoft Research Cambridge research software engineer Juliana Franco. Project Verona is also being aided by academics at Imperial College London. Unlike in Rust where the ownership model is based on a single object, it is based on groups of objects in Verona.
According to Microsoft, the goal of the project is to create a safer platform for memory management.
Project Verona is open source released under MIT License and is under active development on GitHub.
Example
<span id="mwLQ"></span><span class="hll" id="mwLg"><span class="n" id="mwLw">while_sum</span><span class="p" id="mwMA">(</span><span class="n" id="mwMQ">x</span>: <span class="nc" id="mwMg">List</span><span class="p" id="mwMw">[</span><span class="n" id="mwNA">U32</span><span class="p" id="mwNQ">])</span><span class="w" id="mwNg"> </span>: <span class="nc" id="mwNw">U32</span> </span><span class="p" id="mwOA">{</span> <span class="w" id="mwOQ"> </span><span class="n" id="mwOg">var</span><span class="w" id="mwOw"> </span><span class="n" id="mwPA">sum</span>: <span class="nc" id="mwPQ">U32</span><span class="w" id="mwPg"> </span><span class="o" id="mwPw">=</span><span class="w" id="mwQA"> </span><span class="mi" id="mwQQ">0</span><span class="p" id="mwQg">;</span> <span class="w" id="mwQw"> </span><span class="kd" id="mwRA">let</span><span class="w" id="mwRQ"> </span><span class="n" id="mwRg">iter</span><span class="w" id="mwRw"> </span><span class="o" id="mwSA">=</span><span class="w" id="mwSQ"> </span><span class="n" id="mwSg">x</span><span class="p" id="mwSw">.</span><span class="n" id="mwTA">values</span><span class="p" id="mwTQ">();</span> <span class="w" id="mwTg"> </span><span class="k" id="mwTw">while</span><span class="w" id="mwUA"> </span><span class="p" id="mwUQ">{</span><span class="w" id="mwUg"> </span><span class="n" id="mwUw">iter</span><span class="p" id="mwVA">.</span><span class="n" id="mwVQ">has_value</span><span class="p" id="mwVg">()</span><span class="w" id="mwVw"> </span><span class="p" id="mwWA">}</span> <span class="w" id="mwWQ"> </span><span class="p" id="mwWg">{</span> <span class="w" id="mwWw"> </span><span class="c1" id="mwXA">// This has to be `a`, same as in the for loop above</span> <span class="w" id="mwXQ"> </span><span class="kd" id="mwXg">let</span><span class="w" id="mwXw"> </span><span class="n" id="mwYA">a</span><span class="w" id="mwYQ"> </span><span class="o" id="mwYg">=</span><span class="w" id="mwYw"> </span><span class="n" id="mwZA">iter</span><span class="p" id="mwZQ">();</span> <span class="w" id="mwZg"> </span><span class="c1" id="mwZw">// Increments the iterator</span> <span class="w" id="mwaA"> </span><span class="n" id="mwaQ">next</span><span class="w" id="mwag"> </span><span class="n" id="mwaw">iter</span><span class="p" id="mwbA">;</span> <span class="w" id="mwbQ"> </span><span class="c1" id="mwbg">// This is the body of the for loop</span> <span class="w" id="mwbw"> </span><span class="n" id="mwcA">sum</span><span class="w" id="mwcQ"> </span><span class="o" id="mwcg">=</span><span class="w" id="mwcw"> </span><span class="n" id="mwdA">sum</span><span class="w" id="mwdQ"> </span><span class="o" id="mwdg">+</span><span class="w" id="mwdw"> </span><span class="n" id="mweA">a</span> <span class="w" id="mweQ"> </span><span class="p" id="mweg">}</span> <span class="w" id="mwew"> </span><span class="n" id="mwfA">sum</span> <span class="p" id="mwfQ">}</span>
