diff options
author | Araq <rumpf_a@web.de> | 2015-02-10 16:19:32 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-02-10 20:19:48 +0100 |
commit | c2da0e9b3db54597fc35b65a23d67aa3c5714e82 (patch) | |
tree | 767eb5491d11cc3b149531bc4c5e522e61e138b5 | |
parent | eec18896b760059af62a7cb63a151339f44c5f66 (diff) | |
download | Nim-c2da0e9b3db54597fc35b65a23d67aa3c5714e82.tar.gz |
cleanup index generation
-rw-r--r-- | compiler/installer.ini (renamed from compiler/nim.ini) | 0 | ||||
-rw-r--r-- | doc/niminst.txt | 2 | ||||
-rw-r--r-- | koch.nim | 14 | ||||
-rw-r--r-- | tests/objects/trefobjsyntax.nim | 27 | ||||
-rw-r--r-- | tests/objvariant/treassign.nim | 27 | ||||
-rw-r--r-- | todo.txt | 3 | ||||
-rw-r--r-- | tools/nimweb.nim | 2 | ||||
-rw-r--r-- | web/website.ini (renamed from web/nim.ini) | 33 |
8 files changed, 71 insertions, 37 deletions
diff --git a/compiler/nim.ini b/compiler/installer.ini index dcf9aa52f..dcf9aa52f 100644 --- a/compiler/nim.ini +++ b/compiler/installer.ini diff --git a/doc/niminst.txt b/doc/niminst.txt index d743c5187..ca05cc514 100644 --- a/doc/niminst.txt +++ b/doc/niminst.txt @@ -190,6 +190,6 @@ Real world example The installers for the Nim compiler itself are generated by niminst. Have a look at its configuration file: -.. include:: compiler/nim.ini +.. include:: compiler/installer.ini :literal: diff --git a/koch.nim b/koch.nim index 782a55e01..b0b4a79da 100644 --- a/koch.nim +++ b/koch.nim @@ -97,13 +97,13 @@ const compileNimInst = "-d:useLibzipSrc tools/niminst/niminst" proc csource(args: string) = - exec("$4 cc $1 -r $3 --var:version=$2 --var:mingw=none csource compiler/nim.ini $1" % + exec("$4 cc $1 -r $3 --var:version=$2 --var:mingw=none csource compiler/installer.ini $1" % [args, VersionAsString, compileNimInst, findNim()]) proc zip(args: string) = - exec("$3 cc -r $2 --var:version=$1 --var:mingw=none scripts compiler/nim.ini" % + exec("$3 cc -r $2 --var:version=$1 --var:mingw=none scripts compiler/installer.ini" % [VersionAsString, compileNimInst, findNim()]) - exec("$# --var:version=$# --var:mingw=none zip compiler/nim.ini" % + exec("$# --var:version=$# --var:mingw=none zip compiler/installer.ini" % ["tools/niminst/niminst".exe, VersionAsString]) proc buildTool(toolname, args: string) = @@ -121,20 +121,20 @@ proc nsis(args: string) = " nsis compiler/nim") % [VersionAsString, $(sizeof(pointer)*8)]) proc install(args: string) = - exec("$# cc -r $# --var:version=$# --var:mingw=none scripts compiler/nim.ini" % + exec("$# cc -r $# --var:version=$# --var:mingw=none scripts compiler/installer.ini" % [findNim(), compileNimInst, VersionAsString]) exec("sh ./install.sh $#" % args) proc web(args: string) = - exec("$# cc -r tools/nimweb.nim $# web/nim --putenv:nimversion=$#" % + exec("$# cc -r tools/nimweb.nim $# web/website.ini --putenv:nimversion=$#" % [findNim(), args, VersionAsString]) proc website(args: string) = - exec("$# cc -r tools/nimweb.nim $# --website web/nim --putenv:nimversion=$#" % + exec("$# cc -r tools/nimweb.nim $# --website web/website.ini --putenv:nimversion=$#" % [findNim(), args, VersionAsString]) proc pdf(args="") = - exec("$# cc -r tools/nimweb.nim $# --pdf web/nim --putenv:nimversion=$#" % + exec("$# cc -r tools/nimweb.nim $# --pdf web/website.ini --putenv:nimversion=$#" % [findNim(), args, VersionAsString]) # -------------- boot --------------------------------------------------------- diff --git a/tests/objects/trefobjsyntax.nim b/tests/objects/trefobjsyntax.nim new file mode 100644 index 000000000..9b48de718 --- /dev/null +++ b/tests/objects/trefobjsyntax.nim @@ -0,0 +1,27 @@ +discard """ + output: '''wohoo +baz''' +""" + +# Test to ensure the popular 'ref T' syntax works everywhere + +type + Foo = object + a, b: int + s: string + + FooBar = object of RootObj + n, m: string + Baz = object of FooBar + +proc invoke(a: ref Baz) = + echo "baz" + +# check object construction: +let x = (ref Foo)(a: 0, b: 45, s: "wohoo") +echo x.s + +var y: ref FooBar = (ref Baz)(n: "n", m: "m") + +invoke((ref Baz)(y)) + diff --git a/tests/objvariant/treassign.nim b/tests/objvariant/treassign.nim new file mode 100644 index 000000000..2938b30a3 --- /dev/null +++ b/tests/objvariant/treassign.nim @@ -0,0 +1,27 @@ +discard """ + output: "SUCCESS" +""" + +type + BasicNumber = object of RootObj + value: float32 + RefChild* = ref object + curr*: TokenObject + Token* {.pure.} = enum + foo, + bar, + TokenObject = object + case kind*: Token + of Token.foo: + foo*: string + of Token.bar: + bar*: BasicNumber + + +var t = RefChild() + +t.curr = TokenObject(kind: Token.bar, bar: BasicNumber(value: 12.34)) + +t.curr = TokenObject(kind: Token.foo, foo: "foo") + +echo "SUCCESS" diff --git a/todo.txt b/todo.txt index 1c10fef8a..706954f65 100644 --- a/todo.txt +++ b/todo.txt @@ -4,8 +4,6 @@ version 0.10.4 - make 'nil' work for 'add' and 'len' - improve GC-unsafety warnings - get rid of 'mget'; aka priority of 'var' needs to be 'var{lvalue}' -- improve documentation (theindex!) -- ensure (ref T)(a, b) works as a type conversion and type constructor version 1.0 @@ -95,4 +93,3 @@ CGEN ==== - codegen should use "NIM_CAST" macro and respect aliasing rules for GCC - ``restrict`` pragma + backend support -- 'const' objects including case objects diff --git a/tools/nimweb.nim b/tools/nimweb.nim index e74daf98f..8213cf418 100644 --- a/tools/nimweb.nim +++ b/tools/nimweb.nim @@ -319,7 +319,7 @@ proc buildAddDoc(c: var TConfigData, destPath: string) = # build additional documentation (without the index): var commands = newSeq[string](c.webdoc.len) for i, doc in pairs(c.webdoc): - commands[i] = "nim doc $# --docSeeSrcUrl:$#/$#/$# -o:$# $#" % + commands[i] = "nim doc2 $# --docSeeSrcUrl:$#/$#/$# -o:$# $#" % [c.nimArgs, c.gitRepo, c.gitCommit, doc.pathPart, destPath / changeFileExt(splitFile(doc).name, "html"), doc] mexec(commands, c.numProcessors) diff --git a/web/nim.ini b/web/website.ini index 0190416b2..c0a648c56 100644 --- a/web/nim.ini +++ b/web/website.ini @@ -27,19 +27,6 @@ news: news [Ticker] file: ticker.txt -[Quotations] -# Page: quote - Person -# Bad things will happen if you use multiple dashes here. -index: """Is it so bad, then, to be misunderstood? Pythagoras was misunderstood, -and Socrates, and Jesus, and Luther, and Copernicus, and Galileo, and Newton, -and every pure and wise spirit that ever took flesh. To be great is to be -misunderstood. - Ralph Waldo Emerson""" -documentation: """Incorrect documentation is often worse than no documentation. -- Bertrand Meyer""" -download: """There are two major products that come out of Berkeley: LSD and -UNIX. We don't believe this to be a coincidence. - Jeremy S. Anderson.""" -learn: """Repetition renders the ridiculous reasonable. - Norman Wildberger""" - [Documentation] doc: "endb;intern;apis;lib;manual.txt;tut1;tut2;nimc;overview;filters" doc: "tools;niminst;nimgrep;gc;estp;idetools;docgen;koch;backends.txt" @@ -61,7 +48,7 @@ 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" srcdoc2: "pure/json;pure/base64;pure/scgi;pure/redis;impure/graphics" -srcdoc2: "impure/rdstdin;wrappers/sphinx" +srcdoc2: "impure/rdstdin" srcdoc2: "pure/collections/tables;pure/collections/sets;pure/collections/lists" srcdoc2: "pure/collections/intsets;pure/collections/queues;pure/encodings" srcdoc2: "pure/events;pure/collections/sequtils;pure/cookies" @@ -71,19 +58,15 @@ srcdoc2: "pure/nimprof;pure/unittest;packages/docutils/highlite" srcdoc2: "packages/docutils/rst;packages/docutils/rstast" srcdoc2: "packages/docutils/rstgen;pure/logging;pure/asyncdispatch;pure/asyncnet" srcdoc2: "pure/rawsockets;pure/asynchttpserver;pure/net;pure/selectors;pure/future" -srcdoc2: "wrappers/expat;wrappers/readline/history" -srcdoc2: "wrappers/libsvm.nim;wrappers/libuv" -srcdoc2: "wrappers/zip/zlib;wrappers/zip/libzip" -srcdoc2: "pure/md5;wrappers/mysql;wrappers/iup" -srcdoc2: "posix/posix;wrappers/odbcsql" -srcdoc2: "wrappers/tre;wrappers/openssl;wrappers/pcre" -srcdoc2: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc" -srcdoc2: "wrappers/readline/readline;wrappers/readline/rltypedefs" -srcdoc2: "wrappers/joyent_http_parser" +srcdoc2: "pure/md5" +srcdoc2: "posix/posix" srcdoc2: "pure/fenv" -webdoc: "pure/md5;wrappers/mysql;wrappers/iup" -webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc" +; Note: everything under 'webdoc' doesn't get listed in the index, so wrappers +; should live here + +webdoc: "wrappers/mysql;wrappers/iup;wrappers/sphinx" +webdoc: "wrappers/sqlite3;wrappers/postgres;wrappers/tinyc;wrappers/odbcsql" webdoc: "wrappers/expat;wrappers/pcre" webdoc: "wrappers/tre;wrappers/openssl" webdoc: "wrappers/libuv;wrappers/joyent_http_parser" |