<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://rocket-lang.org/blog</id>
    <title>🚀🇱🅰🆖 Blog</title>
    <updated>2026-01-17T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://rocket-lang.org/blog"/>
    <subtitle>🚀🇱🅰🆖 Blog</subtitle>
    <icon>https://rocket-lang.org/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.23.0 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.23</id>
        <link href="https://rocket-lang.org/blog/release-0.23"/>
        <updated>2026-01-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.23.0]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-changes">Breaking Changes<a href="https://rocket-lang.org/blog/release-0.23#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_BuS1"><p>This release includes breaking changes to integer and string conversion methods.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="removed-base-parameters-from-to_s-and-to_i">Removed Base Parameters from <code>.to_s()</code> and <code>.to_i()</code><a href="https://rocket-lang.org/blog/release-0.23#removed-base-parameters-from-to_s-and-to_i" class="hash-link" aria-label="Direct link to removed-base-parameters-from-to_s-and-to_i" title="Direct link to removed-base-parameters-from-to_s-and-to_i" translate="no">​</a></h3>
<p>The <code>.to_s()</code> and <code>.to_i()</code> methods no longer accept optional base parameters. This functionality was broken and has been removed in favor of the new explicit <code>.base()</code> and <code>.to_base()</code> methods.</p>
<p><strong>Before (v0.22.x and earlier):</strong></p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token number">1234</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_s</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Would convert to binary string</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_s</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">8</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Would convert to octal string</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">str </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"1010"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Would parse as binary</span><br></span></code></pre></div></div>
<p><strong>Now (v0.23.0):</strong></p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Integers now carry base information internally</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"0b1010"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Integer with base 2, value 10</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_s</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">              </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "0b1010" (preserves base representation)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">              </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Use .to_base() for base conversion</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">8</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">          </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 0o12 (octal integer)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">16</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">         </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 0xa (hexadecimal integer)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">16</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_s</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "0xa" (hex string)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// String parsing automatically detects and preserves base</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">str </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"0b1010"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">int_val </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> str</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Integer with base 2, value 10</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">int_val</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">          </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 2</span><br></span></code></pre></div></div>
<p>This change makes integer conversion behavior more predictable and fixes bugs related to base handling.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-features">New Features<a href="https://rocket-lang.org/blog/release-0.23#new-features" class="hash-link" aria-label="Direct link to New Features" title="Direct link to New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="matrix-object-type">Matrix Object Type<a href="https://rocket-lang.org/blog/release-0.23#matrix-object-type" class="hash-link" aria-label="Direct link to Matrix Object Type" title="Direct link to Matrix Object Type" translate="no">​</a></h3>
<p>You can now work with matrices natively in RocketLang. This release introduces a new matrix object type with support for matrix multiplication, addressing issue <a href="https://github.com/Flipez/rocket-lang/issues/64" target="_blank" rel="noopener noreferrer" class="">#64</a>.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Create matrices from nested arrays</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">m1 </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_m</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">m2 </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">6</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">8</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_m</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Matrix multiplication</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">result </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> m1 </span><span class="token operator" style="color:rgba(253,245,22,255)">*</span><span class="token plain"> m2</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Element-wise operations</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">sum </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> m1 </span><span class="token operator" style="color:rgba(253,245,22,255)">+</span><span class="token plain"> m2</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">diff </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> m2 </span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token plain"> m1</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">result</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Output:</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// 2x2 matrix</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// ┌            ┐</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// │ 19.0  22.0 │</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// │ 43.0  50.0 │</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// └            ┘</span><br></span></code></pre></div></div>
<p>See <a class="" href="https://rocket-lang.org/docs/literals/matrix">Matrix</a> for more information about matrix operations and methods.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="variable-unpacking-on-assignment">Variable Unpacking on Assignment<a href="https://rocket-lang.org/blog/release-0.23#variable-unpacking-on-assignment" class="hash-link" aria-label="Direct link to Variable Unpacking on Assignment" title="Direct link to Variable Unpacking on Assignment" translate="no">​</a></h3>
<p>You can now unpack multiple return values directly into variables, making it easier to work with functions that return multiple values (issue <a href="https://github.com/Flipez/rocket-lang/issues/112" target="_blank" rel="noopener noreferrer" class="">#112</a>).</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Unpack multiple values at once</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> b</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> c </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token function" style="color:rgba(255,157,39,255)">some_function</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">x</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> y </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><br></span></code></pre></div></div>
<p>This feature greatly simplifies code that needs to handle multiple return values.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="optional-parentheses-for-control-expressions">Optional Parentheses for Control Expressions<a href="https://rocket-lang.org/blog/release-0.23#optional-parentheses-for-control-expressions" class="hash-link" aria-label="Direct link to Optional Parentheses for Control Expressions" title="Direct link to Optional Parentheses for Control Expressions" translate="no">​</a></h3>
<p>Control flow expressions are now more flexible. Following issue <a href="https://github.com/Flipez/rocket-lang/issues/203" target="_blank" rel="noopener noreferrer" class="">#203</a>, you can now omit parentheses around conditions in <code>if</code>, <code>while</code>, and other control structures.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Both styles are now valid</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> condition</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"No parentheses needed!"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">condition</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"Parentheses still work too!"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="integer-base-handling">Integer Base Handling<a href="https://rocket-lang.org/blog/release-0.23#integer-base-handling" class="hash-link" aria-label="Direct link to Integer Base Handling" title="Direct link to Integer Base Handling" translate="no">​</a></h3>
<p>Integers now carry their base information internally and provide new methods to work with different number bases:</p>
<ul>
<li class=""><code>.base()</code> - Returns the base of an integer (2, 8, 10, or 16)</li>
<li class=""><code>.to_base(INTEGER)</code> - Converts an integer to a different base representation</li>
</ul>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Integers now remember their base when created from strings</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">binary_num </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"0b1010"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">binary_num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">      </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Convert between bases while preserving the value</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">octal </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> binary_num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">8</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 0o12</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">hex </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> binary_num</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">to_base</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">16</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 0xa</span><br></span></code></pre></div></div>
<p>See <a class="" href="https://rocket-lang.org/docs/literals/integer">Integer</a> for more information.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://rocket-lang.org/blog/release-0.23#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="better-puts-behavior">Better <code>puts</code> Behavior<a href="https://rocket-lang.org/blog/release-0.23#better-puts-behavior" class="hash-link" aria-label="Direct link to better-puts-behavior" title="Direct link to better-puts-behavior" translate="no">​</a></h3>
<p>The <code>puts</code> function has been improved (some would say it was broken before) to behave more consistently across different scenarios (fixing issue <a href="https://github.com/Flipez/rocket-lang/issues/170" target="_blank" rel="noopener noreferrer" class="">#170</a>).</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bug-fixes">Bug Fixes<a href="https://rocket-lang.org/blog/release-0.23#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="integer-downcast-prevention">Integer Downcast Prevention<a href="https://rocket-lang.org/blog/release-0.23#integer-downcast-prevention" class="hash-link" aria-label="Direct link to Integer Downcast Prevention" title="Direct link to Integer Downcast Prevention" translate="no">​</a></h3>
<p>Fixed an issue where integers could be incorrectly downcast, potentially leading to data loss. Your numeric operations are now safer and more reliable.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="array-pop-safety">Array <code>.pop()</code> Safety<a href="https://rocket-lang.org/blog/release-0.23#array-pop-safety" class="hash-link" aria-label="Direct link to array-pop-safety" title="Direct link to array-pop-safety" translate="no">​</a></h3>
<p>Fixed a panic that occurred when calling <code>.pop()</code> on an empty array (issue <a href="https://github.com/Flipez/rocket-lang/issues/166" target="_blank" rel="noopener noreferrer" class="">#166</a>). The method now handles empty arrays gracefully.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="dependency-updates">Dependency Updates<a href="https://rocket-lang.org/blog/release-0.23#dependency-updates" class="hash-link" aria-label="Direct link to Dependency Updates" title="Direct link to Dependency Updates" translate="no">​</a></h3>
<p>All dependencies have been updated to their latest versions, ensuring better security and performance.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="documentation-updates">Documentation Updates<a href="https://rocket-lang.org/blog/release-0.23#documentation-updates" class="hash-link" aria-label="Direct link to Documentation Updates" title="Direct link to Documentation Updates" translate="no">​</a></h2>
<p>The documentation site has been updated to Docusaurus 3.9, providing a better reading experience and improved navigation.</p>
<hr>
<p>Check out the <a href="https://github.com/Flipez/rocket-lang/blob/main/CHANGELOG.md#v0230-2026-01-17" target="_blank" rel="noopener noreferrer" class="">full changelog</a> for a complete list of changes and contributors.</p>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.22.1 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.22.1</id>
        <link href="https://rocket-lang.org/blog/release-0.22.1"/>
        <updated>2025-03-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.22.1]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-features">New Features<a href="https://rocket-lang.org/blog/release-0.22.1#new-features" class="hash-link" aria-label="Direct link to New Features" title="Direct link to New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="elif-statement"><code>elif</code> Statement<a href="https://rocket-lang.org/blog/release-0.22.1#elif-statement" class="hash-link" aria-label="Direct link to elif-statement" title="Direct link to elif-statement" translate="no">​</a></h3>
<p>You can now use <code>elif</code> (also known as "else if") to create cleaner conditional logic with multiple conditions. This enhancement was contributed by <a href="https://github.com/MarkusFreitag" target="_blank" rel="noopener noreferrer" class="">MarkusFreitag</a> in PR <a href="https://github.com/Flipez/rocket-lang/pull/198" target="_blank" rel="noopener noreferrer" class="">#198</a>.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"test"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"BOOLEAN"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"is a boolean"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">elif a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"STRING"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"is a string"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">elif a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">type</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"INTEGER"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"is an integer"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">else</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"unknown type"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>
<p>You can chain as many <code>elif</code> statements as needed, making complex conditional logic more readable and maintainable than nested <code>if</code> statements.</p>
<p>See <a class="" href="https://rocket-lang.org/docs/control_expressions/if">If / elif / else</a> for more information.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="infrastructure-updates">Infrastructure Updates<a href="https://rocket-lang.org/blog/release-0.22.1#infrastructure-updates" class="hash-link" aria-label="Direct link to Infrastructure Updates" title="Direct link to Infrastructure Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="go-124">Go 1.24<a href="https://rocket-lang.org/blog/release-0.22.1#go-124" class="hash-link" aria-label="Direct link to Go 1.24" title="Direct link to Go 1.24" translate="no">​</a></h3>
<p>RocketLang now uses Go 1.24, bringing performance improvements and the latest language features to the interpreter.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="docusaurus-37-and-react-19">Docusaurus 3.7 and React 19<a href="https://rocket-lang.org/blog/release-0.22.1#docusaurus-37-and-react-19" class="hash-link" aria-label="Direct link to Docusaurus 3.7 and React 19" title="Direct link to Docusaurus 3.7 and React 19" translate="no">​</a></h3>
<p>The documentation site has been upgraded to Docusaurus 3.7 with React 19, providing a faster and more modern documentation experience.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="goreleaser-v2">GoReleaser v2<a href="https://rocket-lang.org/blog/release-0.22.1#goreleaser-v2" class="hash-link" aria-label="Direct link to GoReleaser v2" title="Direct link to GoReleaser v2" translate="no">​</a></h3>
<p>The release process has been updated to use GoReleaser v2, ensuring more reliable and efficient builds.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="security-updates">Security Updates<a href="https://rocket-lang.org/blog/release-0.22.1#security-updates" class="hash-link" aria-label="Direct link to Security Updates" title="Direct link to Security Updates" translate="no">​</a></h2>
<p>Several dependencies have been updated to address security vulnerabilities:</p>
<ul>
<li class="">express: 4.18.1 → 4.19.2</li>
<li class="">ua-parser-js: 0.7.31 → 0.7.37</li>
<li class="">@babel/traverse: 7.18.10 → 7.23.4</li>
<li class="">json5: 2.2.1 → 2.2.3</li>
</ul>
<hr>
<p>Check out the <a href="https://github.com/Flipez/rocket-lang/blob/main/CHANGELOG.md#v0221-2025-03-15" target="_blank" rel="noopener noreferrer" class="">full changelog</a> for a complete list of changes and contributors.</p>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.22.0 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.22.0</id>
        <link href="https://rocket-lang.org/blog/release-0.22.0"/>
        <updated>2023-09-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.22.0]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce RocketLang v0.22.0, featuring significant improvements to array handling, better error messages, and the introduction of the rocket-range syntax for loops.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="breaking-changes">Breaking Changes<a href="https://rocket-lang.org/blog/release-0.22.0#breaking-changes" class="hash-link" aria-label="Direct link to Breaking Changes" title="Direct link to Breaking Changes" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_BuS1"><p>This release includes breaking changes to array method names.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="array-method-renames-yeet-and-yoink--pop-and-push">Array Method Renames: <code>.yeet()</code> and <code>.yoink()</code> → <code>.pop()</code> and <code>.push()</code><a href="https://rocket-lang.org/blog/release-0.22.0#array-method-renames-yeet-and-yoink--pop-and-push" class="hash-link" aria-label="Direct link to array-method-renames-yeet-and-yoink--pop-and-push" title="Direct link to array-method-renames-yeet-and-yoink--pop-and-push" translate="no">​</a></h3>
<p>To improve code readability and align with common programming conventions, we've renamed the array manipulation methods:</p>
<ul>
<li class=""><code>.yoink()</code> is now <code>.pop()</code> - Removes and returns the last element</li>
<li class=""><code>.yeet()</code> is now <code>.push()</code> - Adds an element to the end</li>
</ul>
<p><strong>Before (v0.21.x and earlier):</strong></p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">yeet</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">      </span><span class="token comment" style="color:rgb(98, 114, 164)">// Add element</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">last </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">yoink</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token comment" style="color:rgb(98, 114, 164)">// Remove last element</span><br></span></code></pre></div></div>
<p><strong>Now (v0.22.0):</strong></p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">push</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">      </span><span class="token comment" style="color:rgb(98, 114, 164)">// Add element</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">last </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">pop</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Remove last element</span><br></span></code></pre></div></div>
<p>While the old names were fun, the new names are more intuitive for developers familiar with other programming languages.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="new-features">New Features<a href="https://rocket-lang.org/blog/release-0.22.0#new-features" class="hash-link" aria-label="Direct link to New Features" title="Direct link to New Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="array-sum-method">Array <code>.sum()</code> Method<a href="https://rocket-lang.org/blog/release-0.22.0#array-sum-method" class="hash-link" aria-label="Direct link to array-sum-method" title="Direct link to array-sum-method" translate="no">​</a></h3>
<p>Calculate the sum of numeric array elements with the new <code>.sum()</code> method:</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">numbers </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">total </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> numbers</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 15</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">mixed </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgba(79,209,217,255)">'1'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2.5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">mixed</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">sum</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns 5.5 (strings are converted)</span><br></span></code></pre></div></div>
<p>The method handles integers, floats, and numeric strings automatically.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="array-join-method">Array <code>.join()</code> Method<a href="https://rocket-lang.org/blog/release-0.22.0#array-join-method" class="hash-link" aria-label="Direct link to array-join-method" title="Direct link to array-join-method" translate="no">​</a></h3>
<p>Join array elements into a string with an optional separator:</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">words </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgba(79,209,217,255)">"Hello"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"RocketLang"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"World"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">words</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">join</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">       </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "HelloRocketLangWorld"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">words</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">join</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">" "</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">    </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "Hello RocketLang World"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">words</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">join</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">", "</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">   </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "Hello, RocketLang, World"</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">numbers </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">numbers</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">join</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"-"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns "1-2-3"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="rocket-range-syntax">Rocket-Range Syntax<a href="https://rocket-lang.org/blog/release-0.22.0#rocket-range-syntax" class="hash-link" aria-label="Direct link to Rocket-Range Syntax" title="Direct link to Rocket-Range Syntax" translate="no">​</a></h3>
<p>Introduce cleaner range syntax for <code>foreach</code> loops with the new rocket-range operator (<code>-&gt;</code>):</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token comment" style="color:rgb(98, 114, 164)">// Exclusive range (0 to 4)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Inclusive range (0 to 5)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// With stepping using the ^ operator</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token number">10</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">^</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain">  </span><span class="token comment" style="color:rgb(98, 114, 164)">// 0, 2, 4, 6, 8</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>
<p>See <a class="" href="https://rocket-lang.org/docs/control_expressions/foreach">Foreach</a> for more information.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://rocket-lang.org/blog/release-0.22.0#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="enhanced-error-messages">Enhanced Error Messages<a href="https://rocket-lang.org/blog/release-0.22.0#enhanced-error-messages" class="hash-link" aria-label="Direct link to Enhanced Error Messages" title="Direct link to Enhanced Error Messages" translate="no">​</a></h3>
<p>Error messages now include precise <code>file:line:pos</code> information, making debugging much easier. You'll see exactly where errors occur in your code with accurate line and position information.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="type-conversion-refactoring">Type Conversion Refactoring<a href="https://rocket-lang.org/blog/release-0.22.0#type-conversion-refactoring" class="hash-link" aria-label="Direct link to Type Conversion Refactoring" title="Direct link to Type Conversion Refactoring" translate="no">​</a></h3>
<p>Internal type conversion methods have been refactored for better consistency and reliability across different object types.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="bug-fixes">Bug Fixes<a href="https://rocket-lang.org/blog/release-0.22.0#bug-fixes" class="hash-link" aria-label="Direct link to Bug Fixes" title="Direct link to Bug Fixes" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="break-support-in-while-loops"><code>break</code> Support in <code>while</code> Loops<a href="https://rocket-lang.org/blog/release-0.22.0#break-support-in-while-loops" class="hash-link" aria-label="Direct link to break-support-in-while-loops" title="Direct link to break-support-in-while-loops" translate="no">​</a></h3>
<p>The <code>break</code> statement now works correctly in <code>while</code> loops, contributed by <a href="https://github.com/MarkusFreitag" target="_blank" rel="noopener noreferrer" class="">MarkusFreitag</a> in PR <a href="https://github.com/Flipez/rocket-lang/pull/168" target="_blank" rel="noopener noreferrer" class="">#168</a>.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">while</span><span class="token plain"> i </span><span class="token operator" style="color:rgba(253,245,22,255)">&lt;</span><span class="token plain"> </span><span class="token number">10</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">break</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  i </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> i </span><span class="token operator" style="color:rgba(253,245,22,255)">+</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="infrastructure-updates">Infrastructure Updates<a href="https://rocket-lang.org/blog/release-0.22.0#infrastructure-updates" class="hash-link" aria-label="Direct link to Infrastructure Updates" title="Direct link to Infrastructure Updates" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="go-121">Go 1.21<a href="https://rocket-lang.org/blog/release-0.22.0#go-121" class="hash-link" aria-label="Direct link to Go 1.21" title="Direct link to Go 1.21" translate="no">​</a></h3>
<p>RocketLang now uses Go 1.21, bringing performance improvements and the latest language features.</p>
<hr>
<p>Check out the <a href="https://github.com/Flipez/rocket-lang/blob/main/CHANGELOG.md#v0220-2023-09-30" target="_blank" rel="noopener noreferrer" class="">full changelog</a> for a complete list of changes and contributors.</p>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.18 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.18</id>
        <link href="https://rocket-lang.org/blog/release-0.18"/>
        <updated>2022-07-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.18]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://rocket-lang.org/blog/release-0.18#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-json-literal">Add JSON Literal<a href="https://rocket-lang.org/blog/release-0.18#add-json-literal" class="hash-link" aria-label="Direct link to Add JSON Literal" title="Direct link to Add JSON Literal" translate="no">​</a></h3>
