Compiler scalability. Question inspired by OOM errors seen by Crystal language
Nicholas Wilson via Digitalmars-d
digitalmars-d at puremagic.com
Tue Aug 29 19:53:42 PDT 2017
On Wednesday, 30 August 2017 at 01:30:30 UTC, Pradeep Gowda wrote:
> I'm referring to this thread about Crystal --
> https://lobste.rs/s/dyitr0/its_fun_program_crystal_is_it_scalable
>
>> Crystal is strongly typed, but overwhelmingly uses type
>> inference, rather than explicit types. Because Crystal aims to
>> be spiritually—and frequently literally—compatible with Ruby,
>> that’s a problem: to accomplish that, Crystal relies on
>> sometimes-nullable types with implicit structure and implicit
>> unions, such that, frequently, the only way to even begin type
>> inference is to load the entire program’s AST into RAM all at
>> once and then start your massive type inference pass. What
>> you’re seeing in this thread is how a “simple” fix to a YAML
>> parser error reporting hit that problem, causing Crystal to
>> use a critical amount too much RAM and OOM.
>
> How does D compare in this regard, especially in cases where
> `auto` storage class specifiers are used liberally throughout
> the code base?
Auto is not the problem you can easily figure out the return type
of function that return a primitive type, and aggregates have to
be specified.
The problem with D is the memory hogging nature of CTFE and the
sheer number of templates that get instantiated when compiling
big codebases. Symbol length is also a problem but that eats you
dose space not your RAM.
More information about the Digitalmars-d
mailing list