resolved conflict

This commit is contained in:
Andreas Rumpf 2014-04-10 01:47:20 +02:00
commit dcfc7a8896
871 changed files with 33223 additions and 14101 deletions

View file

@ -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; }

View file

@ -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
``````

View file

@ -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!
==============================

View file

@ -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"

View file

@ -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>