<p>It is now possible to parse a string via the <code>JSON</code> literal and creating an RocketLang object (array or hash) from it.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token known-class-name class-name">JSON</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">parse</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">'{"test": 123}'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string-property property">"test"</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token plain"> </span><span class="token number">123.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token known-class-name class-name">JSON</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">parse</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">'["test", 123]'</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgba(79,209,217,255)">"test"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">123.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><br></span></code></pre></div></div>
<p>See <a class="" href="https://rocket-lang.org/docs/builtins/json">JSON</a> for more information.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-single-quotes-">Support for Single Quotes (<code>'</code>)<a href="https://rocket-lang.org/blog/release-0.18#support-for-single-quotes-" class="hash-link" aria-label="Direct link to support-for-single-quotes-" title="Direct link to support-for-single-quotes-" translate="no">​</a></h3>
<p>You can now use single-quotes to create a string additionally to the already existing double-quotes. This allows more flexibility in creating rich content like json.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token string" style="color:rgba(79,209,217,255)">'test "string" with doublequotes'</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="escape-double-quotes-in-double-quoted-string">Escape double-quotes in double-quoted string<a href="https://rocket-lang.org/blog/release-0.18#escape-double-quotes-in-double-quoted-string" class="hash-link" aria-label="Direct link to Escape double-quotes in double-quoted string" title="Direct link to Escape double-quotes in double-quoted string" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-caution admonition_xJq3 alert alert--warning"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>caution</div><div class="admonitionContent_BuS1"><p>This feature is in an early beta stage and does not support other escape sequences</p></div></div>
<p>Inside a string created with double-quotes <code>"</code> you can escape a single double-quote to create strings more flexible.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token string" style="color:rgba(79,209,217,255)">"te\"st"</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">'te"st'</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="removed">Removed<a href="https://rocket-lang.org/blog/release-0.18#removed" class="hash-link" aria-label="Direct link to Removed" title="Direct link to Removed" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="next-and-break-argument">next and break argument<a href="https://rocket-lang.org/blog/release-0.18#next-and-break-argument" class="hash-link" aria-label="Direct link to next and break argument" title="Direct link to next and break argument" translate="no">​</a></h3>
<p>This version removes the ability in break and next to submit an argument as it did not work reliable and intuitive.</p>
<p>In order to update your program to this version you need to make the following adjustments:</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token function" style="color:rgba(255,157,39,255)">next</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">break</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>
<p>needs to change to:</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:rgba(255,90,121,255)"><span class="token plain">    next</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line theme-code-block-highlighted-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">break</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span></code></pre></div></div>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.17 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.17</id>
        <link href="https://rocket-lang.org/blog/release-0.17"/>
        <updated>2022-07-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.17]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://rocket-lang.org/blog/release-0.17#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="introduce-nil-object">Introduce NIL Object<a href="https://rocket-lang.org/blog/release-0.17#introduce-nil-object" class="hash-link" aria-label="Direct link to Introduce NIL Object" title="Direct link to Introduce NIL Object" translate="no">​</a></h3>
<p>Up to this version some functions were returning <code>NULL</code>.
Now a proper <code>NIL</code> object has been added which replaces all existing <code>NULL</code>s
and is now also createable like every other object by the user.</p>
<p>See <a class="" href="https://rocket-lang.org/docs/literals/nil">NIL</a> for more information.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="removed">Removed<a href="https://rocket-lang.org/blog/release-0.17#removed" class="hash-link" aria-label="Direct link to Removed" title="Direct link to Removed" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="null-has-been-replaced-by-nil">NULL has been replaced by NIL<a href="https://rocket-lang.org/blog/release-0.17#null-has-been-replaced-by-nil" class="hash-link" aria-label="Direct link to NULL has been replaced by NIL" title="Direct link to NULL has been replaced by NIL" translate="no">​</a></h3>
<p>As stated above, <code>NIL</code> is replacing <code>NULL</code>.</p>]]></content>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[RocketLang v0.16 is released]]></title>
        <id>https://rocket-lang.org/blog/release-0.16</id>
        <link href="https://rocket-lang.org/blog/release-0.16"/>
        <updated>2022-07-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[RocketLang Release v0.16]]></summary>
        <content type="html"><![CDATA[<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="features">Features<a href="https://rocket-lang.org/blog/release-0.16#features" class="hash-link" aria-label="Direct link to Features" title="Direct link to Features" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="http-builtin-added">HTTP builtin added<a href="https://rocket-lang.org/blog/release-0.16#http-builtin-added" class="hash-link" aria-label="Direct link to HTTP builtin added" title="Direct link to HTTP builtin added" translate="no">​</a></h3>
<p>The <code>HTTP</code> builtin has been added which allows to create a builtin webserver
and handle incoming requests.</p>
<p>See <a class="" href="https://rocket-lang.org/docs/builtins/http">HTTP</a> for more information.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-ability-to-marshal-objects-to-json-strings">Add Ability to marshal Objects to JSON Strings<a href="https://rocket-lang.org/blog/release-0.16#add-ability-to-marshal-objects-to-json-strings" class="hash-link" aria-label="Direct link to Add Ability to marshal Objects to JSON Strings" title="Direct link to Add Ability to marshal Objects to JSON Strings" translate="no">​</a></h3>
<p>You can now use <code>.to_json()</code> to various objects in order to convert them to
their JSON respresentation.</p>
<p>See <a class="" href="https://rocket-lang.org/docs/builtins/json">JSON</a> for more information.</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-next-and-break">Support for Next and Break<a href="https://rocket-lang.org/blog/release-0.16#support-for-next-and-break" class="hash-link" aria-label="Direct link to Support for Next and Break" title="Direct link to Support for Next and Break" translate="no">​</a></h3>
<p>Within a loop you can now use <code>break</code> and <code>next</code> for complex control flows.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token function" style="color:rgba(255,157,39,255)">next</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"next"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">if</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i </span><span class="token operator" style="color:rgba(253,245,22,255)">==</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">    </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">break</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token string" style="color:rgba(79,209,217,255)">"break"</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// Returns</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">3</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">4</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token string" style="color:rgba(79,209,217,255)">"break"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="allow-string-multiplication">Allow String Multiplication<a href="https://rocket-lang.org/blog/release-0.16#allow-string-multiplication" class="hash-link" aria-label="Direct link to Allow String Multiplication" title="Direct link to Allow String Multiplication" translate="no">​</a></h3>
<p>Support for repeating a string by a given number using the <code>*</code> operator has been added.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"test"</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">*</span><span class="token plain"> </span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token string" style="color:rgba(79,209,217,255)">"testtest"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="allow-integer-iteration">Allow Integer Iteration<a href="https://rocket-lang.org/blog/release-0.16#allow-integer-iteration" class="hash-link" aria-label="Direct link to Allow Integer Iteration" title="Direct link to Allow Integer Iteration" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Contribution by <a href="https://github.com/RaphaelPour" target="_blank" rel="noopener noreferrer" class="">RaphaelPour</a></p></div></div>
<p>An Integer can now be iterated.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> foreach i </span><span class="token keyword" style="color:rgba(253,245,22,255);font-style:italic">in</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"> </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">3</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">4</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token number">5</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-modulo-operator">Support for Modulo Operator<a href="https://rocket-lang.org/blog/release-0.16#support-for-modulo-operator" class="hash-link" aria-label="Direct link to Support for Modulo Operator" title="Direct link to Support for Modulo Operator" translate="no">​</a></h3>
<p>Modulo has been added as valid operator.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token number">5</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">%</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token number">1</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="support-for-ternery-operator">Support for Ternery Operator<a href="https://rocket-lang.org/blog/release-0.16#support-for-ternery-operator" class="hash-link" aria-label="Direct link to Support for Ternery Operator" title="Direct link to Support for Ternery Operator" translate="no">​</a></h3>
<p>It is now possible to use the <code>?</code> operator.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token number">4</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token number">3</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">?</span><span class="token plain"> </span><span class="token function-variable function" style="color:rgba(255,157,39,255)">true</span><span class="token plain"> </span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token plain"> </span><span class="token parameter boolean" style="color:rgb(189, 147, 249)">false</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token boolean" style="color:rgb(189, 147, 249)">true</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="while-loop">While Loop<a href="https://rocket-lang.org/blog/release-0.16#while-loop" class="hash-link" aria-label="Direct link to While Loop" title="Direct link to While Loop" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Contribution by <a href="https://github.com/MarkusFreitag" target="_blank" rel="noopener noreferrer" class="">MarkusFreitag</a></p></div></div>
<p>Support for <code>while</code> has been added.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> </span><span class="token keyword control-flow" style="color:rgba(253,245,22,255);font-style:italic">while</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a </span><span class="token operator" style="color:rgba(253,245,22,255)">!=</span><span class="token plain"> </span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  </span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">  a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> a </span><span class="token operator" style="color:rgba(253,245,22,255)">+</span><span class="token plain"> </span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">end</span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// which prints</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">1</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">2</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token number">3</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> nil</span><br></span></code></pre></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="improvements">Improvements<a href="https://rocket-lang.org/blog/release-0.16#improvements" class="hash-link" aria-label="Direct link to Improvements" title="Direct link to Improvements" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="add-shorthand-to-convert-float-to-integer">Add Shorthand to convert Float to Integer<a href="https://rocket-lang.org/blog/release-0.16#add-shorthand-to-convert-float-to-integer" class="hash-link" aria-label="Direct link to Add Shorthand to convert Float to Integer" title="Direct link to Add Shorthand to convert Float to Integer" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Contribution by <a href="https://github.com/RaphaelPour" target="_blank" rel="noopener noreferrer" class="">RaphaelPour</a></p></div></div>
<p>The <code>.plz_i()</code> method has been added to the Float object.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token number">123.456</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token number">123.456</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">🚀 </span><span class="token operator" style="color:rgba(253,245,22,255)">&gt;</span><span class="token plain"> a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">.</span><span class="token method function property-access" style="color:rgba(255,157,39,255)">plz_i</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token arrow operator" style="color:rgba(253,245,22,255)">=&gt;</span><span class="token plain"> </span><span class="token number">123</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="fix-object-index-and-add-support-for-index-range">Fix Object Index and add support for Index Range<a href="https://rocket-lang.org/blog/release-0.16#fix-object-index-and-add-support-for-index-range" class="hash-link" aria-label="Direct link to Fix Object Index and add support for Index Range" title="Direct link to Fix Object Index and add support for Index Range" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_BuS1"><p>Contribution by <a href="https://github.com/MarkusFreitag" target="_blank" rel="noopener noreferrer" class="">MarkusFreitag</a></p></div></div>
<p>The index operator <code>[]</code> has been fixed for many objects and now supports also ranges.</p>
<div class="language-js codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:rgba(255,90,121,255);--prism-background-color:rgba(48,56,70,255)"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-js codeBlock_bY9V thin-scrollbar" style="color:rgba(255,90,121,255);background-color:rgba(48,56,70,255)"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain">a </span><span class="token operator" style="color:rgba(253,245,22,255)">=</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token number">2</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token function" style="color:rgba(255,157,39,255)">puts</span><span class="token punctuation" style="color:rgb(248, 248, 242)">(</span><span class="token plain">a</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token operator" style="color:rgba(253,245,22,255)">:</span><span class="token operator" style="color:rgba(253,245,22,255)">-</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token comment" style="color:rgb(98, 114, 164)">// should output</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">4</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:rgba(255,90,121,255)"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token number">1</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">2</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">8</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">9</span><span class="token punctuation" style="color:rgb(248, 248, 242)">,</span><span class="token plain"> </span><span class="token number">5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><br></span></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="return-written-bytes-on-filewrite">Return written bytes on FILE.write<a href="https://rocket-lang.org/blog/release-0.16#return-written-bytes-on-filewrite" class="hash-link" aria-label="Direct link to Return written bytes on FILE.write" title="Direct link to Return written bytes on FILE.write" translate="no">​</a></h3>
<p>If you write to a file it now returns the written bytes instead of <code>true</code>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="removed">Removed<a href="https://rocket-lang.org/blog/release-0.16#removed" class="hash-link" aria-label="Direct link to Removed" title="Direct link to Removed" translate="no">​</a></h2>]]></content>
        <category label="release" term="release"/>
    </entry>
</feed>