Commit Graph

629 Commits

Author SHA1 Message Date
Zahary Karadjov
0d77909b17 fixed a regression in nimrod i 2013-01-27 19:52:24 +02:00
Zahary Karadjov
31134a6bae Disabled mark-and-sweep in the compiler itself
This also adds "cycle roots trimming": a light-weight collection of the cycle
roots performed in CollectZCT for candidates that are recently allocated
and provably dead.
2013-01-22 12:16:08 +02:00
Zahary Karadjov
41cbd1c980 minor bug fixes to make some tests green 2013-01-21 02:03:13 +02:00
Zahary Karadjov
8be307713e fixed a regression: compiling projects not residing in the current directory 2013-01-20 22:09:07 +02:00
Zahary Karadjov
86bf97a730 cleaned up some debugging code 2013-01-20 21:22:07 +02:00
Zahary Karadjov
083d4f4708 fixes the recently discovered GC memory leaks
This revision is intended as comparison point between the old and the new GC
The used GC can be switched in mmdisp and various statistics will be gathered during
execution (these will be removed/disabled in later revisions)
2012-12-20 15:51:21 +02:00
Zahary Karadjov
d0edb1826b adds an option to interleave the generated code with snippets from the original source
Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
2012-12-02 20:36:29 +02:00
Zahary Karadjov
e9e22ccb2a track the "owner" heap object in the ref write barrier
See the papers for reference counting with heap sliding views for details:
2012-12-01 15:37:13 +02:00
Zahary Karadjov
c67520a7c5 temporary debugging code for the memory leak investigation 2012-11-28 01:15:14 +02:00
Zahary Karadjov
a42545ea3e disables the compile-time rope formatting during bootstrapping 2012-11-28 01:15:14 +02:00
Zahary Karadjov
e817d54369 first batch of rope code converted to rfmt
The results so far are inconclusive:
The rope cache tries have been reduced by more than 125K (nearly 20%),
but the bootstrap time seems to be ever slightly increasing (0.01s).
2012-11-28 01:15:13 +02:00
Zahary Karadjov
f644e3079f experimental compile-time rope formatting code 2012-11-28 01:15:13 +02:00
Zahary Karadjov
e6f3f46cd9 store the instantiation cache in the generic symbol 2012-11-28 01:15:13 +02:00
Zahary Karadjov
f9bd8cc985 [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
Zahary Karadjov
36e25a6849 CaaS in-memory caching
removed some redundant filepath params and variables and
switched to canonical paths in most places
2012-11-28 01:15:13 +02:00
Zahary Karadjov
091c1b3075 caas is now drivable through stdin
* added idetools --eval
* streams.readLine recognises and applies the backspace character
2012-11-28 01:15:13 +02:00
Araq
c43bf78000 fixed recently introduced parser bugs 2012-11-26 19:31:55 +01:00
Araq
2591ac0ada 'return' for first class iterators 2012-11-26 08:47:57 +01:00
Araq
dd9ad9e497 next steps for first class iterators 2012-11-26 02:43:32 +01:00
Araq
538699a281 parser support for 'not nil' annotation 2012-11-25 23:40:42 +01:00
Araq
ccd2934e4a first steps for 'not nil' annotation 2012-11-25 11:03:14 +01:00
Araq
019d6e4127 added missing type flags 2012-11-23 19:52:32 +01:00
Araq
f610d2d221 'iterator' as type description 2012-11-22 08:31:40 +01:00
Araq
d0de1fc336 made 'shared' a keyword 2012-11-22 07:53:50 +01:00
Araq
338683a198 bugfixes for thread analysis 2012-11-22 01:36:57 +01:00
Araq
565dc932fa fixes #261 2012-11-21 22:57:15 +01:00
Araq
66ae9bc609 fixes 259 2012-11-21 21:00:54 +01:00
Araq
46f92c31aa added 2 necessary node kinds 2012-11-21 20:55:03 +01:00
Araq
022ff2e86e almost every pragma is allowed in a 'push' pragma 2012-11-20 23:58:45 +01:00
Araq
3d40842088 doc2 improvements; small lexer bugfix: backslashes in comments 2012-11-20 17:46:11 +01:00
Araq
14fc0631d7 fixes #250 2012-11-19 00:16:25 +01:00
Araq
3c0a6a8962 'assert' hides EAssertionFailsure; stdlib makes use of 'tags' 2012-11-18 01:36:20 +01:00
Araq
7f6633a06f added system.finished for first class iterators 2012-11-17 01:25:32 +01:00
Araq
7a2c11d3cf next steps for first class iterators 2012-11-15 22:54:06 +01:00
Araq
1fada12a5f improvements for first class iterators 2012-11-15 08:45:16 +01:00
Araq
814fcb2639 bugfix: stack traces; first class iterators almost working 2012-11-15 01:27:25 +01:00
Araq
7ba0a7e324 Merge branch 'master' of github.com:Araq/Nimrod 2012-11-11 22:05:04 +01:00
Araq
48a62af3b1 implemented 'tags' pragma 2012-11-11 22:03:41 +01:00
Zahary Karadjov
32d0ac01dc AST quasi-quoting for macros 2012-11-11 17:02:13 +02:00
Araq
04f44f763f fixed the bugfix of #247 2012-11-09 01:02:39 +01:00
Araq
d86f421372 fixes #247 2012-11-08 19:42:57 +01:00
Araq
ed28f3c8dc documented 'mixin' declaration 2012-11-08 08:32:08 +01:00
Araq
865d9cc6e6 added system.onRaise to support a condition system 2012-11-05 08:36:44 +01:00
Araq
42c8fd1fe2 bugfixes for exception tracking 2012-11-04 22:40:51 +01:00
Araq
6dd2c2d767 exception tracking should work 2012-11-04 18:09:15 +01:00
Araq
9f38ff0c65 next steps for exception tracking 2012-11-03 15:57:12 +01:00
Araq
224f42bbd7 bugfix: exception tracking (still disabled) 2012-11-01 19:57:48 +01:00
Araq
f35b51c68f doc2 support for nimweb; fixed graphics.withEvents 2012-11-01 08:32:30 +01:00
Araq
42d0911d6a nimbuild should work again 2012-11-01 01:11:48 +01:00
Araq
ce454fb835 exception tracking barely works; but disabled 2012-10-31 02:31:03 +01:00