Commit Graph

372 Commits

Author SHA1 Message Date
Zahary Karadjov
4a444bf6db *Pimped up* the test runner with colorful output
Added: terminal.styledEcho macro
2011-10-07 17:10:04 +03:00
Zahary Karadjov
e3deb5b502 Cleaned up the circular dependecies and remaining issues
Changed: The []= operator for strings and sequences is now capable of splicing
2011-10-07 17:10:04 +03:00
Zahary Karadjov
22546c44d1 Basic unit testing facilities (suites, fixtures, cases)
Added: PNimrodNode.lineinfo for better error messages from macros
Added: seq.splice

For easier use from templates and macros, except stament now supports
the list of exception types to be supplied in nkBraket node (array literal).
2011-10-07 17:07:18 +03:00
Araq
42516c0086 code generator supports constant sequences; more consistent compile time evaluation 2011-10-07 09:02:08 +02:00
Araq
7c34357856 bugfix: $ escaping in interpolatedFragments 2011-09-26 07:45:33 +02:00
Araq
14968fba46 bugfix: internal error in evalFieldAccess; parseutils.interpolatedFragments optimized; tstringinterp.nim now works 2011-09-26 00:24:06 +02:00
Araq
0f37d0e1f2 sockets.recv optimizations; stdlib now supports taint mode 2011-09-24 20:22:53 +02:00
Araq
485c371942 renamed optional to discardable 2011-09-24 19:18:08 +02:00
Araq
92543a3037 more fixes to get rid of tyPureObject 2011-09-24 11:50:46 +02:00
Araq
98e5beb936 got rid of akPureObject 2011-09-24 10:57:35 +02:00
Araq
bd2d146c77 got rid of tyPureObject; broke bootstrapping; use generated C code 2011-09-24 09:35:00 +02:00
Araq
3824b6ea5f Merge branch 'master' of git@github.com:Araq/Nimrod 2011-09-24 00:46:54 +02:00
Araq
6023e994fb beginning of a taint mode; type system enhancements 2011-09-24 00:46:41 +02:00
dom96
6deda5a973 Fixed string concatenation and other bugs in the JS backend. Fixed a small bug in the IRC module. 2011-09-23 21:43:24 +01:00
Araq
2359b8b107 fixed some newly introduced bugs 2011-09-21 00:54:13 +02:00
Zahary Karadjov
9acfc43119 using statement (ala C#) implemented as macro (added as test).
simplified the usage of the interpolatedFragments iterator.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
dbcca9b3b9 Moved the parseAST magics to evals.nim
Added string interpolation helper routines in parserutils

Added a proof-of-concept string interpolation user-land macros (currently, only as a test case):
  the interpolated expression could either be transformed to
  concat("literal string ", $(interpolated), " end") or
  "literal string $1 end" % [$(interpolated)]

Added a very initial definition of Optional[T] generic type

A new overload of ParseIdent was added in hope to get around the fact that the 
old one doesn't work correctly in macros, but the problem persists.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
9b95ca407d Some very small steps towards an uuid generation module.
I did some basic research on cross-platform UUID generation and didn't want to lose any information, so this code only represents what I learned (uuidMacTime should work tho).
2011-09-20 14:13:45 +03:00
Zahary Karadjov
91351e5996 Initial implementation of the parseExpr, parseStmt, getAst macro routines:
proc parseExpr*(s: string) : expr {.magic: "ParseExprToAst".}
  ## Compiles the passed string to its AST representation
  ## Expects a single expression

proc parseStmt*(s: string) : stmt {.magic: "ParseStmtToAst".}
  ## Compiles the passed string to its AST representation
  ## Expects one or more statements

proc getAst*(macroOrTemplate: expr): expr {.magic: "ExpandMacroToAst".}
  ## Obtains the AST nodes returned from a macro or template invocation
  ## example:
  ## macro FooMacro() = 
  ##   var ast = getAst(BarTemplate())

Handling of the node.toYaml magic moved to the evaluation engine.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
d541815e4b Added AST introspection routines as a part of the standard library 2011-09-20 14:13:45 +03:00
Araq
daa2c8732d Merge branch 'master' of github.com:Araq/Nimrod 2011-09-20 00:57:06 +02:00
Araq
fd62116f6e bugfixes for generics; new threads implementation still broken 2011-09-20 00:56:48 +02:00
Keita Haga
8fa8ab5960 lib/wrappers/sphinx.nim: fix typo, use 'shpinx' instead of 'sphinx' 2011-09-09 19:03:33 +09:00
dom96
4896f63129 Some improvements relating to the IRC module. 2011-09-04 20:28:32 +01:00
dom96
fd01772634 Added IRC module. 2011-09-04 19:47:46 +01:00
Araq
dc3ace4f37 Merge branch 'master' of git@github.com:Araq/Nimrod 2011-08-29 01:15:42 +02:00
Araq
b9d0806e3b added actors.nim file; compiler not up for this task 2011-08-29 01:15:29 +02:00
Araq
4839800c22 new actors implementation for nimrod; compiler's generics still not up for the task though 2011-08-29 01:14:26 +02:00
Araq
5112677904 attempt to fix tester.nim file handle leak 2011-08-29 01:13:38 +02:00
Keita Haga
15b1bda82b lib/pure/strutils.nim: fix doc comment for splitLines 2011-08-25 21:04:55 +09:00
Araq
82af6387d9 bugfix: fixed built-in 'reset' 2011-08-20 15:36:26 +02:00
Araq
dd190a5c01 more occurences of 'pure' proc pragma fixed 2011-08-20 01:01:46 +02:00
Araq
d560e84fcc locks now in their own core module 2011-08-20 00:24:02 +02:00
Araq
5cba831c88 'pure' is now 'noStackFrame' for procs 2011-08-19 19:11:58 +02:00
Araq
c7b130b4e2 implemented --nimcache config option; big clean up of magic words 2011-08-19 01:46:24 +02:00
Araq
dd9a591f7a Merge pull request #51 from keitahaga/fix-typo
Fix typo in cgi module; many thanks to keitahaga
2011-08-16 11:50:34 -07:00
Keita Haga
9da77eb5cb lib/pure/cgi.nim: fix typo 'passwort' instead of 'password' 2011-08-17 02:08:49 +09:00
Araq
b0742c5b27 finally got rid of nkPassAsOpenArray 2011-08-16 08:56:53 +02:00
Araq
f3007cbd72 Merge branch 'master' of git@github.com:Araq/Nimrod 2011-08-15 19:40:12 +02:00
Araq
2183bf77a6 added xmltree.innerText; fixes #49 2011-08-15 19:40:00 +02:00
Keita Haga
b40d55b68e lib/pure/terminal.nim: fixed bug where the styleReverse doesn't work on Unix-like systems 2011-08-16 01:48:56 +09:00
Araq
c6038dda04 bugfix: running for threads 2011-08-12 01:24:47 +02:00
Araq
7ad5cab17e added system.running for threads 2011-08-11 21:22:23 +02:00
Araq
72e7a98543 added system.slurp for easy embedding of resources 2011-08-10 00:43:58 +02:00
Araq
7000cf51b7 modifyable results for generics; teventemitter works 2011-08-09 01:40:12 +02:00
Araq
cb21fd4f8f json code generation works again 2011-08-07 23:54:03 +02:00
Araq
5131b3cea4 support for C++ code generation; importcpp and importobjc pragmas 2011-08-07 21:02:09 +02:00
dom96
3e660efeb4 Fixed osproc.terminate for posix and improved some other osproc posix functions. 2011-08-03 22:38:21 +01:00
Araq
6a8a409f1b preparation for new 'is' operator; breaks bootstrapping again, sorry (use generated C code) 2011-07-31 00:21:32 +02:00
Araq
68d7c61c24 fixed typo in events.nim; last commit fixed #39 2011-07-28 01:40:53 +02:00