Deployed 7b6eba5 to master with MkDocs 1.4.2 and mike 1.1.2
This commit is contained in:
parent
5130153b91
commit
176ac3b3ed
@ -1558,6 +1558,14 @@
|
|||||||
and this project adheres to <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
|
and this project adheres to <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p>
|
||||||
<h2 id="unreleased"><a href="https://github.com/aeternity/aesophia/compare/v7.1.0...HEAD">Unreleased</a></h2>
|
<h2 id="unreleased"><a href="https://github.com/aeternity/aesophia/compare/v7.1.0...HEAD">Unreleased</a></h2>
|
||||||
<h3 id="added">Added</h3>
|
<h3 id="added">Added</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Toplevel compile-time constants
|
||||||
|
<div class="highlight"><pre><span></span><code>namespace N =
|
||||||
|
let nc = 1
|
||||||
|
contract C =
|
||||||
|
let cc = 2
|
||||||
|
</code></pre></div></li>
|
||||||
|
</ul>
|
||||||
<h3 id="changed">Changed</h3>
|
<h3 id="changed">Changed</h3>
|
||||||
<h3 id="removed">Removed</h3>
|
<h3 id="removed">Removed</h3>
|
||||||
<h3 id="fixed">Fixed</h3>
|
<h3 id="fixed">Fixed</h3>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -2,47 +2,47 @@
|
|||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
<url>
|
<url>
|
||||||
<loc>None</loc>
|
<loc>None</loc>
|
||||||
<lastmod>2023-03-21</lastmod>
|
<lastmod>2023-04-12</lastmod>
|
||||||
<changefreq>daily</changefreq>
|
<changefreq>daily</changefreq>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
Binary file not shown.
@ -447,6 +447,13 @@
|
|||||||
Hole expression
|
Hole expression
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#constants" class="md-nav__link">
|
||||||
|
Constants
|
||||||
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
@ -855,6 +862,13 @@
|
|||||||
Hole expression
|
Hole expression
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="#constants" class="md-nav__link">
|
||||||
|
Constants
|
||||||
|
</a>
|
||||||
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
@ -1706,6 +1720,23 @@ contract C =
|
|||||||
List.sum(List.map(???, [1,2,3]))
|
List.sum(List.map(???, [1,2,3]))
|
||||||
</code></pre></div>
|
</code></pre></div>
|
||||||
<p>A hole expression found in the example above will generate the error <code>Found a hole of type `(int) => int`</code>. This says that the compiler expects a function from <code>int</code> to <code>int</code> in place of the <code>???</code> placeholder.</p>
|
<p>A hole expression found in the example above will generate the error <code>Found a hole of type `(int) => int`</code>. This says that the compiler expects a function from <code>int</code> to <code>int</code> in place of the <code>???</code> placeholder.</p>
|
||||||
|
<h2 id="constants">Constants</h2>
|
||||||
|
<p>Constants in Sophia are contract-level bindings that can be used in either contracts or namespaces. The value of a constant can be a literal, another constant, or arithmetic operations applied to other constants. Lists, tuples, maps, and records can also be used to define a constant as long as their elements are also constants.</p>
|
||||||
|
<p>The following visibility rules apply to constants:
|
||||||
|
* Constants defined inside a contract are private in that contract. Thus, cannot be accessed through instances of their defining contract.
|
||||||
|
* Constants defined inside a namespace are public. Thus, can be used in other contracts or namespaces.
|
||||||
|
* Constants cannot be defined inside a contract interface.</p>
|
||||||
|
<p>When a constant is shadowed, it can be accessed using its qualified name:</p>
|
||||||
|
<div class="highlight"><pre><span></span><code>contract C =
|
||||||
|
let c = 1
|
||||||
|
entrypoint f() =
|
||||||
|
let c = 2
|
||||||
|
c + C.c // the result is 3
|
||||||
|
</code></pre></div>
|
||||||
|
<p>The name of the constant must be an id; therefore, no pattern matching is allowed when defining a constant:</p>
|
||||||
|
<div class="highlight"><pre><span></span><code>contract C
|
||||||
|
let x::y::_ = [1,2,3] // this will result in an error
|
||||||
|
</code></pre></div>
|
||||||
<h2 id="arithmetic">Arithmetic</h2>
|
<h2 id="arithmetic">Arithmetic</h2>
|
||||||
<p>Sophia integers (<code>int</code>) are represented by arbitrary-sized signed words and support the following
|
<p>Sophia integers (<code>int</code>) are represented by arbitrary-sized signed words and support the following
|
||||||
arithmetic operations:
|
arithmetic operations:
|
||||||
|
@ -720,6 +720,7 @@ element may be indented less than the indentation of the block. For instance</p>
|
|||||||
<span class="n">Decl</span><span class="w"> </span><span class="o">::=</span><span class="w"> </span><span class="err">'</span><span class="n">type</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">TypeAlias</span>
|
<span class="n">Decl</span><span class="w"> </span><span class="o">::=</span><span class="w"> </span><span class="err">'</span><span class="n">type</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">TypeAlias</span>
|
||||||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">'</span><span class="n">record</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">RecordType</span>
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">'</span><span class="n">record</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">RecordType</span>
|
||||||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">'</span><span class="n">datatype</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">DataType</span>
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">'</span><span class="n">datatype</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">'('</span><span class="w"> </span><span class="n">TVar</span><span class="o">*</span><span class="w"> </span><span class="sc">')'</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">DataType</span>
|
||||||
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">'</span><span class="n">let</span><span class="err">'</span><span class="w"> </span><span class="n">Id</span><span class="w"> </span><span class="p">[</span><span class="sc">':'</span><span class="w"> </span><span class="n">Type</span><span class="p">]</span><span class="w"> </span><span class="sc">'='</span><span class="w"> </span><span class="n">Expr</span>
|
||||||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">EModifier</span><span class="o">*</span><span class="w"> </span><span class="err">'</span><span class="n">entrypoint</span><span class="err">'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">FModifier</span><span class="o">*</span><span class="w"> </span><span class="err">'</span><span class="n">function</span><span class="err">'</span><span class="p">)</span><span class="w"> </span><span class="n">Block</span><span class="p">(</span><span class="n">FunDecl</span><span class="p">)</span>
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">EModifier</span><span class="o">*</span><span class="w"> </span><span class="err">'</span><span class="n">entrypoint</span><span class="err">'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">FModifier</span><span class="o">*</span><span class="w"> </span><span class="err">'</span><span class="n">function</span><span class="err">'</span><span class="p">)</span><span class="w"> </span><span class="n">Block</span><span class="p">(</span><span class="n">FunDecl</span><span class="p">)</span>
|
||||||
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Using</span>
|
<span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">Using</span>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user