Commit Graph

2608 Commits

Author SHA1 Message Date
Araq
cd83cc81aa code gen can generate code to keep alive stack roots 2011-12-22 15:04:00 +01:00
Araq
e8376067ef C code gen: generate even better code for the GC 2011-12-12 22:46:21 +01:00
Araq
4487b614e1 c2nim compiles again 2011-12-12 19:11:31 +01:00
Araq
3c53c4c2b0 compiler takes advantage of 'new(Obj|New)RC1 2011-12-12 08:37:35 +01:00
Araq
98ed7fbf16 Merge branch 'master' of github.com:Araq/Nimrod 2011-12-12 01:40:47 +01:00
Araq
94358e03e9 compiler generates volatile temps to keep C compiler from optimizing away stack roots 2011-12-12 01:40:23 +01:00
Zahary Karadjov
caa4766a33 the current directory is no longer taken into account when resolving module paths 2011-12-11 12:41:06 +02:00
Zahary Karadjov
67bc23bb60 Merge branch 'master' of github.com:Araq/Nimrod into upstream 2011-12-11 11:26:50 +02:00
Zahary Karadjov
d171a8b36f path canonicalization for imported modules, relative paths written in rod files 2011-12-11 11:24:52 +02:00
Araq
af792da0bb codegen uses alias analysis to generate better code 2011-12-10 01:06:32 +01:00
Zahary Karadjov
de4b894541 proc arguments are in scope when the result type definition is being processed
This is intended for type deduction depending on the arguments
proc foo(x: type): type(expr(x))
2011-12-09 16:05:51 +02:00
Zahary Karadjov
e4e74034c2 path canonicalization and proper project relative paths 2011-12-09 04:40:59 +02:00
Araq
2962ca7890 alias analysis as required for the code gen and the HLO 2011-12-08 23:21:08 +01:00
Zahary Karadjov
2f95e4d829 Speed-up symbolFiles:on operations on windows 2011-12-07 00:45:52 +02:00
Araq
c6213c9774 fixes #71; sorry about the polling implementation 2011-12-05 21:43:45 +01:00
Araq
70cf34cbdc 'assert' is now implemented without compiler magic 2011-12-04 20:14:50 +01:00
Araq
728328eec2 threads compile again; attempt to fix serious code gen issue (except + return) 2011-12-03 19:22:01 +01:00
Araq
c8d270268a bugfixes for .rod files and visual C++ 2011-12-03 17:21:35 +01:00
Araq
ab5621a62b bugfix: don't process arguments that are to be passed to the produced exe 2011-11-30 19:51:51 +01:00
Araq
fc9fdc2b9d cleaned up configuration file handling and documented the new behaviour 2011-11-30 00:53:41 +01:00
Araq
7fcbdc6d42 implemented 'let' statement 2011-11-29 17:27:48 +01:00
Araq
31a994cc10 thoughts about implicit includes and imports 2011-11-29 08:49:17 +01:00
Araq
e261a88d07 further steps to get rid of deprecated endOfFile and readLine 2011-11-29 01:24:58 +01:00
Araq
a489161b16 compiler uses new 'readLine' 2011-11-27 19:01:55 +01:00
Araq
7832af187a argument passing with --run option works again 2011-11-27 17:34:45 +01:00
Araq
020a10927a fixes #31 2011-11-27 16:32:05 +01:00
Araq
840979b45c Merge branch 'master' of github.com:Araq/Nimrod 2011-11-26 10:49:48 +01:00
Araq
02e8e9c3ea fixed bug that kept tls emulation from working 2011-11-25 17:26:11 +01:00
Zahary Karadjov
c617479c68 New algorithm for locating and loading nimrod config files.
Some new options added to the compiler (see news.txt for details)
2011-11-25 17:29:55 +02:00
Araq
2de98d9e05 new pragma: 'noinit' 2011-11-25 15:33:58 +01:00
Araq
093af9b9eb 'export' is now a keyword 2011-11-24 23:34:37 +01:00
Araq
703430787d C codegen: generate nimKeepAlive calls at strategic places to keep the C compiler from optimizing away all stack roots 2011-11-24 23:28:28 +01:00
Araq
fedc69f61a unused constants are optimized away 2011-11-22 18:48:00 +01:00
Araq
04e5c6718e proper error message when attempting to eval C'imported procs 2011-11-20 17:17:47 +01:00
Araq
72651de710 bugfix: 'when' sections in generic objects now work, so TThread[void] compiles 2011-11-20 16:13:03 +01:00
Araq
62aa8bed3b tester: threading tests added 2011-11-19 02:05:16 +01:00
Zahary Karadjov
12bac28d23 macros and templates can be expanded anywhere where a type is expected.
This allows for various type selection algorithms to be implemented.
See tests / accept / compile / ttypeselectors.nim for examples.
2011-11-18 02:11:15 +02:00
Araq
61792dc7d6 cgen: no type canon for integral types; osproc use posix_spawn instead of fork&exec 2011-11-18 00:29:56 +01:00
Araq
7819b84475 bugfixes: objects still invalid for constants; fixed a typo concerning 'high' in eval context 2011-11-15 23:03:14 +01:00
Araq
4c5cf88c16 compilation cache: improvement: switching from codegen to 'check only' does not trigger a recompilation 2011-11-15 00:11:49 +01:00
Araq
bec06a0649 bugfix: s[1..n] = @[] produced wrong C code 2011-11-14 08:33:44 +01:00
Araq
3b6d831549 Merge branch 'master' of github.com:Araq/Nimrod 2011-11-12 01:21:10 +01:00
Araq
8fc15ca0d5 added another test case 2011-11-12 01:02:06 +01:00
Zahary Karadjov
489340658e Added system.program_results for controlling the exit code of the program under normal circumstances
Implemented operators like +=, -=, etc for ordinals, floats and string

Programs using the UnitTest module will now report the number of failed tests as the exit code of test runs (0 for successful run)
2011-11-10 04:10:03 +02:00
Araq
68be801f63 operator precedence changed: assignment like operators are supported; escaping of operators with \ is supported 2011-11-09 01:42:05 +01:00
Araq
089e287c6e compilation cache: fixed recently introduced bug (lazy loading of bodies) 2011-11-06 01:11:38 +01:00
Araq
dc08a033d9 memfiles now uses winlean; changed the interface to raise EOS 2011-11-05 12:16:49 +01:00
Zahary Karadjov
b72480ec88 new kind of AST printer that prints indented trees
AST-to-string conversion procs renamed to repr, treeRepr and lispRepr for better consistency
new dumpTree and dumpLisp procs for quick AST inspection of arbitrary nimrod blocks
2011-11-04 04:56:40 +02:00
Araq
d819350145 bugfix: new GCC version requires -ldl to come after object files 2011-11-03 20:17:46 +01:00
Araq
64e74cf484 bugfix: code gen for constant sequences 2011-11-02 19:47:33 +01:00