From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: subprogram must not be deeper than access type
Date: Mon, 26 Sep 2011 21:30:35 +0200
Date: 2011-09-26T21:30:35+02:00 [thread overview]
Message-ID: <1uqthqxzri6j3.i18ifhbwmzdc.dlg@40tude.net> (raw)
In-Reply-To: wccehz3jn48.fsf@shell01.TheWorld.com
On Mon, 26 Sep 2011 12:15:51 -0400, Robert A Duff wrote:
> The flaw I was referring to was that Ada doesn't have that equivalence.
> Making an access type anonymous invokes all sorts of magical semantics,
> which is confusing. If such magical semantics are desirable, they
> should be invoked by some other syntax. (And by the way, I don't think
> run-time accessibility checks are desirable. That's another design flaw.)
Yes, it would be much simpler to have subprogram types for downward
closures.
> Another flaw is that some types can be anonymous (task, protected,
> array, access) and some can't. It should be all or nothing.
I'd like to have anonymous types in record components. It is annoying not
to be able to write:
type Foo is record
Nested : record
end record;
List : array (...) of ...;
end record;
Even C can this!
> And it's just weird that if you say "X, Y : array...;"
> "X := Y;" and "if X = Y ..." are illegal. Textual replacement is
> a wrong way to define semantics.
But structural type matching is more wrong than that.
>> I think that the problem is that access types to automatically collected
>> objects and access types to the objects allocated and freed dynamically
>> should be different, if the former could not be eliminated at all.
>
> Not sure what you mean by "automatically collected". Local to a
> procedure? Or are you talking about garbage collection? What
> about library-package-body variables? What about components
> of variables?
E.g. things on the stack.
> Ada 83 required all access values to point to heap-allocated objects.
> Ada 95 added "access all", which allows pointing at any aliased object.
> That's sort of similar to the distinction you're making, I think.
Yes. There should be:
1. Strictly heap access types, manually allocated/deallocated, no
accessibility checks, no calls to Finalize outside Unchecked_Deallocation.
I would even provide a built-in operation Free for them.
2. References to aliased objects, shaped more like "X renames Y", fully
statically checked.
3. "Access all" for emergency cases.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2011-09-26 19:30 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-25 9:02 subprogram must not be deeper than access type Natasha Kerensikova
2011-09-25 14:04 ` Oliver Kleinke
2011-09-26 9:35 ` Natasha Kerensikova
2011-10-03 23:30 ` Yannick Duchêne (Hibou57)
2011-10-03 23:39 ` Adam Beneschan
2011-10-04 0:52 ` Yannick Duchêne (Hibou57)
2011-10-04 1:48 ` Yannick Duchêne (Hibou57)
2011-09-25 14:23 ` Robert A Duff
2011-09-25 15:03 ` georg bauhaus
2011-09-26 9:45 ` Natasha Kerensikova
2011-09-26 13:43 ` Robert A Duff
2011-09-26 14:20 ` Dmitry A. Kazakov
2011-09-26 16:15 ` Robert A Duff
2011-09-26 19:30 ` Dmitry A. Kazakov [this message]
2011-09-27 0:41 ` Robert A Duff
2011-09-27 8:58 ` Dmitry A. Kazakov
2011-10-04 4:19 ` Yannick Duchêne (Hibou57)
2011-09-27 5:50 ` J-P. Rosen
2011-09-27 7:52 ` Dmitry A. Kazakov
2011-10-04 4:26 ` Yannick Duchêne (Hibou57)
2011-10-04 7:58 ` Dmitry A. Kazakov
2011-10-04 15:10 ` Georg Bauhaus
2011-10-04 15:34 ` Dmitry A. Kazakov
2011-10-04 15:49 ` Yannick Duchêne (Hibou57)
2011-10-04 16:04 ` Dmitry A. Kazakov
2011-10-04 15:44 ` Yannick Duchêne (Hibou57)
2011-10-04 16:05 ` Georg Bauhaus
2011-10-04 16:47 ` Yannick Duchêne (Hibou57)
2011-10-04 15:41 ` Yannick Duchêne (Hibou57)
2011-09-26 18:59 ` Jeffrey Carter
2011-09-27 0:35 ` Robert A Duff
2011-10-04 4:30 ` Yannick Duchêne (Hibou57)
2011-10-04 18:40 ` Jeffrey Carter
2011-09-26 14:29 ` Georg Bauhaus
2011-09-26 15:31 ` Georg Bauhaus
2011-10-04 4:35 ` Yannick Duchêne (Hibou57)
2011-10-04 4:13 ` Yannick Duchêne (Hibou57)
2011-09-25 17:16 ` Jeffrey Carter
2011-09-25 21:53 ` Robert A Duff
2011-09-26 9:25 ` Georg Bauhaus
2011-09-26 23:00 ` Randy Brukardt
2011-09-27 0:34 ` Robert A Duff
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox