GSOC Linker project
Alex Rønne Petersen
xtzgzorex at gmail.com
Mon May 7 04:41:43 PDT 2012
On 07-05-2012 13:21, Steven Schveighoffer wrote:
> On Fri, 04 May 2012 20:30:05 -0400, Alex Rønne Petersen
> <xtzgzorex at gmail.com> wrote:
>
>> Purity inference won't happen either way. Purity is part of your API
>> and also meant to help you reason about your code. If the compiler
>> just infers purity in a function and you later change the
>> implementation so it's no longer pure, you break your users' code.
>> Also, purity would no longer help you reason about your code if it's
>> not explicit.
>
> It can be pure for the purposes of optimization without affecting code
> whatsoever. Inferred purity can be marked separately from explicit
> purity, and explicitly pure functions would not be allowed to call
> implicitly pure functions.
>
> -Steve
But that kind of inferred purity is something a compiler back end cares
about, not something the language should have to care about at all. In
practice, most compilers *do* analyze all functions for possible
side-effects and use that information where applicable.
(Note that what you described thus is the current situation, just that
inferred purity is not part of the language (no reason it has to be).)
--
- Alex
More information about the Digitalmars-d
mailing list