resolved conflict
This commit is contained in:
commit
dcfc7a8896
871 changed files with 33223 additions and 14101 deletions
|
|
@ -65,7 +65,7 @@ html, body {
|
|||
|
||||
#page { position:relative; float:left; padding:20px 30px 50px 50px; width:620px; color:#343739; }
|
||||
|
||||
#page h1 { margin-top:40px; }
|
||||
#page h1 { margin-top:40px; line-height: 28px; }
|
||||
#page h2 { margin-top:40px; }
|
||||
|
||||
#page p { text-align:justify; }
|
||||
|
|
|
|||
|
|
@ -1,15 +1,55 @@
|
|||
Discuss Nimrod in our `forum <http://forum.nimrod-code.org/>`_.
|
||||
Forum
|
||||
=====
|
||||
|
||||
Visit our project page at GitHub: http://github.com/Araq/Nimrod.
|
||||
The `Nimrod forum <http://forum.nimrod-code.org/>`_ is the place where most
|
||||
discussions related to the language happen. It not only includes discussions
|
||||
relating to the design of Nimrod but also allows for beginners to ask questions
|
||||
relating to Nimrod.
|
||||
|
||||
Wiki: http://github.com/Araq/Nimrod/wiki.
|
||||
IRC
|
||||
====
|
||||
|
||||
Bug reports: http://github.com/Araq/Nimrod/issues.
|
||||
Many Nimrod developers are a part of the
|
||||
`#nimrod IRC channel <http://webchat.freenode.net/?channels=nimrod>`_ on
|
||||
Freenode. That is the place where the rest of the discussion relating to Nimrod
|
||||
occurs. Be sure to join us there if you wish to discuss Nimrod in real-time.
|
||||
IRC is the perfect place for people just starting to learn Nimrod and we
|
||||
welcome any questions that you may have!
|
||||
|
||||
For quickest feedback, join our IRC channel: irc://irc.freenode.net/nimrod
|
||||
(logs at `<http://build.nimrod-code.org/irclogs/>`_).
|
||||
You may also be interested in reading the
|
||||
`IRC logs <http://build.nimrod-code.org/irclogs/>`_ which are an archive of all
|
||||
of the previous discussions that took place in the IRC channel.
|
||||
|
||||
Check out our Twitter account for latest news and announcements: `@nimrodlang <http://twitter.com/nimrodlang>`_.
|
||||
Github
|
||||
======
|
||||
|
||||
Nimrod's `source code <http://github.com/Araq/Nimrod>`_ is hosted on Github.
|
||||
Together with the `wiki <http://github.com/Araq/Nimrod/wiki>`_ and
|
||||
`issue tracker <http://github.com/Araq/Nimrod/issues>`_.
|
||||
|
||||
Github also hosts other projects relating to Nimrod. These projects are a part
|
||||
of the `nimrod-code organisation <http://github.com/nimrod-code>`_.
|
||||
This includes the `Babel package manager <http://github.com/nimrod-code/babel>`_
|
||||
and its `package repository <http://github.com/nimrod-code/packages>`_.
|
||||
|
||||
Twitter
|
||||
=======
|
||||
|
||||
Follow us `@nimrodlang <http://twitter.com/nimrodlang>`_ for latest news about
|
||||
Nimrod.
|
||||
|
||||
Reddit
|
||||
======
|
||||
|
||||
Subscribe to `/r/nimrod <http://reddit.com/r/nimrod>`_ for latest news about
|
||||
Nimrod.
|
||||
|
||||
StackOverflow
|
||||
=============
|
||||
|
||||
When asking a question relating to Nimrod, be sure to use the
|
||||
`Nimrod <http://stackoverflow.com/questions/tagged/nimrod>`_ tag in your
|
||||
question.
|
||||
|
||||
How to help
|
||||
===========
|
||||
|
|
@ -26,7 +66,9 @@ can't find anything you fancy doing, you can always ask for inspiration on IRC
|
|||
Donations
|
||||
---------
|
||||
|
||||
If you love what we do and are feeling generous then you can always donate:
|
||||
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 Nimrod even better!
|
||||
|
||||
Gittip
|
||||
``````
|
||||
|
|
|
|||
132
web/news.txt
132
web/news.txt
|
|
@ -3,12 +3,65 @@ News
|
|||
====
|
||||
|
||||
|
||||
2013-XX-XX Version 0.9.4 released
|
||||
|
||||
2014-XX-XX Version 0.9.4 released
|
||||
=================================
|
||||
|
||||
The Nimrod development community is proud to announce the release of version
|
||||
0.9.4 of the Nimrod compiler and tools.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
This release includes about 1300 changes in total including various bug
|
||||
fixes, new languages features and standard library additions and improvements.
|
||||
This release brings with it support for user-defined type classes, a brand
|
||||
new VM for executing Nimrod code at compile-time and new symbol binding
|
||||
rules for clean templates.
|
||||
It also introduces support for the brand new
|
||||
`Babel package manager <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::nimrod
|
||||
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.
|
||||
|
||||
|
||||
Library Additions
|
||||
|
|
@ -16,7 +69,14 @@ 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.
|
||||
|
||||
Changes affecting backwards compatibility
|
||||
-----------------------------------------
|
||||
|
|
@ -28,6 +88,21 @@ Changes affecting backwards compatibility
|
|||
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.
|
||||
|
||||
|
||||
Compiler Additions
|
||||
------------------
|
||||
|
|
@ -40,22 +115,37 @@ Compiler Additions
|
|||
over the generated code.
|
||||
- The compiler now supports a ``computedGoto`` pragma to support very fast
|
||||
dispatching for interpreters and the like.
|
||||
- In CGI scripts stacktraces are shown user only if cgi.setStackTraceStdout
|
||||
is used.
|
||||
- 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``.
|
||||
- ``macros.dumpTree`` and ``macros.dumpLisp`` have been made ``immediate``,
|
||||
``dumpTreeImm`` and ``dumpLispImm`` are now deprecated.
|
||||
- Added ``requiresInit`` pragma to enforce explicit initialization.
|
||||
- Added ``using statement`` for better authoring domain-specific languages and
|
||||
OOP-like syntactic sugar.
|
||||
- Added ``delegator pragma`` for handling calls to missing procs and fields at
|
||||
compile-time.
|
||||
- Support for user-defined type classes have been added.
|
||||
- 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.
|
||||
|
||||
|
||||
Tools improvements
|
||||
|
|
@ -65,6 +155,22 @@ Tools improvements
|
|||
to activate.
|
||||
|
||||
|
||||
2014-02-11 Nimrod Featured in Dr. Dobb's Journal
|
||||
================================================
|
||||
|
||||
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.
|
||||
|
||||
|
||||
2014-01-15 Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online
|
||||
============================================================================
|
||||
|
||||
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.
|
||||
|
||||
|
||||
2013-05-20 New website design!
|
||||
==============================
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ UNIX. We don't believe this to be a coincidence. - Jeremy S. Anderson."""
|
|||
|
||||
[Documentation]
|
||||
doc: "endb;intern;apis;lib;manual;tut1;tut2;nimrodc;overview;filters;trmacros"
|
||||
doc: "tools;c2nim;niminst;nimgrep;gc;estp;idetools"
|
||||
doc: "tools;c2nim;niminst;nimgrep;gc;estp;idetools;docgen"
|
||||
pdf: "manual;lib;tut1;tut2;nimrodc;c2nim;niminst;gc"
|
||||
srcdoc2: "system.nim;impure/graphics;wrappers/sdl"
|
||||
srcdoc2: "core/macros;pure/marshal;core/typeinfo;core/unsigned"
|
||||
|
|
@ -45,11 +45,11 @@ srcdoc2: "impure/re;pure/sockets"
|
|||
srcdoc: "system/threads.nim;system/channels.nim;js/dom"
|
||||
srcdoc2: "pure/os;pure/strutils;pure/math;pure/matchers;pure/algorithm"
|
||||
srcdoc2: "pure/complex;pure/times;pure/osproc;pure/pegs;pure/dynlib"
|
||||
srcdoc2: "pure/parseopt;pure/hashes;pure/strtabs;pure/lexbase"
|
||||
srcdoc2: "pure/parseopt;pure/parseopt2;pure/hashes;pure/strtabs;pure/lexbase"
|
||||
srcdoc2: "pure/parsecfg;pure/parsexml;pure/parsecsv;pure/parsesql"
|
||||
srcdoc2: "pure/streams;pure/terminal;pure/cgi;impure/web;pure/unicode"
|
||||
srcdoc2: "impure/zipfiles;pure/htmlgen;pure/parseutils;pure/browsers"
|
||||
srcdoc2: "impure/db_postgres;impure/db_mysql;impure/db_sqlite;impure/db_mongo"
|
||||
srcdoc2: "impure/db_postgres;impure/db_mysql;impure/db_sqlite"
|
||||
srcdoc2: "pure/httpserver;pure/httpclient;pure/smtp;impure/ssl;pure/fsmonitor"
|
||||
srcdoc2: "pure/ropes;pure/unidecode/unidecode;pure/xmldom;pure/xmldomparser"
|
||||
srcdoc2: "pure/xmlparser;pure/htmlparser;pure/xmltree;pure/colors;pure/mimetypes"
|
||||
|
|
@ -62,7 +62,8 @@ srcdoc2: "pure/ftpclient;pure/memfiles;pure/subexes;pure/collections/critbits"
|
|||
srcdoc2: "pure/asyncio;pure/actors;core/locks;pure/oids;pure/endians;pure/uri"
|
||||
srcdoc2: "pure/nimprof;pure/unittest;packages/docutils/highlite"
|
||||
srcdoc2: "packages/docutils/rst;packages/docutils/rstast"
|
||||
srcdoc2: "packages/docutils/rstgen"
|
||||
srcdoc2: "packages/docutils/rstgen;pure/logging;pure/asyncdispatch;pure/asyncnet"
|
||||
srcdoc2: "pure/rawsockets;pure/asynchttpserver;pure/net;pure/selectors"
|
||||
|
||||
webdoc: "wrappers/libcurl;pure/md5;wrappers/mysql;wrappers/iup"
|
||||
webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc"
|
||||
|
|
@ -72,7 +73,7 @@ webdoc: "wrappers/libuv;wrappers/joyent_http_parser"
|
|||
|
||||
webdoc: "posix/posix;wrappers/odbcsql;impure/dialogs"
|
||||
webdoc: "wrappers/zip/zlib;wrappers/zip/libzip"
|
||||
webdoc: "wrappers/libsvm.nim;wrappers/mongo.nim"
|
||||
webdoc: "wrappers/libsvm.nim"
|
||||
webdoc: "windows"
|
||||
webdoc: "wrappers/readline/readline;wrappers/readline/history"
|
||||
webdoc: "wrappers/readline/rltypedefs"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,19 @@
|
|||
<a class="news" href="news.html#new-website-design">
|
||||
<a class="news" href="news.html#Z2014-XX-XX-version-0-9-4-released">
|
||||
<h3>April 20, 2014</h3>
|
||||
<p>Nimrod version 0.9.4 has been released!</p>
|
||||
</a>
|
||||
|
||||
<a class="news" href="news.html#Z2014-02-11-nimrod-featured-in-dr-dobb-s-journal">
|
||||
<h3>Feb 11, 2014</h3>
|
||||
<p>Nimrod featured in Dr. Dobb's Journal</p>
|
||||
</a>
|
||||
|
||||
<a class="news" href="news.html#Z2014-01-15-andreas-rumpf-s-talk-on-nimrod-at-strange-loop-2013-is-now-online">
|
||||
<h3>Jan 15, 2014</h3>
|
||||
<p>Andreas Rumpf's talk on Nimrod at Strange Loop 2013 is now online.</p>
|
||||
</a>
|
||||
|
||||
<a class="news" href="news.html#Z2013-05-20-new-website-design">
|
||||
<h3>May 20, 2013</h3>
|
||||
<p>New website design!</p>
|
||||
</a>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue