From b89495ef0f6bb60a3296fbaa7c4397dcd269f73d Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 30 Jun 2014 19:39:57 +0200 Subject: [PATCH] corrected backends.txt --- compiler/vmgen.nim | 7 +++++++ doc/advopt.txt | 8 ++++---- doc/backends.txt | 18 +++++++----------- todo.txt | 2 ++ 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/compiler/vmgen.nim b/compiler/vmgen.nim index b3f05c713c..3819bed98a 100644 --- a/compiler/vmgen.nim +++ b/compiler/vmgen.nim @@ -9,6 +9,13 @@ ## This module implements the code generator for the VM. +# Important things to remember: +# - The VM does not distinguish between definitions ('var x = y') and +# assignments ('x = y'). For simple data types that fit into a register +# this doesn't matter. However it matters for strings and other complex +# types that use the 'node' field; the reason is that slots are +# re-used in a register based VM. XXX Come up with an example. + import unsigned, strutils, ast, astalgo, types, msgs, renderer, vmdef, trees, intsets, rodread, magicsys, options, lowerings diff --git a/doc/advopt.txt b/doc/advopt.txt index e3a62c31bc..08465e4572 100644 --- a/doc/advopt.txt +++ b/doc/advopt.txt @@ -1,8 +1,8 @@ Advanced commands: - //compileToC, cc compile project with C code generator, see `Backend language options`_ - //compileToCpp, cpp compile project to C++ code, see `Backend language options`_ - //compileToOC, objc compile project to Objective C code, see `Backend language options`_ - //js compile project to Javascript, see `Backend language options`_ + //compileToC, cc compile project with C code generator + //compileToCpp, cpp compile project to C++ code + //compileToOC, objc compile project to Objective C code + //js compile project to Javascript //rst2html convert a reStructuredText file to HTML //rst2tex convert a reStructuredText file to TeX //jsondoc extract the documentation to a json file diff --git a/doc/backends.txt b/doc/backends.txt index 0ab682c290..26576e7331 100644 --- a/doc/backends.txt +++ b/doc/backends.txt @@ -6,12 +6,7 @@ :Version: |nimrodversion| .. contents:: - - "If we all reacted the same way, we'd be predictable, and there's - always more than one way to view a situation. What's true for the - group is also true for the individual. It's simple: overspecialize, - and you breed in weakness. It's slow death." -- Major Motoko - Kusanagi + "Heresy grows from idleness." -- Unknown. Introduction @@ -160,7 +155,7 @@ Create a ``calculator.nim`` file with the following content: .. code-block:: nimrod {.compile: "logic.c".} - proc addTwoIntegers(a, b: int): int {.importc.} + proc addTwoIntegers(a, b: cint): cint {.importc.} when isMainModule: echo addTwoIntegers(3, 7) @@ -407,7 +402,8 @@ can then attach a GC to this thread via initGC() At the moment this support is still experimental so you need to expose these -functions yourself or submit patches to request a public API. If the Nimrod -code you are calling is short lived, another possible solution is to disable -the garbage collector and enable it after the call from your background -thread. +functions yourself or submit patches to request a public API. + +It is **not** safe to disable the garbage collector and enable it after the +call from your background thread even if the code you are calling is short +lived. diff --git a/todo.txt b/todo.txt index df18ff7e9e..f027be8d53 100644 --- a/todo.txt +++ b/todo.txt @@ -1,6 +1,8 @@ version 0.9.6 ============= +- some table related tests are wrong (memory usage checks) + Concurrency -----------