Uh... destructors?
Michel Fortin
michel.fortin at michelf.com
Wed Feb 23 09:58:12 PST 2011
On 2011-02-23 12:01:15 -0500, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> said:
> Because a pure unsafe function is useless.
I disagree. Suppose you have a function which is conceptually pure but
requires a temporary 100 Mb matrix of doubles. Wouldn't it make sense
to use malloc/free for this temporary storage instead of using the GC
and risking the block never being collected because of a false pointer
somewhere?
Should a function be prevented from being pure just because the
programmer decided to use some tricks the compiler can't guaranty the
safety of? There might be legitimate reasons for those tricks like
optimization, solving GC memory problems, using special hardware for
some calculation, etc.
@safe has an escape route (@trusted) for when you need to perform these
things. If pure makes a function @safe by default, we need to have an
escape route for it too ("@trusted pure" perhaps?). My only fear is
that pure implying @safe needlessly complicates the attribute system.
--
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Digitalmars-d
mailing list