On Mon, 27 Dec 2010 13:42:50 -0700, Guilherme Vieira
<[email protected]> wrote:
On Mon, Dec 27, 2010 at 4:35 PM, bearophile
<[email protected]>wrote:
Through Reddit I have found a link to some information about the Clay
language, it wants to be (or it will be) a C++-class language, but it's
not
tied to C syntax. It shares several semantic similarities with D too. It
looks like a cute language:
https://github.com/jckarter/clay/wiki/
Some small parts from the docs:
--------------------------
In Clay this:
https://github.com/jckarter/clay/wiki/Syntax-desugaring
static for (a in ...b)
c;
is equivalent to:
{
ref a = <first element of b>;
c;
}
{
ref a = <second element of b>;
c;
}
/* ... */
I have an enhancement request about this for D:
http://d.puremagic.com/issues/show_bug.cgi?id=4085
--------------------
The part about Safer pointer type system is very similar to what I did
ask
for D, and it looks similar to what Ada language does (for Clay this is
just
a proposal, not implemented yet, but Ada is a rock-solid language):
https://github.com/jckarter/clay/wiki/Safer-pointer-type-system
--------------------
This is something that I want for D too, it's important:
>Jonathan Shapiro (of BitC) makes an excellent argument that, in a
systems
language, it is often undesirable to depend on the whims of an
ill-specified
optimizer to convert abstract code into efficient machine code. The BitC
specification thus includes the idea of guaranteed optimizations, to
allow
code to be written in a high-level style with predictably low or
nonexistent
runtime cost (link). [...] Because Clay seeks to support systems
programming
with high-level abstraction, certain patterns should be guaranteed to be
optimized in a certain way, instead of being left to the whims of LLVM
or a
C compiler. Additional optimizations should not be prevented, however.
[...]
It should be possible to specify that one or more of these
optimizations is
required, and have the compiler raise an error when they cannot be
applied
for some reason.<
https://github.com/jckarter/clay/wiki/Guaranteed-optimizations
Bye,
bearophile
+1 for static for and guaranteed optimizations. Can we put it in the
wishlist?
If you followed the bug report, you'd find D already has a way of doing
static foreach.