On Friday, 3 May 2013 at 17:27:39 UTC, Andrei Alexandrescu wrote:
On 5/2/13 9:10 PM, d coder wrote:
And another one. I am working on an embedded DSL on top of D
Language. I
am using compile time parser ctpg
https://github.com/youkei/ctpg for
some syntax parsing. It works great, expect for memory
footprint of the
compiler which makes it impractical to parse any 1000+ lines
of code at
compile time.
So the question is -- What are the plans to optimize the
compiler from
memory perspective?
This is an important issue. I'll touch on it only at a higher
level when discussing quality of implementation.
Andrei
I have significantly reduced CG performance issues (up to 3x
faster) with strategically placed disabling and enabling of the
GC, so it may be that the problem can be solved using carefully
placed GC.disable and GC.enable calls at points in the
compilation process. This is not the best solution, but it could
be a quick temporary fix until the GC problem is dealt with
directly.
A more generalized solution is to adjust the GC to allow fine
tuning of its behaviour. For example, allow the programmer to
specify the conditions required for the GC to kick in, and also
specify the maximum time it can run until it must stop.
--rt