From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Everything You Know Is Wrong
Date: Tue, 29 Dec 2015 16:05:09 -0600
Date: 2015-12-29T16:05:09-06:00 [thread overview]
Message-ID: <n5v02l$6lj$1@loke.gir.dk> (raw)
In-Reply-To: n5uh6q$chh$1@dont-email.me
"G.B." <bauhaus@futureapps.invalid> wrote in message
news:n5uh6q$chh$1@dont-email.me...
> On 29.12.15 18:36, Dmitry A. Kazakov wrote:
...
>> No, because initialization of T may have side effects.
>
> I assume you meant Yes, impossible. But,
> if F1 and F2 are from a Pure package, is the compiler allowed to
> ignore side effects because the programmer specified Pure? I think
> that follows.
Ada does allow compilers to ignore side-effects for Pure functions, but only
for successive calls to the same function with the same parameters. Which is
not enough for your example.
And you're right, it *should* follow, but Pure is broken. For parallel
execution, we need something stronger - and it's in the hopper today.
(Algebraic optimizations also need something stronger.) [Pure, for instance,
allows dereferencing of pointers, which could change by some other path. And
making it apply to an entire package screws up organization, since most
packages have a bunch of pure functions and many other, non-pure
operations.] One of the reasons Ada 2012 has expression functions is that if
the compiler can see the entire function definition, it can then do these
sorts of optimizations. (But that's a weak solution for many reasons.)
Randy.
next prev parent reply other threads:[~2015-12-29 22:05 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-27 0:37 Everything You Know Is Wrong Jeffrey R. Carter
2015-12-27 7:55 ` J-P. Rosen
2015-12-27 17:37 ` Jeffrey R. Carter
2015-12-27 8:46 ` Dmitry A. Kazakov
2015-12-27 17:36 ` Jeffrey R. Carter
2016-01-04 14:44 ` Alejandro R. Mosteo
2015-12-28 9:57 ` Georg Bauhaus
2015-12-28 11:19 ` Dmitry A. Kazakov
2015-12-28 16:27 ` Nicholas Collin Paul de Gloucester
2015-12-28 17:30 ` Dmitry A. Kazakov
2015-12-28 18:50 ` Nicholas Collin Paul de Gloucester
2015-12-28 20:40 ` Dmitry A. Kazakov
2015-12-29 11:42 ` G.B.
2015-12-29 12:36 ` Dmitry A. Kazakov
2015-12-29 13:50 ` G.B.
2015-12-29 14:06 ` J-P. Rosen
2015-12-29 14:16 ` Dmitry A. Kazakov
2015-12-29 16:31 ` Dennis Lee Bieber
2015-12-29 17:02 ` G.B.
2015-12-29 16:57 ` G.B.
2015-12-29 17:36 ` Dmitry A. Kazakov
2015-12-29 17:53 ` G.B.
2015-12-29 18:09 ` G.B.
2015-12-29 22:05 ` Randy Brukardt [this message]
2016-01-04 14:51 ` Alejandro R. Mosteo
2015-12-29 21:58 ` Randy Brukardt
2015-12-28 17:19 ` Nicholas Collin Paul de Gloucester
2015-12-29 23:37 ` darkestkhan
2016-01-05 13:52 ` brbarkstrom
2016-01-10 14:46 ` Michael Erdmann
2016-02-29 12:14 ` Jacob Sparre Andersen
2016-03-02 14:11 ` vincent.diemunsch
2016-03-02 14:23 ` J-P. Rosen
2016-03-02 15:44 ` Bob Brown
2016-03-02 16:30 ` J-P. Rosen
2016-03-02 16:36 ` Bob Brown
2016-03-02 16:52 ` Bob Brown
2016-03-02 14:32 ` Dmitry A. Kazakov
2016-03-02 15:31 ` vincent.diemunsch
2016-02-29 12:27 ` Jacob Sparre Andersen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox