diff --git a/web/assets/bountysource/bountysource.png b/web/assets/bountysource/bountysource.png
deleted file mode 100644
index d92d75df063b3..0000000000000
Binary files a/web/assets/bountysource/bountysource.png and /dev/null differ
diff --git a/web/assets/bountysource/meet_sponsors.png b/web/assets/bountysource/meet_sponsors.png
deleted file mode 100644
index 67d7a1042d63b..0000000000000
Binary files a/web/assets/bountysource/meet_sponsors.png and /dev/null differ
diff --git a/web/assets/bountysource/meet_sponsors.xcf b/web/assets/bountysource/meet_sponsors.xcf
deleted file mode 100644
index e36560491bd32..0000000000000
Binary files a/web/assets/bountysource/meet_sponsors.xcf and /dev/null differ
diff --git a/web/assets/bountysource/secondspectrum.png b/web/assets/bountysource/secondspectrum.png
deleted file mode 100644
index 4dab35c6f74bc..0000000000000
Binary files a/web/assets/bountysource/secondspectrum.png and /dev/null differ
diff --git a/web/assets/bountysource/xored.png b/web/assets/bountysource/xored.png
deleted file mode 100644
index 7a07cdd31380a..0000000000000
Binary files a/web/assets/bountysource/xored.png and /dev/null differ
diff --git a/web/assets/bountysource/xored.svg b/web/assets/bountysource/xored.svg
deleted file mode 100644
index 17a4acde659d7..0000000000000
--- a/web/assets/bountysource/xored.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/web/assets/images/bg.png b/web/assets/images/bg.png
deleted file mode 100644
index 91f335913d7c0..0000000000000
Binary files a/web/assets/images/bg.png and /dev/null differ
diff --git a/web/assets/images/docs-articles.png b/web/assets/images/docs-articles.png
deleted file mode 100644
index 7f800ea33ea7e..0000000000000
Binary files a/web/assets/images/docs-articles.png and /dev/null differ
diff --git a/web/assets/images/docs-examples.png b/web/assets/images/docs-examples.png
deleted file mode 100644
index e6d27e0348708..0000000000000
Binary files a/web/assets/images/docs-examples.png and /dev/null differ
diff --git a/web/assets/images/docs-internals.png b/web/assets/images/docs-internals.png
deleted file mode 100644
index e03a952d59a9f..0000000000000
Binary files a/web/assets/images/docs-internals.png and /dev/null differ
diff --git a/web/assets/images/docs-libraries.png b/web/assets/images/docs-libraries.png
deleted file mode 100644
index b14952f7dbc2c..0000000000000
Binary files a/web/assets/images/docs-libraries.png and /dev/null differ
diff --git a/web/assets/images/docs-tools.png b/web/assets/images/docs-tools.png
deleted file mode 100644
index d83f0faaaa627..0000000000000
Binary files a/web/assets/images/docs-tools.png and /dev/null differ
diff --git a/web/assets/images/docs-tutorials.png b/web/assets/images/docs-tutorials.png
deleted file mode 100644
index 926a4b58b1536..0000000000000
Binary files a/web/assets/images/docs-tutorials.png and /dev/null differ
diff --git a/web/assets/images/favicon.ico b/web/assets/images/favicon.ico
deleted file mode 100644
index aed71adb4eb2b..0000000000000
Binary files a/web/assets/images/favicon.ico and /dev/null differ
diff --git a/web/assets/images/foot.png b/web/assets/images/foot.png
deleted file mode 100644
index dc2561cf35c79..0000000000000
Binary files a/web/assets/images/foot.png and /dev/null differ
diff --git a/web/assets/images/glow-arrow.png b/web/assets/images/glow-arrow.png
deleted file mode 100644
index 436d32f038c88..0000000000000
Binary files a/web/assets/images/glow-arrow.png and /dev/null differ
diff --git a/web/assets/images/glow-line.png b/web/assets/images/glow-line.png
deleted file mode 100644
index 6607bdee90e9b..0000000000000
Binary files a/web/assets/images/glow-line.png and /dev/null differ
diff --git a/web/assets/images/head-link.png b/web/assets/images/head-link.png
deleted file mode 100644
index d97cba5b81c36..0000000000000
Binary files a/web/assets/images/head-link.png and /dev/null differ
diff --git a/web/assets/images/head-link_hover.png b/web/assets/images/head-link_hover.png
deleted file mode 100644
index 27edf3b05db44..0000000000000
Binary files a/web/assets/images/head-link_hover.png and /dev/null differ
diff --git a/web/assets/images/head.png b/web/assets/images/head.png
deleted file mode 100644
index 009f86728e96f..0000000000000
Binary files a/web/assets/images/head.png and /dev/null differ
diff --git a/web/assets/images/link_aporia.png b/web/assets/images/link_aporia.png
deleted file mode 100644
index 145e5ddf22b4e..0000000000000
Binary files a/web/assets/images/link_aporia.png and /dev/null differ
diff --git a/web/assets/images/link_forum.png b/web/assets/images/link_forum.png
deleted file mode 100644
index 2973b42bc1476..0000000000000
Binary files a/web/assets/images/link_forum.png and /dev/null differ
diff --git a/web/assets/images/link_nimbuild.png b/web/assets/images/link_nimbuild.png
deleted file mode 100644
index 4b3f943fe73ba..0000000000000
Binary files a/web/assets/images/link_nimbuild.png and /dev/null differ
diff --git a/web/assets/images/logo.png b/web/assets/images/logo.png
deleted file mode 100644
index 85d3d2e516921..0000000000000
Binary files a/web/assets/images/logo.png and /dev/null differ
diff --git a/web/assets/images/mascot.png b/web/assets/images/mascot.png
deleted file mode 100644
index 9beb62c017afc..0000000000000
Binary files a/web/assets/images/mascot.png and /dev/null differ
diff --git a/web/assets/images/more-links_editors.png b/web/assets/images/more-links_editors.png
deleted file mode 100644
index f5970ff1f6b4e..0000000000000
Binary files a/web/assets/images/more-links_editors.png and /dev/null differ
diff --git a/web/assets/images/more-links_forum.png b/web/assets/images/more-links_forum.png
deleted file mode 100644
index f332777772528..0000000000000
Binary files a/web/assets/images/more-links_forum.png and /dev/null differ
diff --git a/web/assets/images/more-links_github.png b/web/assets/images/more-links_github.png
deleted file mode 100644
index 4a6a844f421c5..0000000000000
Binary files a/web/assets/images/more-links_github.png and /dev/null differ
diff --git a/web/assets/images/more-links_nimbuild.png b/web/assets/images/more-links_nimbuild.png
deleted file mode 100644
index 473fbe4cdd612..0000000000000
Binary files a/web/assets/images/more-links_nimbuild.png and /dev/null differ
diff --git a/web/assets/images/nim-logo.svg b/web/assets/images/nim-logo.svg
deleted file mode 100644
index feae6c3d7ea81..0000000000000
--- a/web/assets/images/nim-logo.svg
+++ /dev/null
@@ -1,500 +0,0 @@
-
-
-
-
diff --git a/web/assets/images/quote.png b/web/assets/images/quote.png
deleted file mode 100644
index e9426158c380e..0000000000000
Binary files a/web/assets/images/quote.png and /dev/null differ
diff --git a/web/assets/images/quotes.png b/web/assets/images/quotes.png
deleted file mode 100644
index 0d75b4cc209b6..0000000000000
Binary files a/web/assets/images/quotes.png and /dev/null differ
diff --git a/web/assets/images/sidebar.png b/web/assets/images/sidebar.png
deleted file mode 100644
index 142db93cf81d9..0000000000000
Binary files a/web/assets/images/sidebar.png and /dev/null differ
diff --git a/web/assets/images/sidebar_h2.png b/web/assets/images/sidebar_h2.png
deleted file mode 100644
index d1409b57f9b2a..0000000000000
Binary files a/web/assets/images/sidebar_h2.png and /dev/null differ
diff --git a/web/assets/images/sidebar_head.png b/web/assets/images/sidebar_head.png
deleted file mode 100644
index 05885d9f37026..0000000000000
Binary files a/web/assets/images/sidebar_head.png and /dev/null differ
diff --git a/web/assets/images/site_foot.png b/web/assets/images/site_foot.png
deleted file mode 100644
index a2efa0460d495..0000000000000
Binary files a/web/assets/images/site_foot.png and /dev/null differ
diff --git a/web/assets/images/site_neck.png b/web/assets/images/site_neck.png
deleted file mode 100644
index d4f42c6b7a56d..0000000000000
Binary files a/web/assets/images/site_neck.png and /dev/null differ
diff --git a/web/assets/images/slideshow-nav.png b/web/assets/images/slideshow-nav.png
deleted file mode 100644
index fbfff3e5dff79..0000000000000
Binary files a/web/assets/images/slideshow-nav.png and /dev/null differ
diff --git a/web/assets/images/slideshow-nav_active.png b/web/assets/images/slideshow-nav_active.png
deleted file mode 100644
index 525caf3558c3e..0000000000000
Binary files a/web/assets/images/slideshow-nav_active.png and /dev/null differ
diff --git a/web/assets/images/tabEnd.png b/web/assets/images/tabEnd.png
deleted file mode 100644
index a94af90f1e20e..0000000000000
Binary files a/web/assets/images/tabEnd.png and /dev/null differ
diff --git a/web/assets/index.js b/web/assets/index.js
deleted file mode 100644
index 4c8b90f95db41..0000000000000
--- a/web/assets/index.js
+++ /dev/null
@@ -1,44 +0,0 @@
-"use strict";
-
-var timer;
-var prevIndex = 0;
-var slideCount = 4;
-
-function modifyActive(el, add) {
- var element = document.getElementById(el);
- if (add) {
- element.className = element.className + " active";
- }
- else {
- element.className = element.className.replace("active", "");
- }
-}
-
-function setSlideShow(index, short) {
- if (index >= slideCount) index = 0;
- modifyActive("slide" + prevIndex, false);
- modifyActive("slide" + index, true);
- modifyActive("slideControl" + prevIndex, false);
- modifyActive("slideControl" + index, true);
- 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);
-};
diff --git a/web/assets/news/images/0.15.0/doc_search.gif b/web/assets/news/images/0.15.0/doc_search.gif
deleted file mode 100644
index ac757b404b522..0000000000000
Binary files a/web/assets/news/images/0.15.0/doc_search.gif and /dev/null differ
diff --git a/web/assets/news/images/0.15.0/doc_sort.gif b/web/assets/news/images/0.15.0/doc_sort.gif
deleted file mode 100644
index edd253c4a28bf..0000000000000
Binary files a/web/assets/news/images/0.15.0/doc_sort.gif and /dev/null differ
diff --git a/web/assets/news/images/0.16.0/nimble.png b/web/assets/news/images/0.16.0/nimble.png
deleted file mode 100644
index 8faa3f04fad87..0000000000000
Binary files a/web/assets/news/images/0.16.0/nimble.png and /dev/null differ
diff --git a/web/assets/news/images/survey/10_needs.png b/web/assets/news/images/survey/10_needs.png
deleted file mode 100644
index 67d5685523466..0000000000000
Binary files a/web/assets/news/images/survey/10_needs.png and /dev/null differ
diff --git a/web/assets/news/images/survey/book.png b/web/assets/news/images/survey/book.png
deleted file mode 100644
index 5bb418e635f81..0000000000000
Binary files a/web/assets/news/images/survey/book.png and /dev/null differ
diff --git a/web/assets/news/images/survey/book_opinion.png b/web/assets/news/images/survey/book_opinion.png
deleted file mode 100644
index 4e56ab26efd09..0000000000000
Binary files a/web/assets/news/images/survey/book_opinion.png and /dev/null differ
diff --git a/web/assets/news/images/survey/breakage.png b/web/assets/news/images/survey/breakage.png
deleted file mode 100644
index 5eb4c5289a0d9..0000000000000
Binary files a/web/assets/news/images/survey/breakage.png and /dev/null differ
diff --git a/web/assets/news/images/survey/dev_os.png b/web/assets/news/images/survey/dev_os.png
deleted file mode 100644
index 088918dc30f6f..0000000000000
Binary files a/web/assets/news/images/survey/dev_os.png and /dev/null differ
diff --git a/web/assets/news/images/survey/difficulty_fixing_breakage.png b/web/assets/news/images/survey/difficulty_fixing_breakage.png
deleted file mode 100644
index 022aa00ed8bf1..0000000000000
Binary files a/web/assets/news/images/survey/difficulty_fixing_breakage.png and /dev/null differ
diff --git a/web/assets/news/images/survey/do_you_use_nim.png b/web/assets/news/images/survey/do_you_use_nim.png
deleted file mode 100644
index 257148325c33d..0000000000000
Binary files a/web/assets/news/images/survey/do_you_use_nim.png and /dev/null differ
diff --git a/web/assets/news/images/survey/domains.png b/web/assets/news/images/survey/domains.png
deleted file mode 100644
index 50b1ed7ff3975..0000000000000
Binary files a/web/assets/news/images/survey/domains.png and /dev/null differ
diff --git a/web/assets/news/images/survey/editors.png b/web/assets/news/images/survey/editors.png
deleted file mode 100644
index 816ad515f0536..0000000000000
Binary files a/web/assets/news/images/survey/editors.png and /dev/null differ
diff --git a/web/assets/news/images/survey/ex_nim.png b/web/assets/news/images/survey/ex_nim.png
deleted file mode 100644
index 50082ea8bfa83..0000000000000
Binary files a/web/assets/news/images/survey/ex_nim.png and /dev/null differ
diff --git a/web/assets/news/images/survey/languages.png b/web/assets/news/images/survey/languages.png
deleted file mode 100644
index db35f9bd47ced..0000000000000
Binary files a/web/assets/news/images/survey/languages.png and /dev/null differ
diff --git a/web/assets/news/images/survey/learning_resources.png b/web/assets/news/images/survey/learning_resources.png
deleted file mode 100644
index 39f533ad02176..0000000000000
Binary files a/web/assets/news/images/survey/learning_resources.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_appeal.png b/web/assets/news/images/survey/nim_appeal.png
deleted file mode 100644
index 4f53e14478981..0000000000000
Binary files a/web/assets/news/images/survey/nim_appeal.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_at_work.png b/web/assets/news/images/survey/nim_at_work.png
deleted file mode 100644
index f00ab1a947b8a..0000000000000
Binary files a/web/assets/news/images/survey/nim_at_work.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_displeasing.png b/web/assets/news/images/survey/nim_displeasing.png
deleted file mode 100644
index b7232df049116..0000000000000
Binary files a/web/assets/news/images/survey/nim_displeasing.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_domains.png b/web/assets/news/images/survey/nim_domains.png
deleted file mode 100644
index 2d8fc6652b640..0000000000000
Binary files a/web/assets/news/images/survey/nim_domains.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_found.png b/web/assets/news/images/survey/nim_found.png
deleted file mode 100644
index a0a65b81394f2..0000000000000
Binary files a/web/assets/news/images/survey/nim_found.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_time.png b/web/assets/news/images/survey/nim_time.png
deleted file mode 100644
index 23bc4a1369e49..0000000000000
Binary files a/web/assets/news/images/survey/nim_time.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_time_rust.png b/web/assets/news/images/survey/nim_time_rust.png
deleted file mode 100644
index 9b861608ac570..0000000000000
Binary files a/web/assets/news/images/survey/nim_time_rust.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nim_versions.png b/web/assets/news/images/survey/nim_versions.png
deleted file mode 100644
index ba382c93dda8d..0000000000000
Binary files a/web/assets/news/images/survey/nim_versions.png and /dev/null differ
diff --git a/web/assets/news/images/survey/nimble_opinion.png b/web/assets/news/images/survey/nimble_opinion.png
deleted file mode 100644
index 3fe76326e7562..0000000000000
Binary files a/web/assets/news/images/survey/nimble_opinion.png and /dev/null differ
diff --git a/web/assets/news/images/survey/non_user.png b/web/assets/news/images/survey/non_user.png
deleted file mode 100644
index b5324b69ce3cf..0000000000000
Binary files a/web/assets/news/images/survey/non_user.png and /dev/null differ
diff --git a/web/assets/news/images/survey/planning_to_use_at_work.png b/web/assets/news/images/survey/planning_to_use_at_work.png
deleted file mode 100644
index b3e2001c357a7..0000000000000
Binary files a/web/assets/news/images/survey/planning_to_use_at_work.png and /dev/null differ
diff --git a/web/assets/news/images/survey/project_size.png b/web/assets/news/images/survey/project_size.png
deleted file mode 100644
index ad1359d0c7093..0000000000000
Binary files a/web/assets/news/images/survey/project_size.png and /dev/null differ
diff --git a/web/assets/news/images/survey/project_size_nim_rust.png b/web/assets/news/images/survey/project_size_nim_rust.png
deleted file mode 100644
index 4bc0e6b47b563..0000000000000
Binary files a/web/assets/news/images/survey/project_size_nim_rust.png and /dev/null differ
diff --git a/web/assets/news/images/survey/project_size_work.png b/web/assets/news/images/survey/project_size_work.png
deleted file mode 100644
index fab6e52f27d35..0000000000000
Binary files a/web/assets/news/images/survey/project_size_work.png and /dev/null differ
diff --git a/web/assets/news/images/survey/reliability.png b/web/assets/news/images/survey/reliability.png
deleted file mode 100644
index 1767e9803cab7..0000000000000
Binary files a/web/assets/news/images/survey/reliability.png and /dev/null differ
diff --git a/web/assets/news/images/survey/target_os.png b/web/assets/news/images/survey/target_os.png
deleted file mode 100644
index a36915af1106c..0000000000000
Binary files a/web/assets/news/images/survey/target_os.png and /dev/null differ
diff --git a/web/assets/niminaction/banner.jpg b/web/assets/niminaction/banner.jpg
deleted file mode 100644
index b2fb3efc94f72..0000000000000
Binary files a/web/assets/niminaction/banner.jpg and /dev/null differ
diff --git a/web/assets/niminaction/banner2.png b/web/assets/niminaction/banner2.png
deleted file mode 100644
index 3cabd195d428a..0000000000000
Binary files a/web/assets/niminaction/banner2.png and /dev/null differ
diff --git a/web/assets/style.css b/web/assets/style.css
deleted file mode 100644
index 2e166530d6999..0000000000000
--- a/web/assets/style.css
+++ /dev/null
@@ -1,630 +0,0 @@
-
-* { cursor:default; }
-a, a * { cursor:pointer; }
-
-html { margin:0; overflow-x:auto; }
-body {
- overflow-x:hidden;
- min-width:1030px;
- margin:0;
- font:13pt "arial";
- background:#152534 url("images/bg.png") no-repeat center top;
- color:rgba(0,0,0,.8); }
-
-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 .cmt { color:rgb(255,229,106); }
-pre .kwd { color:#43A8CF; font-weight:bold; }
-pre .typ { color:#128B7D; font-weight:bold; }
-pre .atr { color:#128B7D; font-weight:bold; font-style:italic; }
-pre .def { color:#CAD6E4; font-weight:bold; }
-pre .prg { color:#854D6A; font-weight:bold; font-style:italic; }
-pre .val { color:#8AB647; }
-pre .tab { border-left:1px dotted rgba(67,168,207,0.4); }
-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%; }
-.pre { padding:1px 5px; font:11pt monospace; background:#96A9B7; border-radius:3px; }
-
-.page-layout { margin:0 auto; width:1000px; }
-.docs-layout { margin:0 40px; }
-.talk-layout { margin:0 40px; }
-.wide-layout { margin:0 auto; }
-
-#head { height:100px; background:url("images/head.png") repeat-x bottom; }
-#head.docs { margin-left:280px; background:rgba(0,0,0,.25) url("images/head-fade.png") no-repeat right top; }
-#head > div { position:relative }
-
- #head-logo {
- position:absolute;
- left:-390px;
- top:0;
- width:917px;
- height:268px;
- pointer-events:none;
- background:url("images/logo.png") no-repeat; }
- #head.docs #head-logo { left:-381px; position:fixed; }
- #head.forum #head-logo { left:-370px; }
-
- #head-logo-link {
- position:absolute;
- display:block;
- top:10px;
- left:10px;
- width:236px;
- height:85px; }
- #head.docs #head-logo-link { left:-260px; }
- #head.forum #head-logo-link { left:30px; }
-
- #head-links { position:absolute; right:0; bottom:13px; }
- #head.docs #head-links,
- #head.forum #head-links { right:20px; }
- #head-links > a {
- display:block;
- float:left;
- padding:10px 25px 25px 25px;
- color:rgba(255,255,255,.5);
- font-size:14pt;
- text-decoration:none;
- letter-spacing:1px;
- background:url("images/head-link.png") no-repeat center bottom;
- transition:
- color 0.3s ease-in-out,
- text-shadow 0.4s ease-in-out; }
- #head-links > a:hover,
- #head-links > a.active {
- color:#1cb3ec;
- text-shadow:0 0 4px rgba(28,179,236,.8);
- background-image:url("images/head-link_hover.png"); }
-
- #head-banner { width:200px; height:100px; background:#000; }
-
-#neck { z-index:0; height:40px; }
-#neck.home { height:370px; }
-#neck > div { position:relative }
-
- #glow-arrow {
- position:absolute;
- top:-9px;
- left:0;
- right:-16px;
- height:48px;
- background:url("images/glow-arrow.png") no-repeat right; }
- #glow-arrow.docs { left:280px; }
-
- #glow-line-vert {
- position:fixed;
- top:100px;
- left:280px;
- width:3px;
- height:844px;
- background:url("images/glow-line-vert.png") no-repeat; }
-
- #slideshow { position:absolute; top:10px; left:10px; width:700px; height: 1000px; }
- #slideshow > div {
- 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.init { transition-delay:0s; }
- #slideshow-nav { z-index:3; position:absolute; top:341px; left:18px; }
- #slideshow-nav > div { display:inline-block; margin:5px 0; width:23px; height:23px; background:url("images/slideshow-nav.png") no-repeat; }
- #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; }
-
- .niaslide a img {
- width: 542px;
- box-shadow: 1px 2px 16px rgba(28, 180, 236, 0.4);
- margin-left: 4em;
- margin-top: -1em;
- }
-
- .codeslide1 { float:left; width:680px; font:10pt monospace; }
- .codeslide1 > div:first-child { margin:0 40px 0 0; }
- .codeslide1 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
- .codeslide1 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78); font:13pt "arial"; }
-
- .codeslide2 > div { float:left; width:320px; font:10pt monospace; }
- .codeslide2 > div:first-child { margin:0 40px 0 0; }
- .codeslide2 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
-
- .codeslide3 > div { float:left; width:320px; font:10pt monospace; }
- .codeslide3 > div:first-child { margin:0 40px 0 0; }
- .codeslide3 h2 { margin:0 0 5px 0; color:rgba(162,198,223,.78); }
-
- .codeslide3 .desc { margin:0 0 5px 0; color:rgba(162,198,223,.78); font:13pt "arial"; }
-
- /* back when slide1 was the quote:
- #slide1 { margin-top:50px; }
- #slide1 > p {
- padding:40px 20px 0 20px;
- font-style:italic;
- color:rgba(162,198,223,.78);
- letter-spacing:1px;
- line-height:25pt;
- background:url("images/quotes.png") top left no-repeat; }
- #slide1 > div {
- float:right;
- margin-right:40px;
- font-style:italic;
- font-weight:bold;
- color:rgba(93,155,199,.44); }
- */
- #sidebar {
- z-index:2;
- position:absolute;
- top:5px; right:0;
- width:275px;
- height:726px;
- padding:210px 0 0 0;
- background:url("images/sidebar.png") no-repeat; }
- #sidebar > h3 { margin:0 30px 0 30px; color:rgba(255,255,255,.5); }
- #sidebar > h3.blue { color:rgba(28,180,236,.5); }
- #sidebar-links,
- #sidebar-news {
- margin:10px 30px 50px 30px;
- padding:10px 0;
- background:rgba(0,0,0,.6); }
- #sidebar-links { box-shadow:1px 2px 12px rgba(255,255,255,.4); }
- #sidebar-news { box-shadow:1px 2px 12px rgba(28,180,236,.6); }
- #sidebar-links > a {
- display:block;
- margin-left:15px;
- padding:12px 20px 12px 45px;
- font-weight:bold;
- text-decoration:none;
- letter-spacing:1px;
- color:rgba(255,255,255,.4);
- transition:
- color 0.1s ease-in-out,
- text-shadow 0.2s ease-in-out; }
- #sidebar-news > a { transition: color 0.3s ease-in-out; }
- #sidebar-news > a > h4 { transition: color 0.1s ease-in-out, text-shadow 0.2s ease-in-out; }
- #sidebar-links > a:hover { color:#fff; text-shadow:0 0 6px #fff; }
- #sidebar-news > a { display:block; padding:15px; color:rgba(255,255,255,.4); text-decoration:none; }
- #sidebar-news > a > h4 { margin:0 0 5px 0; color:rgba(28,180,236,.5); }
- #sidebar-news > a:hover > h4 { margin:0 0 5px 0; color:rgba(28,180,236,.8); text-shadow:0 0 6px rgba(28,180,236,.6); }
- #sidebar-news > a:hover { color:rgba(255,255,255,1); }
- #sidebar-news > a.blue { color:rgba(28,180,236,.5); font-weight:bold; }
- #sidebar-news > a.blue:hover { color:#fff; }
-
- #link_forum { background:url("images/more-links_forum.png") no-repeat left center; }
- #link_github { background:url("images/more-links_github.png") no-repeat left center; }
- #link_editors { background:url("images/more-links_editors.png") no-repeat left center; }
- #link_aporia { background:url("images/more-links_editors.png") no-repeat left center; }
- #link_nimbuild { background:url("images/more-links_nimbuild.png") no-repeat left center; }
-
- #overview-bg {
- position:fixed;
- top:0;
- bottom:0;
- left:0;
- width:280px;
- background:rgba(0,0,0,0.25); }
- #overview {
- z-index:3;
- position:fixed;
- overflow:auto;
- top:115px;
- bottom:20px;
- left:20px;
- width:245px; }
- #overview::-webkit-scrollbar { width:5px; }
- #overview::-webkit-scrollbar-track { border-radius:2px; background:rgba(255,255,255,.03); }
- #overview::-webkit-scrollbar-thumb { border-radius:2px; background:rgba(28,179,236,.5); }
- #overview > div { overflow:auto; margin-bottom:40px; }
- #overview a {
- display:block;
- padding:0 10px;
- margin:2px 5px 2px 0;
- color:rgba(255,255,255,.6);
- background:rgba(255,255,255,0.03);
- border-radius:2px;
- letter-spacing:1px;
- text-decoration:none; }
- #overview a:hover { color:#fff; background:rgba(255,255,255,0.05); }
- #overview > .types a { border-left:2px solid rgba(28,179,236,.4); }
- #overview > .procs a { border-left:2px solid rgba(255,223,53,.4); }
- #overview > .iters a { border-left:2px solid rgba(255,134,53,.4); }
- #overview > div > h4 {
- margin:0 5px 10px 0;
- padding:5px 10px;
- letter-spacing:1px;
- color:#fff;
- border-left:2px solid #fff;
- border-radius:2px;
- background:rgba(255,255,255,0.1); }
- #overview > .types h4 { color:#1cb3ec; border-color:#1cb3ec; }
- #overview > .procs h4 { color:#ffdf35; border-color:#ffdf35; }
- #overview > .iters h4 { color:#ff8635; border-color:#ff8635; }
- #overview h5 {
- color:rgba(28,179,236,.6);
- margin:10px 0 5px 0;
- padding:5px 5px;
- letter-spacing:1px; }
-
-#body { z-index:1; position:relative; background:rgba(220,231,248,0.8); }
-#body.docs { margin:0 40px 20px 320px; }
-#body.forum { margin:0 40px 20px 40px; }
-
- #body-border {
- position:absolute;
- top:-25px;
- left:0;
- right:0;
- height:35px;
- background:rgba(0,0,0,.25); }
-
- #body-border-left {
- position:absolute;
- left:-25px;
- top:-25px;
- bottom:-25px;
- width:35px;
- background:rgba(0,0,0,.25); }
-
- #body-border-right {
- position:absolute;
- right:-25px;
- top:-25px;
- bottom:-25px;
- width:35px;
- background:rgba(0,0,0,.25); }
-
- #body-border-bottom {
- position:absolute;
- left:10px;
- right:10px;
- bottom:-25px;
- height:35px;
- background:rgba(0,0,0,.25); }
-
- #body.docs #body-border,
- #body.forum #body-border { left:10px; right:10px; }
-
- #glow-line {
- position:absolute;
- top:-27px;
- left:100px;
- right:-25px;
- height:3px;
- background:url("images/glow-line.png") no-repeat left; }
- #glow-line-bottom {
- position:absolute;
- bottom:-27px;
- left:-25px;
- right:100px;
- height:3px;
- background:url("images/glow-line2.png") no-repeat right; }
-
- #content { padding:40px 0; line-height:150%; }
- #content.page { width:680px; min-height:1220px; padding-left:20px; }
- #content h1 { font-size:20pt; letter-spacing:1px; color:rgba(0,0,0,.75); }
- #content h2 { font-size:16pt; letter-spacing:1px; color:rgba(0,0,0,.7); margin-top:40px; }
- #content p { text-align:justify; }
- #content a { color:#0E65D1; text-decoration:none; }
- #content a:hover { text-decoration:underline; }
- #content ul { padding-left:20px; }
- #content li { margin-bottom:10px; text-align:justify; }
-
- #body.docs #content > div { margin-top:40px; padding-top:40px; border-top:1px dashed rgba(0,0,0,.25); }
- #body.docs #content > div:first-child { margin-top:0; padding-top:0; border:none; }
- #body.docs #content > div > h3 {
- color:#fff;
- margin:0 0 10px 0;
- padding:10px 20px;
- letter-spacing:1px;
- border-left:8px solid #fff;
- border-radius:3px;
- background:rgba(0,0,0,.7);
- box-shadow:1px 3px 12px rgba(0,0,0,.4); }
- #body.docs #content > #types-wrap > h3 { color:#1cb3ec; border-color:#1cb3ec; }
- #body.docs #content > #procs-wrap > h3 { color:#ffdf35; border-color:#ffdf35; }
- #body.docs #content > #iters-wrap > h3 { color:#ff8635; border-color:#ff8635; }
- #body.docs #content > div > div > div {
- overflow:auto;
- margin:10px 0;
- border-left:8px solid #fff;
- border-radius:3px;
- background:rgba(0,0,0,.1); }
- #body.docs #content > #types-wrap > div > div { border-color:rgba(28,179,236,.5); }
- #body.docs #content > #procs-wrap > div > div { border-color:rgba(255,223,53,.5); }
- #body.docs #content > #iters-wrap > div > div { border-color:rgba(255,134,53,.5); }
- #body.docs #content > #procs-wrap > div > div.overload-head { margin-bottom:0; }
- #body.docs #content > #procs-wrap > div > div.overload-tail { margin-top:0; border-top:1px dashed rgba(255,223,53,.5); }
- #body.docs #content > #procs-wrap > div > div.overload { margin-top:0; margin-bottom:0; border-top:1px dashed rgba(255,223,53,.5); }
- #body.docs #content > #iters-wrap > div > div.overload-head { margin-bottom:0; }
- #body.docs #content > #iters-wrap > div > div.overload-tail { margin-top:0; border-top:1px dashed rgba(255,134,53,.5); }
- #body.docs #content > #iters-wrap > div > div.overload { margin-top:0; margin-bottom:0; border-top:1px dashed rgba(255,134,53,.5); }
- #body.docs #content > div > div > p { margin:20px 10px 10px 10px; }
-
- #body.docs #content > div > div > div > div { float:left; }
- #body.docs #content > div > div > div > div.head { width:60%; }
- #body.docs #content > div > div > div > div.data { width:40%; }
-
- #body.docs #content > h1 > .symbol {
- padding:0 8px;
- border-radius:5px;
- background:rgba(206,218,233,.4); }
-
- #body.docs #content > div > div > div > div.head > .sign {
- margin:0 10px 5px 10px;
- padding:10px 10px 0 10px;
- font-weight:bold;
- border-bottom:1px dashed rgba(0,0,0,.25); }
- #body.docs #content > div > div > div > div.head > .desc {
- padding:0 20px 10px 20px;
- color:rgba(0,0,0,.75); }
- #body.docs #content > div > #types > div > div.head > .sign > .symbol {
- padding:0 5px;
- border-radius:3px;
- background:rgba(28,179,236,.4); }
- #body.docs #content > div > #procs > div > div.head > .sign > .symbol {
- padding:0 5px;
- border-radius:3px;
- background:rgba(255,223,53,.3); }
- #body.docs #content > div > #iters > div > div.head > .sign > .symbol {
- padding:0 5px;
- border-radius:3px;
- background:rgba(255,134,53,.3); }
-
- #body.docs #content > div > div > div > div.data > div {
- margin:0 20px 5px 10px;
- padding:10px 0 0 10px;
- font-style:italic;
- color:rgba(0,0,0,.6);
- border-bottom:1px dashed rgba(0,0,0,.25); }
- #body.docs #content > div > div > div > div.data > ul { margin:0; padding:0 10px; }
- #body.docs #content > div > div > div > div.data > ul:last-child { margin-bottom:5px; padding-bottom:10px; }
- #body.docs #content > div > div > div > div.data > ul .symbol { padding:0 5px; border-radius:3px; background:rgba(23,192,23,.25); }
- #body.docs #content > div > div > div > div.data > ul.pragmas .symbol { background:rgba(106,50,145,.25); }
- #body.docs #content > div > div > div > div.data > ul > li { margin:0; padding:0 10px; list-style:none; }
-
- #body.docs #content pre {
- overflow:auto;
- margin:10px 0;
- padding:15px 10px;
- font-size:10pt;
- font-style:normal;
- line-height:14pt;
- background:rgba(0,0,0,.75);
- border-left:8px solid rgba(0,0,0,.3); }
-
- #docs-sort { float:right; font-size:75%; }
- #docs-sort > a {
- cursor:default;
- margin:0 0 0 10px;
- padding:2px 10px;
- border-radius:5px;
- color:rgba(0,0,0,.25);
- background:rgba(0,0,0,.1);
- box-shadow:inset 0 1px 8px rgba(0,0,0,.4); }
- #docs-sort > a:hover,
- #docs-sort > a.active { color:#000; background:rgba(0,0,0,.2); }
-
- #talk-heads { overflow:auto; margin:0 8px 0 8px; }
- #talk-heads > div { float:left; font-size:120%; font-weight:bold; }
- #talk-heads > .topic { width:55%; }
- #talk-heads > .detail { width:15%; }
- #talk-heads > .author { width:15%; }
- #talk-heads > .reply { width:15%; }
- #talk-heads > div > div { margin:0 10px 10px 10px; padding:0 10px 10px 10px; border-bottom:1px dashed rgba(0,0,0,0.4); }
- #talk-heads > .topic > div { margin-left:0; }
- #talk-heads > .author > div { margin-right:0; }
-
- #talk-thread > div,
- #talk-threads > div {
- position:relative;
- margin:5px 0;
- overflow:auto;
- border-radius:3px;
- border:8px solid rgba(0,0,0,.8);
- border-top:none;
- border-bottom:none;
- background:rgba(0,0,0,0.1); }
- #talk-thread > div:nth-child(odd) { background:rgba(255,255,255,0.1); }
- #talk-threads > div:nth-child(odd) { background:rgba(0,0,0,0.2); }
- #talk-thread > div > div,
- #talk-threads > div > div { float:left; }
- #talk-thread > div > div > div,
- #talk-threads > div > div > div { margin:10px 20px; }
- #talk-threads > div > .topic { width:55%; }
- #talk-threads > div > .reply { width:15%; overflow:hidden; }
- #talk-threads > div > .detail { width:15%; overflow:hidden; }
- #talk-thread > div > .author,
- #talk-threads > div > .author {
- position:absolute;
- right:0;
- top:0;
- bottom:0;
- width:15%;
- overflow:hidden;
- background:rgba(0,0,0,0.8); }
- #talk-thread > div > .author a,
- #talk-threads > div > .author a { color:#1cb3ec !important; }
- #talk-thread > div > .author a:hover,
- #talk-threads > div > .author a:hover { color:#fff !important; }
- #talk-threads > div > .topic .pages { float:right; }
- #talk-threads > div > .topic > div > a { font-weight:bold; }
- #talk-threads > div > .detail > div { float:left; margin:0; }
- #talk-threads > div > .detail > div > div { margin-left:20px; padding:10px 10px 10px 22px; }
- #talk-threads > div > .detail > div { width:50%; }
- #talk-threads > div > .detail > div:first-child > div { background:url("images/forum-views.png") no-repeat left; }
- #talk-threads > div > .detail > div:last-child > div { background:url("images/forum-posts.png") no-repeat left; }
-
- #talk-thread > div { margin:20px 0; min-height:150px; box-shadow:1px 3px 12px rgba(0,0,0,.4) }
- #talk-thread > div > .author > div > .avatar { margin-top:20px; }
- #talk-thread > div > .author > div > .avatar > img { box-shadow:0 0 12px #1cb3ec; }
- #talk-thread > div > .author > div > .name { }
- #talk-thread > div > .topic { width:85%; padding-bottom:10px; }
- #talk-thread > div > .topic pre {
- overflow:auto;
- margin:0;
- padding:15px 10px;
- font-size:10pt;
- font-style:normal;
- line-height:14pt;
- background:rgba(0,0,0,.75);
- border-left:8px solid rgba(0,0,0,.3); }
-
- #talk-head,
- #talk-info {
- overflow:auto;
- border-radius:3px;
- border:8px solid rgba(0,0,0,.2);
- border-top:none;
- border-bottom:none;
- background:rgba(0,0,0,0.1); }
- #talk-head { margin-bottom:20px; }
- #talk-info { margin-top:20px; }
- #talk-head > div,
- #talk-info > div { float:left; }
- #talk-head > .info,
- #talk-info > .info { width:85%; }
- #talk-head > .user,
- #talk-info > .user { width:15%; background:rgba(0,0,0,.2); }
- #talk-info > .user > div > .reply { font-weight:bold; padding-left:22px; background:url("images/forum-reply.png") no-repeat left; }
- #talk-head > div > div,
- #talk-info > div > div { padding:5px 20px; }
- #talk-head > .detail > div { float:left; margin:0; }
- #talk-head > .detail > div > div { padding-left:22px; }
- #talk-head > .detail > div:first-child > div { background:url("images/forum-views.png") no-repeat left; }
- #talk-head > .detail > div:last-child > div { background:url("images/forum-posts.png") no-repeat left; }
-
- #talk-nav { margin:20px 8px 0 8px; padding-top:10px; border-top:1px dashed rgba(0,0,0,0.4); text-align:center; }
- #talk-nav > a.active { text-decoration:underline !important; }
-
- .standout {
- padding:5px 30px;
- margin-bottom:20px;
- border:8px solid rgba(0,0,0,.8);
- border-right-width:0;
- border-top-width:0;
- border-bottom-width:0;
- border-radius:3px;
- background:rgba(0,0,0,0.1); }
- .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 ul { padding-bottom:5px; }
- .standout .tools ul { list-style:url("images/docs-tools.png"); }
- .standout .libraries ul { list-style:url("images/docs-libraries.png"); }
- .standout .internals ul { list-style:url("images/docs-internals.png"); }
- .standout .tutorials ul { list-style:url("images/docs-tutorials.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 p { margin:0 0 10px 0 !important; line-height:130%; }
- .standout li p > a { font-weight:bold; }
-
- .forum-user-info,
- .forum-user-info * { cursor:help }
-
-#foot { height:150px; position:relative; top:-10px; letter-spacing:1px; }
-#foot.home { background:url("images/foot.png") repeat-x top; height:200px; }
-#foot.docs { margin-left:320px; margin-right:40px; }
-#foot.forum { margin-left:40px; margin-right:40px; }
-#foot > div { position:relative; }
-#foot.home > div { width:960px; }
-#foot h4 { font-size:11pt; color:rgba(255,255,255,.4); margin:40px 0 6px 0; }
-#foot a:hover { color:#fff; }
-
- #foot-links { float:left; }
- #foot-links > div { float:left; padding:0 40px 0 0; line-height:120%; }
- #foot-links a { display:block; font-size:10pt; color:rgba(255,255,255,.3); text-decoration:none; }
- #foot-legal { float:right; font-size:10pt; color:rgba(255,255,255,.3); line-height:150%; text-align:right; }
- #foot-legal a { color:inherit; text-decoration:none; }
- #foot-legal > h4 > a { color:inherit; }
-
-
-#body .docutils th {
- border-bottom: 2px solid #1A1A1A;
- font-weight: normal;
- padding: 8px; }
-#body table.docutils {
- border-collapse: collapse;
- text-align: left;
- border-spacing: 0px; }
-
-#bountysource {
- width: 100%;
- height: 30px;
- background-color: #19975d;
-}
-
-#bountysource a, #bountysource a:visited, #bountysource a:hover {
- color: #1a1a1a;
-}
-
-/* Current sponsors page */
-
-dt {
- font-size: 20pt;
- clear: both;
- margin-bottom: 10pt;
-}
-
-dd.logo {
- width: 200px;
- min-height: 50px;
- margin-bottom: 10pt;
- margin-right: 20pt;
- float: left;
-}
-
-dd.logo img {
- max-height: 200px;
-}
-
-dd.this_month {
- font-size: 20pt;
-}
-
-dt a, dt a:visited, dt a:hover {
- color: #1d1d1d !important;
-}
-
-dt.level-1 {
- color: #2f2f2f !important;
-}
-
-p.lastUpdate {
- font-size: 12pt;
- color: #6d6d6d;
-}
-
-/* quotes */
-
-blockquote {
- padding: 0px 8px;
- margin: 10px 0px;
- border-left: 2px solid rgb(61, 61, 61);
- color: rgb(109, 109, 109);
-}
-
-/* News articles */
-
-.metadata {
- font-size: 12pt;
- margin-bottom: 20pt;
- margin-top: -16pt;
- color: #4f4f4f;
-}
-
diff --git a/web/assets/zeo/banner.jpg b/web/assets/zeo/banner.jpg
deleted file mode 100644
index f09b000de0a7b..0000000000000
Binary files a/web/assets/zeo/banner.jpg and /dev/null differ
diff --git a/web/community.rst b/web/community.rst
deleted file mode 100644
index fefa4c4b649fe..0000000000000
--- a/web/community.rst
+++ /dev/null
@@ -1,150 +0,0 @@
-Nim's Community
-===============
-
-.. container:: standout
-
- Forum
- -----
-
- The `Nim forum `_ is the place where most
- discussions related to the language happen. It not only includes discussions
- relating to the design of Nim but also allows for beginners to ask questions
- relating to Nim.
-
-
-.. container:: standout
-
- Mailing list
- ------------
-
- The mailing list can be found here: http://www.freelists.org/list/nim-dev
- There is no consensus yet about what is discussed via the forum as opposed
- to the mailing list. Join whatever you like!
-
-
-.. container:: standout
-
- IRC
- ----
-
- Many Nim developers are a part of the
- `#nim IRC channel `_ on
- Freenode. That is the place where the rest of the discussion relating to Nim
- occurs. Be sure to join us there if you wish to discuss Nim in real-time.
- IRC is the perfect place for people just starting to learn Nim and we
- welcome any questions that you may have!
-
- You may also be interested in reading the
- `IRC logs `_ which are an archive of all
- of the previous discussions that took place in the IRC channel.
-
-
-.. container:: standout
-
- GitHub
- ------
-
- Nim's `source code `_ is hosted on GitHub.
- Together with the `wiki `_ and
- `issue tracker `_.
-
- GitHub also hosts other projects relating to Nim. These projects are a part
- of the `nim-lang organisation `_.
- This includes the `Nimble package manager `_
- and its `package repository `_.
-
-
-.. container:: standout
-
- Twitter
- -------
-
- Follow us `@nim_lang `_ for latest news about
- Nim.
-
-.. container:: standout
-
- Reddit
- ------
-
- Subscribe to `/r/nim `_ for latest news about
- Nim.
-
-.. container:: standout
-
- StackOverflow
- -------------
-
- When asking a question relating to Nim, be sure to use the
- `Nim `_ tag in your
- question.
-
-.. container:: standout
-
- Google+
- -------
-
- The `G+ Nim community `_ is another place where discussions related to the language happen. Read and follow various articles, posts and interesting links about Nim.
-
-.. container:: standout
-
- Gitter
- ------
-
- The `Gitter Chatroom for Nim `_ is the persistent logged "natural" chatroom for GitHub repositories and very easy to access for GitHub users. This does not need additional software and can send notifications about messages by email.
-
-.. container:: standout
-
- Meetup
- ------
-
- The `Nim BR Meetup `_ is a brazilian user group about Nim where they are having discussions, talks or workshops about Nim programming language.
-
-.. container:: standout
-
- How to help
- -----------
-
- There are always many things to be done in the main
- `Nim repository `_, check out the
- `issues `_ for
- things to do; pull requests are always welcome. You can
- also contribute to the many other projects hosted by the
- `nim-lang `_ organisation on github. If you
- can't find anything you fancy doing, you can always ask for inspiration on IRC
- (irc.freenode.net #nim) or on the `Nim forums `_.
-
-
-.. container:: standout
-
- Donations
- ---------
-
- If you love what we do and are feeling generous then you can always donate.
- Contributions of any quantity are greatly appreciated and will contribute to
- making Nim even better!
-
- Gittip
- .. raw:: html
-
-
-
- BountySource
-
- .. raw:: html
-
-
-
- Paypal
- .. raw:: html
-
-
-
-
- Bitcoin
- Bitcoin address: 1BXfuKM2uvoD6mbx4g5xM3eQhLzkCK77tJ
diff --git a/web/documentation.rst b/web/documentation.rst
deleted file mode 100644
index ec33d0827a65a..0000000000000
--- a/web/documentation.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Nim's Documentation
-===================
-
-.. container:: standout
-
- Search Options
- --------------
-
- .. container:: internals
-
- `Documentation Index `_ - The generated
- index. **Index + (Ctrl+F) == Joy**
-
-.. container:: standout
-
- Standards & Guides
- ------------------
-
- .. container:: libraries
-
- - | `Standard Library `_
- | This document describes Nim's standard library.
-
- - | `Language Manual `_
- | The Nim manual is a draft that will evolve into a proper specification.
-
- - | `Nim Style Guide `_
- | The stylistic conventions that Nim's official projects adhere to.
-
- - | `Compiler User Guide `_
- | The user guide lists command line arguments, special features of the
- compiler, etc.
-
- - | `NimScript `_
- | NimScript is the upcoming new way to configure Nim.
-
- - | `Nim Backend Integration `_
- | The Backend Integeration guide gives further information of how Nim can
- interact with C, C++, Objective C and JavaScript.
-
-
-.. container:: standout
-
- Tools & Features
- ----------------
-
- .. container:: tools
-
- - | `Source Code Filters `_
- | The Nim compiler supports source code filters as a simple yet powerful
- builtin templating system.
-
- - | `Tools Documentation `_
- | Description of some tools that come with the standard distribution.
-
-
-.. container:: standout
-
- Internal Details
- ----------------
-
- .. container:: internals
-
- - | `Garbage Collector `_
- | Additional documentation about Nim's GC and how to operate it in a
- realtime setting.
-
- - | `Internal Documentation `_
- | The internal documentation describes how the compiler is implemented.
- Read this if you want to hack the compiler.
diff --git a/web/download.rst b/web/download.rst
deleted file mode 100644
index dd086cbaa008a..0000000000000
--- a/web/download.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-Download the compiler
-=====================
-
-You can download the latest version of the Nim compiler here.
-
-Windows
--------
-
-Zips
-%%%%
-
-Since the website moved to https, only installation via the provided zipfiles
-is supported:
-
-* | 32 bit: `nim-0.16.0_x32.zip `_
- | SHA-256 69af94a6875a02543c1bf0fa03c665f126f8500a2c0e226c32571e64c6842e57
-* | 64 bit: `nim-0.16.0_x64.zip `_
- | SHA-256 e667cdad1ae8e9429147aea5031fa8a80c4ccef6d274cec0e9480252d9c3168c
-
-Unzip these where you want and **optionally** run ``finish.exe`` to
-detect your MingW environment. (Though that's not reliable yet.)
-
-You can find the required DLLs here, if you lack them for some reason:
-
-* | 32 and 64 bit: `DLLs.zip `_
- | SHA-256 198112d3d6dc74d7964ba452158d44bfa57adef4dc47be8c39903f2a24e4a555
-
-
-These versions of mingw are known to work:
-
-* | 32 bit: `mingw32-6.3.0 `_
- | SHA-256 1239a56d4c42e146b2cb25dc4d0871bd83f569d0a51a9198e84d010e0a75745a
-* | 64 bit: `mingw64-6.3.0 `_
- | SHA-256 9a23d12d96a10e67093c1f2042275c6a7d29da9e2ead573d0f24f4a6d53761a1
-
-
-
-Installation based on generated C code
---------------------------------------
-
-**Note:** The Nim compiler requires a C compiler to compile software. On
-Windows we recommend that you use
-`Mingw-w64 `_. GCC is recommended on Linux
-and Clang on Mac. The Windows installers above already includes a C compiler.
-
-This installation method is the preferred way for Linux, Mac OS X, and other Unix
-like systems.
-
-Firstly, download this archive:
-
-* | `nim-0.16.0.tar.xz (2.9MB) `_
- | SHA-256 9e199823be47cba55e62dd6982f02cf0aad732f369799fec42a4d8c2265c5167
-
-Extract the archive. Then copy the extracted files into your chosen installation
-directory, ideally somewhere in your home directory.
-For example: ``~/programs/nim``.
-
-Now open a terminal and follow these instructions:
-
-* ``cd`` into your installation directory, for example by executing
-``cd ~/programs/nim``.
-* run ``sh build.sh``.
-* Add ``$your_install_dir/bin`` to your PATH.
-* To build associated tools like ``nimble`` and ``nimsuggest`` run ``nim c koch && ./koch tools``.
-
-After restarting your terminal, you should be able to run ``nim -v``
-which should show you the version of Nim you just installed.
-
-There are other ways to install Nim (like using the ``install.sh`` script),
-but these tend to cause more problems.
-
-
-Bleeding edge installation from GitHub
---------------------------------------
-
-`GitHub `_ is where Nim's development takes
-place. You may wish to grab the latest development version of Nim, because
-sometimes bug fixes and new features may not have made it to an official
-release yet. In those circumstances you are better off grabbing the
-current development branch.
-
-You will also need to do this if you would like to contribute to Nim.
-
-Before you download the code, open a new terminal and ``cd`` into the
-directory where you would like the download to take place.
-
-The following commands can be used to download the current development branch
-and then to build it::
-
- git clone https://github.com/nim-lang/Nim.git
- cd Nim
- git clone --depth 1 https://github.com/nim-lang/csources
- cd csources && sh build.sh
- cd ..
- bin/nim c koch
- ./koch boot -d:release
-
-You should then add the ``./bin`` (make sure to expand this into an
-absolute path) directory to your ``PATH``.
-
-
-Docker Hub
-----------
-
-The `official Docker images `_
-are published on Docker Hub and include the compiler and Nimble. There are images
-for standalone scripts as well as Nimble packages.
-
-Get the latest stable image::
-
- docker pull nimlang/nim
-
-The latest development version::
-
- docker pull nimlang/nim:devel
diff --git a/web/inactive_sponsors.csv b/web/inactive_sponsors.csv
deleted file mode 100644
index 6352bc194eecb..0000000000000
--- a/web/inactive_sponsors.csv
+++ /dev/null
@@ -1,57 +0,0 @@
-logo, name, url, this_month, all_time, since, level
-,bogen,,0,1010,"Jul 23, 2016",1
-,mikra,,0,400,"Apr 28, 2016",1
-,shkolnick-kun,,0,375,"Jul 6, 2016",1
-,"Chris Heller",,0,350,"May 19, 2016",1
-,linkmonitor,,0,280,"Jan 28, 2016",1
-,avsej,,0,110,"Jun 10, 2016",1
-,WilRubin,,0,100,"Aug 11, 2015",1
-,"Benny Luypaert",,0,100,"Apr 10, 2016",1
-,PhilipWitte,,0,100,"Aug 5, 2016",1
-,skunkiferous,,0,100,"Oct 2, 2016",1
-,"Jonathan Arnett",,0,90,"May 20, 2016",1
-,Boxifier,,0,75,"Apr 12, 2016",1
-,iolloyd,,0,75,"Apr 29, 2016",1
-,btbytes,,0,70,"Apr 6, 2016",1
-,rb01,,0,50,"May 4, 2016",1
-,barcharcraz,,0,50,"Jun 2, 2016",1
-,zachaysan,,0,50,"Jun 7, 2016",1
-,kunev,,0,50,"Dec 26, 2016",1
-,iboB,,0,50,"Jan 28, 2017",1
-,TedSinger,,0,45,"Apr 9, 2016",1
-,johnnovak,,0,45,"Apr 30, 2016",1
-,"Matthew Baulch",,0,40,"Jun 7, 2016",1
-,"Matthew Newton",,0,35,"Apr 20, 2016",1
-,martinbbjerregaard,,0,35,"Jun 9, 2016",1
-,RationalG,,0,30,"Jun 17, 2016",1
-,benbve,,0,30,"Jul 12, 2016",1
-,multikatt,,0,30,"Nov 2, 2016",1
-,"Landon Bass",,0,25,"Jun 7, 2016",1
-,jimrichards,,0,25,"Jun 8, 2016",1
-,jjzazuet,,0,25,"Jul 10, 2016",1
-,kteza1,,0,20,"Jun 10, 2016",1
-,tomkeus,,0,20,"Sep 4, 2016",1
-,csoriano89,,0,20,"Sep 7, 2016",1
-,juanjux,,0,20,"Oct 29, 2016",1
-,zagfai,,0,20,"Nov 3, 2016",1
-,hellcoderz,,0,20,"Jan 24, 2017",1
-,mirek,,0,15,"Apr 9, 2016",1
-,DateinAsia,,0,15,"Jul 30, 2016",1
-,rickc,,0,15,"Jul 31, 2016",1
-,jpkx1984,,0,13,"Jul 11, 2016",1
-,vlkrav,,0,12,"Aug 9, 2015",1
-,tebanep,,0,12,"Aug 7, 2016",1
-,McSpiros,,0,10,"Apr 6, 2016",1
-,"Brandon Hunter",,0,10,"Apr 7, 2016",1
-,funny-falcon,,0,10,"Apr 7, 2016",1
-,teroz,,0,10,"Apr 8, 2016",1
-,iLikeLego,,0,10,"Apr 16, 2016",1
-,Angluca,,0,10,"May 3, 2016",1
-,calind,,0,10,"Jun 7, 2016",1
-,goldenreign,,0,10,"Jun 10, 2016",1
-,Blumenversand,,0,10,"Jul 21, 2016",1
-,cinnabardk,,0,10,"Aug 6, 2016",1
-,reddec,,0,10,"Aug 31, 2016",1
-,cupen,,0,10,"Nov 21, 2016",1
-,yay,,0,10,"Jan 25, 2017",1
-,niv,,0,5,"Apr 6, 2016",1
diff --git a/web/index.rst b/web/index.rst
deleted file mode 100644
index 4b712fa3b62f1..0000000000000
--- a/web/index.rst
+++ /dev/null
@@ -1,89 +0,0 @@
-====
-Home
-====
-
-Welcome to Nim
---------------
-
-**Nim** is a statically typed, imperative
-programming language that tries to give the programmer ultimate power without
-compromises on runtime efficiency. This means it focuses on compile-time
-mechanisms in all their various forms.
-
-Beneath a nice infix/indentation based syntax with a
-powerful (AST based, hygienic) macro system lies a semantic model that supports
-a soft realtime GC on thread local heaps. Asynchronous message passing is used
-between threads, so no "stop the world" mechanism is necessary. An unsafe
-shared memory heap is also provided for the increased efficiency that results
-from that model.
-
-
-Nim is efficient
-================
-
-* Native code generation (currently via compilation to C), not dependent on a
- virtual machine: **Nim produces small executables without dependencies
- for easy redistribution.**
-* A fast **non-tracing** garbage collector that supports soft
- real-time systems (like games).
-* System programming features: Ability to manage your own memory and access the
- hardware directly. Pointers to garbage collected memory are distinguished
- from pointers to manually managed memory.
-* Zero-overhead iterators.
-* Cross-module inlining.
-* Dynamic method binding with inlining and without virtual method table.
-* Compile time evaluation of user-defined functions.
-* Whole program dead code elimination: Only *used functions* are included in
- the executable.
-* Value-based datatypes: For instance, objects and arrays can be allocated on
- the stack.
-
-
-Nim is expressive
-=================
-
-* **The Nim compiler and all of the standard libraries are implemented in
- Nim.**
-* Built-in high level datatypes: strings, sets, sequences, etc.
-* Modern type system with local type inference, tuples, variants,
- generics, etc.
-* User-defineable operators; code with new operators is often easier to read
- than code which overloads built-in operators. For example, a
- ``=~`` operator is defined in the ``re`` module.
-* Macros can modify the abstract syntax tree at compile time.
-
-
-Nim is elegant
-==============
-
-* Macros can use the imperative paradigm to construct parse trees. Nim
- does not require a different coding style for meta programming.
-* Macros cannot change Nim's syntax because there is no need for it.
- Nim's syntax is flexible enough.
-* Statements are grouped by indentation but can span multiple lines.
- Indentation must not contain tabulators so the compiler always sees
- the code the same way as you do.
-
-
-Nim plays nice with others
-==========================
-
-* The Nim Compiler runs on Windows, Linux, BSD and Mac OS X.
- Porting to other platforms is easy.
-* **The Nim Compiler can also generate C++ or Objective C for easier
- interfacing.**
-* There are lots of bindings: for example, bindings to GTK2, the Windows API,
- the POSIX API, OpenGL, SDL, Cairo, Python, Lua, TCL, X11, libzip, PCRE,
- libcurl, mySQL and SQLite are included in the standard distribution or
- can easily be obtained via the
- `Nimble package manager `_.
-* A C to Nim conversion utility: New bindings to C libraries are easily
- generated by ``c2nim``.
-
-
-Roadmap to 1.0
-==============
-
-Please have a look at
-this `wiki page `_ for
-an up-to-date overview.
diff --git a/web/learn.rst b/web/learn.rst
deleted file mode 100644
index c0b583429af16..0000000000000
--- a/web/learn.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Learning Nim
-============
-
-.. container:: standout
-
- Tutorials
- ---------
-
- .. container:: tutorials
-
- - | `Tutorial (part I) `_
- | Learn the basics of Nim's types, variables, procedures, control flow, etc...
-
- - | `Tutorial (part II) `_
- | Learn Nim's more advanced features such as OOP, generics, macros, etc...
-
-
-.. container:: standout
-
- Books
- ---------
-
- .. container:: books
-
- - | `Nim in Action `_
- | *Nim in Action* teaches
- you all you need to know to begin writing powerful, portable
- and efficient applications in Nim. It includes a handful of practical
- and fun hands-on examples which teach you Nim.
-
-
-.. container:: standout
-
- Examples
- --------
-
- .. container:: examples
-
- - | `Nim by Example `_
- | Nim by Example is an excellent starting place for beginners.
-
- - | `Nim on Rosetta Code `_
- | Many different Nim code examples comparable to other languages for reference.
-
- - | `Nim for C/C++ Programmers `_
- | A useful cheat-sheet for those most familiar with C/C++ languages.
-
-
-.. container:: standout
-
- Articles
- --------
-
- .. container:: articles
-
- - `How I Start: Nim `_
- - `Getting Started With Nim `_
- - `Getting Started With Nim - Part 2 `_
- - `What is special about Nim? `_
- - `What makes Nim practical? `_
- - `Learn Nim in minutes `_
- - `Dr Dobbs Nimrod Publication `_
- - `Nim articles by Göran Krampe `_
-
-
-Documentation
--------------
-
-More examples of Nim code can be found in the `Nim Language Documentation `_.
-
diff --git a/web/links.rst b/web/links.rst
deleted file mode 100644
index e69de29bb2d1d..0000000000000
diff --git a/web/news.rst b/web/news.rst
deleted file mode 100644
index 5086bc682c25d..0000000000000
--- a/web/news.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-====
-News
-====
-
-`2017-01-08 Nim Version 0.16.2 released `_
-===================================
-
-`2017-01-08 Nim Version 0.16.0 released `_
-===================================
-
-`2016-11-20 Nim in Action is going into production! `_
-===================================
-
-`2016-10-23 Nim Version 0.15.2 released `_
-===================================
-
-`2016-09-30 Nim Version 0.15.0 released `_
-===================================
-
-`2016-09-03 Nim Community Survey results `_
-===================================
-
-`2016-08-06 BountySource Update: The Road to v1.0 `_
-===================================
-
-`2016-06-23 Launching the 2016 Nim community survey `_
-===================================
-
-`2016-06-11 Version 0.14.2 released `_
-===================================
-
-`2016-06-07 Version 0.14.0 released `_
-===================================
-
-`2016-06-04 Meet our BountySource sponsors `_
-===================================
-
-`2016-01-27 Nim in Action is now available! `_
-==================================
-
-`2016-01-18 Version 0.13.0 released `_
-==================================
-
-`2016-01-18 Andreas Rumpf's talk at OSCON Amsterdam `_
-==================================================
-
-`2015-10-27 Version 0.12.0 released `_
-==================================
-
-`2015-10-16 First Nim conference `_
-===============================
-
-`2015-05-04 Version 0.11.2 released `_
-==================================
-
-`2015-04-30 Version 0.11.0 released `_
-==================================
-
-`2014-12-29 Version 0.10.2 released `_
-==================================
-
-
-`2014-10-19 Version 0.9.6 released `_
-=================================
-
-
-`2014-04-21 Version 0.9.4 released `_
-=================================
-
-
-`2014-02-11 Nimrod Featured in Dr. Dobb's Journal `_
-================================================
-
-
-`2014-01-15 Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online `_
-============================================================================
-
-
-`2013-05-20 New website design! `_
-==============================
-
-
-
-`2013-05-20 Version 0.9.2 released `_
-=================================
-
-
-
-`2012-09-23 Version 0.9.0 released `_
-=================================
-
-
-
-`2012-02-09 Version 0.8.14 released `_
-==================================
-
-
-
-`2011-07-10 Version 0.8.12 released `_
-==================================
-
-
-`2010-10-20 Version 0.8.10 released `_
-==================================
-
-
-
-`2010-03-14 Version 0.8.8 released `_
-=================================
-
-
-`2009-12-21 Version 0.8.6 released `_
-=================================
-
-
-2009-10-21 Version 0.8.2 released
-=================================
-
-
-2009-09-12 Version 0.8.0 released
-=================================
-
-
-2009-06-08 Version 0.7.10 released
-==================================
-
-
-2009-05-08 Version 0.7.8 released
-=================================
-
-
-2009-04-22 Version 0.7.6 released
-=================================
-
-
-2008-11-16 Version 0.7.0 released
-=================================
-
-
-2008-08-22 Version 0.6.0 released
-=================================
-
-Nimrod version 0.6.0 has been released!
-**This is the first version of the compiler that is able to compile itself!**
diff --git a/web/news/e001_version_0_8_6.rst b/web/news/e001_version_0_8_6.rst
deleted file mode 100644
index 019168a44a98b..0000000000000
--- a/web/news/e001_version_0_8_6.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-2009-12-21 Version 0.8.6 released
-=================================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 21/12/2009
-
-The version jump from 0.8.2 to 0.8.6 acknowledges the fact that all development
-of the compiler is now done in Nimrod.
-
-
-Bugfixes
---------
-- The pragmas ``hint[X]:off`` and ``warning[X]:off`` now work.
-- Method call syntax for iterators works again (``for x in lines.split()``).
-- Fixed a typo in ``removeDir`` for POSIX that lead to an infinite recursion.
-- The compiler now checks that module filenames are valid identifiers.
-- Empty patterns for the ``dynlib`` pragma are now possible.
-- ``os.parseCmdLine`` returned wrong results for trailing whitespace.
-- Inconsequent tuple usage (using the same tuple with and without named fields)
- does not crash the code generator anymore.
-- A better error message is provided when the loading of a proc within a
- dynamic lib fails.
-
-
-Additions
----------
-- Added ``system.contains`` for open arrays.
-- The PEG module now supports the *search loop operator* ``@``.
-- Grammar/parser: ``SAD|IND`` is allowed before any kind of closing bracket.
- This allows for more flexible source code formating.
-- The compiler now uses a *bind* table for symbol lookup within a ``bind``
- context. (See ``_ for details.)
-- ``discard """my long comment"""`` is now optimized away.
-- New ``--floatChecks: on|off`` switches and pragmas for better debugging
- of floating point operations. (See
- ``_ for details.)
-- The manual has been improved. (Many thanks to Philippe Lhoste!)
-
-
-Changes affecting backwards compatibility
------------------------------------------
-- The compiler does not skip the linking step anymore even if no file
- has changed.
-- ``os.splitFile(".xyz")`` now returns ``("", ".xyz", "")`` instead of
- ``("", "", ".xyz")``. So filenames starting with a dot are handled
- differently.
-- ``strutils.split(s: string, seps: set[char])`` never yields the empty string
- anymore. This behaviour is probably more appropriate for whitespace splitting.
-- The compiler now stops after the ``--version`` command line switch.
-- Removed support for enum inheritance in the parser; enum inheritance has
- never been documented anyway.
-- The ``msg`` field of ``system.E_base`` has now the type ``string``, instead
- of ``cstring``. This improves memory safety.
diff --git a/web/news/e002_version_0_8_8.rst b/web/news/e002_version_0_8_8.rst
deleted file mode 100644
index 2df476814cacc..0000000000000
--- a/web/news/e002_version_0_8_8.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-Version 0.8.8 released
-======================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 14/03/2010
-
-Bugfixes
---------
-- The Posix version of ``os.copyFile`` has better error handling.
-- Fixed bug #502670 (underscores in identifiers).
-- Fixed a bug in the ``parsexml`` module concerning the parsing of
- ````.
-- Fixed a bug in the ``parsexml`` module concerning the parsing of
- enities like ``<XX``.
-- ``system.write(f: TFile, s: string)`` now works even if ``s`` contains binary
- zeros.
-- Fixed a bug in ``os.setFilePermissions`` for Windows.
-- An overloadable symbol can now have the same name as an imported module.
-- Fixed a serious bug in ``strutils.cmpIgnoreCase``.
-- Fixed ``unicode.toUTF8``.
-- The compiler now rejects ``'\n'`` (use ``"\n"`` instead).
-- ``times.getStartMilsecs()`` now works on Mac OS X.
-- Fixed a bug in ``pegs.match`` concerning start offsets.
-- Lots of other little bugfixes.
-
-
-Additions
----------
-- Added ``system.cstringArrayToSeq``.
-- Added ``system.lines(f: TFile)`` iterator.
-- Added ``system.delete``, ``system.del`` and ``system.insert`` for sequences.
-- Added ``system./`` for int.
-- Exported ``system.newException`` template.
-- Added ``cgi.decodeData(data: string): tuple[key, value: string]``.
-- Added ``strutils.insertSep``.
-- Added ``math.trunc``.
-- Added ``ropes`` module.
-- Added ``sockets`` module.
-- Added ``browsers`` module.
-- Added ``httpserver`` module.
-- Added ``httpclient`` module.
-- Added ``parseutils`` module.
-- Added ``unidecode`` module.
-- Added ``xmldom`` module.
-- Added ``xmldomparser`` module.
-- Added ``xmltree`` module.
-- Added ``xmlparser`` module.
-- Added ``htmlparser`` module.
-- Added ``re`` module.
-- Added ``graphics`` module.
-- Added ``colors`` module.
-- Many wrappers now do not contain redundant name prefixes (like ``GTK_``,
- ``lua``). The old wrappers are still available in ``lib/oldwrappers``.
- You can change your configuration file to use these.
-- Triple quoted strings allow for ``"`` in more contexts.
-- ``""`` within raw string literals stands for a single quotation mark.
-- Arguments to ``openArray`` parameters can be left out.
-- More extensive subscript operator overloading. (To be documented.)
-- The documentation generator supports the ``.. raw:: html`` directive.
-- The Pegs module supports back references via the notation ``$capture_index``.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- Overloading of the subscript operator only works if the type does not provide
- a built-in one.
-- The search order for libraries which is affected by the ``path`` option
- has been reversed, so that the project's path is searched before
- the standard library's path.
-- The compiler does not include a Pascal parser for bootstrapping purposes any
- more. Instead there is a ``pas2nim`` tool that contains the old functionality.
-- The procs ``os.copyFile`` and ``os.moveFile`` have been deprecated
- temporarily, so that the compiler warns about their usage. Use them with
- named arguments only, because the parameter order will change the next
- version!
-- ``atomic`` and ``let`` are now keywords.
-- The ``\w`` character class for pegs now includes the digits ``'0'..'9'``.
-- Many wrappers now do not contain redundant name prefixes (like ``GTK_``,
- ``lua``) anymore.
-- Arguments to ``openArray`` parameters can be left out.
diff --git a/web/news/e003_version_0_8_10.rst b/web/news/e003_version_0_8_10.rst
deleted file mode 100644
index f72c0076cb62c..0000000000000
--- a/web/news/e003_version_0_8_10.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Version 0.8.10 released
-=======================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 20/10/2010
-
-Bugfixes
---------
-
-- Bugfix: Command line parsing on Windows and ``os.parseCmdLine`` now adheres
- to the same parsing rules as Microsoft's C/C++ startup code.
-- Bugfix: Passing a ``ref`` pointer to the untyped ``pointer`` type is invalid.
-- Bugfix: Updated ``keyval`` example.
-- Bugfix: ``system.splitChunk`` still contained code for debug output.
-- Bugfix: ``dialogs.ChooseFileToSave`` uses ``STOCK_SAVE`` instead of
- ``STOCK_OPEN`` for the GTK backend.
-- Bugfix: Various bugs concerning exception handling fixed.
-- Bugfix: ``low(somestring)`` crashed the compiler.
-- Bugfix: ``strutils.endsWith`` lacked range checking.
-- Bugfix: Better detection for AMD64 on Mac OS X.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- Reversed parameter order for ``os.copyFile`` and ``os.moveFile``!!!
-- Procs not marked as ``procvar`` cannot only be passed to a procvar anymore,
- unless they are used in the same module.
-- Deprecated ``times.getStartMilsecs``: Use ``epochTime`` or ``cpuTime``
- instead.
-- Removed ``system.OpenFile``.
-- Removed ``system.CloseFile``.
-- Removed ``strutils.replaceStr``.
-- Removed ``strutils.deleteStr``.
-- Removed ``strutils.splitLinesSeq``.
-- Removed ``strutils.splitSeq``.
-- Removed ``strutils.toString``.
-- If a DLL cannot be loaded (via the ``dynlib`` pragma) ``EInvalidLibrary``
- is not raised anymore. Instead ``system.quit()`` is called. This is because
- raising an exception requires heap allocations. However the memory manager
- might be contained in the DLL that failed to load.
-- The ``re`` module (and the ``pcre`` wrapper) now depend on the pcre dll.
-
-
-Additions
----------
-
-- The ``{.compile: "file.c".}`` pragma uses a CRC check to see if the file
- needs to be recompiled.
-- Added ``system.reopen``.
-- Added ``system.getCurrentException``.
-- Added ``system.appType``.
-- Added ``system.compileOption``.
-- Added ``times.epochTime`` and ``times.cpuTime``.
-- Implemented explicit type arguments for generics.
-- Implemented ``{.size: sizeof(cint).}`` pragma for enum types. This is useful
- for interfacing with C.
-- Implemented ``{.pragma.}`` pragma for user defined pragmas.
-- Implemented ``{.extern.}`` pragma for better control of name mangling.
-- The ``importc`` and ``exportc`` pragmas support format strings:
- ``proc p{.exportc: "nim_$1".}`` exports ``p`` as ``nim_p``. This is useful
- for user defined pragmas.
-- The standard library can be built as a DLL. Generating DLLs has been
- improved.
-- Added ``expat`` module.
-- Added ``json`` module.
-- Added support for a *Tiny C* backend. Currently this only works on Linux.
- You need to bootstrap with ``-d:tinyc`` to enable Tiny C support. Nimrod
- can then execute code directly via ``nimrod run myfile``.
diff --git a/web/news/e004_version_0_8_12.rst b/web/news/e004_version_0_8_12.rst
deleted file mode 100644
index 5f154b2dba680..0000000000000
--- a/web/news/e004_version_0_8_12.rst
+++ /dev/null
@@ -1,122 +0,0 @@
-Version 0.8.12 released
-==================================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 10/07/2011
-
-Bugfixes
---------
-
-- Bugfix: ``httpclient`` correct passes the path starting with ``/``.
-- Bugfixes for the ``htmlparser`` module.
-- Bugfix: ``pegs.find`` did not respect ``start`` parameter.
-- Bugfix: ``dialogs.ChooseFilesToOpen`` did not work if only one file is
- selected.
-- Bugfix: niminst: ``nimrod`` is not default dir for *every* project.
-- Bugfix: Multiple yield statements in iterators did not cause local vars to be
- copied.
-- Bugfix: The compiler does not emit very inaccurate floating point literals
- anymore.
-- Bugfix: Subclasses are taken into account for ``try except`` matching.
-- Bugfix: Generics and macros are more stable. There are still known bugs left
- though.
-- Bugfix: Generated type information for tuples was sometimes wrong, causing
- random crashes.
-- Lots of other bugfixes: Too many to list them all.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- Operators starting with ``^`` are now right-associative and have the highest
- priority.
-- Deprecated ``os.getApplicationFilename``: Use ``os.getAppFilename`` instead.
-- Deprecated ``os.getApplicationDir``: Use ``os.getAppDir`` instead.
-- Deprecated ``system.copy``: Use ``substr`` or string slicing instead.
-- Changed and documented how generalized string literals work: The syntax
- ``module.re"abc"`` is now supported.
-- Changed the behaviour of ``strutils.%``, ``ropes.%``
- if both notations ``$#`` and ``$i`` are involved.
-- The ``pegs`` and ``re`` modules distinguish between ``replace``
- and ``replacef`` operations.
-- The pointer dereference operation ``p^`` is deprecated and might become
- ``^p`` in later versions or be dropped entirely since it is rarely used.
- Use the new notation ``p[]`` in the rare cases where you need to
- dereference a pointer explicitly.
-- ``system.readFile`` does not return ``nil`` anymore but raises an ``EIO``
- exception instead.
-- Unsound co-/contravariance for procvars has been removed.
-
-
-Language Additions
-------------------
-
-- Source code filters are now documented.
-- Added the ``linearScanEnd``, ``unroll``, ``shallow`` pragmas.
-- Added ``emit`` pragma for direct code generator control.
-- Case statement branches support constant sets for programming convenience.
-- Tuple unpacking is not enforced in ``for`` loops anymore.
-- The compiler now supports array, sequence and string slicing.
-- A field in an ``enum`` may be given an explicit string representation.
- This yields more maintainable code than using a constant
- ``array[TMyEnum, string]`` mapping.
-- Indices in array literals may be explicitly given, enhancing readability:
- ``[enumValueA: "a", enumValueB: "b"]``.
-- Added thread support via the ``threads`` core module and
- the ``--threads:on`` command line switch.
-- The built-in iterators ``system.fields`` and ``system.fieldPairs`` can be
- used to iterate over any field of a tuple. With this mechanism operations
- like ``==`` and ``hash`` are lifted to tuples.
-- The slice ``..`` is now a first-class operator, allowing code like:
- ``x in 1000..100_000``.
-
-
-Compiler Additions
-------------------
-
-- The compiler supports IDEs via the new group of ``idetools`` command line
- options.
-- The *interactive mode* (REPL) has been improved and documented for the
- first time.
-- The compiler now might use hashing for string case statements depending
- on the number of string literals in the case statement.
-
-
-Library Additions
------------------
-
-- Added ``lists`` module which contains generic linked lists.
-- Added ``sets`` module which contains generic hash sets.
-- Added ``tables`` module which contains generic hash tables.
-- Added ``queues`` module which contains generic sequence based queues.
-- Added ``intsets`` module which contains a specialized int set data type.
-- Added ``scgi`` module.
-- Added ``smtp`` module.
-- Added ``encodings`` module.
-- Added ``re.findAll``, ``pegs.findAll``.
-- Added ``os.findExe``.
-- Added ``parseutils.parseUntil`` and ``parseutils.parseWhile``.
-- Added ``strutils.align``, ``strutils.tokenize``, ``strutils.wordWrap``.
-- Pegs support a *captured search loop operator* ``{@}``.
-- Pegs support new built-ins: ``\letter``, ``\upper``, ``\lower``,
- ``\title``, ``\white``.
-- Pegs support the new built-in ``\skip`` operation.
-- Pegs support the ``$`` and ``^`` anchors.
-- Additional operations were added to the ``complex`` module.
-- Added ``strutils.formatFloat``, ``strutils.formatBiggestFloat``.
-- Added unary ``<`` for nice looking excluding upper bounds in ranges.
-- Added ``math.floor``.
-- Added ``system.reset`` and a version of ``system.open`` that
- returns a ``TFile`` and raises an exception in case of an error.
-- Added a wrapper for ``redis``.
-- Added a wrapper for ``0mq`` via the ``zmq`` module.
-- Added a wrapper for ``sphinx``.
-- Added ``system.newStringOfCap``.
-- Added ``system.raiseHook`` and ``system.outOfMemHook``.
-- Added ``system.writeFile``.
-- Added ``system.shallowCopy``.
-- ``system.echo`` is guaranteed to be thread-safe.
-- Added ``prelude`` include file for scripting convenience.
-- Added ``typeinfo`` core module for access to runtime type information.
-- Added ``marshal`` module for JSON serialization.
diff --git a/web/news/e005_version_0_8_14.rst b/web/news/e005_version_0_8_14.rst
deleted file mode 100644
index 4050c8b9307cd..0000000000000
--- a/web/news/e005_version_0_8_14.rst
+++ /dev/null
@@ -1,168 +0,0 @@
-2012-02-09 Version 0.8.14 released
-==================================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 09/02/2012
-
-Version 0.8.14 has been released!
-
-Bugfixes
---------
-
-- Fixed a serious memory corruption concerning message passing.
-- Fixed a serious bug concerning different instantiations of a generic proc.
-- Fixed a newly introduced bug where a wrong ``EIO`` exception was raised for
- the end of file for text files that do not end with a newline.
-- Bugfix c2nim, c2pas: the ``--out`` option has never worked properly.
-- Bugfix: forwarding of generic procs never worked.
-- Some more bugfixes for macros and compile-time evaluation.
-- The GC now takes into account interior pointers on the stack which may be
- introduced by aggressive C optimizers.
-- Nimrod's native allocator/GC now works on PowerPC.
-- Lots of other bugfixes: Too many to list them all.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- Removed deprecated ``os.AppendFileExt``, ``os.executeShellCommand``,
- ``os.iterOverEnvironment``, ``os.pcDirectory``, ``os.pcLinkToDirectory``,
- ``os.SplitPath``, ``os.extractDir``, ``os.SplitFilename``,
- ``os.extractFileTrunk``, ``os.extractFileExt``, ``osproc.executeProcess``,
- ``osproc.executeCommand``.
-- Removed deprecated ``parseopt.init``, ``parseopt.getRestOfCommandLine``.
-- Moved ``strutils.validEmailAddress`` to ``matchers.validEmailAddress``.
-- The pointer dereference operator ``^`` has been removed, so that ``^``
- can now be a user-defined operator.
-- ``implies`` is no keyword anymore.
-- The ``is`` operator is now the ``of`` operator.
-- The ``is`` operator is now used to check type equivalence in generic code.
-- The ``pure`` pragma for procs has been renamed to ``noStackFrame``.
-- The threading API has been completely redesigned.
-- The ``unidecode`` module is now thread-safe and its interface has changed.
-- The ``bind`` expression is deprecated, use a ``bind`` declaration instead.
-- ``system.raiseHook`` is now split into ``system.localRaiseHook`` and
- ``system.globalRaiseHook`` to distinguish between thread local and global
- raise hooks.
-- Changed exception handling/error reporting for ``os.removeFile`` and
- ``os.removeDir``.
-- The algorithm for searching and loading configuration files has been changed.
-- Operators now have diffent precedence rules: Assignment-like operators
- (like ``*=``) are now special-cased.
-- The fields in ``TStream`` have been renamed to have an ``Impl`` suffix
- because they should not be used directly anymore.
- Wrapper procs have been created that should be used instead.
-- ``export`` is now a keyword.
-- ``assert`` is now implemented in pure Nimrod as a template; it's easy
- to implement your own assertion templates with ``system.astToStr``.
-
-
-Language Additions
-------------------
-
-- Added new ``is`` and ``of`` operators.
-- The built-in type ``void`` can be used to denote the absence of any type.
- This is useful in generic code.
-- Return types may be of the type ``var T`` to return an l-value.
-- The error pragma can now be used to mark symbols whose *usage* should trigger
- a compile-time error.
-- There is a new ``discardable`` pragma that can be used to mark a routine
- so that its result can be discarded implicitly.
-- Added a new ``noinit`` pragma to prevent automatic initialization to zero
- of variables.
-- Constants can now have the type ``seq``.
-- There is a new user-definable syntactic construct ``a{i, ...}``
- that has no semantics yet for built-in types and so can be overloaded to your
- heart's content.
-- ``bind`` (used for symbol binding in templates and generics) is now a
- declarative statement.
-- Nimrod now supports single assignment variables via the ``let`` statement.
-- Iterators named ``items`` and ``pairs`` are implicitly invoked when
- an explicit iterator is missing.
-- The slice assignment ``a[i..j] = b`` where ``a`` is a sequence or string
- now supports *splicing*.
-
-
-Compiler Additions
-------------------
-
-- The compiler can generate C++ code for easier interfacing with C++.
-- The compiler can generate Objective C code for easier interfacing with
- Objective C.
-- The new pragmas ``importcpp`` and ``importobjc`` make interfacing with C++
- and Objective C somewhat easier.
-- Added a new pragma ``incompleteStruct`` to deal with incomplete C struct
- definitions.
-- Added a ``--nimcache:PATH`` configuration option for control over the output
- directory for generated code.
-- The ``--genScript`` option now produces different compilation scripts
- which do not contain absolute paths.
-- Added ``--cincludes:dir``, ``--clibdir:lib`` configuration options for
- modifying the C compiler's header/library search path in cross-platform way.
-- Added ``--clib:lib`` configuration option for specifying additional
- C libraries to be linked.
-- Added ``--mainmodule:file`` configuration options for specifying the main
- project file. This is intended to be used in project configuration files to
- allow commands like ``nimrod c`` or ``nimrod check`` to be executed anywhere
- within the project's directory structure.
-- Added a ``--app:staticlib`` option for creating static libraries.
-- Added a ``--tlsEmulation:on|off`` switch for control over thread local
- storage emulation.
-- The compiler and standard library now support a *taint mode*. Input strings
- are declared with the ``TaintedString`` string type. If the taint
- mode is turned on it is a distinct string type which helps to detect input
- validation errors.
-- The compiler now supports the compilation cache via ``--symbolFiles:on``.
- This potentially speeds up compilations by an order of magnitude, but is
- still highly experimental!
-- Added ``--import:file`` and ``--include:file`` configuration options
- for specifying modules that will be automatically imported/incluced.
-- ``nimrod i`` can now optionally be given a module to execute.
-- The compiler now performs a simple alias analysis to generate better code.
-- The compiler and ENDB now support *watchpoints*.
-- The compiler now supports proper compile time expressions of type ``bool``
- for ``on|off`` switches in pragmas. In order to not break existing code,
- ``on`` and ``off`` are now aliases for ``true`` and ``false`` and declared
- in the system module.
-- The compiler finally supports **closures**. This is a preliminary
- implementation, which does not yet support nestings deeper than 1 level
- and still has many known bugs.
-
-
-Library Additions
------------------
-
-- Added ``system.allocShared``, ``system.allocShared0``,
- ``system.deallocShared``, ``system.reallocShared``.
-- Slicing as implemented by the system module now supports *splicing*.
-- Added explicit channels for thread communication.
-- Added ``matchers`` module for email address etc. matching.
-- Added ``strutils.unindent``, ``strutils.countLines``,
- ``strutils.replaceWord``.
-- Added ``system.slurp`` for easy resource embedding.
-- Added ``system.running`` for threads.
-- Added ``system.programResult``.
-- Added ``xmltree.innerText``.
-- Added ``os.isAbsolute``, ``os.dynLibFormat``, ``os.isRootDir``,
- ``os.parentDirs``.
-- Added ``parseutils.interpolatedFragments``.
-- Added ``macros.treeRepr``, ``macros.lispRepr``, ``macros.dumpTree``,
- ``macros.dumpLisp``, ``macros.parseExpr``, ``macros.parseStmt``,
- ``macros.getAst``.
-- Added ``locks`` core module for more flexible locking support.
-- Added ``irc`` module.
-- Added ``ftpclient`` module.
-- Added ``memfiles`` module.
-- Added ``subexes`` module.
-- Added ``critbits`` module.
-- Added ``asyncio`` module.
-- Added ``actors`` module.
-- Added ``algorithm`` module for generic ``sort``, ``reverse`` etc. operations.
-- Added ``osproc.startCmd``, ``osproc.execCmdEx``.
-- The ``osproc`` module now uses ``posix_spawn`` instead of ``fork``
- and ``exec`` on Posix systems. Define the symbol ``useFork`` to revert to
- the old implementation.
-- Added ``intsets.assign``.
-- Added ``system.astToStr`` and ``system.rand``, ``system.doAssert``.
-- Added ``system.pairs`` for built-in types like arrays and strings.
diff --git a/web/news/e006_version_0_9_0.rst b/web/news/e006_version_0_9_0.rst
deleted file mode 100644
index 5635ca94cbd4c..0000000000000
--- a/web/news/e006_version_0_9_0.rst
+++ /dev/null
@@ -1,182 +0,0 @@
-Version 0.9.0 released
-======================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 23/09/2012
-
-Summary
--------
-
-* Unsigned integers have been added.
-* The integer type promotion rules changed.
-* The template and macro system evolved.
-* Closures have been implemented.
-* Term rewriting macros have been implemented.
-* First steps to unify expressions and statements have been taken.
-* Symbol lookup rules in generics have become stricter to catch more errors.
-
-
-Bugfixes
---------
-
-- Fixed a bug where the compiler would "optimize away" valid constant parts of
- a string concatenation.
-- Fixed a bug concerning implicit type conversions in ``case`` statements.
-- Fixed a serious code generation bug that caused ``algorithm.sort`` to
- produce segmentation faults.
-- Fixed ambiguity in recvLine which meant that receiving ``\r\L`` was
- indistinguishable from disconnections.
-- Many more bugfixes, too many to list them all.
-
-
-Library Additions
------------------
-
-- Added the (already existing) module ``htmlgen`` to the documentation.
-- Added the (already existing) module ``cookies`` to the documentation.
-- Added ``system.shallow`` that can be used to speed up string and sequence
- assignments.
-- Added ``system.eval`` that can execute an anonymous block of code at
- compile time as if was a macro.
-- Added ``system.staticExec`` and ``system.gorge`` for compile-time execution
- of external programs.
-- Added ``system.staticRead`` as a synonym for ``system.slurp``.
-- Added ``macros.emit`` that can emit an arbitrary computed string as nimrod
- code during compilation.
-- Added ``strutils.parseEnum``.
-- Added ``json.%`` constructor operator.
-- The stdlib can now be avoided to a point where C code generation for 16bit
- micro controllers is feasible.
-- Added module ``oids``.
-- Added module ``endians``.
-- Added a new OpenGL wrapper that supports OpenGL up to version 4.2.
-- Added a wrapper for ``libsvm``.
-- Added a wrapper for ``mongodb``.
-- Added ``terminal.isatty``.
-- Added an overload for ``system.items`` that can be used to iterate over the
- values of an enum.
-- Added ``system.TInteger`` and ``system.TNumber`` type classes matching
- any of the corresponding types available in Nimrod.
-- Added ``system.clamp`` to limit a value within an interval ``[a, b]``.
-- Added ``strutils.continuesWith``.
-- Added ``system.getStackTrace``.
-- Added ``system.||`` for parallel ``for`` loop support.
-- The GC supports (soft) realtime systems via ``GC_setMaxPause``
- and ``GC_step`` procs.
-- The sockets module now supports ssl through the OpenSSL library, ``recvLine``
- is now much more efficient thanks to the newly implemented sockets buffering.
-- The httpclient module now supports ssl/tls.
-- Added ``times.format`` as well as many other utility functions
- for managing time.
-- Added ``system.@`` for converting an ``openarray`` to a ``seq`` (it used to
- only support fixed length arrays).
-- Added ``system.compiles`` which can be used to check whether a type supports
- some operation.
-- Added ``strutils.format``, ``subexes.format`` which use the
- new ``varargs`` type.
-- Added module ``fsmonitor``.
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- On Windows filenames and paths are supposed to be in UTF-8.
- The ``system``, ``os``, ``osproc`` and ``memfiles`` modules use the wide
- string versions of the WinAPI. Use the ``-d:useWinAnsi`` switch to revert
- back to the old behaviour which uses the Ansi string versions.
-- ``static``, ``do``, ``interface`` and ``mixin`` are now keywords.
-- Templates now participate in overloading resolution which can break code that
- uses templates in subtle ways. Use the new ``immediate`` pragma for templates
- to get a template of old behaviour.
-- There is now a proper distinction in the type system between ``expr`` and
- ``PNimrodNode`` which unfortunately breaks the old macro system.
-- ``pegs.@`` has been renamed to ``pegs.!*`` and ``pegs.@@`` has been renamed
- to ``pegs.!*\`` as ``@`` operators now have different precedence.
-- The type ``proc`` (without any params or return type) is now considered a
- type class matching all proc types. Use ``proc ()`` to get the old meaning
- denoting a proc expecing no arguments and returing no value.
-- Deprecated ``system.GC_setStrategy``.
-- ``re.findAll`` and ``pegs.findAll`` don't return *captures* anymore but
- matching *substrings*.
-- RTTI and thus the ``marshall`` module don't contain the proper field names
- of tuples anymore. This had to be changed as the old behaviour never
- produced consistent results.
-- Deprecated the ``ssl`` module.
-- Deprecated ``nimrod pretty`` as it never worked good enough and has some
- inherent problems.
-- The integer promotion rules changed; the compiler is now less picky in some
- situations and more picky in other situations: In particular implicit
- conversions from ``int`` to ``int32`` are now forbidden.
-- ``system.byte`` is now an alias for ``uint8``; it used to be an alias
- to ``int8``.
-- ``bind`` expressions in templates are not properly supported anymore. Use
- the declarative ``bind`` statement instead.
-- The default calling convention for a procedural **type** is now ``closure``,
- for procs it remains ``nimcall`` (which is compatible to ``closure``).
- Activate the warning ``ImplicitClosure`` to make the compiler list the
- occurrences of proc types which are affected.
-- The Nimrod type system now distinguishes ``openarray`` from ``varargs``.
-- Templates are now ``hygienic``. Use the ``dirty`` pragma to get the old
- behaviour.
-- Objects that have no ancestor are now implicitly ``final``. Use
- the ``inheritable`` pragma to introduce new object roots apart
- from ``TObject``.
-- Macros now receive parameters like templates do; use the ``callsite`` builtin
- to gain access to the invocation AST.
-- Symbol lookup rules in generics have become stricter to catch more errors.
-
-
-Compiler Additions
-------------------
-
-- Win64 is now an officially supported target.
-- The Nimrod compiler works on BSD again, but has some issues
- as ``os.getAppFilename`` and ``os.getAppDir`` cannot work reliably on BSD.
-- The compiler can detect and evaluate calls that can be evaluated at compile
- time for optimization purposes with the ``--implicitStatic`` command line
- option or pragma.
-- The compiler now generates marker procs that the GC can use instead of RTTI.
- This speeds up the GC quite a bit.
-- The compiler now includes a new advanced documentation generator
- via the ``doc2`` command. This new generator uses all of the semantic passes
- of the compiler and can thus generate documentation for symbols hiding in
- macros.
-- The compiler now supports the ``dynlib`` pragma for variables.
-- The compiler now supports ``bycopy`` and ``byref`` pragmas that affect how
- objects/tuples are passed.
-- The embedded profiler became a stack trace profiler and has been documented.
-
-
-Language Additions
-------------------
-
-- Added explicit ``static`` sections for enforced compile time evaluation.
-- Added an alternative notation for lambdas with ``do``.
-- ``addr`` is now treated like a prefix operator syntactically.
-- Added ``global`` pragma that can be used to introduce new global variables
- from within procs.
-- ``when`` expressions are now allowed just like ``if`` expressions.
-- The precedence for operators starting with ``@`` is different now
- allowing for *sigil-like* operators.
-- Stand-alone ``finally`` and ``except`` blocks are now supported.
-- Macros and templates can now be invoked as pragmas.
-- The apostrophe in type suffixes for numerical literals is now optional.
-- Unsigned integer types have been added.
-- The integer promotion rules changed.
-- Nimrod now tracks proper intervals for ``range`` over some built-in operators.
-- In parameter lists a semicolon instead of a comma can be used to improve
- readability: ``proc divmod(a, b: int; resA, resB: var int)``.
-- A semicolon can now be used to have multiple simple statements on a single
- line: ``inc i; inc j``.
-- ``bind`` supports overloaded symbols and operators.
-- A ``distinct`` type can now borrow from generic procs.
-- Added the pragmas ``gensym``, ``inject`` and ``dirty`` for hygiene
- in templates.
-- Comments can be continued with a backslash continuation character so that
- comment pieces don't have to align on the same column.
-- Enums can be annotated with ``pure`` so that their field names do not pollute
- the current scope.
-- A proc body can consist of an expression that has a type. This is rewritten
- to ``result = expression`` then.
-- Term rewriting macros (see `trmacros `_)
- have been implemented but are still in alpha.
diff --git a/web/news/e007_version_0_9_2.rst b/web/news/e007_version_0_9_2.rst
deleted file mode 100644
index 89352c06c8b79..0000000000000
--- a/web/news/e007_version_0_9_2.rst
+++ /dev/null
@@ -1,118 +0,0 @@
-Version 0.9.2 released
-======================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 20/05/2013
-
-We are pleased to announce that version 0.9.2 of the Nimrod compiler has been
-released. This release has attracted by far the most contributions in comparison
-to any other release.
-
-This release brings with it many new features and bug fixes, a list of which
-can be seen later. One of the major new features is the effect system together
-with exception tracking which allows for checked exceptions and more,
-for further details check out the `manual `_.
-Another major new feature is the introduction of statement list expressions,
-more details on these can be found `here `_.
-The ability to exclude symbols from modules has also been
-implemented, this feature can be used like so: ``import module except symbol``.
-
-Thanks to all `contributors `_!
-
-Bugfixes
---------
-
-- The old GC never collected cycles correctly. Fixed but it can cause
- performance regressions. However you can deactivate the cycle collector
- with ``GC_disableMarkAndSweep`` and run it explicitly at an appropriate time
- or not at all. There is also a new GC you can activate
- with ``--gc:markAndSweep`` which does not have this problem but is slower in
- general and has no realtime guarantees.
-- ``cast`` for floating point types now does the bitcast as specified in the
- manual. This breaks code that erroneously uses ``cast`` to convert different
- floating point values.
-- SCGI module's performance has been improved greatly, it will no longer block
- on many concurrent requests.
-- In total fixed over 70 github issues and merged over 60 pull requests.
-
-
-Library Additions
------------------
-
-- There is a new experimental mark&sweep GC which can be faster (or much
- slower) than the default GC. Enable with ``--gc:markAndSweep``.
-- Added ``system.onRaise`` to support a condition system.
-- Added ``system.locals`` that provides access to a proc's locals.
-- Added ``macros.quote`` for AST quasi-quoting.
-- Added ``system.unsafeNew`` to support hacky variable length objects.
-- ``system.fields`` and ``system.fieldPairs`` support ``object`` too; they
- used to only support tuples.
-- Added ``system.CurrentSourcePath`` returning the full file-system path of
- the current source file.
-- The ``macros`` module now contains lots of useful helpers for building up
- abstract syntax trees.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- ``shared`` is a keyword now.
-- Deprecated ``sockets.recvLine`` and ``asyncio.recvLine``, added
- ``readLine`` instead.
-- The way indentation is handled in the parser changed significantly. However,
- this affects very little (if any) real world code.
-- The expression/statement unification has been implemented. Again this
- only affects edge cases and no known real world code.
-- Changed the async interface of the ``scgi`` module.
-- WideStrings are now garbage collected like other string types.
-
-
-Compiler Additions
-------------------
-
-- The ``doc2`` command does not generate output for the whole project anymore.
- Use the new ``--project`` switch to enable this behaviour.
-- The compiler can now warn about shadowed local variables. However, this needs
- to be turned on explicitly via ``--warning[ShadowIdent]:on``.
-- The compiler now supports almost every pragma in a ``push`` pragma.
-- Generic converters have been implemented.
-- Added a **highly experimental** ``noforward`` pragma enabling a special
- compilation mode that largely eliminates the need for forward declarations.
-
-Language Additions
-------------------
-
-- ``case expressions`` are now supported.
-- Table constructors now mimic more closely the syntax of the ``case``
- statement.
-- Nimrod can now infer the return type of a proc from its body.
-- Added a ``mixin`` declaration to affect symbol binding rules in generics.
-- Exception tracking has been added and the ``doc2`` command annotates possible
- exceptions for you.
-- User defined effects ("tags") tracking has been added and the ``doc2``
- command annotates possible tags for you.
-- Types can be annotated with the new syntax ``not nil`` to explicitly state
- that ``nil`` is not allowed. However currently the compiler performs no
- advanced static checking for this; for now it's merely for documentation
- purposes.
-- An ``export`` statement has been added to the language: It can be used for
- symbol forwarding so client modules don't have to import a module's
- dependencies explicitly.
-- Overloading based on ASTs has been implemented.
-- Generics are now supported for multi methods.
-- Objects can be initialized via an *object constructor expression*.
-- There is a new syntactic construct ``(;)`` unifying expressions and
- statements.
-- You can now use ``from module import nil`` if you want to import the module
- but want to enforce fully qualified access to every symbol in ``module``.
-
-
-Notes for the future
---------------------
-
-- The scope rules of ``if`` statements will change in 0.9.4. This affects the
- ``=~`` pegs/re templates.
-- The ``sockets`` module will become a low-level wrapper of OS-specific socket
- functions. All the high-level features of the current ``sockets`` module
- will be moved to a ``network`` module.
diff --git a/web/news/e008_new_website.rst b/web/news/e008_new_website.rst
deleted file mode 100644
index b36cc99ddf8aa..0000000000000
--- a/web/news/e008_new_website.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-New website design!
-===================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 09/12/2014
-
-A brand new website including an improved forum is now live.
-All thanks go to Philip Witte and
-Dominik Picheta, Philip Witte for the design of the website (together with
-the logo) as well as the HTML and CSS code for his template, and Dominik Picheta
-for integrating Philip's design with Nim's forum. We're sure you will
-agree that Philip's design is beautiful.
diff --git a/web/news/e009_andreas_rumpfs_talk.rst b/web/news/e009_andreas_rumpfs_talk.rst
deleted file mode 100644
index 00cc5e1017c1d..0000000000000
--- a/web/news/e009_andreas_rumpfs_talk.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-2014-01-15 Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online
-============================================================================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 12/01/2014
-
-Andreas Rumpf presented *Nimrod: A New Approach to Metaprogramming* at
-`Strange Loop 2013`_.
-The `video and slides`_
-of the talk are now available.
diff --git a/web/news/e010_dr_dobbs_journal.rst b/web/news/e010_dr_dobbs_journal.rst
deleted file mode 100644
index b48ccf31f6113..0000000000000
--- a/web/news/e010_dr_dobbs_journal.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Nimrod Featured in Dr. Dobb's Journal
-=====================================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 11/02/2014
-
-Nimrod has been `featured`_
-as the cover story in the February 2014 issue of Dr. Dobb's Journal.
diff --git a/web/news/e011_version_0_9_4.rst b/web/news/e011_version_0_9_4.rst
deleted file mode 100644
index 2714c5c780a71..0000000000000
--- a/web/news/e011_version_0_9_4.rst
+++ /dev/null
@@ -1,179 +0,0 @@
-2014-04-21 Version 0.9.4 released
-=================================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 21/04/2014
-
-The Nimrod development community is proud to announce the release of version
-0.9.4 of the Nimrod compiler and tools. **Note: This release has to be
-considered beta quality! Lots of new features have been implemented but
-unfortunately some do not fulfill our quality standards yet.**
-
-Prebuilt binaries and instructions for building from source are available
-on the `download page `_.
-
-This release includes about
-`1400 changes `_
-in total including various bug
-fixes, new languages features and standard library additions and improvements.
-This release brings with it support for user-defined type classes, a brand
-new VM for executing Nimrod code at compile-time and new symbol binding
-rules for clean templates.
-
-It also introduces support for the brand new
-`Babel package manager `_ which
-has itself seen its first release recently. Many of the wrappers that were
-present in the standard library have been moved to separate repositories
-and should now be installed using Babel.
-
-Apart from that a new **experimental** Asynchronous IO API has been added via
-the ``asyncdispatch`` and ``asyncnet`` modules. The ``net`` and ``rawsockets``
-modules have also been added and they will likely replace the sockets
-module in the next release. The Asynchronous IO API has been designed to
-take advantage of Linux's epoll and Windows' IOCP APIs, support for BSD's
-kqueue has not been implemented yet but will be in the future.
-The Asynchronous IO API provides both
-a callback interface and an interface which allows you to write code as you
-would if you were writing synchronous code. The latter is done through
-the use of an ``await`` macro which behaves similar to C#'s await. The
-following is a very simple chat server demonstrating Nimrod's new async
-capabilities.
-
-.. code-block::nim
- import asyncnet, asyncdispatch
-
- var clients: seq[PAsyncSocket] = @[]
-
- proc processClient(client: PAsyncSocket) {.async.} =
- while true:
- let line = await client.recvLine()
- for c in clients:
- await c.send(line & "\c\L")
-
- proc serve() {.async.} =
- var server = newAsyncSocket()
- server.bindAddr(TPort(12345))
- server.listen()
-
- while true:
- let client = await server.accept()
- clients.add client
-
- processClient(client)
-
- serve()
- runForever()
-
-
-Note that this feature has been implemented with Nimrod's macro system and so
-``await`` and ``async`` are no keywords.
-
-Syntactic sugar for anonymous procedures has also been introduced. It too has
-been implemented as a macro. The following shows some simple usage of the new
-syntax:
-
-.. code-block::nim
- import future
-
- var s = @[1, 2, 3, 4, 5]
- echo(s.map((x: int) => x * 5))
-
-A list of changes follows, for a comprehensive list of changes take a look
-`here `_.
-
-Library Additions
------------------
-
-- Added ``macros.genSym`` builtin for AST generation.
-- Added ``macros.newLit`` procs for easier AST generation.
-- Added module ``logging``.
-- Added module ``asyncdispatch``.
-- Added module ``asyncnet``.
-- Added module ``net``.
-- Added module ``rawsockets``.
-- Added module ``selectors``.
-- Added module ``asynchttpserver``.
-- Added support for the new asynchronous IO in the ``httpclient`` module.
-- Added a Python-inspired ``future`` module that features upcoming additions
- to the ``system`` module.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- The scoping rules for the ``if`` statement changed for better interaction
- with the new syntactic construct ``(;)``.
-- ``OSError`` family of procedures has been deprecated. Procedures with the same
- name but which take different parameters have been introduced. These procs now
- require an error code to be passed to them. This error code can be retrieved
- using the new ``OSLastError`` proc.
-- ``os.parentDir`` now returns "" if there is no parent dir.
-- In CGI scripts stacktraces are shown to the user only
- if ``cgi.setStackTraceStdout`` is used.
-- The symbol binding rules for clean templates changed: ``bind`` for any
- symbol that's not a parameter is now the default. ``mixin`` can be used
- to require instantiation scope for a symbol.
-- ``quoteIfContainsWhite`` now escapes argument in such way that it can be safely
- passed to shell, instead of just adding double quotes.
-- ``macros.dumpTree`` and ``macros.dumpLisp`` have been made ``immediate``,
- ``dumpTreeImm`` and ``dumpLispImm`` are now deprecated.
-- The ``nil`` statement has been deprecated, use an empty ``discard`` instead.
-- ``sockets.select`` now prunes sockets that are **not** ready from the list
- of sockets given to it.
-- The ``noStackFrame`` pragma has been renamed to ``asmNoStackFrame`` to
- ensure you only use it when you know what you're doing.
-- Many of the wrappers that were present in the standard library have been
- moved to separate repositories and should now be installed using Babel.
-
-
-Compiler Additions
-------------------
-
-- The compiler can now warn about "uninitialized" variables. (There are no
- real uninitialized variables in Nimrod as they are initialized to binary
- zero). Activate via ``{.warning[Uninit]:on.}``.
-- The compiler now enforces the ``not nil`` constraint.
-- The compiler now supports a ``codegenDecl`` pragma for even more control
- over the generated code.
-- The compiler now supports a ``computedGoto`` pragma to support very fast
- dispatching for interpreters and the like.
-- The old evaluation engine has been replaced by a proper register based
- virtual machine. This fixes numerous bugs for ``nimrod i`` and for macro
- evaluation.
-- ``--gc:none`` produces warnings when code uses the GC.
-- A ``union`` pragma for better C interoperability is now supported.
-- A ``packed`` pragma to control the memory packing/alignment of fields in
- an object.
-- Arrays can be annotated to be ``unchecked`` for easier low level
- manipulations of memory.
-- Support for the new Babel package manager.
-
-
-Language Additions
-------------------
-
-- Arrays can now be declared with a single integer literal ``N`` instead of a
- range; the range is then ``0..N-1``.
-- Added ``requiresInit`` pragma to enforce explicit initialization.
-- Exported templates are allowed to access hidden fields.
-- The ``using statement`` enables you to more easily author domain-specific
- languages and libraries providing OOP-like syntactic sugar.
-- Added the possibility to override various dot operators in order to handle
- calls to missing procs and reads from undeclared fields at compile-time.
-- The overload resolution now supports ``static[T]`` params that must be
- evaluable at compile-time.
-- Support for user-defined type classes has been added.
-- The *command syntax* is supported in a lot more contexts.
-- Anonymous iterators are now supported and iterators can capture variables
- of an outer proc.
-- The experimental ``strongSpaces`` parsing mode has been implemented.
-- You can annotate pointer types with regions for increased type safety.
-- Added support for the builtin ``spawn`` for easy thread pool usage.
-
-
-Tools improvements
-------------------
-
-- c2nim can deal with a subset of C++. Use the ``--cpp`` command line option
- to activate.
diff --git a/web/news/e012_version_0_9_6.rst b/web/news/e012_version_0_9_6.rst
deleted file mode 100644
index 7a148aaa5eccb..0000000000000
--- a/web/news/e012_version_0_9_6.rst
+++ /dev/null
@@ -1,65 +0,0 @@
-Version 0.9.6 released
-=================================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 19/10/2014
-
-**Note: 0.9.6 is the last release of Nimrod. The language is being renamed to
-Nim. Nim slightly breaks compatibility.**
-
-This is a maintenance release. The upcoming 0.10.0 release has
-the new features and exciting developments.
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- ``spawn`` now uses an elaborate self-adapting thread pool and as such
- has been moved into its own module. So to use it, you now have to import
- ``threadpool``.
-- The symbol binding rules in generics changed: ``bar`` in ``foo.bar`` is
- now considered for implicit early binding.
-- ``c2nim`` moved into its own repository and is now a Babel package.
-- ``pas2nim`` moved into its own repository and is now a Babel package.
-- ``system.$`` for floating point types now produces a human friendly string
- representation.
-- ``uri.TUrl`` as well as the ``parseurl`` module are now deprecated in favour
- of the new ``TUri`` type in the ``uri`` module.
-- The ``destructor`` pragma has been deprecated. Use the ``override`` pragma
- instead. The destructor's name has to be ``destroy`` now.
-- ``lambda`` is not a keyword anymore.
-- **system.defined has been split into system.defined and system.declared**.
- You have to use ``--symbol`` to declare new conditional symbols that can be
- set via ``--define``.
-- ``--threadanalysis:on`` is now the default. To make your program compile
- you can disable it but this is only a temporary solution as this option
- will disappear soon!
-
-
-Compiler improvements
----------------------
-
-- Multi method dispatching performance has been improved by a factor of 10x for
- pathological cases.
-
-
-Language Additions
-------------------
-
-- This version introduces the ``deprecated`` pragma statement that is used
- to handle the upcoming massive amount of symbol renames.
-- ``spawn`` can now wrap proc that has a return value. It then returns a data
- flow variable of the wrapped return type.
-
-
-Library Additions
------------------
-
-- Added module ``cpuinfo``.
-- Added module ``threadpool``.
-- ``sequtils.distnct`` has been renamed to ``sequtils.deduplicate``.
-- Added ``algorithm.reversed``
-- Added ``uri.combine`` and ``uri.parseUri``.
-- Some sockets procedures now support a ``SafeDisconn`` flag which causes
- them to handle disconnection errors and not raise them.
diff --git a/web/news/e013_version_0_10_2.rst b/web/news/e013_version_0_10_2.rst
deleted file mode 100644
index ad8afa3bfa223..0000000000000
--- a/web/news/e013_version_0_10_2.rst
+++ /dev/null
@@ -1,198 +0,0 @@
-Version 0.10.2 released
-=======================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 29/12/2014
-
-This release marks the completion of a very important change to the project:
-the official renaming from Nimrod to Nim. Version 0.10.2 contains many language
-changes, some of which may break your existing code. For your convenience, we
-added a new tool called `nimfix `_ that will help you convert your
-existing projects so that it works with the latest version of the compiler.
-
-Progress towards version 1.0
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Although Nim is still pre-1.0, we were able to keep the number of breaking
-changes to a minimum so far. Starting with version 1.0, we will not introduce
-any breaking changes between major release versions.
-One of Nim's goals is to ensure that the compiler is as efficient as possible.
-Take a look at the
-`latest benchmarks `_,
-which show that Nim is consistently near
-the top and already nearly as fast as C and C++. Recent developments, such as
-the new ``asyncdispatch`` module will allow you to write efficient web server
-applications using non-blocking code. Nim now also has a built-in thread pool
-for lightweight threading through the use of ``spawn``.
-
-The unpopular "T" and "P" prefixes on types have been deprecated. Nim also
-became more expressive by weakening the distinction between statements and
-expressions. We also added a new and searchable forum, a new website, and our
-documentation generator ``docgen`` has seen major improvements. Many thanks to
-Nick Greenfield for the much more beautiful documentation!
-
-
-
-What's left to be done
-~~~~~~~~~~~~~~~~~~~~~~
-
-The 1.0 release is actually very close. Apart from bug fixes, there are
-two major features missing or incomplete:
-
-* ``static[T]`` needs to be defined precisely and the bugs in the
- implementation need to be fixed.
-* Overloading of the assignment operator is required for some generic
- containers and needs to be implemented.
-
-This means that fancy matrix libraries will finally start to work, which used
-to be a major point of pain in the language.
-
-
-Nimble and other Nim tools
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Outside of the language and the compiler itself many Nim tools have seen
-considerable improvements.
-
-Babel the Nim package manager has been renamed to Nimble. Nimble's purpose
-is the installation of packages containing libraries and/or applications
-written in Nim.
-Even though Nimble is still very young it already is very
-functional. It can install packages by name, it does so by accessing a
-packages repository which is hosted on a GitHub repo. Packages can also be
-installed via a Git repo URL or Mercurial repo URL. The package repository
-is searchable through Nimble. Anyone is free to add their own packages to
-the package repository by forking the
-`nim-lang/packages `_ repo and creating
-a pull request. Nimble is fully cross-platform and should be fully functional
-on all major operating systems.
-It is of course completely written in Nim.
-
-Changelog
-~~~~~~~~~
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- **The language has been renamed from Nimrod to Nim.** The name of the
- compiler changed from ``nimrod`` to ``nim`` too.
-- ``system.fileHandle`` has been renamed to ``system.getFileHandle`` to
- prevent name conflicts with the new type ``FileHandle``.
-- Comments are now not part of the AST anymore, as such you cannot use them
- in place of ``discard``.
-- Large parts of the stdlib got rid of the T/P type prefixes. Instead most
- types now simply start with an uppercased letter. The
- so called "partial case sensitivity" rule is now active allowing for code
- like ``var foo: Foo`` in more contexts.
-- String case (or any non-ordinal case) statements
- without 'else' are deprecated.
-- Recursive tuple types are not allowed anymore. Use ``object`` instead.
-- The PEGS module returns ``nil`` instead of ``""`` when an optional capture
- fails to match.
-- The re module returns ``nil`` instead of ``""`` when an optional capture
- fails to match.
-- The "symmetric set difference" operator (``-+-``) never worked and has been
- removed.
-- ``defer`` is a keyword now.
-- ``func`` is a keyword now.
-- The ``using`` language feature now needs to be activated via the new
- ``{.experimental.}`` pragma that enables experimental language features.
-- Destructors are now officially *experimental*.
-- Standalone ``except`` and ``finally`` statements are deprecated now.
- The standalone ``finally`` can be replaced with ``defer``,
- standalone ``except`` requires an explicit ``try``.
-- Operators ending in ``>`` are considered as "arrow like" and have their
- own priority level and are right associative. This means that
- the ``=>`` and ``->`` operators from the `future `_ module
- work better.
-- Field names in tuples are now ignored for type comparisons. This allows
- for greater interoperability between different modules.
-- Statement lists are not converted to an implicit ``do`` block anymore. This
- means the confusing ``nnkDo`` nodes when working with macros are gone for
- good.
-
-
-Language Additions
-------------------
-
-- The new concurrency model has been implemented including ``locks`` sections,
- lock levels and object field ``guards``.
-- The ``parallel`` statement has been implemented.
-- ``deepCopy`` has been added to the language.
-- The builtin ``procCall`` can be used to get ``super``-like functionality
- for multi methods.
-- There is a new pragma ``{.experimental.}`` that enables experimental
- language features per module, or you can enable these features on a global
- level with the ``--experimental`` command line option.
-
-
-Compiler Additions
-------------------
-
-- The compiler now supports *mixed* Objective C / C++ / C code generation:
- The modules that use ``importCpp`` or ``importObjc`` are compiled to C++
- or Objective C code, any other module is compiled to C code. This
- improves interoperability.
-- There is a new ``parallel`` statement for safe fork&join parallel computing.
-- ``guard`` and ``lock`` pragmas have been implemented to support safer
- concurrent programming.
-- The following procs are now available at compile-time::
-
- math.sqrt, math.ln, math.log10, math.log2, math.exp, math.round,
- math.arccos, math.arcsin, math.arctan, math.arctan2, math.cos,
- math.cosh, math.hypot, math.sinh, math.sin, math.tan, math.tanh,
- math.pow, math.trunc, math.floor, math.ceil, math.fmod,
- os.getEnv, os.existsEnv, os.dirExists, os.fileExists,
- system.writeFile
-
-- Two backticks now produce a single backtick within an ``emit`` or ``asm``
- statement.
-- There is a new tool, `nimfix `_ to help you in updating your
- code from Nimrod to Nim.
-- The compiler's output has been prettified.
-
-Library Additions
------------------
-
-- Added module ``fenv`` to control the handling of floating-point rounding and
- exceptions (overflow, division by zero, etc.).
-- ``system.setupForeignThreadGc`` can be used for better interaction with
- foreign libraries that create threads and run a Nim callback from these
- foreign threads.
-- List comprehensions have been implemented as a macro in the ``future``
- module.
-- The new Async module (``asyncnet``) now supports SSL.
-- The ``smtp`` module now has an async implementation.
-- Added module ``asyncfile`` which implements asynchronous file reading
- and writing.
-- ``osproc.kill`` has been added.
-- ``asyncnet`` and ``asynchttpserver`` now support ``SO_REUSEADDR``.
-
-Bugfixes
---------
-
-- ``nil`` and ``NULL`` are now preserved between Nim and databases in the
- ``db_*`` modules.
-- Fixed issue with OS module in non-unicode mode on Windows.
-- Fixed issue with ``x.low``
- (`#1366 `_).
-- Fixed tuple unpacking issue inside closure iterators
- (`#1067 `_).
-- Fixed ENDB compilation issues.
-- Many ``asynchttpserver`` fixes.
-- Macros can now keep global state across macro calls
- (`#903 `_).
-- ``osproc`` fixes on Windows.
-- ``osproc.terminate`` fixed.
-- Improvements to exception handling in async procedures.
- (`#1487 `_).
-- ``try`` now works at compile-time.
-- Fixes ``T = ref T`` to be an illegal recursive type.
-- Self imports are now disallowed.
-- Improved effect inference.
-- Fixes for the ``math`` module on Windows.
-- User defined pragmas will now work for generics that have
- been instantiated in different modules.
-- Fixed queue exhaustion bug.
-- Many, many more.
diff --git a/web/news/e014_version_0_11_0.rst b/web/news/e014_version_0_11_0.rst
deleted file mode 100644
index a8a58f2ae7d92..0000000000000
--- a/web/news/e014_version_0_11_0.rst
+++ /dev/null
@@ -1,396 +0,0 @@
-Version 0.11.0 released
-=======================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 30/04/2015
-
-With this release we are one step closer to reaching version 1.0 and by
-extension the persistence of the Nim specification. As mentioned in the
-previous release notes, starting with version 1.0, we will not be introducing
-any more breaking changes to Nim.
-
-The *language* itself is very close to 1.0, the primary area that requires
-more work is the standard library.
-
-Take a look at the `download `_ page for binaries (Windows-only)
-and 0.11.0 snapshots of the source code. The Windows installer now also
-includes `Aporia `_,
-`Nimble `_ and other useful tools to get
-you started with Nim.
-
-What's left to be done
-~~~~~~~~~~~~~~~~~~~~~~
-
-The 1.0 release is expected by the end of this year. Rumors say it will be in
-summer 2015. What's left:
-
-* Bug fixes, bug fixes, bug fixes, in particular:
- - The remaining bugs of the lambda lifting pass that is responsible to enable
- closures and closure iterators need to be fixed.
- - ``concept`` needs to be refined, a nice name for the feature is not enough.
- - Destructors need to be refined.
- - ``static[T]`` needs to be fixed.
- - Finish the implementation of the 'parallel' statement.
-* ``immediate`` templates and macros will be deprecated as these will soon be
- completely unnecessary, instead the ``typed`` or ``untyped`` metatypes can
- be used.
-* More of the standard library should be moved to Nimble packages and what's
- left should use the features we have for concurrency and parallelism.
-
-
-
-Changes affecting backwards compatibility
------------------------------------------
-
-- Parameter names are finally properly ``gensym``'ed. This can break
- templates though that used to rely on the fact that they are not.
- (Bug #1915.) This means this doesn't compile anymore:
-
-.. code-block:: nim
-
- template doIt(body: stmt) {.immediate.} =
- # this used to inject the 'str' parameter:
- proc res(str: string) =
- body
-
- doIt:
- echo str # Error: undeclared identifier: 'str'
-..
-
- This used to inject the ``str`` parameter into the scope of the body.
- Declare the ``doIt`` template as ``immediate, dirty`` to get the old
- behaviour.
-- Tuple field names are not ignored anymore, this caused too many problems
- in practice so now the behaviour is as it was for version 0.9.6: If field
- names exist for the tuple type, they are checked.
-- ``logging.level`` and ``logging.handlers`` are no longer exported.
- ``addHandler``, ``getHandlers``, ``setLogFilter`` and ``getLogFilter``
- should be used instead.
-- ``nim idetools`` has been replaced by a separate
- tool `nimsuggest <0.11.0/nimsuggest.html>`_.
-- *arrow like* operators are not right associative anymore and are required
- to end with either ``->``, ``~>`` or
- ``=>``, not just ``>``. Examples of operators still considered arrow like:
- ``->``, ``==>``, ``+=>``. On the other hand, the following operators are now
- considered regular operators again: ``|>``, ``-+>``, etc.
-- Typeless parameters are now only allowed in templates and macros. The old
- way turned out to be too error-prone.
-- The 'addr' and 'type' operators are now parsed as unary function
- application. This means ``type(x).name`` is now parsed as ``(type(x)).name``
- and not as ``type((x).name)``. Note that this also affects the AST
- structure; for immediate macro parameters ``nkCall('addr', 'x')`` is
- produced instead of ``nkAddr('x')``.
-- ``concept`` is now a keyword and is used instead of ``generic``.
-- The ``inc``, ``dec``, ``+=``, ``-=`` builtins now produce OverflowError
- exceptions. This means code like the following:
-
-.. code-block:: nim
- var x = low(T)
- while x <= high(T):
- echo x
- inc x
-
-Needs to be replaced by something like this:
-
-.. code-block:: nim
- var x = low(T).int
- while x <= high(T).int:
- echo x.T
- inc x
-
-- **Negative indexing for slicing does not work anymore!** Instead
- of ``a[0.. -1]`` you can
- use ``a[0.. ^1]``. This also works with accessing a single
- element ``a[^1]``. Note that we cannot detect this reliably as it is
- determined at **runtime** whether negative indexing is used!
- ``a[0.. -1]`` now produces the empty string/sequence.
-- The compiler now warns about code like ``foo +=1`` which uses inconsistent
- spacing around binary operators. Later versions of the language will parse
- these as unary operators instead so that ``echo $foo`` finally can do what
- people expect it to do.
-- ``system.untyped`` and ``system.typed`` have been introduced as aliases
- for ``expr`` and ``stmt``. The new names capture the semantics much better
- and most likely ``expr`` and ``stmt`` will be deprecated in favor of the
- new names.
-- The ``split`` method in module ``re`` has changed. It now handles the case
- of matches having a length of 0, and empty strings being yielded from the
- iterator. A notable change might be that a pattern being matched at the
- beginning and end of a string, will result in an empty string being produced
- at the start and the end of the iterator.
-- The compiler and nimsuggest now count columns starting with 1, not 0 for
- consistency with the rest of the world.
-
-
-Language Additions
-------------------
-
-- For empty ``case object`` branches ``discard`` can finally be used instead
- of ``nil``.
-- Automatic dereferencing is now done for the first argument of a routine
- call if overloading resolution produces no match otherwise. This feature
- has to be enabled with
- the `experimental <0.11.0/manual.html#pragmas-experimental-pragma>`_ pragma.
-- Objects that do not use inheritance nor ``case`` can be put into ``const``
- sections. This means that finally this is possible and produces rather
- nice code:
-
-.. code-block:: nim
- import tables
-
- const
- foo = {"ah": "finally", "this": "is", "possible.": "nice!"}.toTable()
-
-
-- Ordinary parameters can follow after a varargs parameter. This means the
- following is finally accepted by the compiler:
-
-.. code-block:: nim
- template takesBlock(a, b: int, x: varargs[expr]; blck: stmt) =
- blck
- echo a, b
-
- takesBlock 1, 2, "some", 0.90, "random stuff":
- echo "yay"
-
-- Overloading by 'var T' is now finally possible:
-
-.. code-block:: nim
- proc varOrConst(x: var int) = echo "var"
- proc varOrConst(x: int) = echo "const"
-
- var x: int
- varOrConst(x) # "var"
- varOrConst(45) # "const"
-
-- Array and seq indexing can now use the builtin ``^`` operator to access
- things from backwards: ``a[^1]`` is like Python's ``a[-1]``.
-- A first version of the specification and implementation of the overloading
- of the assignment operator has arrived!
-- ``system.len`` for strings and sequences now returns 0 for nil.
-
-- A single underscore can now be used to discard values when unpacking tuples:
-
-.. code-block:: nim
- let (path, _, _) = os.splitFile("path/file.ext")
-
-
-- ``marshal.$$`` and ``marshal.to`` can be executed at compile-time.
-- Interoperability with C++ improved tremendously; C++'s templates and
- operators can be wrapped directly. See
- `this <0.11.0/nimc.html#additional-features-importcpp-pragma>`_
- for more information.
-- ``macros.getType`` can be used to query an AST's type at compile-time. This
- enables more powerful macros, for instance *currying* can now be done with
- a macro.
-
-
-Library additions
------------------
-
-- ``reversed`` proc added to the ``unicode`` module.
-- Added multipart param to httpclient's ``post`` and ``postContent`` together
- with a ``newMultipartData`` proc.
-- Added `%*` operator for JSON.
-- The compiler is now available as Nimble package for c2nim.
-- Added ``..^`` and ``..<`` templates to system so that the rather annoying
- space between ``.. <`` and ``.. ^`` is not necessary anymore.
-- Added ``system.xlen`` for strings and sequences to get back the old ``len``
- operation that doesn't check for ``nil`` for efficiency.
-- Added sexp.nim to parse and generate sexp.
-
-
-Bugfixes
---------
-
-- Fixed internal compiler error when using ``char()`` in an echo call
- (`#1788 `_).
-- Fixed Windows cross-compilation on Linux.
-- Overload resolution now works for types distinguished only by a
- ``static[int]`` param
- (`#1056 `_).
-- Other fixes relating to generic types and static params.
-- Fixed some compiler crashes with unnamed tuples
- (`#1774 `_).
-- Fixed ``channels.tryRecv`` blocking
- (`#1816 `_).
-- Fixed generic instantiation errors with ``typedesc``
- (`#419 `_).
-- Fixed generic regression where the compiler no longer detected constant
- expressions properly (`#544 `_).
-- Fixed internal error with generic proc using ``static[T]`` in a specific
- way (`#1049 `_).
-- More fixes relating to generics (`#1820 `_,
- `#1050 `_,
- `#1859 `_,
- `#1858 `_).
-- Fixed httpclient to properly encode queries.
-- Many fixes to the ``uri`` module.
-- Async sockets are now closed on error.
-- Fixes to httpclient's handling of multipart data.
-- Fixed GC segfaults with asynchronous sockets
- (`#1796 `_).
-- Added more versions to openssl's DLL version list
- (`076f993 `_).
-- Fixed shallow copy in iterators being broken
- (`#1803 `_).
-- ``nil`` can now be inserted into tables with the ``db_sqlite`` module
- (`#1866 `_).
-- Fixed "Incorrect assembler generated"
- (`#1907 `_)
-- Fixed "Expression templates that define macros are unusable in some contexts"
- (`#1903 `_)
-- Fixed "a second level generic subclass causes the compiler to crash"
- (`#1919 `_)
-- Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC "
- (`#1901 `_)
-- Fixed "1 shl n produces wrong C code"
- (`#1928 `_)
-- Fixed "Internal error on tuple yield"
- (`#1838 `_)
-- Fixed "ICE with template"
- (`#1915 `_)
-- Fixed "include the tool directory in the installer as it is required by koch"
- (`#1947 `_)
-- Fixed "Can't compile if file location contains spaces on Windows"
- (`#1955 `_)
-- Fixed "List comprehension macro only supports infix checks as guards"
- (`#1920 `_)
-- Fixed "wrong field names of compatible tuples in generic types"
- (`#1910 `_)
-- Fixed "Macros within templates no longer work as expected"
- (`#1944 `_)
-- Fixed "Compiling for Standalone AVR broken in 0.10.2"
- (`#1964 `_)
-- Fixed "Compiling for Standalone AVR broken in 0.10.2"
- (`#1964 `_)
-- Fixed "Code generation for mitems with tuple elements"
- (`#1833 `_)
-- Fixed "httpclient.HttpMethod should not be an enum"
- (`#1962 `_)
-- Fixed "terminal / eraseScreen() throws an OverflowError"
- (`#1906 `_)
-- Fixed "setControlCHook(nil) disables registered quit procs"
- (`#1546 `_)
-- Fixed "Unexpected idetools behaviour"
- (`#325 `_)
-- Fixed "Unused lifted lambda does not compile"
- (`#1642 `_)
-- Fixed "'low' and 'high' don't work with cstring asguments"
- (`#2030 `_)
-- Fixed "Converting to int does not round in JS backend"
- (`#1959 `_)
-- Fixed "Internal error genRecordField 2 when adding region to pointer."
- (`#2039 `_)
-- Fixed "Macros fail to compile when compiled with --os:standalone"
- (`#2041 `_)
-- Fixed "Reading from {.compileTime.} variables can cause code generation to fail"
- (`#2022 `_)
-- Fixed "Passing overloaded symbols to templates fails inside generic procedures"
- (`#1988 `_)
-- Fixed "Compiling iterator with object assignment in release mode causes "var not init""
- (`#2023 `_)
-- Fixed "calling a large number of macros doing some computation fails"
- (`#1989 `_)
-- Fixed "Can't get Koch to install nim under Windows"
- (`#2061 `_)
-- Fixed "Template with two stmt parameters segfaults compiler"
- (`#2057 `_)
-- Fixed "`noSideEffect` not affected by `echo`"
- (`#2011 `_)
-- Fixed "Compiling with the cpp backend ignores --passc"
- (`#1601 `_)
-- Fixed "Put untyped procedure parameters behind the experimental pragma"
- (`#1956 `_)
-- Fixed "generic regression"
- (`#2073 `_)
-- Fixed "generic regression"
- (`#2073 `_)
-- Fixed "Regression in template lookup with generics"
- (`#2004 `_)
-- Fixed "GC's growObj is wrong for edge cases"
- (`#2070 `_)
-- Fixed "Compiler internal error when creating an array out of a typeclass"
- (`#1131 `_)
-- Fixed "GC's growObj is wrong for edge cases"
- (`#2070 `_)
-- Fixed "Invalid Objective-C code generated when calling class method"
- (`#2068 `_)
-- Fixed "walkDirRec Error"
- (`#2116 `_)
-- Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime"
- (`#2113 `_)
-- Fixed "Regression on exportc"
- (`#2118 `_)
-- Fixed "Error message"
- (`#2102 `_)
-- Fixed "hint[path] = off not working in nim.cfg"
- (`#2103 `_)
-- Fixed "compiler crashes when getting a tuple from a sequence of generic tuples"
- (`#2121 `_)
-- Fixed "nim check hangs with when"
- (`#2123 `_)
-- Fixed "static[T] param in nested type resolve/caching issue"
- (`#2125 `_)
-- Fixed "repr should display ``\0``"
- (`#2124 `_)
-- Fixed "'nim check' never ends in case of recursive dependency "
- (`#2051 `_)
-- Fixed "From macros: Error: unhandled exception: sons is not accessible"
- (`#2167 `_)
-- Fixed "`fieldPairs` doesn't work inside templates"
- (`#1902 `_)
-- Fixed "fields iterator misbehavior on break statement"
- (`#2134 `_)
-- Fixed "Fix for compiler not building anymore since #c3244ef1ff"
- (`#2193 `_)
-- Fixed "JSON parser fails in cpp output mode"
- (`#2199 `_)
-- Fixed "macros.getType mishandles void return"
- (`#2211 `_)
-- Fixed "Regression involving templates instantiated within generics"
- (`#2215 `_)
-- Fixed ""Error: invalid type" for 'not nil' on generic type."
- (`#2216 `_)
-- Fixed "--threads:on breaks async"
- (`#2074 `_)
-- Fixed "Type mismatch not always caught, can generate bad code for C backend."
- (`#2169 `_)
-- Fixed "Failed C compilation when storing proc to own type in object"
- (`#2233 `_)
-- Fixed "Unknown line/column number in constant declaration type conversion error"
- (`#2252 `_)
-- Fixed "Adding {.compile.} fails if nimcache already exists."
- (`#2247 `_)
-- Fixed "Two different type names generated for a single type (C backend)"
- (`#2250 `_)
-- Fixed "Ambigous call when it should not be"
- (`#2229 `_)
-- Fixed "Make sure we can load root urls"
- (`#2227 `_)
-- Fixed "Failure to slice a string with an int subrange type"
- (`#794 `_)
-- Fixed "documentation error"
- (`#2205 `_)
-- Fixed "Code growth when using `const`"
- (`#1940 `_)
-- Fixed "Instances of generic types confuse overload resolution"
- (`#2220 `_)
-- Fixed "Compiler error when initializing sdl2's EventType"
- (`#2316 `_)
-- Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays"
- (`#2287 `_)
-- Fixed "Strings aren't copied in parallel loop"
- (`#2286 `_)
-- Fixed "JavaScript compiler crash with tables"
- (`#2298 `_)
-- Fixed "Range checker too restrictive"
- (`#1845 `_)
-- Fixed "Failure to slice a string with an int subrange type"
- (`#794 `_)
-- Fixed "Remind user when compiling in debug mode"
- (`#1868 `_)
-- Fixed "Compiler user guide has jumbled options/commands."
- (`#1819 `_)
-- Fixed "using `method`: 1 in a objects constructor fails when compiling"
- (`#1791 `_)
diff --git a/web/news/e015_version_0_11_2.rst b/web/news/e015_version_0_11_2.rst
deleted file mode 100644
index 273182340d6c8..0000000000000
--- a/web/news/e015_version_0_11_2.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Version 0.11.2 released
-==================================
-
-.. container:: metadata
-
- Posted by Andreas Rumpf on 04/05/2015
-
-This is just a bugfix release that fixes the most pressing regressions we
-introduced with version 0.11.0. The way types are computed was
-changed significantly causing all sort of problems. Sorry for the
-inconvenience; we grew overconfident our large test suite would prevent these
-things.
diff --git a/web/news/e016_nim_conf1.rst b/web/news/e016_nim_conf1.rst
deleted file mode 100644
index 228bffd2852a1..0000000000000
--- a/web/news/e016_nim_conf1.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-First Nim conference
-====================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 16/10/2015
-
-.. raw::html
-
-
-
-This Autumn you have the unique opportunity to take part in the first Nim event
-held in Kyiv and to meet the creator of the Nim programming language -
-Andreas Rumpf. The event is hosted by Zeo Alliance and is taking place between
-14-15 November 2015 in Kyiv, Ukraine.
-
-During the workshop you will learn:
-
-- The basics of the language including its safe and unsafe subsets.
-- How to use Nim to develop web applications.
-- How Nim's meta programming capabilities make Nim the ultimate glue language,
- excellent at interoperability with C++, JavaScript, Java and others.
-- Games in Nim and the ability to rapidly prototype without sacrificing speed.
-
-Registration is free, but the number of places is limited. More details
-can be found `here `_.
diff --git a/web/news/e017_version_0_12_0.rst b/web/news/e017_version_0_12_0.rst
deleted file mode 100644
index 63088f9e2ef3a..0000000000000
--- a/web/news/e017_version_0_12_0.rst
+++ /dev/null
@@ -1,403 +0,0 @@
-2015-10-27 Version 0.12.0 released
-==================================
-
-.. container:: metadata
-
- Posted by Dominik Picheta on 27/10/2015
-
-The Nim community of developers is proud to announce the new version of the
-Nim compiler. This has been a long time coming as the last release has been
-made over 5 months ago!
-
-This release includes some changes which affect backwards compatibility,
-one major change is that now the hash table ``[]`` operators now raise a
-``KeyError`` exception when the key does not exist.
-
-Some of the more exciting new features include: the ability to unpack tuples
-in any assignment context, the introduction of `NimScript `_,
-and improvements to the type inference of lambdas.
-
-There are of course many many many bug fixes included with this release.
-We are getting closer and closer to a 1.0 release and are hoping that only
-a few 0.x releases will be necessary before we are happy to release version 1.0.
-
-As always you can download the latest version of Nim from the
-`download `_ page.
-
-For a more detailed list of changes look below. Some of the upcoming breaking
-changes are also documented in this forum
-`thread `_.
-
-Changes affecting backwards compatibility
------------------------------------------
-- The regular expression modules, ``re`` and ``nre`` now depend on version
- 8.36 of PCRE. If you have an older version you may see a message similar
- to ``could not import: pcre_free_study`` output when you start your
- program. See `this issue `_
- for more information.
-- ``tables.[]``, ``strtabs.[]``, ``critbits.[]`` **now raise**
- the ``KeyError`` **exception when the key does not exist**! Use the
- new ``getOrDefault`` instead to get the old behaviour. Compile all your
- code with ``-d:nimTableGet`` to get a listing of where your code
- uses ``[]``!
-- The ``rawsockets`` module has been renamed to ``nativesockets`` to avoid
- confusion with TCP/IP raw sockets, so ``newNativeSocket`` should be used
- instead of ``newRawSocket``.
-- The ``miliseconds`` property of ``times.TimeInterval`` is now ``milliseconds``.
- Code accessing that property is deprecated and code using ``miliseconds``
- during object initialization or as a named parameter of ``initInterval()``
- will need to be updated.
-- ``std.logging`` functions no longer do formatting and semantically treat
- their arguments just like ``echo`` does. Affected functions: ``log``,
- ``debug``, ``info``, ``warn``, ``error``, ``fatal``. Custom subtypes of
- ``Logger`` also need to be adjusted accordingly.
-- Floating point numbers can now look like ``2d`` (float64)
- and ``2f`` (float32) which means imports like ``import scene/2d/sprite``
- do not work anymore. Instead quotes have to be
- used: ``import "scene/2d/sprite"``. The former code never was valid Nim.
-- The Windows API wrapper (``windows.nim``) is now not part of the official
- distribution anymore. Instead use the ``oldwinapi`` Nimble package.
-- There is now a clear distinction between ``--os:standalone``
- and ``--gc:none``. So if you use ``--os:standalone`` ensure you also use
- ``--gc:none``. ``--os:standalone`` without ``--gc:none`` is now a version
- that doesn't depend on any OS but includes the GC. However this version
- is currently untested!
-- All procedures which construct a ``Socket``/``AsyncSocket`` now need to
- specify the socket domain, type and protocol. The param name
- ``typ: SockType`` (in ``newSocket``/``newAsyncSocket`` procs) was also
- renamed to ``sockType``. The param ``af`` in the ``connect`` procs was
- removed. This affects ``asyncnet``, ``asyncdispatch``, ``net``, and
- ``rawsockets``.
-- ``varargs[typed]`` and ``varargs[untyped]`` have been refined and now work
- as expected. However ``varargs[untyped]`` is not an alias anymore for
- ``varargs[expr]``. So if your code breaks for ``varargs[untyped]``, use
- ``varargs[expr]`` instead. The same applies to ``varargs[typed]`` vs
- ``varargs[stmt]``.
-- ``sequtils.delete`` doesn't take confusing default arguments anymore.
-- ``system.free`` was an error-prone alias to ``system.dealloc`` and has
- been removed.
-- ``macros.high`` never worked and the manual says ``high`` cannot be
- overloaded, so we removed it with no deprecation cycle.
-- To use the ``parallel`` statement you now have to
- use the ``--experimental`` mode.
-- Toplevel procs of calling convention ``closure`` never worked reliably
- and are now deprecated and will be removed from the language. Instead you
- have to insert type conversions
- like ``(proc (a, b: int) {.closure.})(myToplevelProc)`` if necessary.
-- The modules ``libffi``, ``sdl``, ``windows``, ``zipfiles``, ``libzip``,
- ``zlib``, ``zzip``, ``dialogs``, ``expat``, ``graphics``, ``libcurl``,
- ``sphinx`` have been moved out of the stdlib and are Nimble packages now.
-- The constant fights between 32 and 64 bit DLLs on Windows have been put to
- an end: The standard distribution now ships with 32 and 64 bit versions
- of all the DLLs the standard library needs. This means that the following
- DLLs are now split into 32 and 64 versions:
-
- * ``pcre.dll``: Split into ``pcre32.dll`` and ``pcre64.dll``.
- * ``pdcurses.dll``: Split into ``pdcurses32.dll`` and ``pdcurses64.dll``.
- * ``sqlite3.dll``: Split into ``sqlite3_32.dll`` and ``sqlite3_64.dll``.
- * ``ssleay32.dll``: Split into ``ssleay32.dll`` and ``ssleay64.dll``.
- * ``libeay32.dll``: Split into ``libeay32.dll`` and ``libeay64.dll``.
-
- Compile with ``-d:nimOldDLLs`` to make the stdlib use the old DLL names.
-- Nim VM now treats objects as ``nkObjConstr`` nodes, and not ``nkPar`` nodes
- as it was previously. Macros that generate ``nkPar`` nodes when object is
- expected are likely to break. Macros that expect ``nkPar`` nodes to which
- objects are passed are likely to break as well.
-- Base methods now need to be annotated with the ``base`` pragma. This makes
- multi methods less error-prone to use with the effect system.
-- Nim's parser directive ``#!`` is now ``#?`` in order to produce no conflicts
- with Unix's ``#!``.
-- An implicit return type for an iterator is now deprecated. Use ``auto`` if
- you want more type inference.
-- The type ``auto`` is now a "multi-bind" metatype, so the following compiles:
-
- .. code-block:: nim
- proc f(x, y: auto): auto =
- result = $x & y
-
- echo f(0, "abc")
-- The ``ftpclient`` module is now deprecated in favour of the
- ``asyncftpclient`` module.
-- In sequtils.nim renamed ``repeat`` function to ``cycle`` (concatenating
- a sequence by itself the given times), and also introduced ``repeat``,
- which repeats an element the given times.
-- The function ``map`` is moved to sequtils.nim. The inplace ``map`` version
- is renamed to ``apply``.
-- The template ``mapIt`` now doesn't require the result's type parameter.
- Also the inplace ``mapIt`` is renamed to ``apply``.
-- The compiler is now stricter with what is allowed as a case object
- discriminator. The following code used to compile but was not supported
- completely and so now fails:
-
-.. code-block:: nim
- type
- DataType* {.pure.} = enum
- Char = 1,
- Int8 = 2,
- Int16 = 3,
- Int32 = 4,
- Int64 = 5,
- Float32 = 6,
- Float64 = 7
-
- DataSeq* = object
- case kind* : DataType
- of DataType.Char: charSeq* : seq[char]
- of DataType.Int8: int8Seq* : seq[int8]
- of DataType.Int16: int16Seq* : seq[int16]
- of DataType.Int32: int32Seq* : seq[int32]
- of DataType.Int64: int64Seq* : seq[int64]
- of DataType.Float32: float32Seq* : seq[float32]
- of DataType.Float64: float64Seq* : seq[float64]
-
- length* : int
-
-
-
-Library Additions
------------------
-
-- The nre module has been added, providing a better interface to PCRE than re.
-- The ``expandSymlink`` proc has been added to the ``os`` module.
-- The ``tailDir`` proc has been added to the ``os`` module.
-- Define ``nimPinToCpu`` to make the ``threadpool`` use explicit thread
- affinities. This can speed up or slow down the thread pool; it's up to you
- to benchmark it.
-- ``strutils.formatFloat`` and ``formatBiggestFloat`` do not depend on the C
- locale anymore and now take an optional ``decimalSep = '.'`` parameter.
-- Added ``unicode.lastRune``, ``unicode.graphemeLen``.
-
-
-Compiler Additions
-------------------
-
-- The compiler now supports a new configuration system based on
- `NimScript `_.
-- The compiler finally considers symbol binding rules in templates and
- generics for overloaded ``[]``, ``[]=``, ``{}``, ``{}=`` operators
- (issue `#2599 `_).
-- The compiler now supports a `bitsize pragma `_
- for constructing bitfields.
-- Added a new ``--reportConceptFailures`` switch for better debugging of
- concept related type mismatches. This can also be used to debug
- ``system.compiles`` failures.
-
-
-Language Additions
-------------------
-
-- ``system.unsafeAddr`` can be used to access the address of a ``let``
- variable or parameter for C interoperability. Since technically this
- makes parameters and ``let`` variables mutable, it is considered even more
- unsafe than the ordinary ``addr`` builtin.
-- Added ``macros.getImpl`` that can be used to access the implementation of
- a routine or a constant. This allows for example for user-defined inlining
- of function calls.
-- Tuple unpacking finally works in a non-var/let context: ``(x, y) = f()``
- is allowed. Note that this doesn't declare ``x`` and ``y`` variables, for
- this ``let (x, y) = f()`` still needs to be used.
-- ``when nimvm`` can now be used for compiletime versions of some code
- sections. Click `here `_ for details.
-- Usage of the type ``NimNode`` in a proc now implicitly annotates the proc
- with ``.compileTime``. This means generics work much better for ``NimNode``.
-
-
-Bugfixes
---------
-- Fixed "Compiler internal error on iterator it(T: typedesc[Base]) called with it(Child), where Child = object of Base"
- (`#2662 `_)
-- Fixed "repr() misses base object field in 2nd level derived object"
- (`#2749 `_)
-- Fixed "nimsuggest doesn't work more than once on the non-main file"
- (`#2694 `_)
-- Fixed "JS Codegen. Passing arguments by var in certain cases leads to invalid JS."
- (`#2798 `_)
-- Fixed ""check" proc in unittest.nim prevents the propagation of changes to var parameters."
- (`#964 `_)
-- Fixed "Excessive letters in integer literals are not an error"
- (`#2523 `_)
-- Fixed "Unicode dashes as "lisp'ish" alternative to hump and snake notation"
- (`#2811 `_)
-- Fixed "Bad error message when trying to construct an object incorrectly"
- (`#2584 `_)
-- Fixed "Determination of GC safety of globals is broken "
- (`#2854 `_)
-- Fixed "v2 gc crashes compiler"
- (`#2687 `_)
-- Fixed "Compile error using object in const array"
- (`#2774 `_)
-- Fixed "httpclient async requests with method httpPOST isn't sending Content-Length header"
- (`#2884 `_)
-- Fixed "Streams module not working with JS backend"
- (`#2148 `_)
-- Fixed "Sign of certain short constants is wrong"
- (`#1179 `_)
-- Fixed "Symlinks to directories reported as symlinks to files"
- (`#1985 `_)
-- Fixed "64-bit literals broken on x86"
- (`#2909 `_)
-- Fixed "import broken for certain names"
- (`#2904 `_)
-- Fixed "Invalid UTF-8 strings in JavaScript"
- (`#2917 `_)
-- Fixed "[JS][Codegen] Initialising object doesn't create unmentioned fields."
-
- (`#2617 `_)
-- Fixed "Table returned from proc computed at compile time is missing keys:"
- (`#2297 `_)
-- Fixed "Clarify copyright status for some files"
- (`#2949 `_)
-- Fixed "math.nim: trigonometry: radians to degrees conversion"
- (`#2881 `_)
-- Fixed "xoring unsigned integers yields RangeError in certain conditions"
- (`#2979 `_)
-- Fixed "Directly checking equality between procs"
- (`#2985 `_)
-- Fixed "Compiler crashed, but there have to be meaningful error message"
- (`#2974 `_)
-- Fixed "repr is broken"
- (`#2992 `_)
-- Fixed "Ipv6 devel - add IPv6 support for asyncsockets, make AF_INET6 a default"
- (`#2976 `_)
-- Fixed "Compilation broken on windows"
- (`#2996 `_)
-- Fixed "'u64 literal conversion compiler error"
- (`#2731 `_)
-- Fixed "Importing 'impure' libraries while using threads causes segfaults"
- (`#2672 `_)
-- Fixed "Uncatched exception in async procedure on raise statement"
- (`#3014 `_)
-- Fixed "nim doc2 fails in Mac OS X due to system.nim (possibly related to #1898)"
- (`#3005 `_)
-- Fixed "IndexError when rebuilding Nim on iteration 2"
- (`#3018 `_)
-- Fixed "Assigning large const set to variable looses some information"
- (`#2880 `_)
-- Fixed "Inconsistent generics behavior"
- (`#3022 `_)
-- Fixed "Compiler breaks on float64 division"
- (`#3028 `_)
-- Fixed "Confusing error message comparing string to nil "
- (`#2935 `_)
-- Fixed "convert 64bit number to float on 32bit"
- (`#1463 `_)
-- Fixed "Type redefinition and construction will break nim check"
- (`#3032 `_)
-- Fixed "XmlParser fails on very large XML files without new lines"
- (`#2429 `_)
-- Fixed "Error parsing arguments with whitespaces"
- (`#2874 `_)
-- Fixed "Crash when missing one arg and used a named arg"
- (`#2993 `_)
-- Fixed "Wrong number of arguments in assert will break nim check"
- (`#3044 `_)
-- Fixed "Wrong const definition will break nim check"
- (`#3041 `_)
-- Fixed "Wrong set declaration will break nim check"
- (`#3040 `_)
-- Fixed "Compiler segfault (type section)"
- (`#2540