Article: Increasing the D Compiler Speed by Over 75%
JS
js.mdnq at gmail.com
Mon Jul 29 05:17:21 PDT 2013
On Monday, 29 July 2013 at 11:46:05 UTC, Leandro Motta Barros
wrote:
> This may be off topic, but here I go anyway...
>
> Back in the school days, I joked that the Halting Problem is
> actually
> easy to solve with a Turing Machine. Since a Turing Machine is a
> theoretical device that exists only in our imagination, we can
> just
> suppose that it is infinitely fast. So, we simply have to load
> our
> program in the machine and run it. If the machine doesn't stop
> immediately, it means that it will run forever.
>
> And what does this have to do with DMD?
>
> Well, I kinda have the same feeling when using it. For my
> ~10kloc
> project, I still haven't felt a real need to use a real build
> system.
> I just dmd *.d. If any measurable time passes without any error
> message appearing in the console, I know that my compiled
> successfully
> (and it is the linker that is running now).
>
> BTW, 10kloc is not such a large codebase, but this is with DMD
> 2.063
> anyhow, before those improvents ;-)
>
> LMB
>
>
>
The halting problem isn't about something taking an infinite
amount of time but about the decidability of it.
For example, we can write a program that will take forever but if
it is known to do so and will never halt, then there is nothing
special about it.
For example, for(;;); in an infinite loop and will never
halt(except when you turn the power off ;) but it's halting state
is completely known.
Halting problems are much more complex.
Even something like
for(;;)
{
if (random() == 3) break;
}
is decidable(it will halt after some time).
I would write a program that is undecidable but the margin is too
short! ;)
More information about the Digitalmars-d-announce
mailing list