Merge ../Nim into devel
This commit is contained in:
commit
c1e6783466
14 changed files with 196 additions and 214 deletions
|
|
@ -85,7 +85,7 @@ Advanced options:
|
||||||
that --dynlibOverride:lua matches
|
that --dynlibOverride:lua matches
|
||||||
dynlib: "liblua.so.3"
|
dynlib: "liblua.so.3"
|
||||||
--listCmd list the commands used to execute external programs
|
--listCmd list the commands used to execute external programs
|
||||||
--parallelBuild=0|1|... perform a parallel build
|
--parallelBuild:0|1|... perform a parallel build
|
||||||
value = number of processors (0 for auto-detect)
|
value = number of processors (0 for auto-detect)
|
||||||
--verbosity:0|1|2|3 set Nim's verbosity level (1 is default)
|
--verbosity:0|1|2|3 set Nim's verbosity level (1 is default)
|
||||||
--cs:none|partial set case sensitivity level (default: none);
|
--cs:none|partial set case sensitivity level (default: none);
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>$c.projectTitle</title>
|
<title>$c.projectTitle</title>
|
||||||
<link rel="stylesheet" type="text/css" href="assets/style.css" />
|
<link rel="stylesheet" type="text/css" href="assets/style.css" />
|
||||||
|
|
||||||
<link rel="shortcut icon" href="assets/images/favicon.ico">
|
<link rel="shortcut icon" href="assets/images/favicon.ico">
|
||||||
#if len(rss) > 0:
|
#if len(rss) > 0:
|
||||||
<link href="$rss" title="Recent changes" type="application/atom+xml" rel="alternate">
|
<link href="$rss" title="Recent changes" type="application/atom+xml" rel="alternate">
|
||||||
|
|
@ -17,23 +16,23 @@
|
||||||
<header id="head">
|
<header id="head">
|
||||||
<div class="page-layout tall">
|
<div class="page-layout tall">
|
||||||
<div id="head-logo"></div>
|
<div id="head-logo"></div>
|
||||||
<a id="head-logo-link" href="http://nim-lang.org/index.html"></a>
|
<a id="head-logo-link" href="index.html"></a>
|
||||||
<nav id="head-links">
|
<nav id="head-links">
|
||||||
#for i in 0.. c.tabs.len-1:
|
#for i in 0.. c.tabs.len-1:
|
||||||
# var name = c.tabs[i].key
|
# let t = c.tabs[i].val
|
||||||
# var t = c.tabs[i].val
|
# if t != "index" and t != "community" and t != "news":
|
||||||
#if currentTab == t:
|
# let name = c.tabs[i].key
|
||||||
|
# if currentTab == t:
|
||||||
<a class="active"
|
<a class="active"
|
||||||
#elif t == "community" or t == "news":
|
# else:
|
||||||
# continue
|
|
||||||
#else:
|
|
||||||
<a
|
<a
|
||||||
#end if
|
# end if
|
||||||
#if t.contains('.'):
|
# if t.contains('.'):
|
||||||
href="${t}" title = "$c.projectName - $name">$name</a>
|
href="${t}" title = "$c.projectName - $name">$name</a>
|
||||||
#else:
|
# else:
|
||||||
href="${t}.html" title = "$c.projectName - $name">$name</a>
|
href="${t}.html" title = "$c.projectName - $name">$name</a>
|
||||||
#end if
|
# end if
|
||||||
|
# end if
|
||||||
#end for
|
#end for
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -50,10 +49,25 @@
|
||||||
# if currentTab == "index":
|
# if currentTab == "index":
|
||||||
<div id="slideshow">
|
<div id="slideshow">
|
||||||
<!-- slides -->
|
<!-- slides -->
|
||||||
<div id="slide0" class="">
|
<div id="slide0" class="active">
|
||||||
|
<h2><a name="why-should-i-be-excited">Why should I be excited?</a></h2>
|
||||||
|
<span class="desc">Nim is the only language that leverages automated proof technology to perform a <i>disjoint check</i> for your parallel code. Working on disjoint data means no locking is required and yet data races are impossible:</span><br><br>
|
||||||
|
<pre>
|
||||||
|
<span class="kwd">parallel</span>:
|
||||||
|
<span class="tab"> </span><span class="kwd">var</span> i = <span class="val">0</span>
|
||||||
|
<span class="tab"> </span><span class="kwd">while</span> i <= a.high:
|
||||||
|
<span class="tab"> <span class="tab"> </span></span></span><span class="kwd">spawn</span> f(a[i])
|
||||||
|
<span class="tab"> <span class="tab"> </span></span></span><span class="kwd">spawn</span> f(a[i+<span class="val">1</span>])
|
||||||
|
<span class="tab"> <span class="tab"> </span></span></span><span class="cmt"># ERROR: cannot prove a[i] is disjoint from a[i+1]</span>
|
||||||
|
<span class="tab"> <span class="tab"> </span></span></span><span class="cmt"># BUT: replace 'i += 1' with 'i += 2' and the code compiles!</span>
|
||||||
|
<span class="tab end"> <span class="tab end"> </span></span>i += <span class="val">1</span>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
<div id="slide1">
|
||||||
<div>
|
<div>
|
||||||
<h2>Nim looks like this..</h2>
|
<h2>Nim looks like this..</h2>
|
||||||
<pre><span class="cmt"># compute average line length</span>
|
<pre>
|
||||||
|
<span class="cmt"># compute average line length</span>
|
||||||
<span class="kwd">var</span>
|
<span class="kwd">var</span>
|
||||||
<span class="tab"> </span>sum = <span class="val">0</span>
|
<span class="tab"> </span>sum = <span class="val">0</span>
|
||||||
<span class="tab end"> </span>count = <span class="val">0</span>
|
<span class="tab end"> </span>count = <span class="val">0</span>
|
||||||
|
|
@ -68,8 +82,9 @@ echo(<span class="val">"Average line length: "</span>,
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h2>..and this...</h2>
|
<h2>..and this...</h2>
|
||||||
<pre><span class="cmt"># create and greet someone</span>
|
<pre>
|
||||||
<span class="kwd">type</span> <span class="def">Person</span> = <span class="typ">object</span>
|
<span class="cmt"># create and greet someone</span>
|
||||||
|
<span class="kwd">type</span> <span class="def">Person</span> = <span class="kwd">object</span>
|
||||||
<span class="tab"> </span>name: <span class="typ">string</span>
|
<span class="tab"> </span>name: <span class="typ">string</span>
|
||||||
<span class="tab end"> </span>age: <span class="typ">int</span>
|
<span class="tab end"> </span>age: <span class="typ">int</span>
|
||||||
|
|
||||||
|
|
@ -81,58 +96,43 @@ echo(<span class="val">"Average line length: "</span>,
|
||||||
p.greet() <span class="cmt"># or greet(p)</span>
|
p.greet() <span class="cmt"># or greet(p)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- slide0 -->
|
|
||||||
<div id="slide1" class="active">
|
|
||||||
<h2><a name="why-should-i-be-excited">Why should I be excited?</a></h2>
|
|
||||||
<span class="desc">
|
|
||||||
Nim is the only language that leverages automated proof technology
|
|
||||||
to perform a <i>disjoint check</i> for your parallel
|
|
||||||
code. Working on disjoint data means no locking is
|
|
||||||
required and yet data races are impossible:</span>
|
|
||||||
<pre>
|
|
||||||
<span class="kwd">parallel</span>:
|
|
||||||
<span class="tab"> </span><span class="kwd">var</span> i = <span class="val">0</span>
|
|
||||||
<span class="tab"> </span><span class="kwd">while</span> i <= a.high:
|
|
||||||
<span class="tab"> </span>spawn f(a[i])
|
|
||||||
<span class="tab"> </span>spawn f(a[i+<span class="val">1</span>])
|
|
||||||
<span class="tab"> </span><span class="cmt"># ERROR: cannot prove a[i] is disjoint from a[i+1]</span>
|
|
||||||
<span class="tab"> </span><span class="cmt"># BUT: replace 'i += 1' with 'i += 2' and the code compiles!</span>
|
|
||||||
<span class="tab end"> </span>i += <span class="val">1</span>
|
|
||||||
</pre>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="slide2" class="">
|
<div id="slide2" class="">
|
||||||
<div>
|
<div>
|
||||||
<h2>interfacing with C..</h2>
|
<h2>C FFI is easy in Nim..</h2>
|
||||||
<pre>
|
|
||||||
<span class="kwd">proc</span> <span class="def">unsafeScanf</span>(f: <span class="typ">File</span>; s: <span class="typ">cstring</span>)
|
|
||||||
<span class="tab"> </span>{.importc: <span class="val">"fscanf"</span>,
|
|
||||||
<span class="tab end"> </span>header: <span class="val">"<stdio.h>"</span>, varargs.}
|
|
||||||
|
|
||||||
<span class="kwd">var</span> x: cint
|
|
||||||
unsafeScanf(stdin, <span class="val">"%d"</span>, <span class="kwd">addr</span> x)
|
|
||||||
</pre></div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>..and DSLs made easy</h2>
|
|
||||||
<pre>
|
<pre>
|
||||||
|
<span class="cmt"># declare a C procedure..</span>
|
||||||
|
<span class="kwd">proc</span> <span class="def">unsafeScanf</span>(f: <span class="typ">File</span>, s: <span class="typ">cstring</span>)
|
||||||
|
<span class="tab"> </span>{.varargs,
|
||||||
|
<span class="tab"> </span>importc: <span class="val">"fscanf"</span>,
|
||||||
|
<span class="tab end"> </span>header: <span class="val">"<stdio.h>"</span>.}
|
||||||
|
|
||||||
|
<span class="cmt"># ..and use it...</span>
|
||||||
|
<span class="kwd">var</span> x: cint
|
||||||
|
stdin.unsafeScanf(<span class="val">"%d"</span>, <span class="kwd">addr</span> x)
|
||||||
|
</pre>
|
||||||
|
<p><span class="desc"><b>Compile and run with:</b><br> $ nim c -r example.nim</span></p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>..and DSLs are too...</h2>
|
||||||
|
<pre>
|
||||||
|
<span class="cmt"># a simple web server</span>
|
||||||
<span class="kwd">import</span> jester, asyncdispatch, htmlgen
|
<span class="kwd">import</span> jester, asyncdispatch, htmlgen
|
||||||
|
|
||||||
routes:
|
<span class="cmt"># using jester commands</span>
|
||||||
<span class="tab"> </span>get <span class="val">"/"</span>:
|
<span class="kwd">routes</span>:
|
||||||
<span class="tab end"> </span>resp h1(<span class="val">"Hello world"</span>)
|
<span class="tab"> </span><span class="kwd">get</span> <span class="val">"/"</span>:
|
||||||
|
<span class="tab end"> <span class="tab end"> </span></span><span class="kwd">resp</span> h1(<span class="val">"Hello world"</span>)
|
||||||
|
|
||||||
runForever()
|
runForever()
|
||||||
</pre><p><span class="desc">
|
</pre>
|
||||||
Compile and run with:<br />
|
<p><span class="desc"><b>View in browser at:</b><br> localhost:5000</span></p>
|
||||||
nim c -r example.nim<br />
|
|
||||||
View at: localhost:5000
|
|
||||||
</span></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="slideshow-nav">
|
<div id="slideshow-nav">
|
||||||
<div id="slideControl0" onclick="slideshow_click(0)"></div>
|
<div id="slideControl0" onclick="slideshow_click(0)" class="active"></div>
|
||||||
<div id="slideControl1" onclick="slideshow_click(1)" class="active"></div>
|
<div id="slideControl1" onclick="slideshow_click(1)"></div>
|
||||||
<div id="slideControl2" onclick="slideshow_click(2)"></div>
|
<div id="slideControl2" onclick="slideshow_click(2)"></div>
|
||||||
</div>
|
</div>
|
||||||
# end
|
# end
|
||||||
|
|
@ -191,8 +191,11 @@ View at: localhost:5000
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script>
|
# if currentTab == "index":
|
||||||
|
<script src="assets/index.js"></script>
|
||||||
|
# end if
|
||||||
# if c.gaId != nil:
|
# if c.gaId != nil:
|
||||||
|
<script>
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
|
@ -200,42 +203,7 @@ View at: localhost:5000
|
||||||
|
|
||||||
ga('create', '${c.gaId}', 'nim-lang.org');
|
ga('create', '${c.gaId}', 'nim-lang.org');
|
||||||
ga('send', 'pageview');
|
ga('send', 'pageview');
|
||||||
# end if
|
|
||||||
|
|
||||||
var timer;
|
|
||||||
var prevIndex = 0;
|
|
||||||
|
|
||||||
function setSlideShow(index, short) {
|
|
||||||
if (index > 2) index = 0;
|
|
||||||
for (var i = 0; i < 10; ++i) {
|
|
||||||
var x = document.getElementById("slide"+i);
|
|
||||||
if (!x) break;
|
|
||||||
x.className = "";
|
|
||||||
document.getElementById("slideControl"+i).className = "";
|
|
||||||
}
|
|
||||||
document.getElementById("slide"+index).className = "active";
|
|
||||||
document.getElementById("slideControl"+index).className = "active";
|
|
||||||
prevIndex = index;
|
|
||||||
startTimer(short ? 8000 : 32000);
|
|
||||||
}
|
|
||||||
|
|
||||||
function nextSlide() { setSlideShow(prevIndex + 1, true); }
|
|
||||||
function startTimer(t) { timer = setTimeout(nextSlide, t); }
|
|
||||||
|
|
||||||
function slideshow_enter() { clearTimeout(timer); }
|
|
||||||
function slideshow_exit () { startTimer(16000); }
|
|
||||||
|
|
||||||
function slideshow_click(index) {
|
|
||||||
clearTimeout(timer);
|
|
||||||
setSlideShow(index, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.onload = function() {
|
|
||||||
var slideshow = document.getElementById("slideshow");
|
|
||||||
slideshow.onmouseenter = slideshow_enter;
|
|
||||||
slideshow.onmouseleave = slideshow_exit;
|
|
||||||
startTimer(8000);
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
# end if
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
BIN
web/assets/images/docs-articles.png
Normal file
BIN
web/assets/images/docs-articles.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 381 B |
BIN
web/assets/images/docs-examples.png
Normal file
BIN
web/assets/images/docs-examples.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 596 B |
BIN
web/assets/images/docs-internals.png
Normal file
BIN
web/assets/images/docs-internals.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 621 B |
BIN
web/assets/images/docs-libraries.png
Normal file
BIN
web/assets/images/docs-libraries.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 335 B |
BIN
web/assets/images/docs-tools.png
Normal file
BIN
web/assets/images/docs-tools.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 636 B |
BIN
web/assets/images/docs-tutorials.png
Normal file
BIN
web/assets/images/docs-tutorials.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 560 B |
34
web/assets/index.js
Normal file
34
web/assets/index.js
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var timer;
|
||||||
|
var prevIndex = 0;
|
||||||
|
var slideCount = 2;
|
||||||
|
|
||||||
|
function setSlideShow(index, short) {
|
||||||
|
if (index >= slideCount) index = 0;
|
||||||
|
document.getElementById("slide"+prevIndex).className = "";
|
||||||
|
document.getElementById("slide"+index).className = "active";
|
||||||
|
document.getElementById("slideControl"+prevIndex).className = "";
|
||||||
|
document.getElementById("slideControl"+index).className = "active";
|
||||||
|
prevIndex = index;
|
||||||
|
startTimer(short ? 8000 : 32000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function nextSlide() { setSlideShow(prevIndex + 1, true); }
|
||||||
|
function startTimer(t) { timer = setTimeout(nextSlide, t); }
|
||||||
|
|
||||||
|
function slideshow_enter() { clearTimeout(timer); }
|
||||||
|
function slideshow_exit () { startTimer(16000); }
|
||||||
|
|
||||||
|
function slideshow_click(index) {
|
||||||
|
clearTimeout(timer);
|
||||||
|
setSlideShow(index, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
var slideshow = document.getElementById("slideshow");
|
||||||
|
slideshow.onmouseenter = slideshow_enter;
|
||||||
|
slideshow.onmouseleave = slideshow_exit;
|
||||||
|
slideCount = slideshow.children.length;
|
||||||
|
startTimer(8000);
|
||||||
|
};
|
||||||
|
|
@ -8,10 +8,18 @@ body {
|
||||||
min-width:1030px;
|
min-width:1030px;
|
||||||
margin:0;
|
margin:0;
|
||||||
font:13pt "arial";
|
font:13pt "arial";
|
||||||
background:#152534 url("images/bg.jpg") no-repeat fixed center top;
|
background:#152534 url("images/bg.jpg") no-repeat center top;
|
||||||
color:rgba(0,0,0,.8); }
|
color:rgba(0,0,0,.8); }
|
||||||
|
|
||||||
pre { color:#fff;}
|
pre {
|
||||||
|
color:#fff;
|
||||||
|
margin:0;
|
||||||
|
padding:15px 10px;
|
||||||
|
font:10pt monospace;
|
||||||
|
line-height:14pt;
|
||||||
|
background:rgba(0,0,0,.4);
|
||||||
|
border-left:8px solid rgba(0,0,0,.3);
|
||||||
|
box-shadow:1px 2px 16px rgba(28,180,236,.4); }
|
||||||
pre, pre * { cursor:text; }
|
pre, pre * { cursor:text; }
|
||||||
pre .cmt { color:rgb(255,229,106); }
|
pre .cmt { color:rgb(255,229,106); }
|
||||||
pre .kwd { color:#43A8CF; font-weight:bold; }
|
pre .kwd { color:#43A8CF; font-weight:bold; }
|
||||||
|
|
@ -23,8 +31,14 @@ pre .val { color:#8AB647; }
|
||||||
pre .tab { border-left:1px dotted rgba(67,168,207,0.4); }
|
pre .tab { border-left:1px dotted rgba(67,168,207,0.4); }
|
||||||
pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
|
|
||||||
|
.page pre { background:rgba(0,0,0,.8); }
|
||||||
|
.page pre > .Comment { color:rgb(255,229,106); }
|
||||||
|
.page pre > .Keyword { color:#43A8CF; font-weight:bold; }
|
||||||
|
.page pre > .StringLit,
|
||||||
|
.page pre > .DecNumber { color:#8AB647; }
|
||||||
|
|
||||||
.tall { height:100%; }
|
.tall { height:100%; }
|
||||||
.pre { padding:0 5px; font:11pt monospace; background:rgba(255,255,255,.15); border-radius:3px; }
|
.pre { padding:1px 5px; font:11pt monospace; background:#96A9B7; border-radius:3px; }
|
||||||
|
|
||||||
.page-layout { margin:0 auto; width:1000px; }
|
.page-layout { margin:0 auto; width:1000px; }
|
||||||
.docs-layout { margin:0 40px; }
|
.docs-layout { margin:0 40px; }
|
||||||
|
|
@ -90,7 +104,7 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
right:-16px;
|
right:-16px;
|
||||||
height:48px;
|
height:48px;
|
||||||
background:url("images/glow-arrow.png") no-repeat right; }
|
background:url("images/glow-arrow.png") no-repeat right; }
|
||||||
glow-arrow.docs { left:280px; }
|
#glow-arrow.docs { left:280px; }
|
||||||
|
|
||||||
#glow-line-vert {
|
#glow-line-vert {
|
||||||
position:fixed;
|
position:fixed;
|
||||||
|
|
@ -102,7 +116,13 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
|
|
||||||
#slideshow { position:absolute; top:10px; left:10px; width:700px; height: 1000px; }
|
#slideshow { position:absolute; top:10px; left:10px; width:700px; height: 1000px; }
|
||||||
#slideshow > div {
|
#slideshow > div {
|
||||||
visibility:hidden; opacity:0; position:absolute; transition:visibility 0s linear 1s, opacity 1s ease-in-out; }
|
position:absolute;
|
||||||
|
margin:30px 0 0 10px;
|
||||||
|
visibility:hidden;
|
||||||
|
opacity:0;
|
||||||
|
transition:
|
||||||
|
visibility 0s linear 1s,
|
||||||
|
opacity 1s ease-in-out; }
|
||||||
#slideshow > div.active { visibility:visible; opacity:1; transition-delay:0s; }
|
#slideshow > div.active { visibility:visible; opacity:1; transition-delay:0s; }
|
||||||
#slideshow > div.init { transition-delay:0s; }
|
#slideshow > div.init { transition-delay:0s; }
|
||||||
#slideshow-nav { z-index:3; position:absolute; top:110px;; right:-12px; }
|
#slideshow-nav { z-index:3; position:absolute; top:110px;; right:-12px; }
|
||||||
|
|
@ -110,46 +130,20 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
#slideshow-nav > div:hover { background-image:url("images/slideshow-nav_active.png"); opacity:0.5; }
|
#slideshow-nav > div:hover { background-image:url("images/slideshow-nav_active.png"); opacity:0.5; }
|
||||||
#slideshow-nav > div.active { background-image:url("images/slideshow-nav_active.png"); opacity:1; }
|
#slideshow-nav > div.active { background-image:url("images/slideshow-nav_active.png"); opacity:1; }
|
||||||
|
|
||||||
#slide0 { margin:30px 0 0 10px; }
|
#slide0 { float:left; width:680px; font:10pt monospace; }
|
||||||
#slide0 > div { float:left; width:320px; font:10pt monospace; }
|
|
||||||
#slide0 > div:first-child { margin:0 40px 0 0; }
|
#slide0 > div:first-child { margin:0 40px 0 0; }
|
||||||
#slide0 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
#slide0 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
||||||
#slide0 > div > pre {
|
#slide0 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78); font:13pt "arial"; }
|
||||||
margin:0;
|
|
||||||
padding:15px 10px;
|
|
||||||
line-height:14pt;
|
|
||||||
background:rgba(0,0,0,.4);
|
|
||||||
border-left:8px solid rgba(0,0,0,.3);
|
|
||||||
box-shadow:1px 2px 16px rgba(28,180,236,.4); }
|
|
||||||
|
|
||||||
#slide1 { margin:30px 0 0 10px; }
|
#slide1 > div { float:left; width:320px; font:10pt monospace; }
|
||||||
#slide1 { float:left; width:680px; font:10pt monospace; }
|
|
||||||
#slide1 > div:first-child { margin:0 40px 0 0; }
|
#slide1 > div:first-child { margin:0 40px 0 0; }
|
||||||
#slide1 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
#slide1 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
||||||
#slide1 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78);
|
|
||||||
font:13pt "arial"; }
|
|
||||||
#slide1 pre {
|
|
||||||
padding:7px 10px;
|
|
||||||
line-height:14pt;
|
|
||||||
background:rgba(0,0,0,.4);
|
|
||||||
border-left:8px solid rgba(0,0,0,.3);
|
|
||||||
box-shadow:1px 2px 16px rgba(28,180,236,.4); }
|
|
||||||
|
|
||||||
|
|
||||||
#slide2 { margin:30px 0 0 10px; }
|
|
||||||
#slide2 > div { float:left; width:320px; font:10pt monospace; }
|
#slide2 > div { float:left; width:320px; font:10pt monospace; }
|
||||||
#slide2 > div:first-child { margin:0 40px 0 0; }
|
#slide2 > div:first-child { margin:0 40px 0 0; }
|
||||||
#slide2 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
#slide2 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
|
||||||
#slide2 > div > pre {
|
|
||||||
margin:0;
|
|
||||||
padding:15px 10px;
|
|
||||||
line-height:14pt;
|
|
||||||
background:rgba(0,0,0,.4);
|
|
||||||
border-left:8px solid rgba(0,0,0,.3);
|
|
||||||
box-shadow:1px 2px 16px rgba(28,180,236,.4); }
|
|
||||||
|
|
||||||
#slide2 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78);
|
#slide2 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78); font:13pt "arial"; }
|
||||||
font:13pt "arial"; }
|
|
||||||
|
|
||||||
/* back when slide1 was the quote:
|
/* back when slide1 was the quote:
|
||||||
#slide1 { margin-top:50px; }
|
#slide1 { margin-top:50px; }
|
||||||
|
|
@ -524,14 +518,15 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
.standout h2 { margin-bottom:10px; padding-bottom:10px; border-bottom:1px dashed rgba(0,0,0,.8); }
|
.standout h2 { margin-bottom:10px; padding-bottom:10px; border-bottom:1px dashed rgba(0,0,0,.8); }
|
||||||
.standout li { margin:0 !important; padding-top:10px; border-top:1px dashed rgba(0,0,0,.2); }
|
.standout li { margin:0 !important; padding-top:10px; border-top:1px dashed rgba(0,0,0,.2); }
|
||||||
.standout ul { padding-bottom:5px; }
|
.standout ul { padding-bottom:5px; }
|
||||||
.standout ul.tools { list-style:url("images/docs-tools.png"); }
|
.standout .tools ul { list-style:url("images/docs-tools.png"); }
|
||||||
.standout ul.library { list-style:url("images/docs-library.png"); }
|
.standout .libraries ul { list-style:url("images/docs-libraries.png"); }
|
||||||
.standout ul.internal { list-style:url("images/docs-internal.png"); }
|
.standout .internals ul { list-style:url("images/docs-internals.png"); }
|
||||||
.standout ul.tutorial { list-style:url("images/docs-tutorial.png"); }
|
.standout .tutorials ul { list-style:url("images/docs-tutorials.png"); }
|
||||||
.standout ul.example { list-style:url("images/docs-example.png"); }
|
.standout .examples ul { list-style:url("images/docs-examples.png"); }
|
||||||
|
.standout .articles ul { list-style:url("images/docs-articles.png"); }
|
||||||
.standout li:first-child { padding-top:0; border-top:none; }
|
.standout li:first-child { padding-top:0; border-top:none; }
|
||||||
.standout li p { margin:0 0 10px 0 !important; line-height:130%; }
|
.standout li p { margin:0 0 10px 0 !important; line-height:130%; }
|
||||||
.standout li > a { font-weight:bold; }
|
.standout li p > a { font-weight:bold; }
|
||||||
|
|
||||||
.forum-user-info,
|
.forum-user-info,
|
||||||
.forum-user-info * { cursor:help }
|
.forum-user-info * { cursor:help }
|
||||||
|
|
@ -552,47 +547,12 @@ pre .end { background:url("images/tabEnd.png") no-repeat left bottom; }
|
||||||
#foot-legal a { color:inherit; text-decoration:none; }
|
#foot-legal a { color:inherit; text-decoration:none; }
|
||||||
#foot-legal > h4 > a { color:inherit; }
|
#foot-legal > h4 > a { color:inherit; }
|
||||||
|
|
||||||
#mascot {
|
|
||||||
z-index:2;
|
|
||||||
position:absolute;
|
|
||||||
top:-340px;
|
|
||||||
right:25px;
|
|
||||||
width:202px;
|
|
||||||
height:319px;
|
|
||||||
background:url("images/mascot.png") no-repeat; }
|
|
||||||
|
|
||||||
|
|
||||||
#body pre {
|
|
||||||
padding:20px;
|
|
||||||
border-left:10px solid #8f9698;
|
|
||||||
background:#f3f6f8;
|
|
||||||
font-size:15px;
|
|
||||||
font-family:courier, monospace;
|
|
||||||
letter-spacing:0;
|
|
||||||
line-height:17px;
|
|
||||||
color: #343739;
|
|
||||||
}
|
|
||||||
|
|
||||||
#body span.pre {
|
|
||||||
background-color: #96A9B7;
|
|
||||||
padding: 1pt 3pt;
|
|
||||||
border-radius: 2pt;
|
|
||||||
-moz-border-radius: 2pt;
|
|
||||||
-webkit-border-radius: 2pt;
|
|
||||||
}
|
|
||||||
|
|
||||||
#body pre > .Comment { color:#858686; font-style:italic; }
|
|
||||||
#body pre > .Keyword { color:#1cb4ec; font-weight:bold; }
|
|
||||||
#body pre > .Operator { color:#777; }
|
|
||||||
#body pre > .StringLit, #page pre > .DecNumber { color:#ff7302; }
|
|
||||||
|
|
||||||
#body .docutils th {
|
#body .docutils th {
|
||||||
border-bottom: 2px solid #1A1A1A;
|
border-bottom: 2px solid #1A1A1A;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
padding: 8px;
|
padding: 8px; }
|
||||||
}
|
|
||||||
#body table.docutils {
|
#body table.docutils {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
border-spacing: 0px;
|
border-spacing: 0px; }
|
||||||
}
|
|
||||||
|
|
@ -6,6 +6,7 @@ Nim's Documentation
|
||||||
Standards & Guides
|
Standards & Guides
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
.. container:: libraries
|
||||||
|
|
||||||
- | `Standard Library <lib.html>`_
|
- | `Standard Library <lib.html>`_
|
||||||
| This document describes Nim's standard library.
|
| This document describes Nim's standard library.
|
||||||
|
|
@ -13,7 +14,7 @@ Nim's Documentation
|
||||||
- | `Language Manual <manual.html>`_
|
- | `Language Manual <manual.html>`_
|
||||||
| The Nim manual is a draft that will evolve into a proper specification.
|
| The Nim manual is a draft that will evolve into a proper specification.
|
||||||
|
|
||||||
- | `Compiler user guide <nimc.html>`_
|
- | `Compiler User Guide <nimc.html>`_
|
||||||
| The user guide lists command line arguments, special features of the
|
| The user guide lists command line arguments, special features of the
|
||||||
compiler, etc.
|
compiler, etc.
|
||||||
|
|
||||||
|
|
@ -23,11 +24,13 @@ Nim's Documentation
|
||||||
Tools & Features
|
Tools & Features
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
- | `Source code filters <filters.html>`_
|
.. container:: tools
|
||||||
|
|
||||||
|
- | `Source Code Filters <filters.html>`_
|
||||||
| The Nim compiler supports source code filters as a simple yet powerful
|
| The Nim compiler supports source code filters as a simple yet powerful
|
||||||
builtin templating system.
|
builtin templating system.
|
||||||
|
|
||||||
- | `Tools documentation <tools.html>`_
|
- | `Tools Documentation <tools.html>`_
|
||||||
| Description of some tools that come with the standard distribution.
|
| Description of some tools that come with the standard distribution.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -36,11 +39,13 @@ Nim's Documentation
|
||||||
Internal Details
|
Internal Details
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
|
.. container:: internals
|
||||||
|
|
||||||
- | `Garbage Collector <gc.html>`_
|
- | `Garbage Collector <gc.html>`_
|
||||||
| Additional documentation about Nim's GC and how to operate it in a
|
| Additional documentation about Nim's GC and how to operate it in a
|
||||||
| realtime setting.
|
realtime setting.
|
||||||
|
|
||||||
- | `Internal documentation <intern.html>`_
|
- | `Internal Documentation <intern.html>`_
|
||||||
| The internal documentation describes how the compiler is implemented. Read
|
| The internal documentation describes how the compiler is implemented. Read
|
||||||
this if you want to hack the compiler.
|
this if you want to hack the compiler.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ Learning Nim
|
||||||
Tutorials
|
Tutorials
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
.. container:: tutorials
|
||||||
|
|
||||||
- | `Tutorial (part I) <tut1.html>`_
|
- | `Tutorial (part I) <tut1.html>`_
|
||||||
| Learn the basics of Nim's types, variables, procedures, control flow, etc...
|
| Learn the basics of Nim's types, variables, procedures, control flow, etc...
|
||||||
|
|
||||||
|
|
@ -18,6 +20,8 @@ Learning Nim
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
.. container:: examples
|
||||||
|
|
||||||
- | `Nim by Example <http://nim-by-example.github.io/>`_
|
- | `Nim by Example <http://nim-by-example.github.io/>`_
|
||||||
| Nim by Example is an excellent starting place for beginners.
|
| Nim by Example is an excellent starting place for beginners.
|
||||||
|
|
||||||
|
|
@ -33,8 +37,16 @@ Learning Nim
|
||||||
Articles
|
Articles
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
.. container:: articles
|
||||||
|
|
||||||
|
- `How I Start: Nim <http://howistart.org/posts/nim/1>`_
|
||||||
|
- `Getting Started With Nim <https://akehrer.github.io/nim/2015/01/05/getting-started-with-nim.html>`_
|
||||||
|
- `Getting Started With Nim - Part 2 <https://akehrer.github.io/nim/2015/01/14/getting-started-with-nim-pt2.html>`_
|
||||||
|
- `What is special about Nim? <http://hookrace.net/blog/what-is-special-about-nim>`_
|
||||||
|
- `What makes Nim practical? <http://hookrace.net/blog/what-makes-nim-practical>`_
|
||||||
|
- `Learn Nim in minutes <http://learnxinyminutes.com/docs/nim>`_
|
||||||
- `Dr Dobbs Nimrod Publication <http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321>`_
|
- `Dr Dobbs Nimrod Publication <http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321>`_
|
||||||
- `Bootstrapping Nim <http://goran.krampe.se/2014/10/15/bootstrapping-nim/>`_
|
- `Nim articles by Göran Krampe <http://goran.krampe.se/category/nim>`_
|
||||||
|
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
|
|
|
||||||
2
web/support.txt
Normal file
2
web/support.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
Coming Soon!
|
||||||
|
============
|
||||||
|
|
@ -15,9 +15,10 @@ Github_Repo: "http://github.com/Araq/Nim;link_github"
|
||||||
[Tabs]
|
[Tabs]
|
||||||
# Menu entry: filename
|
# Menu entry: filename
|
||||||
home: index
|
home: index
|
||||||
docs: documentation
|
|
||||||
learn: learn
|
learn: learn
|
||||||
|
docs: documentation
|
||||||
download: download
|
download: download
|
||||||
|
support: support
|
||||||
forum: "http://forum.nim-lang.org"
|
forum: "http://forum.nim-lang.org"
|
||||||
faq: question
|
faq: question
|
||||||
# these two are not in the list of "tabs", but do exist:
|
# these two are not in the list of "tabs", but do exist:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue