diff options
author | Miran <narimiran@users.noreply.github.com> | 2018-10-08 20:42:38 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-10-08 20:42:38 +0200 |
commit | cd5049e0783d208f9d6687b01549fc5e63314cd0 (patch) | |
tree | d070c3b9d99c8e010a8228134bf943805fb8ab55 /web | |
parent | 7cadb5a65d20a9c08d3bc1c9ab9f182b764e7364 (diff) | |
download | Nim-cd5049e0783d208f9d6687b01549fc5e63314cd0.tar.gz |
[cleanup] remove web folder (#9233)
Closes #7577
Diffstat (limited to 'web')
120 files changed, 0 insertions, 7024 deletions
diff --git a/web/assets/bountysource/bountysource.png b/web/assets/bountysource/bountysource.png deleted file mode 100644 index d92d75df0..000000000 --- a/web/assets/bountysource/bountysource.png +++ /dev/null Binary files differdiff --git a/web/assets/bountysource/meet_sponsors.png b/web/assets/bountysource/meet_sponsors.png deleted file mode 100644 index 67d7a1042..000000000 --- a/web/assets/bountysource/meet_sponsors.png +++ /dev/null Binary files differdiff --git a/web/assets/bountysource/meet_sponsors.xcf b/web/assets/bountysource/meet_sponsors.xcf deleted file mode 100644 index e36560491..000000000 --- a/web/assets/bountysource/meet_sponsors.xcf +++ /dev/null Binary files differdiff --git a/web/assets/bountysource/secondspectrum.png b/web/assets/bountysource/secondspectrum.png deleted file mode 100644 index 4dab35c6f..000000000 --- a/web/assets/bountysource/secondspectrum.png +++ /dev/null Binary files differdiff --git a/web/assets/bountysource/xored.png b/web/assets/bountysource/xored.png deleted file mode 100644 index 7a07cdd31..000000000 --- a/web/assets/bountysource/xored.png +++ /dev/null Binary files differdiff --git a/web/assets/bountysource/xored.svg b/web/assets/bountysource/xored.svg deleted file mode 100644 index 17a4acde6..000000000 --- a/web/assets/bountysource/xored.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 317 110" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><g id="Layer 1"><path d="M102.691,70.309c-1.469,2.545 -1.59,5.494 -0.593,8.032l-0.026,-0.015c0.988,2.533 0.863,5.473 -0.602,8.011c-1.465,2.537 -3.949,4.115 -6.637,4.526l0.029,0.017c-2.698,0.405 -5.193,1.984 -6.663,4.53c-2.561,4.436 -1.041,10.109 3.395,12.67c4.436,2.561 10.109,1.041 12.67,-3.395c1.47,-2.546 1.59,-5.497 0.592,-8.035l0.029,0.016c-0.988,-2.533 -0.864,-5.473 0.601,-8.011c1.465,-2.537 3.949,-4.115 6.637,-4.526l-0.026,-0.015c2.696,-0.406 5.19,-1.985 6.659,-4.53c2.561,-4.436 1.041,-10.109 -3.395,-12.67c-4.436,-2.561 -10.109,-1.041 -12.67,3.395M15.736,20.106c-1.469,2.545 -1.589,5.494 -0.593,8.032l-0.025,-0.015c0.987,2.533 0.862,5.473 -0.603,8.01c-1.465,2.538 -3.949,4.116 -6.637,4.527l0.029,0.017c-2.697,0.404 -5.193,1.984 -6.663,4.529c-2.561,4.437 -1.041,10.109 3.395,12.67c4.437,2.562 10.109,1.042 12.671,-3.394c1.469,-2.546 1.589,-5.497 0.591,-8.035l0.029,0.016c-0.988,-2.533 -0.864,-5.473 0.602,-8.011c1.465,-2.538 3.949,-4.115 6.636,-4.527l-0.026,-0.015c2.696,-0.405 5.19,-1.984 6.659,-4.529c2.562,-4.436 1.042,-10.109 -3.395,-12.67c-4.436,-2.561 -10.108,-1.042 -12.67,3.395M88.199,45.207c-1.47,2.546 -1.604,5.489 -0.606,8.027c0.987,2.533 0.849,5.465 -0.617,8.003c-1.465,2.537 -3.935,4.123 -6.622,4.535c-2.697,0.405 -5.178,1.992 -6.648,4.537c-1.47,2.546 -1.604,5.488 -0.606,8.027c0.988,2.533 0.849,5.465 -0.616,8.003c-1.465,2.537 -3.935,4.123 -6.623,4.534c-2.697,0.405 -5.178,1.992 -6.647,4.538c-2.562,4.436 -1.042,10.109 3.395,12.67c4.436,2.561 10.108,1.041 12.67,-3.395c1.469,-2.545 1.603,-5.488 0.606,-8.026c-0.988,-2.533 -0.85,-5.465 0.615,-8.003c1.465,-2.537 3.935,-4.124 6.623,-4.535c2.697,-0.405 5.178,-1.992 6.648,-4.538c1.47,-2.545 1.603,-5.487 0.606,-8.025c-0.988,-2.533 -0.849,-5.466 0.616,-8.003c1.465,-2.538 3.935,-4.124 6.622,-4.535c2.698,-0.405 5.179,-1.993 6.649,-4.538c2.561,-4.437 1.041,-10.109 -3.395,-12.671c-4.437,-2.561 -10.109,-1.041 -12.67,3.395M44.721,20.106c-1.47,2.545 -1.604,5.488 -0.606,8.026c0.988,2.533 0.849,5.465 -0.616,8.003c-1.465,2.538 -3.935,4.124 -6.623,4.535c-2.697,0.405 -5.178,1.992 -6.647,4.537c-1.47,2.546 -1.604,5.489 -0.606,8.027c0.988,2.533 0.849,5.465 -0.616,8.003c-1.465,2.537 -3.936,4.123 -6.623,4.535c-2.697,0.405 -5.178,1.992 -6.648,4.537c-2.561,4.436 -1.041,10.109 3.395,12.67c4.437,2.561 10.109,1.041 12.67,-3.395c1.47,-2.545 1.604,-5.487 0.606,-8.025c-0.987,-2.533 -0.849,-5.466 0.616,-8.003c1.465,-2.538 3.935,-4.124 6.623,-4.535c2.697,-0.405 5.178,-1.993 6.648,-4.538c1.469,-2.546 1.603,-5.488 0.606,-8.026c-0.988,-2.533 -0.85,-5.465 0.615,-8.003c1.466,-2.538 3.935,-4.124 6.623,-4.535c2.697,-0.405 5.179,-1.992 6.648,-4.538c2.562,-4.436 1.042,-10.109 -3.395,-12.67c-4.436,-2.561 -10.108,-1.042 -12.67,3.395M86.376,16.711c4.436,2.561 5.956,8.234 3.395,12.67c-1.469,2.546 -3.965,4.125 -6.662,4.53l0.028,0.016c-2.687,0.411 -5.171,1.989 -6.636,4.527c-1.466,2.537 -1.59,5.478 -0.602,8.011l-0.028,-0.016c0.997,2.538 0.877,5.488 -0.592,8.034c-1.469,2.544 -3.963,4.123 -6.659,4.529l0.026,0.015c-2.688,0.411 -5.172,1.989 -6.637,4.527c-1.465,2.537 -1.59,5.478 -0.602,8.011l-0.028,-0.017c0.998,2.539 0.878,5.489 -0.592,8.035c-1.47,2.546 -3.966,4.126 -6.664,4.53l0.029,0.017c-2.687,0.411 -5.171,1.989 -6.636,4.527c-1.465,2.537 -1.59,5.478 -0.602,8.011l-0.027,-0.015c0.997,2.537 0.877,5.487 -0.593,8.032c-2.561,4.436 -8.233,5.956 -12.67,3.395c-4.436,-2.561 -5.956,-8.234 -3.395,-12.67c1.47,-2.545 3.964,-4.124 6.661,-4.53l-0.027,-0.015c2.687,-0.411 5.171,-1.989 6.636,-4.527c1.466,-2.538 1.59,-5.478 0.602,-8.011l0.03,0.017c-0.999,-2.539 -0.879,-5.49 0.591,-8.036c1.47,-2.546 3.966,-4.125 6.663,-4.53l-0.029,-0.017c2.688,-0.411 5.172,-1.989 6.637,-4.526c1.465,-2.538 1.589,-5.478 0.602,-8.011l0.026,0.015c-0.997,-2.538 -0.876,-5.487 0.593,-8.032c1.469,-2.545 3.965,-4.124 6.662,-4.529l-0.028,-0.017c2.687,-0.411 5.171,-1.989 6.636,-4.526c1.465,-2.538 1.59,-5.478 0.602,-8.011l0.028,0.016c-0.997,-2.538 -0.878,-5.489 0.592,-8.034c2.561,-4.437 8.234,-5.956 12.67,-3.395" style="fill:#e02926;"/><path d="M115.407,55.761l18.066,-20.149l-18.066,-20.146l12.924,0l11.701,13.568l11.702,-13.568l12.927,0l-18.136,20.146l18.136,20.149l-12.927,0l-11.702,-13.511l-11.702,13.511l-12.923,0Z" style="fill:#1d1d1b;fill-rule:nonzero;"/><path d="M164.696,27.869l0.047,-1.456l0.159,-1.386l0.255,-1.296l0.36,-1.213l0.467,-1.123l0.578,-1.031l0.685,-0.938l0.79,-0.841l0.889,-0.741l1,-0.637l1.09,-0.538l1.193,-0.437l1.282,-0.335l1.372,-0.241l1.467,-0.141l1.549,-0.048l13.208,0l1.551,0.048l1.461,0.141l1.378,0.241l1.282,0.335l1.187,0.437l1.088,0.538l0.998,0.637l0.897,0.741l0.786,0.841l0.689,0.938l0.572,1.031l0.469,1.123l0.364,1.213l0.257,1.296l0.151,1.386l0.049,1.456l0,15.613l-0.049,1.446l-0.151,1.368l-0.257,1.29l-0.364,1.195l-0.469,1.113l-0.58,1.025l-0.681,0.926l-0.794,0.835l-0.895,0.729l-0.992,0.632l-1.096,0.531l-1.185,0.433l-1.284,0.332l-1.37,0.237l-1.461,0.138l-1.551,0.05l-13.208,0l-1.549,-0.05l-1.467,-0.141l-1.372,-0.242l-1.282,-0.334l-1.193,-0.435l-1.09,-0.537l-1,-0.641l-0.889,-0.737l-0.79,-0.842l-0.685,-0.937l-0.578,-1.03l-0.467,-1.124l-0.36,-1.209l-0.255,-1.299l-0.159,-1.386l-0.047,-1.461l0,-15.488ZM191.058,46.397l0.856,-0.051l0.697,-0.146l0.558,-0.228l0.426,-0.302l0.331,-0.38l0.243,-0.481l0.15,-0.604l0.056,-0.758l0,-15.543l-0.056,-0.789l-0.158,-0.631l-0.241,-0.504l-0.331,-0.395l-0.428,-0.314l-0.558,-0.237l-0.689,-0.148l-0.856,-0.056l-13.15,0l-0.86,0.056l-0.691,0.148l-0.552,0.237l-0.432,0.314l-0.333,0.395l-0.241,0.504l-0.152,0.631l-0.055,0.789l0,15.419l0.055,0.792l0.152,0.631l0.241,0.503l0.333,0.396l0.432,0.314l0.552,0.234l0.691,0.153l0.86,0.051l13.15,0Z" style="fill:#1d1d1b;fill-rule:nonzero;"/><path d="M219.436,55.761l-9.891,0l0,-27.893l0.047,-1.456l0.152,-1.386l0.255,-1.296l0.364,-1.213l0.469,-1.123l0.572,-1.031l0.685,-0.938l0.793,-0.84l0.894,-0.742l0.994,-0.637l1.095,-0.538l1.186,-0.437l1.28,-0.335l1.374,-0.241l1.467,-0.141l1.551,-0.048l6.604,0l0,9.364l-6.571,0l-0.859,0.055l-0.696,0.148l-0.551,0.237l-0.43,0.315l-0.329,0.395l-0.241,0.504l-0.161,0.63l-0.053,0.789l0,27.858Z" style="fill:#1d1d1b;fill-rule:nonzero;"/><path d="M262.96,27.98l-0.053,0.758l-0.153,0.606l-0.24,0.479l-0.332,0.38l-0.427,0.302l-0.558,0.228l-0.695,0.149l-0.856,0.051l-16.467,0l0,-3.029l0.056,-0.789l0.152,-0.631l0.241,-0.504l0.331,-0.395l0.434,-0.314l0.551,-0.237l0.69,-0.148l0.862,-0.056l13.15,0l0.856,0.056l0.687,0.148l0.559,0.237l0.428,0.314l0.332,0.395l0.24,0.504l0.159,0.631l0.053,0.789l0,0.076ZM272.804,26.412l-0.15,-1.385l-0.257,-1.296l-0.364,-1.213l-0.469,-1.123l-0.572,-1.031l-0.689,-0.938l-0.786,-0.841l-0.897,-0.741l-1,-0.637l-1.088,-0.538l-1.185,-0.437l-1.282,-0.335l-1.372,-0.241l-1.469,-0.141l-1.549,-0.048l-13.206,0l-1.551,0.048l-1.469,0.141l-1.371,0.241l-1.283,0.335l-1.191,0.437l-1.091,0.538l-0.991,0.637l-0.897,0.741l-0.792,0.841l-0.683,0.938l-0.578,1.031l-0.469,1.123l-0.358,1.213l-0.255,1.296l-0.159,1.385l-0.047,1.457l0,15.488l0.047,1.461l0.159,1.385l0.255,1.3l0.358,1.209l0.469,1.124l0.578,1.03l0.683,0.937l0.792,0.842l0.897,0.737l0.991,0.641l1.091,0.537l1.191,0.435l1.283,0.333l1.371,0.243l1.469,0.141l1.551,0.05l23.089,0l0,-9.365l-23.062,0l-0.862,-0.052l-0.69,-0.152l-0.551,-0.234l-0.434,-0.314l-0.331,-0.396l-0.241,-0.503l-0.152,-0.631l-0.056,-0.792l0,-3.03l16.496,0l1.549,-0.044l1.463,-0.141l1.378,-0.235l1.275,-0.335l1.185,-0.43l1.095,-0.531l0.994,-0.631l0.894,-0.733l0.795,-0.831l0.68,-0.93l0.581,-1.021l0.469,-1.112l0.364,-1.2l0.257,-1.285l0.15,-1.373l0.056,-1.446l0,-0.146l-0.056,-1.457Z" style="fill:#1d1d1b;fill-rule:nonzero;"/><path d="M307.093,44.115l-0.158,0.63l-0.241,0.504l-0.329,0.395l-0.428,0.314l-0.56,0.235l-0.689,0.152l-0.854,0.051l-13.15,0l-0.862,-0.051l-0.689,-0.152l-0.56,-0.235l-0.428,-0.314l-0.329,-0.395l-0.243,-0.504l-0.156,-0.63l-0.056,-0.792l0,-15.419l0.056,-0.79l0.156,-0.63l0.243,-0.504l0.329,-0.395l0.428,-0.315l0.56,-0.236l0.689,-0.149l0.862,-0.055l16.467,0l0,18.493l-0.058,0.792ZM307.151,0l0,15.466l-16.502,0l-1.551,0.049l-1.461,0.14l-1.38,0.241l-1.274,0.335l-1.193,0.438l-1.088,0.538l-1,0.636l-0.895,0.742l-0.788,0.84l-0.687,0.939l-0.572,1.03l-0.469,1.123l-0.366,1.213l-0.254,1.296l-0.154,1.386l-0.047,1.457l0,15.488l0.047,1.461l0.154,1.385l0.254,1.299l0.366,1.21l0.469,1.123l0.572,1.031l0.687,0.937l0.794,0.841l0.889,0.738l1,0.641l1.088,0.537l1.193,0.435l1.274,0.333l1.38,0.243l1.461,0.141l1.551,0.049l13.212,0l1.545,-0.049l1.467,-0.141l1.372,-0.243l1.282,-0.333l1.193,-0.438l1.088,-0.534l1,-0.641l0.889,-0.738l0.792,-0.841l0.683,-0.937l0.58,-1.031l0.469,-1.123l0.358,-1.213l0.261,-1.296l0.153,-1.385l0.047,-1.461l0,-43.357l-9.889,0Z" style="fill:#1d1d1b;fill-rule:nonzero;"/></g></svg> \ 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 91f335913..000000000 --- a/web/assets/images/bg.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-articles.png b/web/assets/images/docs-articles.png deleted file mode 100644 index 7f800ea33..000000000 --- a/web/assets/images/docs-articles.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-examples.png b/web/assets/images/docs-examples.png deleted file mode 100644 index e6d27e034..000000000 --- a/web/assets/images/docs-examples.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-internals.png b/web/assets/images/docs-internals.png deleted file mode 100644 index e03a952d5..000000000 --- a/web/assets/images/docs-internals.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-libraries.png b/web/assets/images/docs-libraries.png deleted file mode 100644 index b14952f7d..000000000 --- a/web/assets/images/docs-libraries.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-tools.png b/web/assets/images/docs-tools.png deleted file mode 100644 index d83f0faaa..000000000 --- a/web/assets/images/docs-tools.png +++ /dev/null Binary files differdiff --git a/web/assets/images/docs-tutorials.png b/web/assets/images/docs-tutorials.png deleted file mode 100644 index 926a4b58b..000000000 --- a/web/assets/images/docs-tutorials.png +++ /dev/null Binary files differdiff --git a/web/assets/images/favicon.ico b/web/assets/images/favicon.ico deleted file mode 100644 index aed71adb4..000000000 --- a/web/assets/images/favicon.ico +++ /dev/null Binary files differdiff --git a/web/assets/images/foot.png b/web/assets/images/foot.png deleted file mode 100644 index dc2561cf3..000000000 --- a/web/assets/images/foot.png +++ /dev/null Binary files differdiff --git a/web/assets/images/glow-arrow.png b/web/assets/images/glow-arrow.png deleted file mode 100644 index 436d32f03..000000000 --- a/web/assets/images/glow-arrow.png +++ /dev/null Binary files differdiff --git a/web/assets/images/glow-line.png b/web/assets/images/glow-line.png deleted file mode 100644 index 6607bdee9..000000000 --- a/web/assets/images/glow-line.png +++ /dev/null Binary files differdiff --git a/web/assets/images/head-link.png b/web/assets/images/head-link.png deleted file mode 100644 index d97cba5b8..000000000 --- a/web/assets/images/head-link.png +++ /dev/null Binary files differdiff --git a/web/assets/images/head-link_hover.png b/web/assets/images/head-link_hover.png deleted file mode 100644 index 27edf3b05..000000000 --- a/web/assets/images/head-link_hover.png +++ /dev/null Binary files differdiff --git a/web/assets/images/head.png b/web/assets/images/head.png deleted file mode 100644 index 009f86728..000000000 --- a/web/assets/images/head.png +++ /dev/null Binary files differdiff --git a/web/assets/images/link_aporia.png b/web/assets/images/link_aporia.png deleted file mode 100644 index 145e5ddf2..000000000 --- a/web/assets/images/link_aporia.png +++ /dev/null Binary files differdiff --git a/web/assets/images/link_forum.png b/web/assets/images/link_forum.png deleted file mode 100644 index 2973b42bc..000000000 --- a/web/assets/images/link_forum.png +++ /dev/null Binary files differdiff --git a/web/assets/images/link_nimbuild.png b/web/assets/images/link_nimbuild.png deleted file mode 100644 index 4b3f943fe..000000000 --- a/web/assets/images/link_nimbuild.png +++ /dev/null Binary files differdiff --git a/web/assets/images/logo.png b/web/assets/images/logo.png deleted file mode 100644 index 85d3d2e51..000000000 --- a/web/assets/images/logo.png +++ /dev/null Binary files differdiff --git a/web/assets/images/mascot.png b/web/assets/images/mascot.png deleted file mode 100644 index 9beb62c01..000000000 --- a/web/assets/images/mascot.png +++ /dev/null Binary files differdiff --git a/web/assets/images/more-links_editors.png b/web/assets/images/more-links_editors.png deleted file mode 100644 index f5970ff1f..000000000 --- a/web/assets/images/more-links_editors.png +++ /dev/null Binary files differdiff --git a/web/assets/images/more-links_forum.png b/web/assets/images/more-links_forum.png deleted file mode 100644 index f33277777..000000000 --- a/web/assets/images/more-links_forum.png +++ /dev/null Binary files differdiff --git a/web/assets/images/more-links_github.png b/web/assets/images/more-links_github.png deleted file mode 100644 index 4a6a844f4..000000000 --- a/web/assets/images/more-links_github.png +++ /dev/null Binary files differdiff --git a/web/assets/images/more-links_nimbuild.png b/web/assets/images/more-links_nimbuild.png deleted file mode 100644 index 473fbe4cd..000000000 --- a/web/assets/images/more-links_nimbuild.png +++ /dev/null Binary files differdiff --git a/web/assets/images/nim-logo.svg b/web/assets/images/nim-logo.svg deleted file mode 100644 index feae6c3d7..000000000 --- a/web/assets/images/nim-logo.svg +++ /dev/null @@ -1,500 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="163.84375" - height="124.67096" - id="svg2" - version="1.1" - inkscape:version="0.48.5 r10040" - sodipodi:docname="New document 1"> - <defs - id="defs4"> - <linearGradient - id="linearGradient3833"> - <stop - style="stop-color:#f7c41a;stop-opacity:1;" - offset="0" - id="stop3835" /> - <stop - style="stop-color:#bd9510;stop-opacity:1;" - offset="1" - id="stop3837" /> - </linearGradient> - <linearGradient - id="linearGradient3825"> - <stop - style="stop-color:#f3d673;stop-opacity:1;" - offset="0" - id="stop3827" /> - <stop - style="stop-color:#c7a23a;stop-opacity:1;" - offset="1" - id="stop3829" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825" - id="radialGradient3831" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,1.3722368,813.17816)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient3839" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,4.9030359,1024.9638)" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-7" - id="radialGradient3839-8" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,4.9030359,1024.9638)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient3833-7"> - <stop - style="stop-color:#f4d779;stop-opacity:1;" - offset="0" - id="stop3835-5" /> - <stop - style="stop-color:#bd9510;stop-opacity:1;" - offset="1" - id="stop3837-4" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3831-8" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,1.3722368,813.17816)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - id="linearGradient3825-5"> - <stop - style="stop-color:#f3d673;stop-opacity:1;" - offset="0" - id="stop3827-3" /> - <stop - style="stop-color:#c7a23a;stop-opacity:1;" - offset="1" - id="stop3829-7" /> - </linearGradient> - <radialGradient - r="80.321426" - fy="414.17612" - fx="407.17349" - cy="414.17612" - cx="407.17349" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-153.01531,1007.7817)" - gradientUnits="userSpaceOnUse" - id="radialGradient3870" - xlink:href="#linearGradient3833-7" - inkscape:collect="always" /> - <radialGradient - r="80.321426" - fy="414.24271" - fx="406.47156" - cy="414.24271" - cx="406.47156" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-156.54611,795.9961)" - gradientUnits="userSpaceOnUse" - id="radialGradient3872" - xlink:href="#linearGradient3825-5" - inkscape:collect="always" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-7" - id="radialGradient3908" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-153.01531,1007.7817)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3910" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-156.54611,795.9961)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-7" - id="radialGradient3914" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-153.01531,1007.7817)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3916" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-156.54611,795.9961)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-7" - id="radialGradient3918" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-153.01531,1007.7817)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3920" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-156.54611,795.9961)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-7" - id="radialGradient3924" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-153.01531,1007.7817)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3926" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-156.54611,795.9961)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3933" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01462336,-0.89388887,0.97447651,-0.01594169,19.13339,796.92442)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient3935" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,4.9030359,1024.9638)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825" - id="radialGradient3937" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,1.3722368,813.17816)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient3941" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-75.408823,1015.0037)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825" - id="radialGradient3943" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-78.939622,803.21805)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3949" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01462336,-0.89388887,0.97447651,-0.01594169,19.13339,796.92442)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3953" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01462336,-0.89388887,0.97447651,-0.01594169,19.13339,796.92442)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3957" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01462336,-0.89388887,0.97447651,-0.01594169,-70.86661,796.92442)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-5" - id="radialGradient3961" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01462336,-0.89388887,0.97447651,-0.01594169,-70.86661,796.92442)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833-79" - id="radialGradient3941-1" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-75.408823,1015.0037)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <linearGradient - id="linearGradient3833-79"> - <stop - style="stop-color:#f4d779;stop-opacity:1;" - offset="0" - id="stop3835-55" /> - <stop - style="stop-color:#bd9510;stop-opacity:1;" - offset="1" - id="stop3837-5" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825-3" - id="radialGradient3943-5" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-78.939622,803.21805)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <linearGradient - id="linearGradient3825-3"> - <stop - style="stop-color:#f3d673;stop-opacity:1;" - offset="0" - id="stop3827-0" /> - <stop - style="stop-color:#c7a23a;stop-opacity:1;" - offset="1" - id="stop3829-2" /> - </linearGradient> - <radialGradient - r="80.321426" - fy="414.24271" - fx="406.47156" - cy="414.24271" - cx="406.47156" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,91.271992,815.08835)" - gradientUnits="userSpaceOnUse" - id="radialGradient3985" - xlink:href="#linearGradient3825-3" - inkscape:collect="always" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient4029" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,-75.408823,1015.0037)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3825" - id="radialGradient4031" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.01492027,-0.91203843,0.99426233,-0.01626537,-78.939622,803.21805)" - cx="406.47156" - cy="414.24271" - fx="406.47156" - fy="414.24271" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient4037" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,71.056847,1015.1237)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3833" - id="radialGradient4047" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(-0.0234034,-1.430605,0.9942623,-0.01626526,71.056847,1015.1237)" - cx="407.17349" - cy="414.17612" - fx="407.17349" - fy="414.17612" - r="80.321426" /> - </defs> - <sodipodi:namedview - id="base" - pagecolor="#595959" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:zoom="0.7" - inkscape:cx="-296.38002" - inkscape:cy="91.425689" - inkscape:document-units="px" - inkscape:current-layer="layer2" - showgrid="false" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:window-width="1920" - inkscape:window-height="1027" - inkscape:window-x="0" - inkscape:window-y="29" - inkscape:window-maximized="1" /> - <metadata - id="metadata7"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - sodipodi:insensitive="true" - style="display:none" - transform="translate(-391.875,-406.1875)"> - <image - y="392.14789" - x="-90.714287" - id="image3047" - xlink:href="file:///home/tomasi/Projects/nimrod/logo/new-symbols.png" - height="329" - width="800" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Layer" - style="display:inline" - transform="translate(-391.875,-406.1875)"> - <g - id="g4041"> - <path - id="path4019" - d="m 474.37925,408.23965 c 0,0 -6.12468,5.3771 -12.34375,10.6875 -6.39764,-0.22532 -18.88846,1.38269 -25.6875,4.125 -6.26333,-4.40055 -11.8125,-9.28125 -11.8125,-9.28125 0,0 -4.69884,9.01564 -7.65625,14.28125 -4.38598,2.58703 -8.76277,5.43142 -12.6875,9.28125 -4.63902,-2.04302 -10.1875,-4.65625 -10.1875,-4.65625 l 6.25,27.875 0.9375,1.875 -1.09375,-1.875 c 0,0 8.86172,24.01192 14.8125,40 25.2159,36.89492 89.61617,39.46428 117.68751,0.71875 5.37871,-13.44336 11.62618,-31.71161 13.90625,-38.4375 l 1.25,-2.8125 5.90625,-26.78125 c 0,0 -6.87234,2.50886 -11.0625,4.28125 -2.40446,-3.40619 -6.05177,-7.01378 -11.25,-9.46875 -3.05538,-6.20497 -7.5,-14.65625 -7.5,-14.65625 0,0 -5.33268,4.38488 -11.4375,9.125 -8.24767,-1.68845 -18.23488,-3.72666 -26.62501,-3.21875 -5.71156,-5.20637 -11.40625,-11.0625 -11.40625,-11.0625 z" - style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - inkscape:connector-curvature="0" /> - <path - sodipodi:nodetypes="cccccccccccccccccccc" - inkscape:connector-curvature="0" - id="path3054" - d="m 400.26095,460.55777 -6.25,-27.85715 c 0,0 5.53955,2.59984 10.17857,4.64286 3.92473,-3.84983 8.2926,-6.69868 12.67858,-9.28571 2.95741,-5.26561 7.67857,-14.28572 7.67857,-14.28572 0,0 5.52238,4.88517 11.78571,9.28572 6.79904,-2.74231 19.31665,-4.33247 25.71429,-4.10715 6.21906,-5.3104 12.32143,-10.71428 12.32143,-10.71428 0,0 5.71701,5.86506 11.42857,11.07143 8.39013,-0.50791 18.35947,1.52583 26.60714,3.21428 6.10482,-4.74012 11.42857,-9.10714 11.42857,-9.10714 0,0 4.44462,8.43789 7.5,14.64286 5.19824,2.45497 8.84554,6.05809 11.25,9.46428 4.19017,-1.77239 11.07143,-4.28571 11.07143,-4.28571 l -5.89286,26.78571 -6.60714,14.82143 c 0,0 -4.31067,-2.70091 -7.32143,-4.28571 -16.93933,-45.69195 -106.71744,-37.02003 -119.46428,-0.71429 -5.78255,1.30574 -8.39286,2.32143 -8.39286,2.32143 z" - style="fill:url(#radialGradient4047);fill-opacity:1;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> - <path - sodipodi:nodetypes="cccccccccccccc" - inkscape:connector-curvature="0" - id="path3051" - d="m 400.08238,460.55777 c 0,0 8.87064,24.01192 14.82143,40 25.2159,36.89492 89.60723,39.45981 117.67857,0.71428 6.64277,-16.60268 15,-41.60714 15,-41.60714 l -6.07143,11.42857 -7.63525,-0.35714 -11.82903,15 -16.96429,5 -31.07143,-17.85715 -31.25,17.5 -16.96428,-4.82142 -11.54402,-15.59885 -7.56312,2.02742 z" - style="fill:#ffffff;stroke:none" /> - <path - sodipodi:nodetypes="scccccccccs" - id="path3054-8" - d="m 474.88371,439.45394 c 26.96263,-0.0368 50.75931,9.32331 58.9643,31.09821 0.11438,0.0602 0.25716,0.12428 0.375,0.1875 l -0.34375,0 -11.84375,15 -16.93751,5 -31.09375,-17.875 -31.25,17.5 -16.96875,-4.8125 -11.31751,-16.02955 c 6.01205,-17.4758 32.67194,-30.03082 60.41572,-30.06866 z" - style="fill:none;stroke:#000000;stroke-width:1.10000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline" - inkscape:connector-curvature="0" /> - </g> - </g> -</svg> diff --git a/web/assets/images/quote.png b/web/assets/images/quote.png deleted file mode 100644 index e9426158c..000000000 --- a/web/assets/images/quote.png +++ /dev/null Binary files differdiff --git a/web/assets/images/quotes.png b/web/assets/images/quotes.png deleted file mode 100644 index 0d75b4cc2..000000000 --- a/web/assets/images/quotes.png +++ /dev/null Binary files differdiff --git a/web/assets/images/sidebar.png b/web/assets/images/sidebar.png deleted file mode 100644 index 142db93cf..000000000 --- a/web/assets/images/sidebar.png +++ /dev/null Binary files differdiff --git a/web/assets/images/sidebar_h2.png b/web/assets/images/sidebar_h2.png deleted file mode 100644 index d1409b57f..000000000 --- a/web/assets/images/sidebar_h2.png +++ /dev/null Binary files differdiff --git a/web/assets/images/sidebar_head.png b/web/assets/images/sidebar_head.png deleted file mode 100644 index 05885d9f3..000000000 --- a/web/assets/images/sidebar_head.png +++ /dev/null Binary files differdiff --git a/web/assets/images/site_foot.png b/web/assets/images/site_foot.png deleted file mode 100644 index a2efa0460..000000000 --- a/web/assets/images/site_foot.png +++ /dev/null Binary files differdiff --git a/web/assets/images/site_neck.png b/web/assets/images/site_neck.png deleted file mode 100644 index d4f42c6b7..000000000 --- a/web/assets/images/site_neck.png +++ /dev/null Binary files differdiff --git a/web/assets/images/slideshow-nav.png b/web/assets/images/slideshow-nav.png deleted file mode 100644 index fbfff3e5d..000000000 --- a/web/assets/images/slideshow-nav.png +++ /dev/null Binary files differdiff --git a/web/assets/images/slideshow-nav_active.png b/web/assets/images/slideshow-nav_active.png deleted file mode 100644 index 525caf355..000000000 --- a/web/assets/images/slideshow-nav_active.png +++ /dev/null Binary files differdiff --git a/web/assets/images/tabEnd.png b/web/assets/images/tabEnd.png deleted file mode 100644 index a94af90f1..000000000 --- a/web/assets/images/tabEnd.png +++ /dev/null Binary files differdiff --git a/web/assets/index.js b/web/assets/index.js deleted file mode 100644 index 4c8b90f95..000000000 --- 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 ac757b404..000000000 --- a/web/assets/news/images/0.15.0/doc_search.gif +++ /dev/null Binary files differdiff --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 edd253c4a..000000000 --- a/web/assets/news/images/0.15.0/doc_sort.gif +++ /dev/null Binary files differdiff --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 8faa3f04f..000000000 --- a/web/assets/news/images/0.16.0/nimble.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/10_needs.png b/web/assets/news/images/survey/10_needs.png deleted file mode 100644 index 67d568552..000000000 --- a/web/assets/news/images/survey/10_needs.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/book.png b/web/assets/news/images/survey/book.png deleted file mode 100644 index 5bb418e63..000000000 --- a/web/assets/news/images/survey/book.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/book_opinion.png b/web/assets/news/images/survey/book_opinion.png deleted file mode 100644 index 4e56ab26e..000000000 --- a/web/assets/news/images/survey/book_opinion.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/breakage.png b/web/assets/news/images/survey/breakage.png deleted file mode 100644 index 5eb4c5289..000000000 --- a/web/assets/news/images/survey/breakage.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/dev_os.png b/web/assets/news/images/survey/dev_os.png deleted file mode 100644 index 088918dc3..000000000 --- a/web/assets/news/images/survey/dev_os.png +++ /dev/null Binary files differdiff --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 022aa00ed..000000000 --- a/web/assets/news/images/survey/difficulty_fixing_breakage.png +++ /dev/null Binary files differdiff --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 257148325..000000000 --- a/web/assets/news/images/survey/do_you_use_nim.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/domains.png b/web/assets/news/images/survey/domains.png deleted file mode 100644 index 50b1ed7ff..000000000 --- a/web/assets/news/images/survey/domains.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/editors.png b/web/assets/news/images/survey/editors.png deleted file mode 100644 index 816ad515f..000000000 --- a/web/assets/news/images/survey/editors.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/ex_nim.png b/web/assets/news/images/survey/ex_nim.png deleted file mode 100644 index 50082ea8b..000000000 --- a/web/assets/news/images/survey/ex_nim.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/languages.png b/web/assets/news/images/survey/languages.png deleted file mode 100644 index db35f9bd4..000000000 --- a/web/assets/news/images/survey/languages.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/learning_resources.png b/web/assets/news/images/survey/learning_resources.png deleted file mode 100644 index 39f533ad0..000000000 --- a/web/assets/news/images/survey/learning_resources.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_appeal.png b/web/assets/news/images/survey/nim_appeal.png deleted file mode 100644 index 4f53e1447..000000000 --- a/web/assets/news/images/survey/nim_appeal.png +++ /dev/null Binary files differdiff --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 f00ab1a94..000000000 --- a/web/assets/news/images/survey/nim_at_work.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_displeasing.png b/web/assets/news/images/survey/nim_displeasing.png deleted file mode 100644 index b7232df04..000000000 --- a/web/assets/news/images/survey/nim_displeasing.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_domains.png b/web/assets/news/images/survey/nim_domains.png deleted file mode 100644 index 2d8fc6652..000000000 --- a/web/assets/news/images/survey/nim_domains.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_found.png b/web/assets/news/images/survey/nim_found.png deleted file mode 100644 index a0a65b813..000000000 --- a/web/assets/news/images/survey/nim_found.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_time.png b/web/assets/news/images/survey/nim_time.png deleted file mode 100644 index 23bc4a136..000000000 --- a/web/assets/news/images/survey/nim_time.png +++ /dev/null Binary files differdiff --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 9b861608a..000000000 --- a/web/assets/news/images/survey/nim_time_rust.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nim_versions.png b/web/assets/news/images/survey/nim_versions.png deleted file mode 100644 index ba382c93d..000000000 --- a/web/assets/news/images/survey/nim_versions.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/nimble_opinion.png b/web/assets/news/images/survey/nimble_opinion.png deleted file mode 100644 index 3fe76326e..000000000 --- a/web/assets/news/images/survey/nimble_opinion.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/non_user.png b/web/assets/news/images/survey/non_user.png deleted file mode 100644 index b5324b69c..000000000 --- a/web/assets/news/images/survey/non_user.png +++ /dev/null Binary files differdiff --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 b3e2001c3..000000000 --- a/web/assets/news/images/survey/planning_to_use_at_work.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/project_size.png b/web/assets/news/images/survey/project_size.png deleted file mode 100644 index ad1359d0c..000000000 --- a/web/assets/news/images/survey/project_size.png +++ /dev/null Binary files differdiff --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 4bc0e6b47..000000000 --- a/web/assets/news/images/survey/project_size_nim_rust.png +++ /dev/null Binary files differdiff --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 fab6e52f2..000000000 --- a/web/assets/news/images/survey/project_size_work.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/reliability.png b/web/assets/news/images/survey/reliability.png deleted file mode 100644 index 1767e9803..000000000 --- a/web/assets/news/images/survey/reliability.png +++ /dev/null Binary files differdiff --git a/web/assets/news/images/survey/target_os.png b/web/assets/news/images/survey/target_os.png deleted file mode 100644 index a36915af1..000000000 --- a/web/assets/news/images/survey/target_os.png +++ /dev/null Binary files differdiff --git a/web/assets/niminaction/banner.jpg b/web/assets/niminaction/banner.jpg deleted file mode 100644 index b2fb3efc9..000000000 --- a/web/assets/niminaction/banner.jpg +++ /dev/null Binary files differdiff --git a/web/assets/niminaction/banner2.png b/web/assets/niminaction/banner2.png deleted file mode 100644 index 3cabd195d..000000000 --- a/web/assets/niminaction/banner2.png +++ /dev/null Binary files differdiff --git a/web/assets/style.css b/web/assets/style.css deleted file mode 100644 index 2e166530d..000000000 --- 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 f09b000de..000000000 --- a/web/assets/zeo/banner.jpg +++ /dev/null Binary files differdiff --git a/web/community.rst b/web/community.rst deleted file mode 100644 index fefa4c4b6..000000000 --- a/web/community.rst +++ /dev/null @@ -1,150 +0,0 @@ -Nim's Community -=============== - -.. container:: standout - - Forum - ----- - - The `Nim forum <https://forum.nim-lang.org/>`_ 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 <http://webchat.freenode.net/?channels=nim>`_ 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 <https://irclogs.nim-lang.org/>`_ which are an archive of all - of the previous discussions that took place in the IRC channel. - - -.. container:: standout - - GitHub - ------ - - Nim's `source code <http://github.com/nim-lang/Nim>`_ is hosted on GitHub. - Together with the `wiki <http://github.com/nim-lang/Nim/wiki>`_ and - `issue tracker <http://github.com/nim-lang/Nim/issues>`_. - - GitHub also hosts other projects relating to Nim. These projects are a part - of the `nim-lang organisation <http://github.com/nim-lang>`_. - This includes the `Nimble package manager <https://github.com/nim-lang/nimble>`_ - and its `package repository <http://github.com/nim-lang/packages>`_. - - -.. container:: standout - - Twitter - ------- - - Follow us `@nim_lang <http://twitter.com/nim_lang>`_ for latest news about - Nim. - -.. container:: standout - - Reddit - ------ - - Subscribe to `/r/nim <http://reddit.com/r/nim>`_ for latest news about - Nim. - -.. container:: standout - - StackOverflow - ------------- - - When asking a question relating to Nim, be sure to use the - `Nim <http://stackoverflow.com/questions/tagged/nim>`_ tag in your - question. - -.. container:: standout - - Google+ - ------- - - The `G+ Nim community <https://plus.google.com/u/0/communities/106921341535068810587>`_ 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 <https://gitter.im/nim-lang/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 <http://www.meetup.com/pt-BR/nim-br>`_ 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 <https://github.com/nim-lang/Nim>`_, check out the - `issues <https://github.com/nim-lang/Nim/issues>`_ for - things to do; pull requests are always welcome. You can - also contribute to the many other projects hosted by the - `nim-lang <https://github.com/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 <http://forum.nim-lang.org>`_. - - -.. 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 - - <img src="http://img.shields.io/gratipay/nim.svg"> - - BountySource - - .. raw:: html - - <img src="https://img.shields.io/bountysource/team/mozilla-core/activity.svg"> - - Paypal - .. raw:: html - - <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top"> - <input type="hidden" name="cmd" value="_s-xclick"> - <input type="hidden" name="hosted_button_id" value="C6PBFRF4WDR2E"> - <input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!"> - <img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"> - </form> - - - Bitcoin - Bitcoin address: 1BXfuKM2uvoD6mbx4g5xM3eQhLzkCK77tJ diff --git a/web/documentation.rst b/web/documentation.rst deleted file mode 100644 index ec33d0827..000000000 --- a/web/documentation.rst +++ /dev/null @@ -1,70 +0,0 @@ -Nim's Documentation -=================== - -.. container:: standout - - Search Options - -------------- - - .. container:: internals - - `Documentation Index <docs/theindex.html>`_ - The generated - index. **Index + (Ctrl+F) == Joy** - -.. container:: standout - - Standards & Guides - ------------------ - - .. container:: libraries - - - | `Standard Library <docs/lib.html>`_ - | This document describes Nim's standard library. - - - | `Language Manual <docs/manual.html>`_ - | The Nim manual is a draft that will evolve into a proper specification. - - - | `Nim Style Guide <docs/nep1.html>`_ - | The stylistic conventions that Nim's official projects adhere to. - - - | `Compiler User Guide <docs/nimc.html>`_ - | The user guide lists command line arguments, special features of the - compiler, etc. - - - | `NimScript <docs/nims.html>`_ - | NimScript is the upcoming new way to configure Nim. - - - | `Nim Backend Integration <docs/backends.html>`_ - | 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 <docs/filters.html>`_ - | The Nim compiler supports source code filters as a simple yet powerful - builtin templating system. - - - | `Tools Documentation <docs/tools.html>`_ - | Description of some tools that come with the standard distribution. - - -.. container:: standout - - Internal Details - ---------------- - - .. container:: internals - - - | `Garbage Collector <docs/gc.html>`_ - | Additional documentation about Nim's GC and how to operate it in a - realtime setting. - - - | `Internal Documentation <docs/intern.html>`_ - | 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 dd086cbaa..000000000 --- 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 <download/nim-0.16.0_x32.zip>`_ - | SHA-256 69af94a6875a02543c1bf0fa03c665f126f8500a2c0e226c32571e64c6842e57 -* | 64 bit: `nim-0.16.0_x64.zip <download/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 <download/dlls.zip>`_ - | SHA-256 198112d3d6dc74d7964ba452158d44bfa57adef4dc47be8c39903f2a24e4a555 - - -These versions of mingw are known to work: - -* | 32 bit: `mingw32-6.3.0 <download/mingw32-6.3.0.7z>`_ - | SHA-256 1239a56d4c42e146b2cb25dc4d0871bd83f569d0a51a9198e84d010e0a75745a -* | 64 bit: `mingw64-6.3.0 <download/mingw64-6.3.0.7z>`_ - | 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 <http://mingw-w64.sourceforge.net/>`_. 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) <download/nim-0.16.0.tar.xz>`_ - | 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 <http://github.com/nim-lang/nim>`_ 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 <https://hub.docker.com/r/nimlang/nim/>`_ -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 6352bc194..000000000 --- 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 4b712fa3b..000000000 --- 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 <https://github.com/nim-lang/nimble>`_. -* 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 <https://github.com/nim-lang/Nim/wiki/Roadmap>`_ for -an up-to-date overview. diff --git a/web/learn.rst b/web/learn.rst deleted file mode 100644 index c0b583429..000000000 --- a/web/learn.rst +++ /dev/null @@ -1,70 +0,0 @@ -Learning Nim -============ - -.. container:: standout - - Tutorials - --------- - - .. container:: tutorials - - - | `Tutorial (part I) <docs/tut1.html>`_ - | Learn the basics of Nim's types, variables, procedures, control flow, etc... - - - | `Tutorial (part II) <docs/tut2.html>`_ - | Learn Nim's more advanced features such as OOP, generics, macros, etc... - - -.. container:: standout - - Books - --------- - - .. container:: books - - - | `Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_ - | *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 <http://nim-by-example.github.io/>`_ - | Nim by Example is an excellent starting place for beginners. - - - | `Nim on Rosetta Code <http://rosettacode.org/wiki/Category:Nimrod>`_ - | Many different Nim code examples comparable to other languages for reference. - - - | `Nim for C/C++ Programmers <https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers>`_ - | A useful cheat-sheet for those most familiar with C/C++ languages. - - -.. container:: standout - - Articles - -------- - - .. container:: articles - - - `How I Start: Nim <http://howistart.org/posts/nim/1>`_ - - `Getting Started With Nim <https://akehrer.github.io/posts/getting-started-with-nim>`_ - - `Getting Started With Nim - Part 2 <https://akehrer.github.io/posts/getting-started-with-nim-2>`_ - - `What is special about Nim? <http://hookrace.net/blog/what-is-special-about-nim>`_ - - `What makes Nim practical? <http://hookrace.net/blog/what-makes-nim-practical>`_ - - `Learn Nim in minutes <http://learnxinyminutes.com/docs/nim>`_ - - `Dr Dobbs Nimrod Publication <http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321>`_ - - `Nim articles by Göran Krampe <http://goran.krampe.se/category/nim>`_ - - -Documentation -------------- - -More examples of Nim code can be found in the `Nim Language Documentation <docs/manual.html>`_. - diff --git a/web/links.rst b/web/links.rst deleted file mode 100644 index e69de29bb..000000000 --- a/web/links.rst +++ /dev/null diff --git a/web/news.rst b/web/news.rst deleted file mode 100644 index 5086bc682..000000000 --- a/web/news.rst +++ /dev/null @@ -1,144 +0,0 @@ -==== -News -==== - -`2017-01-08 Nim Version 0.16.2 released <news/e031_version_0_16_2.html>`_ -=================================== - -`2017-01-08 Nim Version 0.16.0 released <news/e029_version_0_16_0.html>`_ -=================================== - -`2016-11-20 Nim in Action is going into production! <news/e030_nim_in_action_in_production.html>`_ -=================================== - -`2016-10-23 Nim Version 0.15.2 released <news/e028_version_0_15_2.html>`_ -=================================== - -`2016-09-30 Nim Version 0.15.0 released <news/e027_version_0_15_0.html>`_ -=================================== - -`2016-09-03 Nim Community Survey results <news/e026_survey_results.html>`_ -=================================== - -`2016-08-06 BountySource Update: The Road to v1.0 <news/e025_bountysource_update.html>`_ -=================================== - -`2016-06-23 Launching the 2016 Nim community survey <news/e024_survey.html>`_ -=================================== - -`2016-06-11 Version 0.14.2 released <news/e023_version_0_14_2.html>`_ -=================================== - -`2016-06-07 Version 0.14.0 released <news/e022_version_0_14_0.html>`_ -=================================== - -`2016-06-04 Meet our BountySource sponsors <news/e021_meet_sponsors.html>`_ -=================================== - -`2016-01-27 Nim in Action is now available! <news/e020_nim_in_action.html>`_ -================================== - -`2016-01-18 Version 0.13.0 released <news/e019_version_0_13_0.html>`_ -================================== - -`2016-01-18 Andreas Rumpf's talk at OSCON Amsterdam <news/e018_oscon_amsterdam.html>`_ -================================================== - -`2015-10-27 Version 0.12.0 released <news/e017_version_0_12_0.html>`_ -================================== - -`2015-10-16 First Nim conference <news/e016_nim_conf1.html>`_ -=============================== - -`2015-05-04 Version 0.11.2 released <news/e015_version_0_11_2.html>`_ -================================== - -`2015-04-30 Version 0.11.0 released <news/e014_version_0_11_0.html>`_ -================================== - -`2014-12-29 Version 0.10.2 released <news/e013_version_0_10_2.html>`_ -================================== - - -`2014-10-19 Version 0.9.6 released <news/e012_version_0_9_6.html>`_ -================================= - - -`2014-04-21 Version 0.9.4 released <news/e011_version_0_9_4.html>`_ -================================= - - -`2014-02-11 Nimrod Featured in Dr. Dobb's Journal <news/e010_dr_dobbs_journal.html>`_ -================================================ - - -`2014-01-15 Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online <news/e009_andreas_rumpfs_talk.html>`_ -============================================================================ - - -`2013-05-20 New website design! <news/e008_new_website.html>`_ -============================== - - - -`2013-05-20 Version 0.9.2 released <news/e007_version_0_9_2.html>`_ -================================= - - - -`2012-09-23 Version 0.9.0 released <news/e006_version_0_9_0.html>`_ -================================= - - - -`2012-02-09 Version 0.8.14 released <news/e005_version_0_8_14.html>`_ -================================== - - - -`2011-07-10 Version 0.8.12 released <news/e004_version_0_8_12.html>`_ -================================== - - -`2010-10-20 Version 0.8.10 released <news/e003_version_0_8_10.html>`_ -================================== - - - -`2010-03-14 Version 0.8.8 released <news/e002_version_0_8_8.html>`_ -================================= - - -`2009-12-21 Version 0.8.6 released <news/e001_version_0_8_6.html>`_ -================================= - - -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 019168a44..000000000 --- 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 `<manual.html#templates>`_ 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 - `<manual.html#pre-defined-floating-point-types>`_ 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 2df476814..000000000 --- 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 - ``<tag attr="value" />``. -- 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 f72c0076c..000000000 --- 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 5f154b2db..000000000 --- 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 4050c8b93..000000000 --- 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 5635ca94c..000000000 --- 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 <http://nimrod-code.org/trmacros.html>`_) - 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 89352c06c..000000000 --- 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 <manual.html#effect-system>`_. -Another major new feature is the introduction of statement list expressions, -more details on these can be found `here <manual.html#statement-list-expression>`_. -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 <https://github.com/Araq/Nimrod/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 b36cc99dd..000000000 --- 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 00cc5e101..000000000 --- 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<https://thestrangeloop.com/sessions/nimrod-a-new-approach-to-meta-programming>`_. -The `video and slides<http://www.infoq.com/presentations/nimrod>`_ -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 b48ccf31f..000000000 --- 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<http://www.drdobbs.com/open-source/nimrod-a-new-systems-programming-languag/240165321>`_ -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 2714c5c78..000000000 --- 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 <download.html>`_. - -This release includes about -`1400 changes <https://github.com/Araq/Nimrod/compare/v0.9.2...v0.9.4>`_ -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 <https://github.com/nimrod-code/babel>`_ 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 <https://github.com/Araq/Nimrod/compare/v0.9.2...v0.9.4>`_. - -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 7a148aaa5..000000000 --- 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 ad8afa3bf..000000000 --- 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 <nimfix.html>`_ 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 <https://github.com/logicchains/LPATHBench/blob/master/writeup.md>`_, -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 <https://github.com/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 <future.html>`_ 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 <nimfix.html>`_ 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 <https://github.com/Araq/Nim/issues/1366>`_). -- Fixed tuple unpacking issue inside closure iterators - (`#1067 <https://github.com/Araq/Nim/issues/1067>`_). -- Fixed ENDB compilation issues. -- Many ``asynchttpserver`` fixes. -- Macros can now keep global state across macro calls - (`#903 <https://github.com/Araq/Nim/issues/903>`_). -- ``osproc`` fixes on Windows. -- ``osproc.terminate`` fixed. -- Improvements to exception handling in async procedures. - (`#1487 <https://github.com/Araq/Nim/issues/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 a8a58f2ae..000000000 --- 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 <download.html>`_ page for binaries (Windows-only) -and 0.11.0 snapshots of the source code. The Windows installer now also -includes `Aporia <https://github.com/nim-lang/aporia>`_, -`Nimble <https://github.com/nim-lang/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 <https://github.com/Araq/Nim/issues/1788>`_). -- Fixed Windows cross-compilation on Linux. -- Overload resolution now works for types distinguished only by a - ``static[int]`` param - (`#1056 <https://github.com/Araq/Nim/issues/1056>`_). -- Other fixes relating to generic types and static params. -- Fixed some compiler crashes with unnamed tuples - (`#1774 <https://github.com/Araq/Nim/issues/1774>`_). -- Fixed ``channels.tryRecv`` blocking - (`#1816 <https://github.com/Araq/Nim/issues/1816>`_). -- Fixed generic instantiation errors with ``typedesc`` - (`#419 <https://github.com/Araq/Nim/issues/419>`_). -- Fixed generic regression where the compiler no longer detected constant - expressions properly (`#544 <https://github.com/Araq/Nim/issues/544>`_). -- Fixed internal error with generic proc using ``static[T]`` in a specific - way (`#1049 <https://github.com/Araq/Nim/issues/1049>`_). -- More fixes relating to generics (`#1820 <https://github.com/Araq/Nim/issues/1820>`_, - `#1050 <https://github.com/Araq/Nim/issues/1050>`_, - `#1859 <https://github.com/Araq/Nim/issues/1859>`_, - `#1858 <https://github.com/Araq/Nim/issues/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 <https://github.com/Araq/Nim/issues/1796>`_). -- Added more versions to openssl's DLL version list - (`076f993 <https://github.com/Araq/Nim/commit/076f993>`_). -- Fixed shallow copy in iterators being broken - (`#1803 <https://github.com/Araq/Nim/issues/1803>`_). -- ``nil`` can now be inserted into tables with the ``db_sqlite`` module - (`#1866 <https://github.com/Araq/Nim/issues/1866>`_). -- Fixed "Incorrect assembler generated" - (`#1907 <https://github.com/Araq/Nim/issues/1907>`_) -- Fixed "Expression templates that define macros are unusable in some contexts" - (`#1903 <https://github.com/Araq/Nim/issues/1903>`_) -- Fixed "a second level generic subclass causes the compiler to crash" - (`#1919 <https://github.com/Araq/Nim/issues/1919>`_) -- Fixed "nim 0.10.2 generates invalid AsyncHttpClient C code for MSVC " - (`#1901 <https://github.com/Araq/Nim/issues/1901>`_) -- Fixed "1 shl n produces wrong C code" - (`#1928 <https://github.com/Araq/Nim/issues/1928>`_) -- Fixed "Internal error on tuple yield" - (`#1838 <https://github.com/Araq/Nim/issues/1838>`_) -- Fixed "ICE with template" - (`#1915 <https://github.com/Araq/Nim/issues/1915>`_) -- Fixed "include the tool directory in the installer as it is required by koch" - (`#1947 <https://github.com/Araq/Nim/issues/1947>`_) -- Fixed "Can't compile if file location contains spaces on Windows" - (`#1955 <https://github.com/Araq/Nim/issues/1955>`_) -- Fixed "List comprehension macro only supports infix checks as guards" - (`#1920 <https://github.com/Araq/Nim/issues/1920>`_) -- Fixed "wrong field names of compatible tuples in generic types" - (`#1910 <https://github.com/Araq/Nim/issues/1910>`_) -- Fixed "Macros within templates no longer work as expected" - (`#1944 <https://github.com/Araq/Nim/issues/1944>`_) -- Fixed "Compiling for Standalone AVR broken in 0.10.2" - (`#1964 <https://github.com/Araq/Nim/issues/1964>`_) -- Fixed "Compiling for Standalone AVR broken in 0.10.2" - (`#1964 <https://github.com/Araq/Nim/issues/1964>`_) -- Fixed "Code generation for mitems with tuple elements" - (`#1833 <https://github.com/Araq/Nim/issues/1833>`_) -- Fixed "httpclient.HttpMethod should not be an enum" - (`#1962 <https://github.com/Araq/Nim/issues/1962>`_) -- Fixed "terminal / eraseScreen() throws an OverflowError" - (`#1906 <https://github.com/Araq/Nim/issues/1906>`_) -- Fixed "setControlCHook(nil) disables registered quit procs" - (`#1546 <https://github.com/Araq/Nim/issues/1546>`_) -- Fixed "Unexpected idetools behaviour" - (`#325 <https://github.com/Araq/Nim/issues/325>`_) -- Fixed "Unused lifted lambda does not compile" - (`#1642 <https://github.com/Araq/Nim/issues/1642>`_) -- Fixed "'low' and 'high' don't work with cstring asguments" - (`#2030 <https://github.com/Araq/Nim/issues/2030>`_) -- Fixed "Converting to int does not round in JS backend" - (`#1959 <https://github.com/Araq/Nim/issues/1959>`_) -- Fixed "Internal error genRecordField 2 when adding region to pointer." - (`#2039 <https://github.com/Araq/Nim/issues/2039>`_) -- Fixed "Macros fail to compile when compiled with --os:standalone" - (`#2041 <https://github.com/Araq/Nim/issues/2041>`_) -- Fixed "Reading from {.compileTime.} variables can cause code generation to fail" - (`#2022 <https://github.com/Araq/Nim/issues/2022>`_) -- Fixed "Passing overloaded symbols to templates fails inside generic procedures" - (`#1988 <https://github.com/Araq/Nim/issues/1988>`_) -- Fixed "Compiling iterator with object assignment in release mode causes "var not init"" - (`#2023 <https://github.com/Araq/Nim/issues/2023>`_) -- Fixed "calling a large number of macros doing some computation fails" - (`#1989 <https://github.com/Araq/Nim/issues/1989>`_) -- Fixed "Can't get Koch to install nim under Windows" - (`#2061 <https://github.com/Araq/Nim/issues/2061>`_) -- Fixed "Template with two stmt parameters segfaults compiler" - (`#2057 <https://github.com/Araq/Nim/issues/2057>`_) -- Fixed "`noSideEffect` not affected by `echo`" - (`#2011 <https://github.com/Araq/Nim/issues/2011>`_) -- Fixed "Compiling with the cpp backend ignores --passc" - (`#1601 <https://github.com/Araq/Nim/issues/1601>`_) -- Fixed "Put untyped procedure parameters behind the experimental pragma" - (`#1956 <https://github.com/Araq/Nim/issues/1956>`_) -- Fixed "generic regression" - (`#2073 <https://github.com/Araq/Nim/issues/2073>`_) -- Fixed "generic regression" - (`#2073 <https://github.com/Araq/Nim/issues/2073>`_) -- Fixed "Regression in template lookup with generics" - (`#2004 <https://github.com/Araq/Nim/issues/2004>`_) -- Fixed "GC's growObj is wrong for edge cases" - (`#2070 <https://github.com/Araq/Nim/issues/2070>`_) -- Fixed "Compiler internal error when creating an array out of a typeclass" - (`#1131 <https://github.com/Araq/Nim/issues/1131>`_) -- Fixed "GC's growObj is wrong for edge cases" - (`#2070 <https://github.com/Araq/Nim/issues/2070>`_) -- Fixed "Invalid Objective-C code generated when calling class method" - (`#2068 <https://github.com/Araq/Nim/issues/2068>`_) -- Fixed "walkDirRec Error" - (`#2116 <https://github.com/Araq/Nim/issues/2116>`_) -- Fixed "Typo in code causes compiler SIGSEGV in evalAtCompileTime" - (`#2113 <https://github.com/Araq/Nim/issues/2113>`_) -- Fixed "Regression on exportc" - (`#2118 <https://github.com/Araq/Nim/issues/2118>`_) -- Fixed "Error message" - (`#2102 <https://github.com/Araq/Nim/issues/2102>`_) -- Fixed "hint[path] = off not working in nim.cfg" - (`#2103 <https://github.com/Araq/Nim/issues/2103>`_) -- Fixed "compiler crashes when getting a tuple from a sequence of generic tuples" - (`#2121 <https://github.com/Araq/Nim/issues/2121>`_) -- Fixed "nim check hangs with when" - (`#2123 <https://github.com/Araq/Nim/issues/2123>`_) -- Fixed "static[T] param in nested type resolve/caching issue" - (`#2125 <https://github.com/Araq/Nim/issues/2125>`_) -- Fixed "repr should display ``\0``" - (`#2124 <https://github.com/Araq/Nim/issues/2124>`_) -- Fixed "'nim check' never ends in case of recursive dependency " - (`#2051 <https://github.com/Araq/Nim/issues/2051>`_) -- Fixed "From macros: Error: unhandled exception: sons is not accessible" - (`#2167 <https://github.com/Araq/Nim/issues/2167>`_) -- Fixed "`fieldPairs` doesn't work inside templates" - (`#1902 <https://github.com/Araq/Nim/issues/1902>`_) -- Fixed "fields iterator misbehavior on break statement" - (`#2134 <https://github.com/Araq/Nim/issues/2134>`_) -- Fixed "Fix for compiler not building anymore since #c3244ef1ff" - (`#2193 <https://github.com/Araq/Nim/issues/2193>`_) -- Fixed "JSON parser fails in cpp output mode" - (`#2199 <https://github.com/Araq/Nim/issues/2199>`_) -- Fixed "macros.getType mishandles void return" - (`#2211 <https://github.com/Araq/Nim/issues/2211>`_) -- Fixed "Regression involving templates instantiated within generics" - (`#2215 <https://github.com/Araq/Nim/issues/2215>`_) -- Fixed ""Error: invalid type" for 'not nil' on generic type." - (`#2216 <https://github.com/Araq/Nim/issues/2216>`_) -- Fixed "--threads:on breaks async" - (`#2074 <https://github.com/Araq/Nim/issues/2074>`_) -- Fixed "Type mismatch not always caught, can generate bad code for C backend." - (`#2169 <https://github.com/Araq/Nim/issues/2169>`_) -- Fixed "Failed C compilation when storing proc to own type in object" - (`#2233 <https://github.com/Araq/Nim/issues/2233>`_) -- Fixed "Unknown line/column number in constant declaration type conversion error" - (`#2252 <https://github.com/Araq/Nim/issues/2252>`_) -- Fixed "Adding {.compile.} fails if nimcache already exists." - (`#2247 <https://github.com/Araq/Nim/issues/2247>`_) -- Fixed "Two different type names generated for a single type (C backend)" - (`#2250 <https://github.com/Araq/Nim/issues/2250>`_) -- Fixed "Ambigous call when it should not be" - (`#2229 <https://github.com/Araq/Nim/issues/2229>`_) -- Fixed "Make sure we can load root urls" - (`#2227 <https://github.com/Araq/Nim/issues/2227>`_) -- Fixed "Failure to slice a string with an int subrange type" - (`#794 <https://github.com/Araq/Nim/issues/794>`_) -- Fixed "documentation error" - (`#2205 <https://github.com/Araq/Nim/issues/2205>`_) -- Fixed "Code growth when using `const`" - (`#1940 <https://github.com/Araq/Nim/issues/1940>`_) -- Fixed "Instances of generic types confuse overload resolution" - (`#2220 <https://github.com/Araq/Nim/issues/2220>`_) -- Fixed "Compiler error when initializing sdl2's EventType" - (`#2316 <https://github.com/Araq/Nim/issues/2316>`_) -- Fixed "Parallel disjoint checking can't handle `<`, `items`, or arrays" - (`#2287 <https://github.com/Araq/Nim/issues/2287>`_) -- Fixed "Strings aren't copied in parallel loop" - (`#2286 <https://github.com/Araq/Nim/issues/2286>`_) -- Fixed "JavaScript compiler crash with tables" - (`#2298 <https://github.com/Araq/Nim/issues/2298>`_) -- Fixed "Range checker too restrictive" - (`#1845 <https://github.com/Araq/Nim/issues/1845>`_) -- Fixed "Failure to slice a string with an int subrange type" - (`#794 <https://github.com/Araq/Nim/issues/794>`_) -- Fixed "Remind user when compiling in debug mode" - (`#1868 <https://github.com/Araq/Nim/issues/1868>`_) -- Fixed "Compiler user guide has jumbled options/commands." - (`#1819 <https://github.com/Araq/Nim/issues/1819>`_) -- Fixed "using `method`: 1 in a objects constructor fails when compiling" - (`#1791 <https://github.com/Araq/Nim/issues/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 273182340..000000000 --- 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 228bffd28..000000000 --- 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 - - <img src="../assets/zeo/banner.jpg" alt="First Nim conference in Ukraine!" width="682"/> - -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 <https://nimworkshop.splashthat.com/>`_. 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 63088f9e2..000000000 --- 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 <docs/nims.html>`_, -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 <download.html>`_ page. - -For a more detailed list of changes look below. Some of the upcoming breaking -changes are also documented in this forum -`thread <http://forum.nim-lang.org/t/1708>`_. - -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 <https://github.com/docopt/docopt.nim/issues/13>`_ - 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 <docs/nims.html>`_. -- The compiler finally considers symbol binding rules in templates and - generics for overloaded ``[]``, ``[]=``, ``{}``, ``{}=`` operators - (issue `#2599 <https://github.com/nim-lang/Nim/issues/2599>`_). -- The compiler now supports a `bitsize pragma <docs/manual.html#pragmas-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 <docs/manual.html#when-nimvm-statement>`_ 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 <https://github.com/Araq/Nim/issues/2662>`_) -- Fixed "repr() misses base object field in 2nd level derived object" - (`#2749 <https://github.com/Araq/Nim/issues/2749>`_) -- Fixed "nimsuggest doesn't work more than once on the non-main file" - (`#2694 <https://github.com/Araq/Nim/issues/2694>`_) -- Fixed "JS Codegen. Passing arguments by var in certain cases leads to invalid JS." - (`#2798 <https://github.com/Araq/Nim/issues/2798>`_) -- Fixed ""check" proc in unittest.nim prevents the propagation of changes to var parameters." - (`#964 <https://github.com/Araq/Nim/issues/964>`_) -- Fixed "Excessive letters in integer literals are not an error" - (`#2523 <https://github.com/Araq/Nim/issues/2523>`_) -- Fixed "Unicode dashes as "lisp'ish" alternative to hump and snake notation" - (`#2811 <https://github.com/Araq/Nim/issues/2811>`_) -- Fixed "Bad error message when trying to construct an object incorrectly" - (`#2584 <https://github.com/Araq/Nim/issues/2584>`_) -- Fixed "Determination of GC safety of globals is broken " - (`#2854 <https://github.com/Araq/Nim/issues/2854>`_) -- Fixed "v2 gc crashes compiler" - (`#2687 <https://github.com/Araq/Nim/issues/2687>`_) -- Fixed "Compile error using object in const array" - (`#2774 <https://github.com/Araq/Nim/issues/2774>`_) -- Fixed "httpclient async requests with method httpPOST isn't sending Content-Length header" - (`#2884 <https://github.com/Araq/Nim/issues/2884>`_) -- Fixed "Streams module not working with JS backend" - (`#2148 <https://github.com/Araq/Nim/issues/2148>`_) -- Fixed "Sign of certain short constants is wrong" - (`#1179 <https://github.com/Araq/Nim/issues/1179>`_) -- Fixed "Symlinks to directories reported as symlinks to files" - (`#1985 <https://github.com/Araq/Nim/issues/1985>`_) -- Fixed "64-bit literals broken on x86" - (`#2909 <https://github.com/Araq/Nim/issues/2909>`_) -- Fixed "import broken for certain names" - (`#2904 <https://github.com/Araq/Nim/issues/2904>`_) -- Fixed "Invalid UTF-8 strings in JavaScript" - (`#2917 <https://github.com/Araq/Nim/issues/2917>`_) -- Fixed "[JS][Codegen] Initialising object doesn't create unmentioned fields." - - (`#2617 <https://github.com/Araq/Nim/issues/2617>`_) -- Fixed "Table returned from proc computed at compile time is missing keys:" - (`#2297 <https://github.com/Araq/Nim/issues/2297>`_) -- Fixed "Clarify copyright status for some files" - (`#2949 <https://github.com/Araq/Nim/issues/2949>`_) -- Fixed "math.nim: trigonometry: radians to degrees conversion" - (`#2881 <https://github.com/Araq/Nim/issues/2881>`_) -- Fixed "xoring unsigned integers yields RangeError in certain conditions" - (`#2979 <https://github.com/Araq/Nim/issues/2979>`_) -- Fixed "Directly checking equality between procs" - (`#2985 <https://github.com/Araq/Nim/issues/2985>`_) -- Fixed "Compiler crashed, but there have to be meaningful error message" - (`#2974 <https://github.com/Araq/Nim/issues/2974>`_) -- Fixed "repr is broken" - (`#2992 <https://github.com/Araq/Nim/issues/2992>`_) -- Fixed "Ipv6 devel - add IPv6 support for asyncsockets, make AF_INET6 a default" - (`#2976 <https://github.com/Araq/Nim/issues/2976>`_) -- Fixed "Compilation broken on windows" - (`#2996 <https://github.com/Araq/Nim/issues/2996>`_) -- Fixed "'u64 literal conversion compiler error" - (`#2731 <https://github.com/Araq/Nim/issues/2731>`_) -- Fixed "Importing 'impure' libraries while using threads causes segfaults" - (`#2672 <https://github.com/Araq/Nim/issues/2672>`_) -- Fixed "Uncatched exception in async procedure on raise statement" - (`#3014 <https://github.com/Araq/Nim/issues/3014>`_) -- Fixed "nim doc2 fails in Mac OS X due to system.nim (possibly related to #1898)" - (`#3005 <https://github.com/Araq/Nim/issues/3005>`_) -- Fixed "IndexError when rebuilding Nim on iteration 2" - (`#3018 <https://github.com/Araq/Nim/issues/3018>`_) -- Fixed "Assigning large const set to variable looses some information" - (`#2880 <https://github.com/Araq/Nim/issues/2880>`_) -- Fixed "Inconsistent generics behavior" - (`#3022 <https://github.com/Araq/Nim/issues/3022>`_) -- Fixed "Compiler breaks on float64 division" - (`#3028 <https://github.com/Araq/Nim/issues/3028>`_) -- Fixed "Confusing error message comparing string to nil " - (`#2935 <https://github.com/Araq/Nim/issues/2935>`_) -- Fixed "convert 64bit number to float on 32bit" - (`#1463 <https://github.com/Araq/Nim/issues/1463>`_) -- Fixed "Type redefinition and construction will break nim check" - (`#3032 <https://github.com/Araq/Nim/issues/3032>`_) -- Fixed "XmlParser fails on very large XML files without new lines" - (`#2429 <https://github.com/Araq/Nim/issues/2429>`_) -- Fixed "Error parsing arguments with whitespaces" - (`#2874 <https://github.com/Araq/Nim/issues/2874>`_) -- Fixed "Crash when missing one arg and used a named arg" - (`#2993 <https://github.com/Araq/Nim/issues/2993>`_) -- Fixed "Wrong number of arguments in assert will break nim check" - (`#3044 <https://github.com/Araq/Nim/issues/3044>`_) -- Fixed "Wrong const definition will break nim check" - (`#3041 <https://github.com/Araq/Nim/issues/3041>`_) -- Fixed "Wrong set declaration will break nim check" - (`#3040 <https://github.com/Araq/Nim/issues/3040>`_) -- Fixed "Compiler segfault (type section)" - (`#2540 <https://github.com/Araq/Nim/issues/2540>`_) -- Fixed "Segmentation fault when compiling this code" - (`#3038 <https://github.com/Araq/Nim/issues/3038>`_) -- Fixed "Kill nim i" - (`#2633 <https://github.com/Araq/Nim/issues/2633>`_) -- Fixed "Nim check will break on wrong array declaration" - (`#3048 <https://github.com/Araq/Nim/issues/3048>`_) -- Fixed "boolVal seems to be broken" - (`#3046 <https://github.com/Araq/Nim/issues/3046>`_) -- Fixed "Nim check crashes on wrong set/array declaration inside ref object" - (`#3062 <https://github.com/Araq/Nim/issues/3062>`_) -- Fixed "Nim check crashes on incorrect generic arg definition" - (`#3051 <https://github.com/Araq/Nim/issues/3051>`_) -- Fixed "Nim check crashes on iterating nonexistent var" - (`#3053 <https://github.com/Araq/Nim/issues/3053>`_) -- Fixed "Nim check crashes on wrong param set declaration + iteration" - (`#3054 <https://github.com/Araq/Nim/issues/3054>`_) -- Fixed "Wrong sharing of static_t instantations" - (`#3112 <https://github.com/Araq/Nim/issues/3112>`_) -- Fixed "Automatically generated proc conflicts with user-defined proc when .exportc.'ed" - (`#3134 <https://github.com/Araq/Nim/issues/3134>`_) -- Fixed "getTypeInfo call crashes nim" - (`#3099 <https://github.com/Araq/Nim/issues/3099>`_) -- Fixed "Array ptr dereference" - (`#2963 <https://github.com/Araq/Nim/issues/2963>`_) -- Fixed "Internal error when `repr`-ing a type directly" - (`#3079 <https://github.com/Araq/Nim/issues/3079>`_) -- Fixed "unknown type name 'TNimType' after importing typeinfo module" - (`#2841 <https://github.com/Araq/Nim/issues/2841>`_) -- Fixed "Can export a template twice and from inside a block" - (`#1738 <https://github.com/Araq/Nim/issues/1738>`_) -- Fixed "C Codegen: C Types are defined after their usage in certain cases" - (`#2823 <https://github.com/Araq/Nim/issues/2823>`_) -- Fixed "s.high refers to the current seq instead of the old one" - (`#1832 <https://github.com/Araq/Nim/issues/1832>`_) -- Fixed "Error while unmarshaling null values" - (`#3149 <https://github.com/Araq/Nim/issues/3149>`_) -- Fixed "Inference of `static[T]` in sequences" - (`#3144 <https://github.com/Araq/Nim/issues/3144>`_) -- Fixed "Argument named "closure" to proc inside template interfere with closure pragma" - (`#3171 <https://github.com/Araq/Nim/issues/3171>`_) -- Fixed "Internal error with aliasing inside template" - (`#3158 <https://github.com/Araq/Nim/issues/3158>`_) -- Fixed "Cardinality of sets prints unexpected value" - (`#3135 <https://github.com/Araq/Nim/issues/3135>`_) -- Fixed "Nim crashes on const assignment from function returning var ref object" - (`#3103 <https://github.com/Araq/Nim/issues/3103>`_) -- Fixed "`repr` cstring" - (`#3080 <https://github.com/Araq/Nim/issues/3080>`_) -- Fixed "Nim check crashes on wrong enum declaration" - (`#3052 <https://github.com/Araq/Nim/issues/3052>`_) -- Fixed "Compiler assertion when evaluating template with static[T]" - (`#1858 <https://github.com/Araq/Nim/issues/1858>`_) -- Fixed "Erroneous overflow in iterators when compiler built with overflowChecks enabled" - (`#3140 <https://github.com/Araq/Nim/issues/3140>`_) -- Fixed "Unicode dashes as "lisp'ish" alternative to hump and snake notation" - (`#2811 <https://github.com/Araq/Nim/issues/2811>`_) -- Fixed "Calling discardable proc from a defer is an error." - (`#3185 <https://github.com/Araq/Nim/issues/3185>`_) -- Fixed "Defer statement at the end of a block produces ICE" - (`#3186 <https://github.com/Araq/Nim/issues/3186>`_) -- Fixed "Call to `createU` fails to compile" - (`#3193 <https://github.com/Araq/Nim/issues/3193>`_) -- Fixed "VM crash when accessing array's element" - (`#3192 <https://github.com/Araq/Nim/issues/3192>`_) -- Fixed "Unexpected proc invoked when different modules add procs to a type from a 3rd module" - (`#2664 <https://github.com/Araq/Nim/issues/2664>`_) -- Fixed "Nim crashes on conditional declaration inside a template" - (`#2670 <https://github.com/Araq/Nim/issues/2670>`_) -- Fixed "Iterator names conflict within different scopes" - (`#2752 <https://github.com/Araq/Nim/issues/2752>`_) -- Fixed "VM: Cannot assign int value to ref variable" - (`#1329 <https://github.com/Araq/Nim/issues/1329>`_) -- Fixed "Incorrect code generated for tagged unions with enums not starting at zero" - (`#3096 <https://github.com/Araq/Nim/issues/3096>`_) -- Fixed "Compile time procs using forward declarations are silently ignored" - (`#3066 <https://github.com/Araq/Nim/issues/3066>`_) -- Fixed "re binding error in generic" - (`#1965 <https://github.com/Araq/Nim/issues/1965>`_) -- Fixed "os.getCreationTime is incorrect/impossible on Posix systems" - (`#1058 <https://github.com/Araq/Nim/issues/1058>`_) -- Fixed "Improve error message for osproc.startProcess when command does not exist" - (`#2183 <https://github.com/Araq/Nim/issues/2183>`_) -- Fixed "gctest segfaults with --gc:markandsweep on x86_64" - (`#2305 <https://github.com/Araq/Nim/issues/2305>`_) -- Fixed "Coroutine changes break compilation on unsupported architectures" - (`#3245 <https://github.com/Araq/Nim/issues/3245>`_) -- Fixed "Bugfix: Windows 32bit TinyCC support issue fixed" - (`#3237 <https://github.com/Araq/Nim/issues/3237>`_) -- Fixed "db_mysql getValue() followed by exec() causing error" - (`#3220 <https://github.com/Araq/Nim/issues/3220>`_) -- Fixed "xmltree.newEntity creates xnCData instead of xnEntity" - (`#3282 <https://github.com/Araq/Nim/issues/3282>`_) -- Fixed "Methods and modules don't work together" - (`#2590 <https://github.com/Araq/Nim/issues/2590>`_) -- Fixed "String slicing not working in the vm" - (`#3300 <https://github.com/Araq/Nim/issues/3300>`_) -- Fixed "internal error: evalOp(mTypeOf)" - (`#3230 <https://github.com/Araq/Nim/issues/3230>`_) -- Fixed "#! source code prefix collides with Unix Shebang" - (`#2559 <https://github.com/Araq/Nim/issues/2559>`_) -- Fixed "wrong codegen for constant object" - (`#3195 <https://github.com/Araq/Nim/issues/3195>`_) -- Fixed "Doc comments inside procs with implicit returns don't work" - (`#1528 <https://github.com/Araq/Nim/issues/1528>`_) diff --git a/web/news/e018_oscon_amsterdam.rst b/web/news/e018_oscon_amsterdam.rst deleted file mode 100644 index fcb4a8794..000000000 --- a/web/news/e018_oscon_amsterdam.rst +++ /dev/null @@ -1,13 +0,0 @@ -Andreas Rumpf's talk at OSCON Amsterdam -================================================== - -.. container:: metadata - - Posted by Dominik Picheta on 18/01/2016 - -In case you have missed it, here is Andreas' Nim: An Overview talk at -OSCON Amsterdam. - -.. raw:: html - - <iframe width="560" height="315" src="https://www.youtube.com/embed/4rJEBs_Nnaw" frameborder="0" allowfullscreen></iframe> diff --git a/web/news/e019_version_0_13_0.rst b/web/news/e019_version_0_13_0.rst deleted file mode 100644 index 2c8e66fa3..000000000 --- a/web/news/e019_version_0_13_0.rst +++ /dev/null @@ -1,182 +0,0 @@ -Version 0.13.0 released -======================= - -.. container:: metadata - - Posted by Dominik Picheta on 18/01/2016 - -Once again we are proud to announce the latest release of the Nim compiler -and related tools. This release comes just 3 months after the last -release! - -A new version of Nimble which depends on this release, has also been -released. See `this <http://forum.nim-lang.org/t/1912>`_ forum thread for -more information about the Nimble release. - -This release of Nim includes over 116 bug fixes, many of which are related -to closures. The lambda lifting algorithm in the compiler has been completely -rewritten, and some changes have been made to the semantics of closures in -Nim as a result. These changes may affect backwards compatibility and are all -described in the section below. - -With this release, we are one step closer to Nim version 1.0. -The 1.0 release will be a big milestone for Nim, because after that version -is released there will be no more breaking changes made to the language -or the standard library. - -That being said, the next release will likely be Nim 0.14. It will focus on -improvements to the GC and concurrency. We will in particular be looking at -ways to add multi-core support to async await. Standard library improvements -are also on our roadmap but may not make it for Nim 0.14. - -As always you can download the latest version of Nim from the -`download <download.html>`_ page. - -Happy coding! - -Changes affecting backwards compatibility ------------------------------------------ - -- ``macros.newLit`` for ``bool`` now produces false/true symbols which - actually work with the bool datatype. -- When compiling to JS: ``Node``, ``NodeType`` and ``Document`` are no longer - defined. Use the types defined in ``dom.nim`` instead. -- The check ``x is iterator`` (used for instance in concepts) was always a - weird special case (you could not use ``x is proc``) and was removed from - the language. -- Top level routines cannot have the calling convention ``closure`` - anymore. -- The ``redis`` module has been moved out of the standard library. It can - now be installed via Nimble and is located here: - https://github.com/nim-lang/redis -- ``math.RunningStat`` and its associated procs have been moved from - the ``math`` module to a new ``stats`` module. - - -Syntax changes -~~~~~~~~~~~~~~ - -The parser now considers leading whitespace in front of operators -to determine if an operator is used in prefix or infix position. -This means that finally ``echo $foo`` is parsed as people expect, -which is as ``echo($foo)``. It used to be parsed as ``(echo) $ (foo)``. - -``echo $ foo`` continues to be parsed as ``(echo) $ (foo)``. - -This also means that ``-1`` is always parsed as prefix operator so -code like ``0..kArraySize div 2 -1`` needs to be changed to -``0..kArraySize div 2 - 1``. - -This release also adds multi-line comments to Nim. The syntax for them is: -``#[ comment here ]#``. For more details read the section of -the `manual <docs/manual.html#lexical-analysis-multiline-comments>`_. - -Iterator changes -~~~~~~~~~~~~~~~~ - -Implicit return type inference for iterators has been removed from the language. The following used to work: - -.. code-block:: nim - iterator it = - yield 7 - -This was a strange special case and has been removed. Now you need to write it like so which is consistent with procs: - -.. code-block:: nim - iterator it: auto = - yield 7 - - -Closure changes -~~~~~~~~~~~~~~~ - -The semantics of closures changed: Capturing variables that are in loops do not produce a new environment. Nim closures behave like JavaScript closures now. - -The following used to work as the environment creation used to be attached to the loop body: - -.. code-block:: nim - - proc outer = - var s: seq[proc(): int {.closure.}] = @[] - for i in 0 ..< 30: - let ii = i - s.add(proc(): int = return ii*ii) - -This behaviour has changed in 0.13.0 and now needs to be written as: - -.. code-block:: nim - - proc outer = - var s: seq[proc(): int {.closure.}] = @[] - for i in 0 ..< 30: - (proc () = - let ii = i - s.add(proc(): int = return ii*ii))() - -The reason is that environment creations are now only performed once -per proc call. This change is subtle and unfortunate, but: - -1. Affects almost no code out there. -2. Is easier to implement and we are at a point in Nim's development process where simple+stable wins over perfect-in-theory+unstable-in-practice. -3. Implies programmers are more in control of where memory is allocated which is beneficial for a systems programming language. - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222015-10-27+..+2016-01-19%22+>`_. - -- Fixed "Generic arguments cannot be used in templates (raising undeclared identifier)" - (`#3498 <https://github.com/nim-lang/Nim/issues/3498>`_) -- Fixed "multimethods: Error: internal error: cgmeth.genConv" - (`#3550 <https://github.com/nim-lang/Nim/issues/3550>`_) -- Fixed "nimscript - SIGSEGV in except block" - (`#3546 <https://github.com/nim-lang/Nim/issues/3546>`_) -- Fixed "Bool literals in macros do not work." - (`#3541 <https://github.com/nim-lang/Nim/issues/3541>`_) -- Fixed "Docs: nativesocket.html - 404" - (`#3582 <https://github.com/nim-lang/Nim/issues/3582>`_) -- Fixed ""not nil" return types never trigger an error or warning" - (`#2285 <https://github.com/nim-lang/Nim/issues/2285>`_) -- Fixed "No warning or error is raised even if not nil is specified " - (`#3222 <https://github.com/nim-lang/Nim/issues/3222>`_) -- Fixed "Incorrect fsmonitor add() filter logic" - (`#3611 <https://github.com/nim-lang/Nim/issues/3611>`_) -- Fixed ""nimble install nimsuggest" failed" - (`#3622 <https://github.com/nim-lang/Nim/issues/3622>`_) -- Fixed "compile time `excl ` cause SIGSEGV" - (`#3639 <https://github.com/nim-lang/Nim/issues/3639>`_) -- Fixed "Unable to echo unsigned ints at compile-time" - (`#2514 <https://github.com/nim-lang/Nim/issues/2514>`_) -- Fixed "Nested closure iterator produces internal error" - (`#1725 <https://github.com/nim-lang/Nim/issues/1725>`_) -- Fixed "C Error on walkDirRec closure" - (`#3636 <https://github.com/nim-lang/Nim/issues/3636>`_) -- Fixed "Error in generated c code" - (`#3201 <https://github.com/nim-lang/Nim/issues/3201>`_) -- Fixed "C Compile-time error with generic proc type." - (`#2659 <https://github.com/nim-lang/Nim/issues/2659>`_) -- Fixed "ICE dereferencing array pointer" - (`#2240 <https://github.com/nim-lang/Nim/issues/2240>`_) -- Fixed "Lambda lifting crash" - (`#2007 <https://github.com/nim-lang/Nim/issues/2007>`_) -- Fixed "Can't reference outer variables from a closure in an iterator" - (`#2604 <https://github.com/nim-lang/Nim/issues/2604>`_) -- Fixed "M&S collector breaks with nested for loops." - (`#603 <https://github.com/nim-lang/Nim/issues/603>`_) -- Fixed "Regression: bad C codegen" - (`#3723 <https://github.com/nim-lang/Nim/issues/3723>`_) -- Fixed "JS backend - handle bool type in case statement" - (`#3722 <https://github.com/nim-lang/Nim/issues/3722>`_) -- Fixed "linenoise compilation with cpp" - (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) -- Fixed "(???,???) duplicate case label" - (`#3665 <https://github.com/nim-lang/Nim/issues/3665>`_) -- Fixed "linenoise compilation with cpp" - (`#3720 <https://github.com/nim-lang/Nim/issues/3720>`_) -- Fixed "Update list of backward incompatibilities for Nim 0.12.0 in the main site" - (`#3689 <https://github.com/nim-lang/Nim/issues/3689>`_) -- Fixed "Can't compile nimble with latest devel - codegen bug" - (`#3730 <https://github.com/nim-lang/Nim/issues/3730>`_) diff --git a/web/news/e020_nim_in_action.rst b/web/news/e020_nim_in_action.rst deleted file mode 100644 index 33bcb7947..000000000 --- a/web/news/e020_nim_in_action.rst +++ /dev/null @@ -1,32 +0,0 @@ -Nim in Action is now available! -=============================== - -.. container:: metadata - - Posted by Dominik Picheta on 27/01/2016 - -.. raw::html - - <a href="https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81"> - <img src="../assets/niminaction/banner.jpg" alt="New in Manning Early Access Program: Nim in Action!" width="682"/> - </a> - -We are proud to announce that *Nim in Action*, a book about the Nim programming -language, is now available! - -The book is available at this URL: -`https://www.manning.com/books/nim-in-action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_ - -The first three chapters are available for download -as an eBook through Manning's Early Access program. You can download a free -sample of the book containing the first chapter as well! - -*Nim in Action* is currently being written and is expected to be completed by -Summer 2016. If you purchase the eBook you will start receiving new chapters -as they become available. You can also purchase the printed book together with -the eBook for a slightly higher price. - -If you do read the book, even if it's just the first chapter, then please share -any comments, suggestions and questions on the -`Nim forum <http://forum.nim-lang.org/t/1978>`_ or in -Manning's own `Author Online forum! <https://forums.manning.com/forums/nim-in-action>`_ diff --git a/web/news/e021_meet_sponsors.rst b/web/news/e021_meet_sponsors.rst deleted file mode 100644 index 0bfb472c5..000000000 --- a/web/news/e021_meet_sponsors.rst +++ /dev/null @@ -1,30 +0,0 @@ -Meet our BountySource sponsors -============================== - -.. container:: metadata - - Posted by Dominik Picheta on 04/06/2016 - - -.. raw::html - - <a href="../sponsors.html"> - <img src="../assets/bountysource/meet_sponsors.png" alt="Meet our BountySource sponsors!" width="400"/> - </a> - -It has now been two months since we began our -`BountySource fundraiser <https://salt.bountysource.com/teams/nim>`_. We -promised to create a "Current sponsors" page and are happy to announce that -it is now live `here <http://nim-lang.org/sponsors.html>`_. - -We are happy to say that last month we raised more than in the previous month! -A staggering $862 was raised during that month and we thank each and every one -of you once again for your generous contributions. - -We are gearing up for a brand new release of Nim that includes many bug fixes -and some new features. In the meantime, as always, feel free to get in -touch with us via `Twitter <https://twitter.com/nim_lang>`_, the -`#nim channel on Freenode <http://webchat.freenode.net/?channels=nim>`_ -or via email at contact@nim-lang.org. - -Thanks for reading! diff --git a/web/news/e022_version_0_14_0.rst b/web/news/e022_version_0_14_0.rst deleted file mode 100644 index 6634d0053..000000000 --- a/web/news/e022_version_0_14_0.rst +++ /dev/null @@ -1,476 +0,0 @@ -Version 0.14.0 released -======================= - -.. container:: metadata - - Posted by Dominik Picheta on 07/06/2016 - -It's been a while since the last release, but we've been very busy in the -meantime. In -addition to working on Nim we have started a -`BountySource campaign <https://salt.bountysource.com/teams/nim>`_ and -announced the pre-release of a new Nim book titled -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_. -Our BountySource campaign has already been very successful, helping us raise -enough funds to surpass 4 of our monthly goals. The companies and individuals -that made this possible are listed on our brand new -`sponsors page <http://nim-lang.org/sponsors.html>`_. - -This release includes over 260 bug fixes. As mentioned in the previous release -announcement, one of the focuses of this release was going to be improvements -to the GC. Indeed, the most prominent fixes are related to the GC not collecting -cycles properly. This was a major problem that was triggered typically when -applications using asynchronous I/O were left running for long periods of time. - -There have also been many fixes to the way that the compiler sources are -installed. Some applications such as Nimble depend on these sources and they -are now included in the release tarballs. This should fix many of the problems -that users experienced trying to compile the Nimble package manager. - -Finally, you will find multiple changes in the standard library. Some of which -unfortunately affects backwards compatibility. This includes the ``random`` -procedures being moved to a new ``random`` module, HTTP headers being stored -in a new ``HttpHeaders`` object and the ``round`` procedure in the ``math`` module -being changed to return a ``float`` instead of an ``int``. You can find a full -list of such changes below. - -Together with the new release of Nim, we are also releasing a new version of -Nimble. The release notes for it are available on -`GitHub <https://github.com/nim-lang/nimble/blob/master/changelog.markdown#074---06062016>`_. - -As always you can download the latest version of Nim from the -`download <http://nim-lang.org/download.html>`_ page. - -We hope that you will like this new release. Let us know if you run into -any trouble, have any questions or want to give some feedback. You can get -in touch with us on the `Forum <http://forum.nim-lang.org/>`_, -`IRC <http://webchat.freenode.net/?channels=nim>`_, -`Twitter <http://twitter.com/nim_lang>`_, -or via email contact@nim-lang.org. - -Happy coding! - -Changes affecting backwards compatibility ------------------------------------------ - -- ``--out`` and ``--nimcache`` command line arguments are now relative to - current directory. Previously they were relative to project directory. -- The json module now stores the name/value pairs in objects internally as a - hash table of type ``fields*: Table[string, JsonNode]`` instead of a - sequence. This means that order is no longer preserved. When using the - ``table.mpairs`` iterator only the returned values can be modified, no - longer the keys. -- The deprecated Nim shebang notation ``#!`` was removed from the language. Use ``#?`` instead. -- Typeless parameters have been removed from the language since it would - clash with ``using``. -- Procedures in ``mersenne.nim`` (Mersenne Twister implementation) no longer - accept and produce ``int`` values which have platform-dependent size - - they use ``uint32`` instead. -- The ``strutils.unindent`` procedure has been rewritten. Its parameters now - match the parameters of ``strutils.indent``. See issue `#4037 <https://github.com/nim-lang/Nim/issues/4037>`_ - for more details. -- The ``matchers`` module has been deprecated. See issue `#2446 <https://github.com/nim-lang/Nim/issues/2446>`_ - for more details. -- The ``json.[]`` no longer returns ``nil`` when a key is not found. Instead it - raises a ``KeyError`` exception. You can compile with the ``-d:nimJsonGet`` - flag to get a list of usages of ``[]``, as well as to restore the operator's - previous behaviour. -- When using ``useMalloc``, an additional header containing the size of the - allocation will be allocated, to support zeroing memory on realloc as expected - by the language. With this change, ``alloc`` and ``dealloc`` are no longer - aliases for ``malloc`` and ``free`` - use ``c_malloc`` and ``c_free`` if - you need that. -- The ``json.%`` operator is now overloaded for ``object``, ``ref object`` and - ``openarray[T]``. -- The procs related to ``random`` number generation in ``math.nim`` have - been moved to its own ``random`` module and been reimplemented in pure - Nim. -- The path handling changed. The project directory is not added to the - search path automatically anymore. Add this line to your project's - config to get back the old behaviour: ``--path:"$projectdir"``. (The compiler - replaces ``$projectdir`` with your project's absolute directory when compiling, - so you don't need to replace ``$projectdir`` by your project's actual - directory!). See issue `#546 <https://github.com/nim-lang/Nim/issues/546>`_ - and `this forum thread <http://forum.nim-lang.org/t/2277>`_ for more - information. -- The ``round`` function in ``math.nim`` now returns a float and has been - corrected such that the C implementation always rounds up from .5 rather - than changing the operation for even and odd numbers. -- The ``round`` function now accepts a ``places`` argument to round to a - given number of places (e.g. round 4.35 to 4.4 if ``places`` is 1). -- In ``strutils.nim``, ``formatSize`` now returns a number representing the - size in conventional decimal format (e.g. 2.234GB meaning 2.234 GB rather - than meaning 2.285 GB as in the previous implementation). By default it - also uses IEC prefixes (KiB, MiB) etc and optionally uses colloquial names - (kB, MB etc) and the (SI-preferred) space. -- The ``==`` operator for ``cstring`` now implements a value comparison - for the C backend (using ``strcmp``), not reference comparisons anymore. - Convert the cstrings to pointers if you really want reference equality - for speed. -- HTTP headers are now stored in a ``HttpHeaders`` object instead of a - ``StringTableRef``. This object allows multiple values to be associated with - a single key. A new ``httpcore`` module implements it and it is used by - both ``asynchttpserver`` and ``httpclient``. - -The ``using`` statement -~~~~~~~~~~~~~~~~~~~~~~~ - -The ``using`` statement now has a different meaning. - -In version 0.13.0, it -was used to provide syntactic convenience for procedures that heavily use -a single contextual parameter. For example: - -.. code-block:: nim - var socket = newSocket() - using socket - - connect("google.com", Port(80)) - send("GET / HTTP/1.1\c\l") - - -The ``connect`` and ``send`` calls are both transformed so that they pass -``socket`` as the first argument: - -.. code-block:: nim - var socket = newSocket() - - socket.connect("google.com", Port(80)) - socket.send("GET / HTTP/1.1\c\l") - -Take a look at the old version of the -`manual <http://nim-lang.org/0.13.0/manual.html#statements-and-expressions-using-statement>`_ -to learn more about the old behaviour. - -In 0.14.0, -the ``using`` statement -instead provides a syntactic convenience for procedure definitions where the -same parameter names and types are used repeatedly. For example, instead of -writing: - -.. code-block:: nim - proc foo(c: Context; n: Node) = ... - proc bar(c: Context; n: Node, counter: int) = ... - proc baz(c: Context; n: Node) = ... - - -You can simply write: - -.. code-block:: nim - {.experimental.} - using - c: Context - n: Node - counter: int - - proc foo(c, n) = ... - proc bar(c, n, counter) = ... - proc baz(c, n) = ... - -Again, the -`manual <http://nim-lang.org/docs/manual.html#statements-and-expressions-using-statement>`_ -has more details. - -You can still achieve a similar effect to what the old ``using`` statement -tried to achieve by using the new experimental ``this`` pragma, documented -`here <http://nim-lang.org/docs/manual.html#overloading-resolution-automatic-self-insertions>`_. - -Generic type classes -~~~~~~~~~~~~~~~~~~~~ - -Generic type classes are now handled properly in the compiler, but this -means code like the following does not compile any longer: - -.. code-block:: nim - type - Vec3[T] = distinct array[3, T] - - proc vec3*[T](a, b, c: T): Vec3[T] = Vec3([a, b, c]) - -While every ``Vec3[T]`` is part of the ``Vec3`` type class, the reverse -is not true, not every ``Vec3`` is a ``Vec3[T]``. Otherwise there would -be a subtype relation between ``Vec3[int]`` and ``Vec3[float]`` and there -is none for Nim. The fix is to write this instead: - -.. code-block:: nim - type - Vec3[T] = distinct array[3, T] - - proc vec3*[T](a, b, c: T): Vec3[T] = Vec3[T]([a, b, c]) - -Note that in general we don't advise to use ``distinct array``, -use ``object`` instead. - - -Library Additions ------------------ - -- The rlocks module has been added providing a reentrant lock synchronization - primitive. -- A generic "sink operator" written as ``&=`` has been added to the -``system`` and the ``net`` modules. This operator is similar to the C++ -``<<`` operator which writes data to a stream. -- Added ``strscans`` module that implements a ``scanf`` for easy input extraction. -- Added a version of ``parseutils.parseUntil`` that can deal with a string - ``until`` token. The other versions are for ``char`` and ``set[char]``. -- Added ``splitDecimal`` to ``math.nim`` to split a floating point value - into an integer part and a floating part (in the range -1<x<1). -- Added ``trimZeros`` to ``strutils.nim`` to trim trailing zeros in a - floating point number. -- Added ``formatEng`` to ``strutils.nim`` to format numbers using engineering - notation. - - -Compiler Additions ------------------- - -- Added a new ``--noCppExceptions`` switch that allows to use default exception - handling (no ``throw`` or ``try``/``catch`` generated) when compiling to C++ - code. - -Language Additions ------------------- - -- Nim now supports a ``.this`` pragma for more notational convenience. - See `automatic-self-insertions <../docs/manual.html#overloading-resolution-automatic-self-insertions>`_ for more information. -- Nim now supports a different ``using`` statement for more convenience. - Consult `using-statement <../docs/manual.html#statements-and-expressions-using-statement>`_ for more information. -- ``include`` statements are not restricted to top level statements anymore. - -.. - - Nim now supports ``partial`` object declarations to mitigate the problems - that arise when types are mutually dependent and yet should be kept in - different modules. - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-01-19+..+2016-06-06%22+>`_. - - - - Fixed "Calling generic templates with explicit generic arguments crashes compiler" - (`#3496 <https://github.com/nim-lang/Nim/issues/3496>`_) - - Fixed "JS backend - strange utf-8 handling" - (`#3714 <https://github.com/nim-lang/Nim/issues/3714>`_) - - Fixed "execvpe is glibc specific" - (`#3759 <https://github.com/nim-lang/Nim/issues/3759>`_) - - Fixed "GC stack overflow with in data structures with circular references." - (`#1895 <https://github.com/nim-lang/Nim/issues/1895>`_) - - Fixed "Internal compiler error in genTraverseProc" - (`#3794 <https://github.com/nim-lang/Nim/issues/3794>`_) - - Fixed "unsafeAddr fails in generic context" - (`#3736 <https://github.com/nim-lang/Nim/issues/3736>`_) - - Fixed "Generic converters produce internal errors" - (`#3799 <https://github.com/nim-lang/Nim/issues/3799>`_) - - Fixed "Cannot have two anonymous iterators in one proc" - (`#3788 <https://github.com/nim-lang/Nim/issues/3788>`_) - - Fixed "pure/net.nim fails to compile with --taintMode:on on HEAD" - (`#3789 <https://github.com/nim-lang/Nim/issues/3789>`_) - - Fixed "Using break inside iterator may produce memory/resource leak" - (`#3802 <https://github.com/nim-lang/Nim/issues/3802>`_) - - - Fixed "--out and --nimcache wrong paths" - (`#3871 <https://github.com/nim-lang/Nim/issues/3871>`_) - - Fixed "Release 0.13.0: documentation build failure" - (`#3823 <https://github.com/nim-lang/Nim/issues/3823>`_) - - Fixed "https post request" - (`#3895 <https://github.com/nim-lang/Nim/issues/3895>`_) - - Fixed "writeFile regression in nimscript" - (`#3901 <https://github.com/nim-lang/Nim/issues/3901>`_) - - Fixed "Cannot convert variables to int16 at compile time" - (`#3916 <https://github.com/nim-lang/Nim/issues/3916>`_) - - Fixed "Error in concepts when using functions on typedesc" - (`#3686 <https://github.com/nim-lang/Nim/issues/3686>`_) - - Fixed "Multiple generic table types with different type signatures lead to compilation errors." - (`#3669 <https://github.com/nim-lang/Nim/issues/3669>`_) - - Fixed "Explicit arguments with overloaded procedure?" - (`#3836 <https://github.com/nim-lang/Nim/issues/3836>`_) - - Fixed "doc2 generates strange output for proc generated by template" - (`#3868 <https://github.com/nim-lang/Nim/issues/3868>`_) - - Fixed "Passing const value as static[] argument to immediate macro leads to infinite memory consumption by compiler" - (`#3872 <https://github.com/nim-lang/Nim/issues/3872>`_) - - Fixed "`..<` is not happy with `BiggestInt` from `intVal`" - (`#3767 <https://github.com/nim-lang/Nim/issues/3767>`_) - - Fixed "stdtmpl filter does not support anything apart from '#' metachar" - (`#3924 <https://github.com/nim-lang/Nim/issues/3924>`_) - - Fixed "lib/pure/net: Can't bind to ports >= 32768" - (`#3484 <https://github.com/nim-lang/Nim/issues/3484>`_) - - Fixed "int and float assignment compatibility badly broken for generics" - (`#3998 <https://github.com/nim-lang/Nim/issues/3998>`_) - - Fixed "Adding echo statement causes "type mismatch" error" - (`#3975 <https://github.com/nim-lang/Nim/issues/3975>`_) - - Fixed "Dynlib error messages should be written to stderr, not stdout" - (`#3987 <https://github.com/nim-lang/Nim/issues/3987>`_) - - Fixed "Tests regressions while using the devel branch" - (`#4005 <https://github.com/nim-lang/Nim/issues/4005>`_) - - - Fixed "Lambda lifting bug: wrong c code generation" - (`#3995 <https://github.com/nim-lang/Nim/issues/3995>`_) - - Fixed "VM crashes in asgnComplex" - (`#3973 <https://github.com/nim-lang/Nim/issues/3973>`_) - - Fixed "Unknown opcode opcNGetType" - (`#1152 <https://github.com/nim-lang/Nim/issues/1152>`_) - - Fixed "`&` operator mutates first operand when used in compileTime proc while assigning result to seq" - (`#3804 <https://github.com/nim-lang/Nim/issues/3804>`_) - - Fixed "''nil' statement is deprecated' in macro" - (`#3561 <https://github.com/nim-lang/Nim/issues/3561>`_) - - Fixed "vm crash when accessing seq with mitems iterator" - (`#3731 <https://github.com/nim-lang/Nim/issues/3731>`_) - - Fixed "`mitems` or `mpairs` does not work for `seq[NimNode]` or `array[T,NimNode]` in a macro" - (`#3859 <https://github.com/nim-lang/Nim/issues/3859>`_) - - Fixed "passing "proc `,`()" to nim check causes an infinite loop" - (`#4036 <https://github.com/nim-lang/Nim/issues/4036>`_) - - Fixed "--dynlibOverride does not work with {.push dynlib: name.}" - (`#3646 <https://github.com/nim-lang/Nim/issues/3646>`_) - - Fixed "system.readChars fails on big len" - (`#3752 <https://github.com/nim-lang/Nim/issues/3752>`_) - - Fixed "strutils.unindent" - (`#4037 <https://github.com/nim-lang/Nim/issues/4037>`_) - - Fixed "Compiler's infinite recursion in generic resolution" - (`#2006 <https://github.com/nim-lang/Nim/issues/2006>`_) - - Fixed "Linux: readLineFromStdin calls quit(0) upon EOF" - (`#3159 <https://github.com/nim-lang/Nim/issues/3159>`_) - - Fixed "Forum sign up not possible" - (`#2446 <https://github.com/nim-lang/Nim/issues/2446>`_) - - Fixed "Json module - SIGSEGV if key not exists" - (`#3107 <https://github.com/nim-lang/Nim/issues/3107>`_) - - Fixed "About asyncdispatch.await and exception" - (`#3964 <https://github.com/nim-lang/Nim/issues/3964>`_) - - Fixed "Need testcase for JS backend to ensure closure callbacks don't break" - (`#3132 <https://github.com/nim-lang/Nim/issues/3132>`_) - - Fixed "Unexpected behaviour of C++ templates in conjunction with N_NIMCALL" - (`#4093 <https://github.com/nim-lang/Nim/issues/4093>`_) - - Fixed "SIGSEGV at compile time when using a compileTime variable as counter" - (`#4097 <https://github.com/nim-lang/Nim/issues/4097>`_) - - Fixed "Compiler crash issue on 32-bit machines only" - (`#4089 <https://github.com/nim-lang/Nim/issues/4089>`_) - - Fixed "type mismatch: got (<type>) but expected 'outType' in mapIt" - (`#4124 <https://github.com/nim-lang/Nim/issues/4124>`_) - - Fixed "Generic type constraints broken?" - (`#4084 <https://github.com/nim-lang/Nim/issues/4084>`_) - - Fixed "Invalid C code generated" - (`#3544 <https://github.com/nim-lang/Nim/issues/3544>`_) - - Fixed "An exit variable in proc shadows exit function called by quit()" - (`#3471 <https://github.com/nim-lang/Nim/issues/3471>`_) - - Fixed "ubuntu 16.04 build error" - (`#4144 <https://github.com/nim-lang/Nim/issues/4144>`_) - - Fixed "Ambiguous identifier error should list all possible qualifiers" - (`#177 <https://github.com/nim-lang/Nim/issues/177>`_) - - Fixed "Parameters are not captured inside closures inside closure iterators" - (`#4070 <https://github.com/nim-lang/Nim/issues/4070>`_) - - Fixed "`$` For array crashes the compiler when assigned to const" - (`#4040 <https://github.com/nim-lang/Nim/issues/4040>`_) - - - Fixed "Default value for .importcpp enum is initialized incorrectly" - (`#4034 <https://github.com/nim-lang/Nim/issues/4034>`_) - - Fixed "Nim doesn't instantiate template parameter in cgen when using procedure return value in for-in loop" - (`#4110 <https://github.com/nim-lang/Nim/issues/4110>`_) - - Fixed "Compile-time SIGSEGV when invoking procedures that cannot be evaluated at compile time from a macro" - (`#3956 <https://github.com/nim-lang/Nim/issues/3956>`_) - - Fixed "Backtricks inside .emit pragma output incorrect name for types" - (`#3992 <https://github.com/nim-lang/Nim/issues/3992>`_) - - Fixed "typedef is generated for .importcpp enums" - (`#4145 <https://github.com/nim-lang/Nim/issues/4145>`_) - - Fixed "Incorrect C code generated for nnkEmpty node" - (`#950 <https://github.com/nim-lang/Nim/issues/950>`_) - - Fixed "Syntax error in config file appears as general exception without useful info" - (`#3763 <https://github.com/nim-lang/Nim/issues/3763>`_) - - Fixed "Converting .importcpp enum to string doesn't work when done inside procs" - (`#4147 <https://github.com/nim-lang/Nim/issues/4147>`_) - - Fixed "Enum template specifiers do not work for .importcpp enums when they are used as a parameter" - (`#4146 <https://github.com/nim-lang/Nim/issues/4146>`_) - - Fixed "Providing template specifier recursively for .importcpp type doesn't work" - (`#4148 <https://github.com/nim-lang/Nim/issues/4148>`_) - - Fixed "sizeof doesn't work for generics in vm" - (`#4153 <https://github.com/nim-lang/Nim/issues/4153>`_) - - Fixed "Creating list-like structures in a loop leaks memory indefinitely" - (`#3793 <https://github.com/nim-lang/Nim/issues/3793>`_) - - Fixed "Creating list-like structures in a loop leaks memory indefinitely" - (`#3793 <https://github.com/nim-lang/Nim/issues/3793>`_) - - Fixed "Enum items generated by a macro have wrong type." - (`#4066 <https://github.com/nim-lang/Nim/issues/4066>`_) - - Fixed "Memory leak with default GC" - (`#3184 <https://github.com/nim-lang/Nim/issues/3184>`_) - - Fixed "Rationals Overflow Error on 32-bit machine" - (`#4194 <https://github.com/nim-lang/Nim/issues/4194>`_) - - - Fixed "osproc waitForExit() is ignoring the timeout parameter" - (`#4200 <https://github.com/nim-lang/Nim/issues/4200>`_) - - Fixed "Regression: exception parseFloat("-0.0") " - (`#4212 <https://github.com/nim-lang/Nim/issues/4212>`_) - - Fixed "JS Codegen: Bad constant initialization order" - (`#4222 <https://github.com/nim-lang/Nim/issues/4222>`_) - - Fixed "Term-rewriting macros gives Error: wrong number of arguments" - (`#4227 <https://github.com/nim-lang/Nim/issues/4227>`_) - - Fixed "importcpp allowed in body of proc after push" - (`#4225 <https://github.com/nim-lang/Nim/issues/4225>`_) - - Fixed "pragma SIGSEGV" - (`#4001 <https://github.com/nim-lang/Nim/issues/4001>`_) - - Fixed "Restrict hints to the current project" - (`#2159 <https://github.com/nim-lang/Nim/issues/2159>`_) - - Fixed "`unlikely`/`likely` should be no-ops for the Javascript backend" - (`#3882 <https://github.com/nim-lang/Nim/issues/3882>`_) - - Fixed ".this pragma doesn't work for fields and procs defined for parent type" - (`#4177 <https://github.com/nim-lang/Nim/issues/4177>`_) - - Fixed "VM SIGSEV with compile-time Table" - (`#3729 <https://github.com/nim-lang/Nim/issues/3729>`_) - - Fixed "Error during compilation with cpp option on FreeBSD " - (`#3059 <https://github.com/nim-lang/Nim/issues/3059>`_) - - Fixed "Compiler doesn't keep type bounds" - (`#1713 <https://github.com/nim-lang/Nim/issues/1713>`_) - - Fixed "Stdlib: future: Shortcut proc definition doesn't support, varargs, seqs, arrays, or openarrays" - (`#4238 <https://github.com/nim-lang/Nim/issues/4238>`_) - - Fixed "Why don't ``asynchttpserver`` support request-body when ``put`` ``delete``?" - (`#4221 <https://github.com/nim-lang/Nim/issues/4221>`_) - - Fixed "Paths for includes in Nim documentation" - (`#2640 <https://github.com/nim-lang/Nim/issues/2640>`_) - - Fixed "Compile pragma doesn't work with relative import" - (`#1262 <https://github.com/nim-lang/Nim/issues/1262>`_) - - Fixed "Slurp doesn't work with relative imports" - (`#765 <https://github.com/nim-lang/Nim/issues/765>`_) - - Fixed "Make tilde expansion consistent" - (`#786 <https://github.com/nim-lang/Nim/issues/786>`_) - - Fixed "koch expects nim to be in path for tests?" - (`#3290 <https://github.com/nim-lang/Nim/issues/3290>`_) - - Fixed "Don't use relative imports for non relative modules (aka babel libs)" - (`#546 <https://github.com/nim-lang/Nim/issues/546>`_) - - Fixed ""echo" on general structs does not work" - (`#4236 <https://github.com/nim-lang/Nim/issues/4236>`_) - - Fixed "Changing math.round() and adding math.integer()" - (`#3473 <https://github.com/nim-lang/Nim/issues/3473>`_) - - Fixed "Mathematics module missing modf" - (`#4195 <https://github.com/nim-lang/Nim/issues/4195>`_) - - Fixed "Passing method to macro causes seg fault" - (`#1611 <https://github.com/nim-lang/Nim/issues/1611>`_) - - Fixed "Internal error with "discard quit"" - (`#3532 <https://github.com/nim-lang/Nim/issues/3532>`_) - - Fixed "SIGSEGV when using object variant in compile time" - (`#4207 <https://github.com/nim-lang/Nim/issues/4207>`_) - - Fixed "formatSize has incorrect prefix" - (`#4198 <https://github.com/nim-lang/Nim/issues/4198>`_) - - Fixed "Add compiler parameter to generate output from source code filters" - (`#375 <https://github.com/nim-lang/Nim/issues/375>`_) - - Fixed "Add engineering notation to string formatting functions" - (`#4197 <https://github.com/nim-lang/Nim/issues/4197>`_) - - Fixed "Very minor error in json documentation" - (`#4255 <https://github.com/nim-lang/Nim/issues/4255>`_) - - Fixed "can't compile when checking if closure == nil" - (`#4186 <https://github.com/nim-lang/Nim/issues/4186>`_) - - Fixed "Strange code gen for procs returning arrays" - (`#2259 <https://github.com/nim-lang/Nim/issues/2259>`_) - - Fixed "asynchttpserver may consume unbounded memory reading headers" - (`#3847 <https://github.com/nim-lang/Nim/issues/3847>`_) - - - Fixed "download page still implies master is default branch" - (`#4022 <https://github.com/nim-lang/Nim/issues/4022>`_) - - Fixed "Use standard compiler flags in build script" - (`#2128 <https://github.com/nim-lang/Nim/issues/2128>`_) - - Fixed "CentOS 6 (gcc-4.4.7) compilation failed (redefinition of typedef)" - (`#4272 <https://github.com/nim-lang/Nim/issues/4272>`_) - - Fixed "doc2 has issues with httpclient" - (`#4278 <https://github.com/nim-lang/Nim/issues/4278>`_) - - Fixed "tuples/tuple_with_nil fails without unsigned module" - (`#3579 <https://github.com/nim-lang/Nim/issues/3579>`_) diff --git a/web/news/e023_version_0_14_2.rst b/web/news/e023_version_0_14_2.rst deleted file mode 100644 index cbfe52713..000000000 --- a/web/news/e023_version_0_14_2.rst +++ /dev/null @@ -1,14 +0,0 @@ -Version 0.14.2 released -======================= - -.. container:: metadata - - Posted by Andreas Rumpf on 09/06/2016 - -Version 0.14.2 is just a bugfix release that fixes the most pressing -regressions. In particular, the ``tar.xz`` now supports documentation -generation, and the Windows installers bundle the latest stable nimble -release. - -The news about the 0.14.0 release are still relevant, so check them out -`here <http://nim-lang.org/news/2016_06_07_version_0_14_0_released.html>`_. diff --git a/web/news/e024_survey.rst b/web/news/e024_survey.rst deleted file mode 100644 index 0b87577aa..000000000 --- a/web/news/e024_survey.rst +++ /dev/null @@ -1,29 +0,0 @@ -Launching the 2016 Nim Community Survey -======================================= - -.. container:: metadata - - Posted by Dominik Picheta on 23/06/2016 - -We are proud to announce the official -`2016 Nim Community Survey <http://goo.gl/forms/XJ3TPsaiIQe5HlTB2>`_! No matter -whether you use Nim today, have used Nim previously, or never used Nim before; -we want to know your opinions. -Your feedback will help the Nim project understand its strengths and -weaknesses, and to determine development priorities for the future. - -It shouldn't take you much longer than 5 to 10 minutes to complete this survey. -Submissions will be accepted until around the 23rd of July, depending on the -response rates. If you have any questions or feedback, please don't hesitate -to get in touch with us via email at survey@nim-lang.org or on the -`Nim Forum <http://forum.nim-lang.org>`_. - -We would appreciate your help in spreading the word about this survey. Share -the above link on your social network feeds, with your colleagues and in -other communities. - -Thank you to everyone that helped develop and test the survey! Once the -submission period ends, the results will be shown here and publicised via -Twitter, the Nim Forum and IRC. - -Thanks for your time! diff --git a/web/news/e025_bountysource_update.rst b/web/news/e025_bountysource_update.rst deleted file mode 100644 index 00ca7022e..000000000 --- a/web/news/e025_bountysource_update.rst +++ /dev/null @@ -1,73 +0,0 @@ -BountySource Update: The Road to v1.0 -===================================== - -.. container:: metadata - - Cross posted by Dominik Picheta on 06/08/2016 from - `Update #4 on BountySource <https://salt.bountysource.com/teams/nim/updates/4-the-road-to-v1-0>`_ - -We are now in the fourth month of the -`Nim BountySource fundraiser <https://salt.bountysource.com/teams/nim>`_ and -here is -this month's update[1]. Once again this month, we have beat our previous -donation record of $1280 having raised over $1600 over the course of July! -That's now 4 months in a row that your monthly donations have been increasing. -As always we are absolutely blown away by your contributions, -`myself <https://github.com/dom96>`_ and the -rest of the Nim team are extremely thankful for them. It's not only helping us -pay for the necessary expenses (like for example the server that -http://nim-lang.org runs on) but it also inspires us to keep going and to make -Nim the best programming language that it can be. - -As mentioned in -`last month's update <https://salt.bountysource.com/teams/nim/updates/3-engaging-with-our-community>`_, we have begun the process of engaging with -the Nim community through a survey. This survey has now been open for more than -a month and will be closing very soon (in about 2 days), so if you haven't -answered it yet, now would be a perfect time to do so. You can find the survey -here: http://nim-lang.org/survey. - -The survey itself has been designed for three types of people: Nim users, -ex-Nim users and people who have never used Nim before. This means that you -have no excuse not to answer it[2]. There are almost 700 submissions and after -the survey is finalised, a blog post will be written with a thorough analysis. - -It is my hope that the survey analysis will give the Nim team a good idea of -what needs to be implemented before version 1.0 can be released. Personally, I -hope to make a thorough review of the standard library to ensure that it is -ready for the "1.0 backwards compatibility lock"[3]. Although I myself have -been very busy lately[4], `Araq <http://github.com/Araq>`_ has been working very hard to fix -`High Priority <https://github.com/nim-lang/Nim/issues?q=is%3Aissue+is%3Aopen+label%3A%22High+Priority%22>`_ -issues, ahead of the 1.0 release. And as always, there has also been a -`lot of pull requests <https://github.com/nim-lang/Nim/pulse>`_ -from a wide range of Nim users. - -Lastly, I would like to mention -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_ once again. I have recently -finished the final chapter. All that remains now are corrections (based mainly -on your feedback, huge thanks to everyone for reading!) and a final review. -The book will then be put into production[5] with an estimated print date of -around the 20th of January (as usual delays are very much possible). If you -have not yet picked up the book, now would be a perfect time to do so. There -is still time for you to give feedback about the book, and for me to improve it -based on your remarks. It is not often that you can influence a book in this -way, and it is my hope that you will help me make this book one of the best -resources for learning Nim! - -As always, many thanks for reading and if you have any questions or feedback -feel free to get in touch via email at contact@nim-lang.org or via -`Twitter <https://twitter.com/nim_lang>`_. - -1 - These updates have so far been fairly regular and it is my hope to write -at least one a month. Yep, I am patting myself on the back :) - -2 - I joke of course, don't worry about if you don't have the time :) - -3 - After version 1.0, it is typical for a piece of software (especially -a programming language) to ensure that backwards compatibility is not broken -between further minor versions until a new major version such as 2.0 is released. - -4 - Writing a book, moving to Switzerland to start a new job, and playing -`Pokemon Go <https://pokemongostatus.org/>`_ has certainly kept me busy. - -5 - Basically the brilliant guys at `Manning <https://manning.com>`_ will -process the book so that it looks good in a printed format. diff --git a/web/news/e026_survey_results.rst b/web/news/e026_survey_results.rst deleted file mode 100644 index 106dce0e4..000000000 --- a/web/news/e026_survey_results.rst +++ /dev/null @@ -1,699 +0,0 @@ -Nim Community Survey Results -============================ - -.. container:: metadata - - Posted by Dominik Picheta on 3 September 2016 - -We have recently closed the 2016 Nim Community Survey. I am happy to -say that we have received exactly 790 responses, huge thanks go to the people -that took the time to respond. We're incredibly thankful for this very valuable -feedback. - -This survey was inspired in part by the -`2016 State of Rust <https://blog.rust-lang.org/2016/06/30/State-of-Rust-Survey-2016.html>`_ -survey. You will note that many of the questions were modelled after -Rust's survey. One of the reasons for doing this was to allow us to easily -compare our results against the results obtained in the Rust survey. In -addition, we of course also liked many of their questions. - -Our survey ran from the 23rd of June 2016 until the 8th of August 2016. The -response numbers are impressive considering Nim's community size; at 790 they -make up just over 25% of the Rust survey's responses. - -The goal of this survey was to primarily determine how our community is using -Nim, in order to better understand how we should be improving it. In particular, -we wanted to know what people feel is missing from Nim in the lead up to -version 1.0. We have also asked our respondents about how well the Nim tools -worked, the challenges of adopting Nim, the resources that they used to learn -Nim and more. - -It is my hope that we will be able to run a similar survey in a years time, -doing so should give us an idea of whether we are improving. -With these general facts in mind, let's begin looking at specific questions. - -How did you find out about Nim? -------------------------------- - -The rationale for the first question was simple, we wanted to know where our -respondents found out about Nim. This is an interesting question for us, as -we do occassionally get users asking us why it took so long for them to hear -about Nim. It allows us to see how effective each website is at spreading the -word about Nim. - -.. raw::html - - <a href="../assets/news/images/survey/nim_found.png"> - <img src="../assets/news/images/survey/nim_found.png" alt="How did you find out about Nim?" style="width:100%"/> - </a> - -The majority of our respondents found Nim via Reddit, HackerNews or a search -engine such as Google. These results are not altogether surprising. There were -also a lot of "Other" responses, some of which were a bit more -interesting. These included multiple mentions of habrahabr.ru, Dr. Dobb's, -and lobste.rs. - -Do you use Nim? ---------------- - -Just like the Rust survey creators, we wanted to ensure that our survey was -open to both Nim users as well people who never used Nim. In addition to -those two groups, we have also included a third group of people: ex-Nim -users. All three are interesting, for many different reasons. -Nim users can tell us how they are using Nim and also how Nim's -tooling can improve. Ex-Nim users give us an -idea of why they stopped using Nim. Finally, respondents who never used Nim -can tell us the reasons for not adopting it. - -.. raw::html - - <a href="../assets/news/images/survey/do_you_use_nim.png"> - <img src="../assets/news/images/survey/do_you_use_nim.png" alt="Do you use Nim?" style="width:100%"/> - </a> - -It's nice to see that we have such a good range of respondents. The Rust survey -had a much larger number of Rust users amongst their respondents, with -no distinction between users that never used Rust and users that stopped using -Rust. - -Should we consider your answers to be invalid? ----------------------------------------------- - -This was something I thought would be interesting to have, after I saw it -being used in another survey. While it does pinpoint possibly -invalid respondents, I have opted against filtering those out. Mainly because -that would require re-creating each of the charts generated by Google Forms -manually. - -.. raw::html - - <a href="../assets/news/images/survey/reliability.png"> - <img src="../assets/news/images/survey/reliability.png" alt="Should we consider your answers to be invalid?" style="width:100%"/> - </a> - -According to the responses to this question, around 94% of our responses -can be considered reliable. - -Nim users ---------- - -The following questions were answered only by the 38.9% of our respondents -who identified themselves as Nim users. - -How long have you been using Nim? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw::html - - <a href="../assets/news/images/survey/nim_time.png"> - <img src="../assets/news/images/survey/nim_time.png" alt="How long have you been using Nim?" style="width:100%"/> - </a> - -A large proportion of our Nim users were new. This is good news as it means that -our community is growing, with a large proportion of new Nim users that could -become long-term Nimians. In total, more than 35% of Nim users can be considered -new having used Nim for less than 3 months. With 18% of Nim users that can -be considered very new having used Nim for less than a month. -This could suggest that 18% of our users have only just found out about Nim in -the last week or so and have not yet got the chance to use it extensively. - -The high percentages of long term Nim users are encouraging. -They suggest -that many users are continuing to use Nim after making it through the first -few months. The sharp drop at 7-9 months is interesting, but may simply be -due to the fact that there were fewer newcomers during that period, or it -could be because our respondents are more likely to estimate that they have -been using Nim for a year or half a year rather than the awkward 7-9 months. - -.. raw::html - - <a href="../assets/news/images/survey/nim_time_rust.png"> - <img src="../assets/news/images/survey/nim_time_rust.png" alt="Time using Nim and Rust" style="width:100%"/> - </a> - -The results for Nim and Rust are actually remarkably similar. They both show a -drop at 7-9 months, although Rust's isn't as dramatic. Nim on the other hand -has a significantly higher percentage of new Nim users. - -Do you use Nim at work? -~~~~~~~~~~~~~~~~~~~~~~~ - -An important aspect of a language's adoption is whether it is being used for -"real" work. We wanted to know how many people are using Nim in their day -jobs and under what circumstances it is used. - -.. raw::html - - <a href="../assets/news/images/survey/nim_at_work.png"> - <img src="../assets/news/images/survey/nim_at_work.png" alt="Do you use Nim at work?" style="width:100%"/> - </a> - -While a vast majority of our users are not using Nim at work, more than 25% -of them are. It's encouraging to see such a high number already, even before -we have released version 1.0. In fact, this percentage is likely close to 30%, -because many of the "Other" responses mention using Nim for the likes of -internal tools or small scripts to help with the respondent's work. - -.. raw::html - - <a href="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png"> - <img src="https://blog.rust-lang.org/images/2016-06-Survey/rust_at_work.png" alt="Do you use Rust at work?" style="width:100%"/> - </a> - -Interestingly, a larger percentage of Nim users are using Nim at work than -Rust users. The sample sizes are of course vastly different, but it's still an -interesting result. Combined, nearly 1/5th of Rust users are using Rust -commercially whereas more than a quarter of Nim users are using Nim -commercially. - -Approximately how large are all the Nim projects that you work on? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Finding out how large the Nim projects worked on by Nim users are is also -very valuable. - -.. raw::html - - <a href="../assets/news/images/survey/project_size.png"> - <img src="../assets/news/images/survey/project_size.png" alt="Nim project size for all users" style="width:100%"/> - </a> - -This shows us that currently Nim is primarily being used for small scripts and -applications, with nearly 60% of the projects consisting of less than 1,000 -lines of code. This makes sense as many of our users are not using Nim -professionally, but are doing so in their spare time. - -.. raw::html - - <a href="../assets/news/images/survey/project_size_work.png"> - <img src="../assets/news/images/survey/project_size_work.png" alt="Nim project size for work users" style="width:100%"/> - </a> - -The numbers for part-time and full-time work users of Nim tell a different -story. Over 70% of the projects written by full-time users are between 10,001 -and 100,000 lines of code. Part-time users show a slightly different trend, -with many more small projects, the majority being between 1,000 and -10,000 lines of code. - -Overall it's good to see that there is a few large projects out there which are -composed of more than 100,000 lines of code. We expect to see the amount of -large projects to grow with time, especially with version 1.0 on the way. - -.. raw::html - - <a href="../assets/news/images/survey/project_size_nim_rust.png"> - <img src="../assets/news/images/survey/project_size_nim_rust.png" alt="Nim project size for work users (Nim vs. Rust)" style="width:100%"/> - </a> - -In comparison to Rust the proportion of project sizes for full-time users is -vastly different. This is likely due to our small sample size. Project sizes for -part-time users between Rust and Nim are somewhat similar, with differences of -around 10% for each project size. - -Do you plan to try to use Nim at work? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. raw::html - - <a href="../assets/news/images/survey/planning_to_use_at_work.png"> - <img src="../assets/news/images/survey/planning_to_use_at_work.png" alt="Planning to use Nim at work?" style="width:100%"/> - </a> - -It's also encouraging to see that over 50% of Nim users are planning to use -Nim at work! This is slightly more than Rust's 40% and should help Nim's -adoption into even more areas. - -Nim and its tools -~~~~~~~~~~~~~~~~~ - -In this section of the survey, we wanted to find out the tools that Nim -users are utilising when developing Nim applications. - -What editor(s) do you use when writing Nim? -___________________________________________ - -Programmers are very specific when it comes to their editor of choice, because -of that it's good to know which editor is most popular among our community. - -.. raw::html - - <a href="../assets/news/images/survey/editors.png"> - <img src="../assets/news/images/survey/editors.png" alt="Editors used by Nim users" style="width:100%"/> - </a> - -Looks like Vim is the winner with almost 30%. Followed by Sublime Text and -Emacs. Aporia, the Nim IDE, gets a respectable 15.5%. There was -also more than -17% of answers which included "Other" editors, such as: Notepad++, Geany, gedit, -and Kate. - -What operating system(s) do you compile for and run your Nim projects on? -_________________________________________________________________________ - -This question gave us information about the most popular target operating -systems, as well as some of the more obscure ones. We have asked this question -to find out the platforms on which Nim applications run on most frequently. - -.. raw::html - - <a href="../assets/news/images/survey/target_os.png"> - <img src="../assets/news/images/survey/target_os.png" alt="Target operating systems" style="width:100%"/> - </a> - -This question allowed multiple choices, so each percentage is out of the total -number of respondents for this question. For example, 80.7% of the -respondents selected "Linux" but only 26.6% selected OS X. - -This makes Linux by far the most popular target for Nim applications. -Some "Other" targets included: BSD (OpenBSD, FreeBSD), iOS, Android, and -JavaScript. -It's great to see Nim being used on such a wide variety of platforms. - -What operating system(s) do you develop Nim projects on? -________________________________________________________ - -With this question, we wanted to know what operating systems are used for -development. - -.. raw::html - - <a href="../assets/news/images/survey/dev_os.png"> - <img src="../assets/news/images/survey/dev_os.png" alt="Development operating systems" style="width:100%"/> - </a> - -This question also allowed multiple choices and ended up with very similar -results. - -You can see that Linux is also the most popular developmental -platform for Nim. But it's more popular as a target platform. - -Which version(s) of Nim do you use for your applications? -_________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_versions.png"> - <img src="../assets/news/images/survey/nim_versions.png" alt="Version use" style="width:100%"/> - </a> - -At the time of this survey, version 0.14.2 was the latest stable release. -It's no wonder that it is the most commonly used release of Nim. It's good to -see that the older versions are not used as often. The high use of ``Git HEAD (devel)`` -(nightly builds) isn't surprising, Nim is still evolving rapidly and our -release schedule is not regular or frequent. - -Once we go past the 1.0 release, we expect to see much less use of the unstable -``devel`` branch. - -Has upgrading to a new version of the Nim compiler broken your code? -____________________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/breakage.png"> - <img src="../assets/news/images/survey/breakage.png" alt="Breakage" style="width:100%"/> - </a> - -Despite the unstable nature of Nim in the lead up to version 1.0, whenever -we make breaking changes we do our best to deprecate things and ensure that -old code continues to work for our users. Of course sometimes this is not -possible and other times it is simply easier to add a breaking change. - -This question was asked to determine how much our user base is affected by -breaking changes between Nim versions. We decided to have three possible -answers for this question in order to give us an idea how frequent the -breakage was. - -It's incredible to see that over 50% of our users have not experienced any -breakage after upgrading. We expect this number to increase significantly -after version 1.0 is released. Of the users that did experience breakage, -over 80% of them said that it was a rare occurrence. - -In comparison to Rust, our results show that there was a higher percentage of -users experiencing breakage as a result of an upgrade. This is to be expected, -because Nim is still in its pre-1.0 period, whereas Rust 1.0 has been released -over a year ago now. - -Unfortunately while we are still in this pre-1.0 period, releases will likely -introduce breaking changes as we refine certain aspects of Nim such as its -standard library, so the number of users experiencing breaking changes may -increase. - -If so, how much work did it take to fix it? -___________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/difficulty_fixing_breakage.png"> - <img src="../assets/news/images/survey/difficulty_fixing_breakage.png" alt="difficulty fixing breakage" style="width:100%"/> - </a> - -Thankfully most of the breakage experienced by Nim users was very easy to fix. - - -If you used Nimble, do you like it? -___________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nimble_opinion.png"> - <img src="../assets/news/images/survey/nimble_opinion.png" alt="Do you like Nimble?" style="width:100%"/> - </a> - -Nimble is the Nim package manager, a tool that is very important in Nim's -ecosystem as it allows developers to easily install dependencies for their -software. - -The majority of respondents rated it as a 4, showing us that the majority does -like Nimble. With over 55% rating it a 4 or 5. This percentage isn't as -overwhelming as the 94.1% of users that rated Cargo a 4 or 5 in the Rust -survey. Based on these results I think that we definitely need to do a -better job with Nimble. - -In our next survey, it might be a good idea to ask more questions about Nimble -to determine how exactly it can be improved. - -What aspects of Nim do you find most appealing? -_______________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_appeal.png"> - <img src="../assets/news/images/survey/nim_appeal.png" alt="What aspects of Nim do you find most appealing?" style="width:100%"/> - </a> - -We were interested to know the features of Nim that appeal most to our users. -More than 80% of our respondents selected "Execution Speed" as one of the -features that appeal to them. With "Development Speed" and "Readability" -tying for second place and "Metaprogramming" at third place. - -The options given to our respondents are rather predictable, -they do show us which of these features have the highest appeal though. -What's more interesting are the "Other" answers. - -By far the most popular "Other" answer was related to Nim's compilation to C. -Many users mentioned that they like how easy it is to interface with C -libraries and the great portability that compiling to C offers. - -What aspects of Nim do you find most displeasing? -_________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/nim_displeasing.png"> - <img src="../assets/news/images/survey/nim_displeasing.png" alt="What aspects of Nim do you find most displeasing?" style="width:100%"/> - </a> - -It was only natural to ask this question. The results are almost perfectly -opposite to the previous question's answers, with almost 50% of respondents -selecting "Debugging Tools" -as the most displeasing aspect of Nim. With "Documentation" and "Testing Tools" -in second and third place respectively. There is also a much larger number of -"Other" answers to this question. - -The "Other" answers for this question vary a lot. Here is a selection of -them, ordered by frequency: - -* Small community size. -* Lack of in-depth tutorials. -* Quality of error messages. -* Forward declarations and no cyclic imports. -* Bugs in the standard library. -* No good IDE. -* No REPL. -* No major version. -* Bugs in the compiler. -* Lack of libraries. -* Difficulty installing on Windows. -* Non-intuitive semantics of various constructs. -* Lack of immutable collections. -* Async/await not being production ready. -* Lack of shared collections for threads. -* No Haxe target. -* Memory safety. - -We hope that we can improve these things with time. Many of these issues are -already being worked on, including the removal of the need for forward -declarations. Some of these issues like our small community size are difficult -to fix, but we will nonetheless do our best. - - -Previous Nim users -~~~~~~~~~~~~~~~~~~ - -For users that have used Nim before but decided against using it, we asked just -one specific question. The proportion of our respondents that answered it -was 24%. - -Why did you stop using Nim? -___________________________ - -.. raw::html - - <a href="../assets/news/images/survey/ex_nim.png"> - <img src="../assets/news/images/survey/ex_nim.png" alt="I stopped using Nim because..." style="width:100%"/> - </a> - -Again, this question got a lot of "Other" answers. Apart from that, the -most popular reason for leaving Nim is that it is not stable. Followed by the -a lack of needed libraries and packages and the instability of the -standard library. - -* Lack of IDE support. -* Style insensitive. -* Documentation. -* Dislike the syntax. -* Community is too small. -* Missing language features (for example RAII). -* No opportunities to use it at work. -* Messy standard library. - -The first item, "Lack of IDE support", was mentioned by multiple respondents. -In the future we should look into ensuring that major IDEs have plugins which -enable easy Nim development. - -Based on some of the "Other" answers, it seems that many of the respondents -have not used Nim for very long, for example many respondents complained about -installation issues which they would have run into before getting a chance to -use Nim. Because of this I would consider them not -ex-Nim users but developers that have not had a chance to try Nim fully. -Next time we should also ask how long the respondent has used Nim for to get a -better idea of whether they had a chance to use Nim for extended periods of -time. - -Non-Nim users -~~~~~~~~~~~~~ - -We also wanted to know the reasons why developers decided against using Nim. - -Why do you not use Nim? -_______________________ - -.. raw::html - - <a href="../assets/news/images/survey/non_user.png"> - <img src="../assets/news/images/survey/non_user.png" alt="I don't use Nim because..." style="width:100%"/> - </a> - -The most common reason that people have for not using Nim is that it is -not yet ready for production. Thankfully this will improve with time. -IDE support is also a prominent factor just as we've seen in previous results. - -There is also a lot of "Other" answers, let's have a look at a selection of -them. Some of the most prominent ones, in order of frequency, include: - -* No time to use/learn it -* Syntax -* Documentation is incomplete -* Garbage Collection -* Prefer functional paradigm -* Small community -* Style insensitivity/Case insensitivity - -One respondent made a very good suggestion: they said that the -"Do you use Nim?" question should have included "No, but I intend to" as -an answer. Definitely something we will do in the next survey. Indeed, many -respondents mentioned that they were planning on trying out Nim but that they -just have no time to do so, this is very encouraging! - -Learning Resources -~~~~~~~~~~~~~~~~~~ - -We wanted to get an idea of how Nim users are learning Nim. Every respondent -answered this question, no matter what they answered for the "Do you use Nim?" -question. - -Which learning resources, if any, did you use to learn Nim? -___________________________________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/learning_resources.png"> - <img src="../assets/news/images/survey/learning_resources.png" alt="learning resources" style="width:100%"/> - </a> - -The idea behind this question was to understand which learning resources -were most popular among our user base. The -`Nim tutorial <http://nim-lang.org/docs/tut1.html>`_ is by far the most -popular. In previous questions, we saw respondents mentioning that the Nim -tutorial does not go into enough detail about Nim. Thanks to this information -we can come to the conclusion that the tutorial needs to be improved -significantly to make sure that it gives our users the necessary information -to use Nim effectively. - -Indeed, many users also use the -`Nim manual <http://nim-lang.org/docs/manual.html>`_ to learn Nim. -This manual has been -written as a specification and so is not ideal for teaching Nim. Many of -the concepts in the Nim manual need to be explained in a lot more detail in -the Nim tutorial. - -Of course, it's exciting to see our respondents using other materials to learn -Nim. In particular I am excited to see that over 15% of the respondents have -used -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_ -to learn Nim. I expect that more and more users will pick up the book after it -is fully published. - -Nim in Action -_____________ - -As the author of -`Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_, -I wanted to get some statistics surrounding -my book. With this in mind, I have created some questions relating to it. - -Have you read Nim in Action? -____________________________ - -.. raw::html - - <a href="../assets/news/images/survey/book.png"> - <img src="../assets/news/images/survey/book.png" alt="Have you read Nim in Action?" style="width:100%"/> - </a> - -It's good to see that over 50% of respondents have read the book or are at least -planning to read it. Keep in mind that this question was answered by all -respondents, not just Nim users. - -.. container:: standout - - Are you interested in purchasing a copy of - `Nim in Action <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_? - If so, you can use code ``wm090416lt`` to get 50% off the printed book today only! - If you purchase it now you will get access to an early access copy of - Nim in Action in eBook form and will be able to take part in the development - of this book. - -Did you enjoy Nim in Action? -____________________________ - -.. raw::html - - <a href="../assets/news/images/survey/book_opinion.png"> - <img src="../assets/news/images/survey/book_opinion.png" alt="Did you enjoy Nim in Action?" style="width:100%"/> - </a> - -Of the people that read Nim in Action it's nice to see that almost 70% have -enjoyed it. - -Nim's future -~~~~~~~~~~~~ - -What improvements are needed before Nim v1.0 can be released? -_____________________________________________________________ - -We were interested to know what our users believe is needed before -Nim version 1.0 can be released. - -.. raw::html - - <a href="../assets/news/images/survey/10_needs.png"> - <img src="../assets/news/images/survey/10_needs.png" alt="What is needed before 1.0 can be released?" style="width:100%"/> - </a> - -It appears that the standard library is the biggest concern. With more than half -of all respondents selecting "The standard library needs to reviewed and -any problems with it fixed". This is in fact something we are already planning -to address, so it's good to see that the majority agrees with us. - -A large proportion of users also believes that the language is great as-is -and that we should focus on stabilising the compiler. This somewhat contradicts -the majority. But perhaps most of them thought that "The language" excludes the -standard library. - -For this question, we decided to give our respondents a dedicated place to -give general feedback about what they feel is needed before v1.0 can be -released. We received over 200 responses to that. Many of these responses -reflect what we have already seen: that the documentation needs to improve, -that we need a good Nim IDE, stability for experimental features such as -concepts, the standard library needs to be cleaned up. - -Unfortunately many respondents used this question to say what needs to be fixed -in Nim in general, not what is definitely necessary before 1.0 can be released. - -Community demographics -~~~~~~~~~~~~~~~~~~~~~~ - -What domain do you work in currently? -_____________________________________ - -.. raw::html - - <a href="../assets/news/images/survey/domains.png"> - <img src="../assets/news/images/survey/domains.png" alt="Work domains" style="width:100%"/> - </a> - - -Nim users are working in a wide variety of domains. It is encouraging to see -people from so many different backgrounds taking part in this survey. - -What programming languages are you most comfortable with? -_________________________________________________________ - - -.. raw::html - - <a href="../assets/news/images/survey/languages.png"> - <img src="../assets/news/images/survey/languages.png" alt="Programming languages" style="width:100%"/> - </a> - -Python and C are the top two programming languages that our respondents are -most comfortable with. This is not altogether surprising. - -Last words -~~~~~~~~~~ - -At the end of the survey we gave our respondents a chance to speak their mind -about anything they wish, with a simple question: "Anything else you'd like -to tell us?" - -There was a lot of great feedback given in this question from people who -obviously really care deeply about Nim. There is too much to outline here, -but rest assurred that we will take it all into account and do our best to -act on it. - -In addition to feedback, we were also overwhelmed by the amount of positive -comments in the answers to this -question. There was a lot of support from the community thanking us for our -work and determination. - -I'll let some quotes speak for themselves: - -.. raw::html - - <blockquote>You rock, seriously.</blockquote> - <blockquote>Nim rocks! Keep it up! Thank you very much!</blockquote> - <blockquote>You've made great progress on the language without any corporate backing, that is amazing. I wish Nim becomes one of the top used languages in a few years.</blockquote> - <blockquote>Nim is elegant and wonderful! Keep at it!</blockquote> - -Our community is truly brilliant. We thank each and every one of you for -filling out this survey and hope that you will help us tackle some of the -challenges that face Nim. - -This survey was a good place to give us feedback, but please don't wait for -the next one. We are always looking to hear more from you and we hope that you -will participate in discussions relating to this survey as well the future -of Nim. - -Thanks for reading, and have a good day! diff --git a/web/news/e027_version_0_15_0.rst b/web/news/e027_version_0_15_0.rst deleted file mode 100644 index 47c02e9e4..000000000 --- a/web/news/e027_version_0_15_0.rst +++ /dev/null @@ -1,517 +0,0 @@ -Version 0.15.0 released -======================= - -.. container:: metadata - - Posted by Dominik Picheta and Andreas Rumpf on 30/09/2016 - -We're happy to announce that the latest release of Nim, version 0.15.0, is now -available! - -As always, you can grab the latest version from the -`downloads page <http://nim-lang.org/download.html>`_. - -This release includes almost 180 bug fixes and improvements. To see a full list -of changes, take a look at the detailed changelog -`below <#changelog>`_. - -Some of the most significant changes in this release include: improvements to -the documentation, addition of a new ``multisync`` macro, and a new -``HttpClient`` implementation. - -Documentation -~~~~~~~~~~~~~ - -All pages in the documentation now contain a search box and a drop down to -select how procedures should be sorted. This allows you to search for -procedures, types, macros and more from any documentation page. - -.. raw::html - - <a href="../assets/news/images/0.15.0/doc_search.gif"> - <img src="../assets/news/images/0.15.0/doc_search.gif" alt="Doc search" style="width:100%"/> - </a> - -Sorting the procedures by type shows a more natural table of contents. This -should also help you to find procedures and other identifiers. - -.. raw::html - - <a href="../assets/news/images/0.15.0/doc_sort.gif"> - <img src="../assets/news/images/0.15.0/doc_sort.gif" alt="Doc sort" style="width:100%"/> - </a> - -Multisync macro -~~~~~~~~~~~~~~~ - -The ``multisync`` macro was implemented to enable you to define both -synchronous and asynchronous IO procedures without having to duplicate a -lot of code. - -As an example, consider the ``recvTwice`` procedure below: - -.. code-block:: nim - proc recvTwice(socket: Socket | AsyncSocket): Future[string] {.multisync.} = - result = "" - result.add(await socket.recv(25)) - result.add(await socket.recv(20)) - -The ``multisync`` macro will transform this procedure into the following: - -.. code-block:: nim - proc recvTwice(socket: Socket): string = - result = "" - result.add(socket.recv(25)) - result.add(socket.recv(20)) - - proc recvTwice(socket: AsyncSocket): Future[string] {.async.} = - result = "" - result.add(await socket.recv(25)) - result.add(await socket.recv(20)) - -Allowing you to use ``recvTwice`` with both synchronous and asynchronous sockets. - -HttpClient -~~~~~~~~~~ - -Many of the ``httpclient`` module's procedures have been deprecated in -favour of a new implementation using the ``multisync`` macro. There are now -two types: ``HttpClient`` and ``AsyncHttpClient``. Both of these implement the -same procedures and functionality, the only difference is timeout support and -whether they are blocking or not. - -See the `httpclient <http://nim-lang.org/docs/httpclient.html>`_ module -documentation for more information. - -Changelog -~~~~~~~~~ - -Changes affecting backwards compatibility ------------------------------------------ - -- The ``json`` module now uses an ``OrderedTable`` rather than a ``Table`` - for JSON objects. - -- The ``split`` `(doc) <http://nim-lang.org/docs/strutils.html#split,string,set[char],int>`_ - procedure in the ``strutils`` module (with a delimiter of type - ``set[char]``) no longer strips and splits characters out of the target string - by the entire set of characters. Instead, it now behaves in a - similar fashion to ``split`` with ``string`` and ``char`` - delimiters. Use ``splitWhitespace`` to get the old behaviour. - -- The command invocation syntax will soon apply to open brackets - and curlies too. This means that code like ``a [i]`` will be - interpreted as ``a([i])`` and not as ``a[i]`` anymore. Likewise - ``f (a, b)`` means that the tuple ``(a, b)`` is passed to ``f``. - The compiler produces a warning for ``a [i]``:: - - Warning: a [b] will be parsed as command syntax; spacing is deprecated - - See `Issue #3898 <https://github.com/nim-lang/Nim/issues/3898>`_ for the - relevant discussion. - -- Overloading the special operators ``.``, ``.()``, ``.=``, ``()`` now - needs to be enabled via the ``{.experimental.}`` pragma. - -- ``immediate`` templates and macros are now deprecated. - Use ``untyped`` `(doc) <http://nim-lang.org/docs/manual.html#templates-typed-vs-untyped-parameters>`_ - parameters instead. - -- The metatype ``expr`` is deprecated. Use ``untyped`` - `(doc) <http://nim-lang.org/docs/manual.html#templates-typed-vs-untyped-parameters>`_ instead. - -- The metatype ``stmt`` is deprecated. Use ``typed`` - `(doc) <http://nim-lang.org/docs/manual.html#templates-typed-vs-untyped-parameters>`_ instead. - -- The compiler is now more picky when it comes to ``tuple`` types. The - following code used to compile, now it's rejected: - -.. code-block:: nim - - import tables - var rocketaims = initOrderedTable[string, Table[tuple[k: int8, v: int8], int64]]() - rocketaims["hi"] = {(-1.int8, 0.int8): 0.int64}.toTable() - -Instead be consistent in your tuple usage and use tuple names for named tuples: - -.. code-block:: nim - - import tables - var rocketaims = initOrderedTable[string, Table[tuple[k: int8, v: int8], int64]]() - rocketaims["hi"] = {(k: -1.int8, v: 0.int8): 0.int64}.toTable() - -- Now when you compile console applications for Windows, console output - encoding is automatically set to UTF-8. - -- Unhandled exceptions in JavaScript are now thrown regardless of whether - ``noUnhandledHandler`` is defined. But the stack traces should be much more - readable now. - -- In JavaScript, the ``system.alert`` procedure has been deprecated. - Use ``dom.alert`` instead. - -- De-deprecated ``re.nim`` because there is too much code using it - and it got the basic API right. - -- The type of ``headers`` field in the ``AsyncHttpClient`` type - `(doc) <http://nim-lang.org/docs/httpclient.html#AsyncHttpClient>`_ - has been changed - from a string table to the specialised ``HttpHeaders`` type. - -- The ``httpclient.request`` - `(doc) <http://nim-lang.org/docs/httpclient.html#request,AsyncHttpClient,string,string,string>`_ - procedure which takes the ``httpMethod`` as a string - value no longer requires it to be prefixed with ``"http"`` - (or similar). - -- Converting a ``HttpMethod`` - `(doc) <nim-lang.org/docs/httpcore.html#HttpMethod>`_ - value to a string using the ``$`` operator will - give string values without the ``"Http"`` prefix now. - -- The ``Request`` - `(doc) <http://nim-lang.org/docs/asynchttpserver.html#Request>`_ - object defined in the ``asynchttpserver`` module now uses - the ``HttpMethod`` type for the request method. - -Library Additions ------------------ - -- Added ``readHeaderRow`` and ``rowEntry`` to the ``parsecsv`` - `(doc) <http://nim-lang.org/docs/parsecsv.html>`_ module - to provide - a lightweight alternative to python's ``csv.DictReader``. - -- Added ``setStdIoUnbuffered`` proc to the ``system`` module to enable - unbuffered I/O. - -- Added ``center`` and ``rsplit`` to the ``strutils`` - `(doc) <http://nim-lang.org/docs/strutils.html>`_ module - to provide similar Python functionality for Nim's strings. - -- Added ``isTitle``, ``title``, ``swapCase``, ``isUpper``, ``toUpper``, - ``isLower``, ``toLower``, ``isAlpha``, ``isSpace``, and ``capitalize`` - to the ``unicode.nim`` - `(doc) <http://nim-lang.org/docs/unicode.html>`_ module - to provide unicode aware case manipulation and case - testing. - -- Added a new module ``strmisc`` - `(doc) <http://nim-lang.org/docs/strmisc.html>`_ - to hold uncommon string - operations. Currently contains ``partition``, ``rpartition`` - and ``expandTabs``. - -- Split out ``walkFiles`` in the ``os`` - `(doc) <http://nim-lang.org/docs/os.html>`_ module to three separate procs - in order to make a clear distinction of functionality. ``walkPattern`` iterates - over both files and directories, while ``walkFiles`` now only iterates - over files and ``walkDirs`` only iterates over directories. - -- Added a synchronous ``HttpClient`` in the ``httpclient`` - `(doc) <http://nim-lang.org/docs/httpclient.html>`_ - module. The old - ``get``, ``post`` and similar procedures are now deprecated in favour of it. - -- Added a new macro called ``multisync`` allowing you to write procedures for - synchronous and asynchronous sockets with no duplication. - -- The ``async`` macro will now complete ``FutureVar[T]`` parameters - automatically unless they have been completed already. - -Tool Additions --------------- - -- The documentation is now searchable and sortable by type. -- Pragmas are now hidden by default in the documentation to reduce noise. -- Edit links are now present in the documentation. - - -Compiler Additions ------------------- - -- The ``-d/--define`` flag can now optionally take a value to be used - by code at compile time. - `(doc) <http://nim-lang.org/docs/manual.html#implementation-specific-pragmas-compile-time-define-pragmas>`_ - -Nimscript Additions -------------------- - -- It's possible to enable and disable specific hints and warnings in - Nimscript via the ``warning`` and ``hint`` procedures. - -- Nimscript exports a proc named ``patchFile`` which can be used to - patch modules or include files for different Nimble packages, including - the ``stdlib`` package. - -Language Additions ------------------- - -- Added ``{.intdefine.}`` and ``{.strdefine.}`` macros to make use of - (optional) compile time defines. - `(doc) <http://nim-lang.org/docs/manual.html#implementation-specific-pragmas-compile-time-define-pragmas>`_ - -- If the first statement is an ``import system`` statement then ``system`` - is not imported implicitly anymore. This allows for code like - ``import system except echo`` or ``from system import nil``. - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-06-22+..+2016-09-30%22+>`_. - -- Fixed "RFC: should startsWith and endsWith work with characters?" - (`#4252 <https://github.com/nim-lang/Nim/issues/4252>`_) - -- Fixed "Feature request: unbuffered I/O" - (`#2146 <https://github.com/nim-lang/Nim/issues/2146>`_) -- Fixed "clear() not implemented for CountTableRef" - (`#4325 <https://github.com/nim-lang/Nim/issues/4325>`_) -- Fixed "Cannot close file opened async" - (`#4334 <https://github.com/nim-lang/Nim/issues/4334>`_) -- Fixed "Feature Request: IDNA support" - (`#3045 <https://github.com/nim-lang/Nim/issues/3045>`_) -- Fixed "Async: wrong behavior of boolean operations on futures" - (`#4333 <https://github.com/nim-lang/Nim/issues/4333>`_) -- Fixed "os.walkFiles yields directories" - (`#4280 <https://github.com/nim-lang/Nim/issues/4280>`_) -- Fixed "Fix #4392 and progress on #4170" - (`#4393 <https://github.com/nim-lang/Nim/issues/4393>`_) -- Fixed "Await unable to wait futures from objects fields" - (`#4390 <https://github.com/nim-lang/Nim/issues/4390>`_) -- Fixed "TMP variable name generation should be more stable" - (`#4364 <https://github.com/nim-lang/Nim/issues/4364>`_) -- Fixed "nativesockets doesn't compile for Android 4.x (API v19 or older) because of gethostbyaddr" - (`#4376 <https://github.com/nim-lang/Nim/issues/4376>`_) -- Fixed "no generic parameters allowed for ref" - (`#4395 <https://github.com/nim-lang/Nim/issues/4395>`_) -- Fixed "split proc in strutils inconsistent for set[char]" - (`#4305 <https://github.com/nim-lang/Nim/issues/4305>`_) -- Fixed "Problem with sets in devel" - (`#4412 <https://github.com/nim-lang/Nim/issues/4412>`_) -- Fixed "Compiler crash when using seq[PNimrodNode] in macros" - (`#537 <https://github.com/nim-lang/Nim/issues/537>`_) -- Fixed "ospaths should be marked for nimscript use only" - (`#4249 <https://github.com/nim-lang/Nim/issues/4249>`_) -- Fixed "Repeated deepCopy() on a recursive data structure eventually crashes" - (`#4340 <https://github.com/nim-lang/Nim/issues/4340>`_) -- Fixed "Analyzing destructor" - (`#4371 <https://github.com/nim-lang/Nim/issues/4371>`_) -- Fixed "getType does not work anymore on a typedesc" - (`#4462 <https://github.com/nim-lang/Nim/issues/4462>`_) -- Fixed "Error in rendering empty JSON array" - (`#4399 <https://github.com/nim-lang/Nim/issues/4399>`_) -- Fixed "Segmentation fault when using async pragma on generic procs" - (`#2377 <https://github.com/nim-lang/Nim/issues/2377>`_) -- Fixed "Forwarding does not work for generics, | produces an implicit generic" - (`#3055 <https://github.com/nim-lang/Nim/issues/3055>`_) -- Fixed "Inside a macro, the length of the `seq` data inside a `queue` does not increase and crashes" - (`#4422 <https://github.com/nim-lang/Nim/issues/4422>`_) -- Fixed "compiler sigsegv while processing varargs" - (`#4475 <https://github.com/nim-lang/Nim/issues/4475>`_) -- Fixed "JS codegen - strings are assigned by reference" - (`#4471 <https://github.com/nim-lang/Nim/issues/4471>`_) -- Fixed "when statement doesn't verify syntax" - (`#4301 <https://github.com/nim-lang/Nim/issues/4301>`_) -- Fixed ".this pragma doesn't work with .async procs" - (`#4358 <https://github.com/nim-lang/Nim/issues/4358>`_) -- Fixed "type foo = range(...) crashes compiler" - (`#4429 <https://github.com/nim-lang/Nim/issues/4429>`_) -- Fixed "Compiler crash" - (`#2730 <https://github.com/nim-lang/Nim/issues/2730>`_) -- Fixed "Crash in compiler with static[int]" - (`#3706 <https://github.com/nim-lang/Nim/issues/3706>`_) -- Fixed "Bad error message "could not resolve"" - (`#3548 <https://github.com/nim-lang/Nim/issues/3548>`_) -- Fixed "Roof operator on string in template crashes compiler (Error: unhandled exception: sons is not accessible [FieldError])" - (`#3545 <https://github.com/nim-lang/Nim/issues/3545>`_) -- Fixed "SIGSEGV during compilation with parallel block" - (`#2758 <https://github.com/nim-lang/Nim/issues/2758>`_) -- Fixed "Codegen error with template and implicit dereference" - (`#4478 <https://github.com/nim-lang/Nim/issues/4478>`_) -- Fixed "@ in importcpp should work with no-argument functions" - (`#4496 <https://github.com/nim-lang/Nim/issues/4496>`_) -- Fixed "Regression: findExe raises" - (`#4497 <https://github.com/nim-lang/Nim/issues/4497>`_) -- Fixed "Linking error - repeated symbols when splitting into modules" - (`#4485 <https://github.com/nim-lang/Nim/issues/4485>`_) -- Fixed "Error: method is not a base" - (`#4428 <https://github.com/nim-lang/Nim/issues/4428>`_) -- Fixed "Casting from function returning a tuple fails" - (`#4345 <https://github.com/nim-lang/Nim/issues/4345>`_) -- Fixed "clang error with default nil parameter" - (`#4328 <https://github.com/nim-lang/Nim/issues/4328>`_) -- Fixed "internal compiler error: openArrayLoc" - (`#888 <https://github.com/nim-lang/Nim/issues/888>`_) -- Fixed "Can't forward declare async procs" - (`#1970 <https://github.com/nim-lang/Nim/issues/1970>`_) -- Fixed "unittest.check and sequtils.allIt do not work together" - (`#4494 <https://github.com/nim-lang/Nim/issues/4494>`_) -- Fixed "httpclient package can't make SSL requests over an HTTP proxy" - (`#4520 <https://github.com/nim-lang/Nim/issues/4520>`_) -- Fixed "False positive warning "declared but not used" for enums." - (`#4510 <https://github.com/nim-lang/Nim/issues/4510>`_) -- Fixed "Explicit conversions not using converters" - (`#4432 <https://github.com/nim-lang/Nim/issues/4432>`_) - -- Fixed "Unclear error message when importing" - (`#4541 <https://github.com/nim-lang/Nim/issues/4541>`_) -- Fixed "Change console encoding to UTF-8 by default" - (`#4417 <https://github.com/nim-lang/Nim/issues/4417>`_) - -- Fixed "Typedesc ~= Generic notation does not work anymore!" - (`#4534 <https://github.com/nim-lang/Nim/issues/4534>`_) -- Fixed "unittest broken?" - (`#4555 <https://github.com/nim-lang/Nim/issues/4555>`_) -- Fixed "Operator "or" in converter types seems to crash the compiler." - (`#4537 <https://github.com/nim-lang/Nim/issues/4537>`_) -- Fixed "nimscript failed to compile/run -- Error: cannot 'importc' variable at compile time" - (`#4561 <https://github.com/nim-lang/Nim/issues/4561>`_) -- Fixed "Regression: identifier expected, but found ..." - (`#4564 <https://github.com/nim-lang/Nim/issues/4564>`_) -- Fixed "varargs with transformation that takes var argument creates invalid c code" - (`#4545 <https://github.com/nim-lang/Nim/issues/4545>`_) -- Fixed "Type mismatch when using empty tuple as generic parameter" - (`#4550 <https://github.com/nim-lang/Nim/issues/4550>`_) -- Fixed "strscans" - (`#4562 <https://github.com/nim-lang/Nim/issues/4562>`_) -- Fixed "getTypeImpl crashes (SIGSEGV) on variant types" - (`#4526 <https://github.com/nim-lang/Nim/issues/4526>`_) -- Fixed "Wrong result of sort in VM" - (`#4065 <https://github.com/nim-lang/Nim/issues/4065>`_) -- Fixed "I can't call the random[T](x: Slice[T]): T" - (`#4353 <https://github.com/nim-lang/Nim/issues/4353>`_) -- Fixed "invalid C code generated (function + block + empty tuple)" - (`#4505 <https://github.com/nim-lang/Nim/issues/4505>`_) - -- Fixed "performance issue: const Table make a copy at runtime lookup." - (`#4354 <https://github.com/nim-lang/Nim/issues/4354>`_) -- Fixed "Compiler issue: libraries without absolute paths cannot be found correctly" - (`#4568 <https://github.com/nim-lang/Nim/issues/4568>`_) -- Fixed "Cannot use math.`^` with non-int types." - (`#4574 <https://github.com/nim-lang/Nim/issues/4574>`_) -- Fixed "C codegen fails when constructing an array using an object constructor." - (`#4582 <https://github.com/nim-lang/Nim/issues/4582>`_) -- Fixed "Visual Studio 10 unresolved external symbol _trunc(should we support VS2010?)" - (`#4532 <https://github.com/nim-lang/Nim/issues/4532>`_) -- Fixed "Cannot pass generic subtypes to proc for generic supertype" - (`#4528 <https://github.com/nim-lang/Nim/issues/4528>`_) -- Fixed "Lamda-lifting bug leading to crash." - (`#4551 <https://github.com/nim-lang/Nim/issues/4551>`_) -- Fixed "First-class iterators declared as inline are compiled at Nim side (no error message) and fail at C" - (`#2094 <https://github.com/nim-lang/Nim/issues/2094>`_) -- Fixed "VS2010-warning C4090 : 'function' : different 'const' qualifiers" - (`#4590 <https://github.com/nim-lang/Nim/issues/4590>`_) -- Fixed "Regression: type mismatch with generics" - (`#4589 <https://github.com/nim-lang/Nim/issues/4589>`_) -- Fixed "„can raise an unlisted exception“ when assigning nil as default value" - (`#4593 <https://github.com/nim-lang/Nim/issues/4593>`_) -- Fixed "upcoming asyncdispatch.closeSocket is not GC-safe" - (`#4606 <https://github.com/nim-lang/Nim/issues/4606>`_) -- Fixed "Visual Studio 10.0 compiler errors, 12.0 warning" - (`#4459 <https://github.com/nim-lang/Nim/issues/4459>`_) -- Fixed "Exception of net.newContext: result.extraInternalIndex == 0 [AssertionError]" - (`#4406 <https://github.com/nim-lang/Nim/issues/4406>`_) -- Fixed "error: redeclaration of 'result_115076' with no linkage" - (`#3221 <https://github.com/nim-lang/Nim/issues/3221>`_) -- Fixed "Compiler crashes on conversion from int to float at compile time" - (`#4619 <https://github.com/nim-lang/Nim/issues/4619>`_) -- Fixed "wrong number of arguments regression in devel" - (`#4600 <https://github.com/nim-lang/Nim/issues/4600>`_) -- Fixed "importc $ has broken error message (and is not documented)" - (`#4579 <https://github.com/nim-lang/Nim/issues/4579>`_) -- Fixed "Compiler segfaults on simple importcpp in js mode [regression]" - (`#4632 <https://github.com/nim-lang/Nim/issues/4632>`_) -- Fixed "Critical reference counting codegen problem" - (`#4653 <https://github.com/nim-lang/Nim/issues/4653>`_) -- Fixed "tables.nim needs lots of {.noSideEffect.}" - (`#4254 <https://github.com/nim-lang/Nim/issues/4254>`_) -- Fixed "Capture variable error when using ``=>`` macro" - (`#4658 <https://github.com/nim-lang/Nim/issues/4658>`_) -- Fixed "Enum from char: internal error getInt" - (`#3606 <https://github.com/nim-lang/Nim/issues/3606>`_) -- Fixed "Compiler crashes in debug mode (no error in release mode) with Natural discriminant in object variants" - (`#2865 <https://github.com/nim-lang/Nim/issues/2865>`_) -- Fixed "SIGSEGV when access field in const object variants" - (`#4253 <https://github.com/nim-lang/Nim/issues/4253>`_) -- Fixed "varargs cannot be used with template converter." - (`#4292 <https://github.com/nim-lang/Nim/issues/4292>`_) -- Fixed "Compiler crashes when borrowing $" - (`#3928 <https://github.com/nim-lang/Nim/issues/3928>`_) -- Fixed "internal error: genMagicExpr: mArrPut" - (`#4491 <https://github.com/nim-lang/Nim/issues/4491>`_) -- Fixed "Unhelpful error message on importc namespace collision" - (`#4580 <https://github.com/nim-lang/Nim/issues/4580>`_) -- Fixed "Problem with openarrays and slices" - (`#4179 <https://github.com/nim-lang/Nim/issues/4179>`_) -- Fixed "Removing lines from end of file then rebuilding does not rebuild [js only?]" - (`#4656 <https://github.com/nim-lang/Nim/issues/4656>`_) -- Fixed "getCurrentException and getCurrentExceptionMsg do not work with JS" - (`#4635 <https://github.com/nim-lang/Nim/issues/4635>`_) -- Fixed "generic proc parameter is not inferred if type parameter has specifier" - (`#4672 <https://github.com/nim-lang/Nim/issues/4672>`_) -- Fixed "Cannot instantiate generic parameter when it is parent type parameter" - (`#4673 <https://github.com/nim-lang/Nim/issues/4673>`_) -- Fixed "deepCopy doesn't work with inheritance after last commit" - (`#4693 <https://github.com/nim-lang/Nim/issues/4693>`_) -- Fixed "Multi-methods don't work when passing ref to a different thread" - (`#4689 <https://github.com/nim-lang/Nim/issues/4689>`_) -- Fixed "Infinite loop in effect analysis on generics" - (`#4677 <https://github.com/nim-lang/Nim/issues/4677>`_) -- Fixed "SIGSEGV when compiling NimYAML tests" - (`#4699 <https://github.com/nim-lang/Nim/issues/4699>`_) - -- Fixed "Closing AsyncEvent now also unregisters it on non-Windows platforms" - (`#4694 <https://github.com/nim-lang/Nim/issues/4694>`_) -- Fixed "Don't update handle in upcoming/asyncdispatch poll() if it was closed" - (`#4697 <https://github.com/nim-lang/Nim/issues/4697>`_) -- Fixed "generated local variables declared outside block" - (`#4721 <https://github.com/nim-lang/Nim/issues/4721>`_) -- Fixed "Footer Documentation links, & Community link point to the wrong place under news entries" - (`#4529 <https://github.com/nim-lang/Nim/issues/4529>`_) -- Fixed "Jester's macro magic leads to incorrect C generation" - (`#4088 <https://github.com/nim-lang/Nim/issues/4088>`_) -- Fixed "cas bug in atomics.nim" - (`#3279 <https://github.com/nim-lang/Nim/issues/3279>`_) -- Fixed "nimgrep PEG not capturing the pattern 'A'" - (`#4751 <https://github.com/nim-lang/Nim/issues/4751>`_) -- Fixed "GC assert triggers when assigning TableRef threadvar" - (`#4640 <https://github.com/nim-lang/Nim/issues/4640>`_) -- Fixed ".this pragma conflicts with experimental ptr dereferencing when names conflict" - (`#4671 <https://github.com/nim-lang/Nim/issues/4671>`_) -- Fixed "Generic procs accepting var .importcpp type do not work [regression]" - (`#4625 <https://github.com/nim-lang/Nim/issues/4625>`_) -- Fixed "C Error on tuple assignment with array" - (`#4626 <https://github.com/nim-lang/Nim/issues/4626>`_) -- Fixed "module securehash not gcsafe" - (`#4760 <https://github.com/nim-lang/Nim/issues/4760>`_) - -- Fixed "Nimble installation failed on Windows x86." - (`#4764 <https://github.com/nim-lang/Nim/issues/4764>`_) -- Fixed "Recent changes to marshal module break old marshalled data" - (`#4779 <https://github.com/nim-lang/Nim/issues/4779>`_) -- Fixed "tnewasyncudp.nim test loops forever" - (`#4777 <https://github.com/nim-lang/Nim/issues/4777>`_) -- Fixed "Wrong poll timeout behavior in asyncdispatch" - (`#4262 <https://github.com/nim-lang/Nim/issues/4262>`_) -- Fixed "Standalone await shouldn't read future" - (`#4170 <https://github.com/nim-lang/Nim/issues/4170>`_) -- Fixed "Regression: httpclient fails to compile without -d:ssl" - (`#4797 <https://github.com/nim-lang/Nim/issues/4797>`_) -- Fixed "C Error on declaring array of heritable objects with bitfields" - (`#3567 <https://github.com/nim-lang/Nim/issues/3567>`_) -- Fixed "Corruption when using Channels and Threads" - (`#4776 <https://github.com/nim-lang/Nim/issues/4776>`_) -- Fixed "Sometimes Channel tryRecv() erroneously reports no messages available on the first call on Windows" - (`#4746 <https://github.com/nim-lang/Nim/issues/4746>`_) -- Fixed "Improve error message of functions called without parenthesis" - (`#4813 <https://github.com/nim-lang/Nim/issues/4813>`_) -- Fixed "Docgen doesn't find doc comments in macro generated procs" - (`#4803 <https://github.com/nim-lang/Nim/issues/4803>`_) -- Fixed "asynchttpserver may consume unbounded memory reading headers" - (`#3847 <https://github.com/nim-lang/Nim/issues/3847>`_) -- Fixed "TLS connection to api.clashofclans.com hangs forever." - (`#4587 <https://github.com/nim-lang/Nim/issues/4587>`_) diff --git a/web/news/e028_version_0_15_2.rst b/web/news/e028_version_0_15_2.rst deleted file mode 100644 index 601a26646..000000000 --- a/web/news/e028_version_0_15_2.rst +++ /dev/null @@ -1,77 +0,0 @@ -Version 0.15.2 released -======================= - -.. container:: metadata - - Posted by Andreas Rumpf on 23/10/2016 - -We're happy to announce that the latest release of Nim, version 0.15.2, is now -available! - -As always, you can grab the latest version from the -`downloads page <http://nim-lang.org/download.html>`_. - -This release is a pure bugfix release fixing the most pressing issues and -regressions of 0.15.0. For Windows we now provide zipfiles in addition to the -NSIS based installer which proves to be hard to maintain and after all these -months still has serious issues. So we encourage you download the .zip -file instead of the .exe file! Unzip it somewhere, run ``finish.exe`` to -detect your MingW installation, done. ``finish.exe`` can also set your PATH -environment variable. - - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-09-30+..+2016-10-23%22+>`_. - - -- Fixed "`NimMain` not exported in DLL, but `NimMainInner` is" - (`#4840 <https://github.com/nim-lang/Nim/issues/4840>`_) -- Fixed "Tables clear seems to be broken" - (`#4844 <https://github.com/nim-lang/Nim/issues/4844>`_) -- Fixed "compiler: internal error" - (`#4845 <https://github.com/nim-lang/Nim/issues/4845>`_) -- Fixed "trivial macro breaks type checking in the compiler" - (`#4608 <https://github.com/nim-lang/Nim/issues/4608>`_) -- Fixed "derived generic types with static[T] breaks type checking in v0.15.0 (worked in v0.14.2)" - (`#4863 <https://github.com/nim-lang/Nim/issues/4863>`_) -- Fixed "xmlparser.parseXml is not recognised as GC-safe" - (`#4899 <https://github.com/nim-lang/Nim/issues/4899>`_) -- Fixed "async makes generics instantiate only once" - (`#4856 <https://github.com/nim-lang/Nim/issues/4856>`_) -- Fixed "db_common docs aren't generated" - (`#4895 <https://github.com/nim-lang/Nim/issues/4895>`_) -- Fixed "rdstdin disappeared from documentation index" - (`#3755 <https://github.com/nim-lang/Nim/issues/3755>`_) -- Fixed "ICE on template call resolution" - (`#4875 <https://github.com/nim-lang/Nim/issues/4875>`_) -- Fixed "Invisible code-block" - (`#3078 <https://github.com/nim-lang/Nim/issues/3078>`_) -- Fixed "nim doc does not generate doc comments correctly" - (`#4913 <https://github.com/nim-lang/Nim/issues/4913>`_) -- Fixed "nim doc2 fails on ARM when running against lib/pure/coro.nim" - (`#4879 <https://github.com/nim-lang/Nim/issues/4879>`_) -- Fixed "xmlparser does not unescape correctly" - (`#1518 <https://github.com/nim-lang/Nim/issues/1518>`_) -- Fixed "[docs] mysterious "raise hook"" - (`#3485 <https://github.com/nim-lang/Nim/issues/3485>`_) -- Fixed "assertion failure in non-release Nim when compiling NimYAML" - (`#4869 <https://github.com/nim-lang/Nim/issues/4869>`_) -- Fixed "A closure causes nimscript to fail with unhandled exception" - (`#4906 <https://github.com/nim-lang/Nim/issues/4906>`_) -- Fixed "startProcess changes working directory" - (`#4867 <https://github.com/nim-lang/Nim/issues/4867>`_) -- Fixed "bindsym to void template produces ICE" - (`#4808 <https://github.com/nim-lang/Nim/issues/4808>`_) -- Fixed "readline(TFile, var string) segfaults if second argument is nil" - (`#564 <https://github.com/nim-lang/Nim/issues/564>`_) -- Fixed "times.parse gives the wrong day of the week for the first hour of the day." - (`#4922 <https://github.com/nim-lang/Nim/issues/4922>`_) -- Fixed "Internal error when passing parameter proc inside .gcsafe closure" - (`#4927 <https://github.com/nim-lang/Nim/issues/4927>`_) -- Fixed "Upcoming asyncdispatch doesn't compile with C++ backend on OS X" - (`#4928 <https://github.com/nim-lang/Nim/issues/4928>`_) diff --git a/web/news/e029_version_0_16_0.rst b/web/news/e029_version_0_16_0.rst deleted file mode 100644 index 4b204cfd0..000000000 --- a/web/news/e029_version_0_16_0.rst +++ /dev/null @@ -1,222 +0,0 @@ -Version 0.16.0 released -======================= - -.. container:: metadata - - Posted by The Nim Team on 08/01/2017 - -We're happy to announce that the latest release of Nim, version 0.16.0, is now -available! - -As always, you can grab the latest version from the -`downloads page <http://nim-lang.org/download.html>`_. - -This release includes over 80 bug fixes and improvements. To see a full list -of changes, take a look at the detailed changelog -`below <#changelog>`_. - -Some of the most significant changes in this release include: a major new -Nimble release, an improved import syntax, and the stabilisation of -name mangling rules enabling faster compile times. - -The new Nimble release that is included with Nim 0.16.0 includes a variety of -new features and bug fixes. The most prominent of which is the improved output -system, as shown in the figure below. - -.. raw::html - - <a href="../assets/news/images/0.16.0/nimble.png"> - <img src="../assets/news/images/0.16.0/nimble.png" alt="Nimble 0.8.0" style="width:100%"/> - </a> - -For a full list of changes in Nimble, see its -`changelog <https://github.com/nim-lang/nimble/blob/master/changelog.markdown#080---05012017>`_. - -The new import syntax makes it easier to import multiple modules from the same -package or directory. For example: - -.. code-block:: nim - import compiler/ast, compiler/parser, compiler/lexer - import compiler / [ast, parser, lexer] - -The two are equivalent, but the new latter syntax is less redundant. - -Finally, the code responsible for name mangling in the generated C and C++ code -has been improved to reduce compile times. In particular, compile-time for -the common edit-compile-run cycles have been reduced. - -Changelog -~~~~~~~~~ - -Changes affecting backwards compatibility ------------------------------------------ - -- ``staticExec`` now uses the directory of the nim file that contains the - ``staticExec`` call as the current working directory. -- ``TimeInfo.tzname`` has been removed from ``times`` module because it was - broken. Because of this, the option ``"ZZZ"`` will no longer work in format - strings for formatting and parsing. - -Library Additions ------------------ - -- Added new parameter to ``error`` proc of ``macro`` module to provide better - error message -- Added new ``deques`` module intended to replace ``queues``. - ``deques`` provides a superset of ``queues`` API with clear naming. - ``queues`` module is now deprecated and will be removed in the future. - -- Added ``hideCursor``, ``showCursor``, ``terminalWidth``, - ``terminalWidthIoctl`` and ``terminalSize`` to the ``terminal`` - `(doc) <http://nim-lang.org/docs/terminal.html>`_ module. - -- Added new module ``distros`` - `(doc) <http://nim-lang.org/docs/distros.html>`_ that can be used in Nimble - packages to aid in supporting the OS's native package managers. - - -Tool Additions --------------- - - -Compiler Additions ------------------- - -- The C/C++ code generator has been rewritten to use stable - name mangling rules. This means that compile times for - edit-compile-run cycles are much reduced. - - -Language Additions ------------------- - -- The ``emit`` pragma now takes a list of Nim expressions instead - of a single string literal. This list can easily contain non-strings - like template parameters. This means ``emit`` works out of the - box with templates and no new quoting rules needed to be introduced. - The old way with backtick quoting is still supported but will be - deprecated. - -.. code-block:: nim - type Vector* {.importcpp: "std::vector", header: "<vector>".}[T] = object - - template `[]=`*[T](v: var Vector[T], key: int, val: T) = - {.emit: [v, "[", key, "] = ", val, ";"].} - - proc setLen*[T](v: var Vector[T]; size: int) {.importcpp: "resize", nodecl.} - proc `[]`*[T](v: var Vector[T], key: int): T {.importcpp: "(#[#])", nodecl.} - - proc main = - var v: Vector[float] - v.setLen 1 - v[0] = 6.0 - echo v[0] - -- The ``import`` statement now supports importing multiple modules from - the same directory: - -.. code-block:: nim - import compiler / [ast, parser, lexer] - -Is a shortcut for: - -.. code-block:: nim - import compiler / ast, compiler / parser, compiler / lexer - - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222016-10-23+..+2017-01-07%22+>`_. - -- Fixed "staticRead and staticExec have different working directories" - (`#4871 <https://github.com/nim-lang/Nim/issues/4871>`_) -- Fixed "CountTable doesn't support the '==' operator" - (`#4901 <https://github.com/nim-lang/Nim/issues/4901>`_) -- Fixed "documentation for module sequtls apply proc" - (`#4386 <https://github.com/nim-lang/Nim/issues/4386>`_) -- Fixed "Operator `==` for CountTable does not work." - (`#4946 <https://github.com/nim-lang/Nim/issues/4946>`_) -- Fixed "sysFatal (IndexError) with parseUri and the / operator" - (`#4959 <https://github.com/nim-lang/Nim/issues/4959>`_) -- Fixed "initialSize parameter does not work in OrderedTableRef" - (`#4940 <https://github.com/nim-lang/Nim/issues/4940>`_) -- Fixed "error proc from macro library could have a node parameter" - (`#4915 <https://github.com/nim-lang/Nim/issues/4915>`_) -- Fixed "Segfault when comparing OrderedTableRef with nil" - (`#4974 <https://github.com/nim-lang/Nim/issues/4974>`_) -- Fixed "Bad codegen when comparing isNil results" - (`#4975 <https://github.com/nim-lang/Nim/issues/4975>`_) -- Fixed "OrderedTable cannot delete entry with empty string or 0 key" - (`#5035 <https://github.com/nim-lang/Nim/issues/5035>`_) -- Fixed "Deleting specific keys from ordered table leaves it in invalid state." - (`#5057 <https://github.com/nim-lang/Nim/issues/5057>`_) -- Fixed "Paths are converted to lowercase on Windows" - (`#5076 <https://github.com/nim-lang/Nim/issues/5076>`_) -- Fixed "toTime(getGMTime(...)) doesn't work correctly when local timezone is not UTC" - (`#5065 <https://github.com/nim-lang/Nim/issues/5065>`_) -- Fixed "out of memory error from `test=` type proc call when parameter is a call to a table's `[]` proc" - (`#5079 <https://github.com/nim-lang/Nim/issues/5079>`_) -- Fixed "Incorrect field order in object construction" - (`#5055 <https://github.com/nim-lang/Nim/issues/5055>`_) -- Fixed "Incorrect codegen when importing nre with C++ backend (commit 8494338)" - (`#5081 <https://github.com/nim-lang/Nim/issues/5081>`_) -- Fixed "Templates, {.emit.}, and backtick interpolation do not work together" - (`#4730 <https://github.com/nim-lang/Nim/issues/4730>`_) -- Fixed "Regression: getType fails in certain cases" - (`#5129 <https://github.com/nim-lang/Nim/issues/5129>`_) -- Fixed "CreateThread doesn't accept functions with generics" - (`#43 <https://github.com/nim-lang/Nim/issues/43>`_) -- Fixed "No instantiation information when template has error" - (`#4308 <https://github.com/nim-lang/Nim/issues/4308>`_) -- Fixed "realloc leaks" - (`#4818 <https://github.com/nim-lang/Nim/issues/4818>`_) -- Fixed "Regression: getType" - (`#5131 <https://github.com/nim-lang/Nim/issues/5131>`_) -- Fixed "Code generation for generics broken by sighashes" - (`#5135 <https://github.com/nim-lang/Nim/issues/5135>`_) -- Fixed "Regression: importc functions are not declared in generated C code" - (`#5136 <https://github.com/nim-lang/Nim/issues/5136>`_) -- Fixed "Calling split("") on string hangs program" - (`#5119 <https://github.com/nim-lang/Nim/issues/5119>`_) -- Fixed "Building dynamic library: undefined references (Linux)" - (`#4775 <https://github.com/nim-lang/Nim/issues/4775>`_) -- Fixed "Bad codegen for distinct + importc - sighashes regression" - (`#5137 <https://github.com/nim-lang/Nim/issues/5137>`_) -- Fixed "C++ codegen regression: memset called on a result variable of `importcpp` type" - (`#5140 <https://github.com/nim-lang/Nim/issues/5140>`_) -- Fixed "C++ codegen regression: using channels leads to broken C++ code" - (`#5142 <https://github.com/nim-lang/Nim/issues/5142>`_) -- Fixed "Ambiguous call when overloading var and non-var with generic type" - (`#4519 <https://github.com/nim-lang/Nim/issues/4519>`_) -- Fixed "[Debian]: build.sh error: unknown processor: aarch64" - (`#2147 <https://github.com/nim-lang/Nim/issues/2147>`_) -- Fixed "RFC: asyncdispatch.poll behaviour" - (`#5155 <https://github.com/nim-lang/Nim/issues/5155>`_) -- Fixed "Can't access enum members through alias (possible sighashes regression)" - (`#5148 <https://github.com/nim-lang/Nim/issues/5148>`_) -- Fixed "Type, declared in generic proc body, leads to incorrect codegen (sighashes regression)" - (`#5147 <https://github.com/nim-lang/Nim/issues/5147>`_) -- Fixed "Compiler SIGSEGV when mixing method and proc" - (`#5161 <https://github.com/nim-lang/Nim/issues/5161>`_) -- Fixed "Compile-time SIGSEGV when declaring .importcpp method with return value " - (`#3848 <https://github.com/nim-lang/Nim/issues/3848>`_) -- Fixed "Variable declaration incorrectly parsed" - (`#2050 <https://github.com/nim-lang/Nim/issues/2050>`_) -- Fixed "Invalid C code when naming a object member "linux"" - (`#5171 <https://github.com/nim-lang/Nim/issues/5171>`_) -- Fixed "[Windows] MinGW within Nim install is missing libraries" - (`#2723 <https://github.com/nim-lang/Nim/issues/2723>`_) -- Fixed "async: annoying warning for future.finished" - (`#4948 <https://github.com/nim-lang/Nim/issues/4948>`_) -- Fixed "new import syntax doesn't work?" - (`#5185 <https://github.com/nim-lang/Nim/issues/5185>`_) -- Fixed "Fixes #1994" - (`#4874 <https://github.com/nim-lang/Nim/issues/4874>`_) -- Fixed "Can't tell return value of programs with staticExec" - (`#1994 <https://github.com/nim-lang/Nim/issues/1994>`_) -- Fixed "startProcess() on Windows with poInteractive: Second call fails ("Alle Pipeinstanzen sind ausgelastet")" - (`#5179 <https://github.com/nim-lang/Nim/issues/5179>`_) diff --git a/web/news/e030_nim_in_action_in_production.rst b/web/news/e030_nim_in_action_in_production.rst deleted file mode 100644 index b68b82801..000000000 --- a/web/news/e030_nim_in_action_in_production.rst +++ /dev/null @@ -1,53 +0,0 @@ -Nim in Action is going into production! -======================================= - -.. container:: metadata - - Posted by Dominik Picheta on 20/11/2016 - -.. raw::html - - <a href="https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81"> - <img src="../assets/niminaction/banner2.png" alt="A printed copy of Nim in Action should be available in March 2017!" width="682"/> - </a> - -I am very happy to say that just last week I have put the finishing touches -on Nim in Action. The final manuscript has been submitted to Manning (the book's -publisher), and the printed version is expected to start shipping in March -2017 (give or take 1 month). - -The eBook is still available and now contains all of the book's chapters, -including new ones dealing with the foreign function interface and -metaprogramming. -That said, it may still take some time before the eBook is updated with the -latest corrections. - -I am incredibly thankful to everyone that purchased the book already. Many of -you have also given me a lot of `brilliant <http://forum.nim-lang.org/t/1978>`_ -`feedback <https://forums.manning.com/forums/nim-in-action>`_, -thank you very much for -taking the time to do so. I have done my best to act on this -feedback and I hope you will agree that the book has risen in quality as a -result. - -Writing this book has been both exhausting and incredible at the same time. -I look forward -to having a physical copy of it in my hands, and I'm sure many of you do as -well. I can safely say that without your support this book would not have -happened, even if you did not purchase a copy your interest in Nim has made it -possible and I thank you for that. - -As always, you can make a purchase on -`Manning's website <https://manning.com/books/nim-in-action?a_aid=niminaction&a_bid=78a27e81>`_. -Both eBook's and printed books are available, and purchasing a printed book will -get you an eBook for free. -You can now also pre-order Nim in Action on -`Amazon <https://www.amazon.co.uk/Nim-Action-Dominik-Picheta/dp/1617293431/ref=sr_1_1?ie=UTF8&qid=1479663850&sr=8-1&keywords=nim+in+action>`_! - -If you would like updates about the book then please feel free to -follow either `myself <https://twitter.com/d0m96>`_ or -`@nim_lang <https://twitter.com/nim_lang>`_ on Twitter. Finally, if you have any -questions, do get in touch via `Twitter, NimForum, -IRC or Gitter <http://nim-lang.org/community.html>`_. - -Thanks for reading! diff --git a/web/news/e031_version_0_16_2.rst b/web/news/e031_version_0_16_2.rst deleted file mode 100644 index 3458ac83e..000000000 --- a/web/news/e031_version_0_16_2.rst +++ /dev/null @@ -1,325 +0,0 @@ -Version 0.17.0 released -======================= - -This release fixes the most important regressions introduced in 0.16.0. In -particular memory manager and channel bugs have been fixed. The NSIS based -installer is not provided anymore as the Nim website moved to ``https`` and -this causes NSIS downloads to fail. - - -Changelog -~~~~~~~~~ - -Changes affecting backwards compatibility ------------------------------------------ - -- There are now two different HTTP response types, ``Response`` and - ``AsyncResponse``. ``AsyncResponse``'s ``body`` accessor returns a - ``Future[string]``! -- ``httpclient.request`` now respects ``maxRedirects`` option. Previously - redirects were handled only by ``get`` and ``post`` procs. -- The IO routines now raise ``EOFError`` for the "end of file" condition. - ``EOFError`` is a subtype of ``IOError`` and so it's easier to distinguish - between "error during read" and "error due to EOF". -- A hash procedure has been added for ``cstring`` type in ``hashes`` module. - Previously, hash of a ``cstring`` would be calculated as a hash of the - pointer. Now the hash is calculated from the contents of the string, assuming - ``cstring`` is a null-terminated string. Equal ``string`` and ``cstring`` - values produce an equal hash value. -- Macros accepting `varargs` arguments will now receive a node having the - `nkArgList` node kind. Previous code expecting the node kind to be `nkBracket` - may have to be updated. -- ``memfiles.open`` now closes file handleds/fds by default. Passing - ``allowRemap=true`` to ``memfiles.open`` recovers the old behavior. The old - behavior is only needed to call ``mapMem`` on the resulting ``MemFile``. -- ``posix.nim``: For better C++ interop the field - ``sa_sigaction*: proc (x: cint, y: var SigInfo, z: pointer) {.noconv.}`` was - changed - to ``sa_sigaction*: proc (x: cint, y: ptr SigInfo, z: pointer) {.noconv.}``. -- The compiler doesn't infer effects for ``.base`` methods anymore. This means - you need to annotate them with ``.gcsafe`` or similar to clearly declare - upfront every implementation needs to fullfill these contracts. -- ``system.getAst templateCall(x, y)`` now typechecks the ``templateCall`` - properly. You need to patch your code accordingly. -- ``macros.getType`` and ``macros.getTypeImpl`` for an enum will now return an - AST that is the same as what is used to define an enum. Previously the AST - returned had a repeated ``EnumTy`` node and was missing the initial pragma - node (which is currently empty for an enum). -- ``macros.getTypeImpl`` now correctly returns the implementation for a symbol - of type ``tyGenericBody``. -- If the dispatcher parameter's value used in multi method is ``nil``, - a ``NilError`` exception is raised. The old behavior was that the method - would be a ``nop`` then. -- ``posix.nim``: the family of ``ntohs`` procs now takes unsigned integers - instead of signed integers. -- In Nim identifiers en-dash (Unicode point U+2013) is not an alias for the - underscore anymore. Use underscores and fix your programming font instead. -- When the ``requiresInit`` pragma is applied to a record type, future versions - of Nim will also require you to initialize all the fields of the type during - object construction. For now, only a warning will be produced. -- The Object construction syntax now performs a number of additional safety - checks. When fields within case objects are initialiazed, the compiler will - now demand that the respective discriminator field has a matching known - compile-time value. -- On posix, the results of `waitForExit`, `peekExitCode`, `execCmd` will return - 128 + signal number if the application terminates via signal. -- ``ospaths.getConfigDir`` now conforms to the XDG Base Directory specification - on non-Windows OSs. It returns the value of the XDG_CONFIG_DIR environment - variable if it is set, and returns the default configuration directory, - "~/.config/", otherwise. - -Library Additions ------------------ - -- Added ``system.onThreadDestruction``. -- Added ``dial`` procedure to networking modules: ``net``, ``asyncdispatch``, - ``asyncnet``. It merges socket creation, address resolution, and connection - into single step. When using ``dial``, you don't have to worry about - IPv4 vs IPv6 problem. ``httpclient`` now supports IPv6. - -Tool Additions --------------- - -- The ``finish`` tool can now download MingW for you should it not find a - working MingW installation. - - -Compiler Additions ------------------- - -- The name mangling rules used by the C code generator changed. Most of the time - local variables and parameters are not mangled at all anymore. This improves - debugging experience. -- The compiler produces explicit name mangling files when ``--debugger:native`` - is enabled. Debuggers can read these ``.ndi`` files in order to improve - debugging Nim code. - - -Language Additions ------------------- - -- The ``try`` statement's ``except`` branches now support the binding of a -caught exception to a variable: - -.. code-block:: nim - try: - raise newException(Exception, "Hello World") - except Exception as exc: - echo(exc.msg) - -This replaces the ``getCurrentException`` and ``getCurrentExceptionMsg()`` -procedures, although these procedures will remain in the stdlib for the -foreseeable future. This new language feature is actually implemented using -these procedures. - -In the near future we will be converting all exception types to refs to -remove the need for the ``newException`` template. - -- A new pragma ``.used`` can be used for symbols to prevent -the "declared but not used" warning. More details can be -found `here <http://nim-lang.org/docs/manual.html#pragmas-used-pragma>`_. -- The popular "colon block of statements" syntax is now also supported for - ``let`` and ``var`` statements and assignments: - -.. code-block:: nim - template ve(value, effect): untyped = - effect - val - - let x = ve(4): - echo "welcome to Nim!" - -This is particularly useful for DSLs that help in tree construction. - - -Language changes ----------------- - -- The ``.procvar`` annotation is not required anymore. That doesn't mean you - can pass ``system.$`` to ``map`` just yet though. - - -Bugfixes --------- - -The list below has been generated based on the commits in Nim's git -repository. As such it lists only the issues which have been closed -via a commit, for a full list see -`this link on Github <https://github.com/nim-lang/Nim/issues?utf8=%E2%9C%93&q=is%3Aissue+closed%3A%222017-01-07+..+2017-02-06%22+>`_. - -- Fixed "Weird compilation bug" - (`#4884 <https://github.com/nim-lang/Nim/issues/4884>`_) -- Fixed "Return by arg optimization does not set result to default value" - (`#5098 <https://github.com/nim-lang/Nim/issues/5098>`_) -- Fixed "upcoming asyncdispatch doesn't remove recv callback if remote side closed socket" - (`#5128 <https://github.com/nim-lang/Nim/issues/5128>`_) -- Fixed "compiler bug, executable writes into wrong memory" - (`#5218 <https://github.com/nim-lang/Nim/issues/5218>`_) -- Fixed "Module aliasing fails when multiple modules have the same original name" - (`#5112 <https://github.com/nim-lang/Nim/issues/5112>`_) -- Fixed "JS: var argument + case expr with arg = bad codegen" - (`#5244 <https://github.com/nim-lang/Nim/issues/5244>`_) -- Fixed "compiler reject proc's param shadowing inside template" - (`#5225 <https://github.com/nim-lang/Nim/issues/5225>`_) -- Fixed "const value not accessible in proc" - (`#3434 <https://github.com/nim-lang/Nim/issues/3434>`_) -- Fixed "Compilation regression 0.13.0 vs 0.16.0 in compile-time evaluation" - (`#5237 <https://github.com/nim-lang/Nim/issues/5237>`_) -- Fixed "Regression: JS: wrong field-access codegen" - (`#5234 <https://github.com/nim-lang/Nim/issues/5234>`_) -- Fixed "fixes #5234" - (`#5240 <https://github.com/nim-lang/Nim/issues/5240>`_) -- Fixed "JS Codegen: duplicated fields in object constructor" - (`#5271 <https://github.com/nim-lang/Nim/issues/5271>`_) -- Fixed "RFC: improving JavaScript FFI" - (`#4873 <https://github.com/nim-lang/Nim/issues/4873>`_) -- Fixed "Wrong result type when using bitwise and" - (`#5216 <https://github.com/nim-lang/Nim/issues/5216>`_) -- Fixed "upcoming.asyncdispatch is prone to memory leaks" - (`#5290 <https://github.com/nim-lang/Nim/issues/5290>`_) -- Fixed "Using threadvars leads to crash on Windows when threads are created/destroyed" - (`#5301 <https://github.com/nim-lang/Nim/issues/5301>`_) -- Fixed "Type inferring templates do not work with non-ref types." - (`#4973 <https://github.com/nim-lang/Nim/issues/4973>`_) -- Fixed "Nimble package list no longer works on lib.html" - (`#5318 <https://github.com/nim-lang/Nim/issues/5318>`_) -- Fixed "Missing file name and line number in error message" - (`#4992 <https://github.com/nim-lang/Nim/issues/4992>`_) -- Fixed "ref type can't be converted to var parameter in VM" - (`#5327 <https://github.com/nim-lang/Nim/issues/5327>`_) -- Fixed "nimweb ignores the value of --parallelBuild" - (`#5328 <https://github.com/nim-lang/Nim/issues/5328>`_) -- Fixed "Cannot unregister/close AsyncEvent from within its handler" - (`#5331 <https://github.com/nim-lang/Nim/issues/5331>`_) -- Fixed "name collision with template instanciated generic inline function with inlined iterator specialization used from different modules" - (`#5285 <https://github.com/nim-lang/Nim/issues/5285>`_) -- Fixed "object in VM does not have value semantic" - (`#5269 <https://github.com/nim-lang/Nim/issues/5269>`_) -- Fixed "Unstable tuple destructuring behavior in Nim VM" - (`#5221 <https://github.com/nim-lang/Nim/issues/5221>`_) -- Fixed "nre module breaks os templates" - (`#4996 <https://github.com/nim-lang/Nim/issues/4996>`_) -- Fixed "Cannot implement distinct seq with setLen" - (`#5090 <https://github.com/nim-lang/Nim/issues/5090>`_) -- Fixed "await inside array/dict literal produces invalid code" - (`#5314 <https://github.com/nim-lang/Nim/issues/5314>`_) - -- Fixed "asyncdispatch.accept() can raise exception inside poll() instead of failing future on Windows" - (`#5279 <https://github.com/nim-lang/Nim/issues/5279>`_) -- Fixed "VM: A crash report should be more informative" - (`#5352 <https://github.com/nim-lang/Nim/issues/5352>`_) -- Fixed "IO routines are poor at handling errors" - (`#5349 <https://github.com/nim-lang/Nim/issues/5349>`_) -- Fixed "new import syntax doesn't work?" - (`#5185 <https://github.com/nim-lang/Nim/issues/5185>`_) -- Fixed "Seq of object literals skips unmentioned fields" - (`#5339 <https://github.com/nim-lang/Nim/issues/5339>`_) -- Fixed "``sym is not accessible`` in compile time" - (`#5354 <https://github.com/nim-lang/Nim/issues/5354>`_) -- Fixed "the matching is broken in re.nim" - (`#5382 <https://github.com/nim-lang/Nim/issues/5382>`_) -- Fixed "development branch breaks in my c wrapper" - (`#5392 <https://github.com/nim-lang/Nim/issues/5392>`_) -- Fixed "Bad codegen: toSeq + tuples + generics" - (`#5383 <https://github.com/nim-lang/Nim/issues/5383>`_) -- Fixed "Bad codegen: toSeq + tuples + generics" - (`#5383 <https://github.com/nim-lang/Nim/issues/5383>`_) -- Fixed "Codegen error when using container of containers" - (`#5402 <https://github.com/nim-lang/Nim/issues/5402>`_) -- Fixed "sizeof(RangeType) is not available in static context" - (`#5399 <https://github.com/nim-lang/Nim/issues/5399>`_) -- Fixed "Regression: ICE: expr: var not init ex_263713" - (`#5405 <https://github.com/nim-lang/Nim/issues/5405>`_) -- Fixed "Stack trace is wrong when assignment operator fails with template" - (`#5400 <https://github.com/nim-lang/Nim/issues/5400>`_) -- Fixed "SIGSEGV in compiler" - (`#5391 <https://github.com/nim-lang/Nim/issues/5391>`_) -- Fixed "Compiler regression with struct member names" - (`#5404 <https://github.com/nim-lang/Nim/issues/5404>`_) -- Fixed "Regression: compiler segfault" - (`#5419 <https://github.com/nim-lang/Nim/issues/5419>`_) -- Fixed "The compilation of jester routes is broken on devel" - (`#5417 <https://github.com/nim-lang/Nim/issues/5417>`_) -- Fixed "Non-generic return type produces "method is not a base"" - (`#5432 <https://github.com/nim-lang/Nim/issues/5432>`_) -- Fixed "Confusing error behavior when calling slice[T].random" - (`#5430 <https://github.com/nim-lang/Nim/issues/5430>`_) -- Fixed "Wrong method called" - (`#5439 <https://github.com/nim-lang/Nim/issues/5439>`_) -- Fixed "Attempt to document the strscans.scansp macro" - (`#5154 <https://github.com/nim-lang/Nim/issues/5154>`_) -- Fixed "[Regression] Invalid C code for _ symbol inside jester routes" - (`#5452 <https://github.com/nim-lang/Nim/issues/5452>`_) -- Fixed "StdLib base64 encodeInternal crashes with out of bound exception" - (`#5457 <https://github.com/nim-lang/Nim/issues/5457>`_) -- Fixed "Nim hangs forever in infinite loop in nre library" - (`#5444 <https://github.com/nim-lang/Nim/issues/5444>`_) - -- Fixed "Tester passes test although individual test in suite fails" - (`#5472 <https://github.com/nim-lang/Nim/issues/5472>`_) -- Fixed "terminal.nim documentation" - (`#5483 <https://github.com/nim-lang/Nim/issues/5483>`_) -- Fixed "Codegen error - expected identifier before ')' token (probably regression)" - (`#5481 <https://github.com/nim-lang/Nim/issues/5481>`_) -- Fixed "mixin not works inside generic proc generated by template" - (`#5478 <https://github.com/nim-lang/Nim/issues/5478>`_) -- Fixed "var not init (converter + template + macro)" - (`#5467 <https://github.com/nim-lang/Nim/issues/5467>`_) -- Fixed "`==` for OrderedTable should consider equal content but different size as equal." - (`#5487 <https://github.com/nim-lang/Nim/issues/5487>`_) -- Fixed "Fixed tests/tester.nim" - (`#45 <https://github.com/nim-lang/Nim/issues/45>`_) -- Fixed "template instanciation crashes compiler" - (`#5428 <https://github.com/nim-lang/Nim/issues/5428>`_) -- Fixed "Internal compiler error in handleGenericInvocation" - (`#5167 <https://github.com/nim-lang/Nim/issues/5167>`_) -- Fixed "compiler crash in forwarding template" - (`#5455 <https://github.com/nim-lang/Nim/issues/5455>`_) -- Fixed "Doc query re public/private + suggestion re deprecated" - (`#5529 <https://github.com/nim-lang/Nim/issues/5529>`_) -- Fixed "inheritance not work for generic object whose parent is parameterized" - (`#5264 <https://github.com/nim-lang/Nim/issues/5264>`_) -- Fixed "weird inheritance rule restriction" - (`#5231 <https://github.com/nim-lang/Nim/issues/5231>`_) -- Fixed "Enum with holes broken in JS" - (`#5062 <https://github.com/nim-lang/Nim/issues/5062>`_) -- Fixed "enum type and aliased enum type inequality when tested with operator `is` involving template" - (`#5360 <https://github.com/nim-lang/Nim/issues/5360>`_) -- Fixed "logging: problem with console logger caused by the latest changes in sysio" - (`#5546 <https://github.com/nim-lang/Nim/issues/5546>`_) -- Fixed "Crash if proc and caller doesn't define seq type - HEAD" - (`#4756 <https://github.com/nim-lang/Nim/issues/4756>`_) -- Fixed "`path` config option doesn't work when compilation is invoked from a different directory" - (`#5228 <https://github.com/nim-lang/Nim/issues/5228>`_) -- Fixed "segfaults module doesn't compile with C++ backend" - (`#5550 <https://github.com/nim-lang/Nim/issues/5550>`_) -- Fixed "Improve `joinThreads` for windows" - (`#4972 <https://github.com/nim-lang/Nim/issues/4972>`_) -- Fixed "Compiling in release mode prevents valid code execution." - (`#5296 <https://github.com/nim-lang/Nim/issues/5296>`_) -- Fixed "Forward declaration of generic procs or iterators doesn't work" - (`#4104 <https://github.com/nim-lang/Nim/issues/4104>`_) -- Fixed "cant create thread after join" - (`#4719 <https://github.com/nim-lang/Nim/issues/4719>`_) -- Fixed "can't compile with var name "near" and --threads:on" - (`#5598 <https://github.com/nim-lang/Nim/issues/5598>`_) -- Fixed "inconsistent behavior when calling parent's proc of generic object" - (`#5241 <https://github.com/nim-lang/Nim/issues/5241>`_) -- Fixed "The problem with import order of asyncdispatch and unittest modules" - (`#5597 <https://github.com/nim-lang/Nim/issues/5597>`_) -- Fixed "Generic code fails to compile in unexpected ways" - (`#976 <https://github.com/nim-lang/Nim/issues/976>`_) -- Fixed "Another 'User defined type class' issue" - (`#1128 <https://github.com/nim-lang/Nim/issues/1128>`_) -- Fixed "compiler fails to compile user defined typeclass" - (`#1147 <https://github.com/nim-lang/Nim/issues/1147>`_) -- Fixed "Type class membership testing doesn't work on instances of generic object types" - (`#1570 <https://github.com/nim-lang/Nim/issues/1570>`_) -- Fixed "Strange overload resolution behavior for procedures with typeclass arguments" - (`#1991 <https://github.com/nim-lang/Nim/issues/1991>`_) -- Fixed "The same UDTC can't constrain two type parameters in the same procedure" - (`#2018 <https://github.com/nim-lang/Nim/issues/2018>`_) -- Fixed "More trait/concept issues" - (`#2423 <https://github.com/nim-lang/Nim/issues/2423>`_) -- Fixed "Bugs with concepts?" - (`#2882 <https://github.com/nim-lang/Nim/issues/2882>`_) \ No newline at end of file diff --git a/web/question.rst b/web/question.rst deleted file mode 100644 index 54c392ced..000000000 --- a/web/question.rst +++ /dev/null @@ -1,194 +0,0 @@ -=========================================== - Questions and Answers -=========================================== - - -General FAQ -=========== - - -.. container:: standout - - What is Nim? - ------------ - - Nim (formerly known as "Nimrod") 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. - - - -.. .. container:: standout - -.. Why should I use Nim? -.. --------------------- - -.. It's a conservative language in a sense that we stick to features that have -.. proven themselves for larger scale programming. But it's revolutionary by -.. the features which have been laid on top. - -.. One of Nim's goals is to increase developer productivity without sacrificing -.. the produced software's stability. The way that this is done is by providing - -.. Depending on your use case. - -.. Nim is one of the few programming languages in the world which allows you to - - -.. The language inventor describes it as the ultimate programming language -.. with features which make it perfect for just about any problem. - -.. container:: standout - - Why yet another programming language? - ------------------------------------- - - Nim is one of the very few *programmable* statically typed languages, and - one of the even fewer that produces native binaries that require no - runtime or interpreter. - - -.. container:: standout - - What have been the major influences in the language's design? - ------------------------------------------------------------- - - The language borrows heavily from (in order of impact): Modula 3, Delphi, Ada, - C++, Python, Lisp, Oberon. - - -.. container:: standout - - What is Nim's take on concurrency? - ---------------------------------- - - Nim primarily focusses on thread local (and garbage collected) heaps and - message passing between threads. Each thread has its own GC, so no - "stop the world" mechanism is necessary. An unsafe shared memory heap is also - provided. - - Future versions will additionally include a GC "per thread group" - and Nim's type system will be enhanced to accurately model this shared - memory heap. - - -.. container:: standout - - How is Nim licensed? - -------------------- - - The Nim compiler and the library are MIT licensed. - This means that you can use any license for your own programs developed with - Nim. - - -.. container:: standout - - How stable is Nim? - ------------------ - - The compiler is in development and some important features are still missing. - However, the compiler is quite stable already: It is able to compile itself - and a substantial body of other code. Until version 1.0.0 is released, - minor incompatibilities with older versions of the compiler will be introduced. - - -.. container:: standout - - How fast is Nim? - ---------------- - Benchmarks show it to be comparable to C. Some language features (methods, - closures, message passing) are not yet as optimized as they could and will be. - The only overhead Nim has over C is the GC which has been tuned - for years but still needs some work. - - -.. container:: standout - - What about JVM/CLR backends? - ---------------------------- - - JVM/CLR support is not in the nearest plans. However, since these VMs support FFI to C - it should be possible to create native Nim bridges, that transparenlty generate all the - glue code thanks to powerful metaprogramming capabilities of Nim. - - -.. container:: standout - - What about editor support? - -------------------------- - - - Native Nim Editor: https://github.com/nim-lang/Aporia - - Visual Studio Code: https://marketplace.visualstudio.com/items?itemName=kosz78.nim - - Emacs: https://github.com/nim-lang/nim-mode - - Vim: https://github.com/zah/nimrod.vim/ - - Scite: Included - - Gedit: The `Aporia .lang file <https://github.com/nim-lang/Aporia/blob/master/share/gtksourceview-2.0/language-specs/nim.lang>`_ - - jEdit: https://github.com/exhu/nimrod-misc/tree/master/jedit - - TextMate: Available in bundle installer (`Repository <https://github.com/textmate/nim.tmbundle>`_) - - Sublime Text: Available via Package Control (`Repository <https://github.com/Varriount/NimLime>`_) - - LiClipse: http://www.liclipse.com/ (Eclipse based plugin) - - Howl: Included - - Notepad++: Available via `plugin <https://github.com/jangko/nppnim/releases>`_ - - -.. container:: standout - - Why is it named ``proc``? - ------------------------- - - *Procedure* used to be the common term as opposed to a *function* which is a - mathematical entity that has no side effects. It is planned to have ``func`` - as syntactic sugar for ``proc {.noSideEffect.}`` and ``func`` is already a - keyword. Naming it ``def`` would not make sense because Nim also provides a - ``iterator`` and ``method`` keywords, whereas ``def`` stands for ``define``. - - -Compilation FAQ -=============== - -.. container:: standout - - Which option to use for the fastest executable? - ----------------------------------------------- - - For the standard configuration file, ``-d:release`` does the trick. - -.. container:: standout - - Which option to use for the smallest executable? - ------------------------------------------------ - - For the standard configuration file, ``-d:quick --opt:size`` does the trick. - -.. container:: standout - - How do I use a different C compiler than the default one? - --------------------------------------------------------- - - Edit the ``config/nim.cfg`` file. - Change the value of the ``cc`` variable to one of the following: - - ================ ============================================ - **Abbreviation** **C/C++ Compiler** - ================ ============================================ - ``vcc`` Microsoft's Visual C++ - ``gcc`` Gnu C - ``llvm_gcc`` LLVM-GCC compiler - ``icc`` Intel C++ compiler - ``clang`` Clang compiler - ``ucc`` Generic UNIX C compiler - ================ ============================================ - - Other C compilers are not officially supported, but might work too. - - If your C compiler is not in the above list, try using the - *generic UNIX C compiler* (``ucc``). If the C compiler needs - different command line arguments try the ``--passc`` and ``--passl`` switches. diff --git a/web/snippets/snippet1.nim b/web/snippets/snippet1.nim deleted file mode 100644 index b0895e0c0..000000000 --- a/web/snippets/snippet1.nim +++ /dev/null @@ -1,4 +0,0 @@ -import strutils -echo "Give a list of integers (separated by spaces): ", - stdin.readLine.split.each(parseInt).max, - " is the maximum!" diff --git a/web/sponsors.csv b/web/sponsors.csv deleted file mode 100644 index 7136808c6..000000000 --- a/web/sponsors.csv +++ /dev/null @@ -1,40 +0,0 @@ -logo, name, url, this_month, all_time, since, level -assets/bountysource/secondspectrum.png,Second Spectrum,http://www.secondspectrum.com/,250,2250,"May 5, 2016",250 -assets/bountysource/xored.svg,"Xored Software, Inc.",http://xored.com/,250,1000,250,2000,"Jun 20, 2016",250 -,Varriount,https://github.com/Varriount,250,750,"Nov 18, 2016",250 -,flyx,http://flyx.org,35,350,"Apr 7, 2016",75 -,"Yuriy Glukhov",,25,250,"Apr 6, 2016",25 -,endragor,https://github.com/endragor,25,250,"Apr 7, 2016",25 -,FedericoCeratto,http://firelet.net,25,250,"Apr 7, 2016",25 -,"Adrian Veith",,25,250,"Apr 20, 2016",25 -,euantorano,http://euantorano.co.uk,25,200,"Jun 7, 2016",25 -,xxlabaza,https://github.com/xxlabaza,25,170,"Jun 17, 2016",25 -,devted,https://github.com/devted,25,100,"Oct 19, 2016",25 -,"pyloor ",https://schwarz-weiss.cc/,10,95,"May 16, 2016",10 -,niebaopeng,https://github.com/niebaopeng,10,90,"Apr 15, 2016",10 -,zolern,https://github.com/zolern,10,80,"Apr 15, 2016",10 -,"Oskari Timperi",,10,80,"Jun 8, 2016",10 -,jcosborn,https://github.com/jcosborn,25,75,"Nov 21, 2016",25 -,swalf,https://github.com/swalf,5,65,"May 9, 2016",5 -,"Handojo Goenadi",,5,55,"Apr 19, 2016",5 -,cpunion,https://github.com/cpunion,10,50,"Sep 9, 2016",10 -,D-L,https://github.com/D-L,5,50,"Apr 7, 2016",5 -,moigagoo,http://sloth-ci.com,10,40,"May 13, 2016",10 -,enthus1ast,http://code0.xyz/,10,40,"Oct 28, 2016",10 -,RyanMarcus,http://rmarcus.info,5,35,"Jul 19, 2016",5 -,lenzenmi,https://github.com/lenzenmi,5,35,"Jul 28, 2016",5 -,"Christian Bagley",,10,30,"Oct 11, 2016",10 -,pandada8,https://github.com/pandada8,5,30,"Aug 12, 2016",5 -,abeaumont,http://alfredobeaumont.org/blog,5,30,"Aug 12, 2016",5 -,opendragon,http://www.opendragon.com,25,25,"Jan 18, 2017",25 -,"Eric Raible",,10,20,"Dec 23, 2016",10 -,zefciu,http://pythonista.net,10,20,"Dec 29, 2016",10 -,"Andrey ",https://github.com/Andrey,5,20,"Oct 10, 2016",5 -,syrol,https://github.com/syrol,5,10,"Dec 12, 2016",5 -,"Svend Knudsen",,1,10,"Apr 11, 2016",1 -,"Michael D. Sklaroff",,1,10,"Apr 27, 2016",1 -,nicck,,1,6,"Aug 9, 2016",1 -,cnygaard,,5,5,"Jan 17, 2017",5 -,Aldrog,,5,5,"Feb 11, 2017",5 -,mpachecofaulk55,,5,5,"Feb 11, 2017",5 -,campbellr,,1,5,"Sep 4, 2016",1 diff --git a/web/support.rst b/web/support.rst deleted file mode 100644 index 72e6dad71..000000000 --- a/web/support.rst +++ /dev/null @@ -1,40 +0,0 @@ -Commercial and Community Support -================================ - -We offer a multitude of support networks including those in both a community -and commercial setting. - -Commercial support includes: - -.. container:: standout - - Priority Bug Fixes - ------------------ - - File a bug report and we will address them with the highest priority. Once - fixed, you will be able to access either the current Git build or at your - request a custom build against the latest release with your bug fixed. - - -.. container:: standout - - Feature Requests - ---------------- - - Suggest to us any feature that you might need, we will examine your request with - care and provide a proper answer about its potential for inclusion. - - Communication happens via email or for a slightly higher fee via Skype. - The pricing is based on the amount of hours spent on the bugfix / feature - implementation and is open to negotiation. - - -All interested parties should email ``support@nim-lang.org``. -The bid for contracting work is a commercial offer provided by: - - -| **Andreas Rumpf** -| St.-Quentin-Ring 47 -| 67663 Kaiserslautern -| GERMANY -| EU VAT-IN: DE297783450 diff --git a/web/ticker.html b/web/ticker.html deleted file mode 100644 index 865dcf4f8..000000000 --- a/web/ticker.html +++ /dev/null @@ -1,26 +0,0 @@ -<a class="news" href="$1news/e029_version_0_16_0.html"> - <h4>January 8, 2017</h4> - <p>Nim version 0.16.0 has been released!</p> -</a> - -<a class="news" href="$1news/e030_nim_in_action_in_production.html"> - <h4>November 20, 2016</h4> - <p>Nim in Action is going into production!</p> -</a> - -<a class="news" href="$1news/e028_version_0_15_2.html"> - <h4>October 23, 2016</h4> - <p>Nim version 0.15.2 has been released!</p> -</a> - -<a class="news" href="$1news/e027_version_0_15_0.html"> - <h4>September 30, 2016</h4> - <p>Nim version 0.15.0 has been released!</p> -</a> - -<a class="news" href="$1news/e026_survey_results.html"> - <h4>September 3, 2016</h4> - <p>Nim Community Survey results</p> -</a> - -<a href="$1news.html" class="blue">See All News...</a> |