Merge branch 'master' of github.com:Araq/Nimrod into upstream

This commit is contained in:
Zahary Karadjov 2012-04-10 22:39:00 +03:00
commit c1ad05c4c5
32 changed files with 12023 additions and 459 deletions

View file

@ -9,10 +9,10 @@ Please choose your platform:
The source-based installation has been tested on these systems:
* Linux: i386, AMD64, PowerPC
* BSD: AMD64
* Mac OS X: i386, AMD64
Other UNIX-based operating systems may work. An older version was tested on
FreeBSD (i386).
Other UNIX-based operating systems may work.
.. include:: ../install.txt

View file

@ -18,13 +18,11 @@ Welcome to Nimrod
*Nimrod looks like this:*
.. code-block:: nimrod
# Filter key=value pairs
import re
for x in lines("myfile.txt"):
if x =~ re"(\w+)=(.*)":
echo "Key: ", matches[0],
" Value: ", matches[1]
import strutils
echo "List of ints (separate by whitespace): "
echo stdin.readLine.split.each(parseInt).max,
" is the maximum"
**Nimrod** is a new statically typed, imperative
programming language, that supports procedural, object oriented, functional

View file

@ -12,6 +12,7 @@ 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.
Library Additions
@ -24,6 +25,16 @@ Library Additions
compile time as if was a macro.
- 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``.
Changes affecting backwards compatibility
@ -33,7 +44,7 @@ Changes affecting backwards compatibility
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`` is now a keyword.
- ``static`` and ``do`` 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.
@ -45,6 +56,8 @@ 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.
@ -56,6 +69,7 @@ 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.

View file

@ -33,7 +33,7 @@ srcdoc: "pure/parseopt;pure/hashes;pure/strtabs;pure/lexbase"
srcdoc: "pure/parsecfg;pure/parsexml;pure/parsecsv;pure/parsesql"
srcdoc: "pure/streams;pure/terminal;pure/cgi;impure/web;pure/unicode"
srcdoc: "impure/zipfiles;pure/htmlgen;pure/parseutils;pure/browsers"
srcdoc: "impure/db_postgres;impure/db_mysql;impure/db_sqlite"
srcdoc: "impure/db_postgres;impure/db_mysql;impure/db_sqlite;impure/db_mongo"
srcdoc: "pure/httpserver;pure/httpclient;pure/smtp;impure/ssl"
srcdoc: "pure/ropes;pure/unidecode/unidecode;pure/xmldom;pure/xmldomparser"
srcdoc: "pure/xmlparser;pure/htmlparser;pure/xmltree;pure/colors"
@ -43,7 +43,7 @@ srcdoc: "pure/collections/tables;pure/collections/sets;pure/collections/lists"
srcdoc: "pure/collections/intsets;pure/collections/queues;pure/encodings"
srcdoc: "pure/events;pure/collections/sequtils;pure/irc;ecmas/dom"
srcdoc: "pure/ftpclient;pure/memfiles;pure/subexes;pure/collections/critbits"
srcdoc: "pure/asyncio;pure/actors;core/locks"
srcdoc: "pure/asyncio;pure/actors;core/locks;pure/oids;pure/endians"
webdoc: "wrappers/libcurl;pure/md5;wrappers/mysql;wrappers/iup"
webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc"
@ -55,6 +55,7 @@ webdoc: "posix/posix;wrappers/odbcsql;impure/dialogs"
webdoc: "wrappers/zip/zlib;wrappers/zip/libzip"
webdoc: "wrappers/cairo"
webdoc: "wrappers/gtk"
webdoc: "wrappers/libsvm.nim;wrappers/mongo.nim"
webdoc: "windows"
webdoc: "wrappers/x11;wrappers/opengl;wrappers/sdl;wrappers/lua"
webdoc: "wrappers/readline/readline;wrappers/readline/history"