December 10, 2012
On 12/10/2012 12:04 PM, Jonathan M Davis wrote:
> Regardless, the UDA stuff can't be in the next release.

Why? (It's being heavily used by some people.)

December 10, 2012
On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
> Why? (It's being heavily used by some people.)

I'm *really* looking forward to UDAs in the next release. Even if the syntax changes in 2.62, I'd still like to have it in 2.61 just because there's so many things I can do with it.
December 10, 2012
On Monday, 10 December 2012 at 21:57:58 UTC, Adam D. Ruppe wrote:
> On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
>> Why? (It's being heavily used by some people.)
>
> I'm *really* looking forward to UDAs in the next release. Even if the syntax changes in 2.62, I'd still like to have it in 2.61 just because there's so many things I can do with it.

This is why we desperately need a rock solid stable branch, but also a pre-release testing branch that is in a reasonably stable state that includes that latest fixes and features that are deemed to be "close to ready", and for any of that to work, there has to be a separate development branch for the inclusion of brand new features and other experimental work.

--rt
December 10, 2012
On 12/10/2012 1:57 PM, Adam D. Ruppe wrote:
> On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
>> Why? (It's being heavily used by some people.)
>
> I'm *really* looking forward to UDAs in the next release. Even if the syntax
> changes in 2.62, I'd still like to have it in 2.61 just because there's so many
> things I can do with it.

The syntax will be:

   @(attributes)

and:

   @identifier

although the latter isn't implemented yet.
December 10, 2012
On Monday, 10 December 2012 at 22:15:09 UTC, Walter Bright wrote:
> On 12/10/2012 1:57 PM, Adam D. Ruppe wrote:
>> On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
>>> Why? (It's being heavily used by some people.)
>>
>> I'm *really* looking forward to UDAs in the next release. Even if the syntax
>> changes in 2.62, I'd still like to have it in 2.61 just because there's so many
>> things I can do with it.
>
> The syntax will be:
>
>    @(attributes)
>
> and:
>
>    @identifier
>
> although the latter isn't implemented yet.

So @identifier(args) and @identifier!(args) will require parens?
December 10, 2012
On 12/10/2012 2:20 PM, Max Samukha wrote:
> On Monday, 10 December 2012 at 22:15:09 UTC, Walter Bright wrote:
>> On 12/10/2012 1:57 PM, Adam D. Ruppe wrote:
>>> On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
>>>> Why? (It's being heavily used by some people.)
>>>
>>> I'm *really* looking forward to UDAs in the next release. Even if the syntax
>>> changes in 2.62, I'd still like to have it in 2.61 just because there's so many
>>> things I can do with it.
>>
>> The syntax will be:
>>
>>    @(attributes)
>>
>> and:
>>
>>    @identifier
>>
>> although the latter isn't implemented yet.
>
> So @identifier(args) and @identifier!(args) will require parens?

Good question. I think it shouldn't.
December 10, 2012
On 12/10/2012 8:28 AM, Denis Shelomovskij wrote:
> This was the result of DustMite-ing my sources:
> http://d.puremagic.com/issues/show_bug.cgi?id=6296
>
> Currently the bug state is a bit confusing. It is a regression (but I didn't
> mark it that way, only write in description, sorry) but is resolved as a
> duplicate of a non-regression unfixed bug 4269. It was a small war between
> "regression" and "normal" state of 4269 and now it is marked as "normal".


It isn't a regression, and the test cases you reported work in D1 and D2.

December 10, 2012
On Monday, 10 December 2012 at 22:56:45 UTC, Walter Bright wrote:
> On 12/10/2012 2:20 PM, Max Samukha wrote:
>> On Monday, 10 December 2012 at 22:15:09 UTC, Walter Bright wrote:
>>> On 12/10/2012 1:57 PM, Adam D. Ruppe wrote:
>>>> On Monday, 10 December 2012 at 21:50:47 UTC, Walter Bright wrote:
>>>>> Why? (It's being heavily used by some people.)
>>>>
>>>> I'm *really* looking forward to UDAs in the next release. Even if the syntax
>>>> changes in 2.62, I'd still like to have it in 2.61 just because there's so many
>>>> things I can do with it.
>>>
>>> The syntax will be:
>>>
>>>   @(attributes)
>>>
>>> and:
>>>
>>>   @identifier
>>>
>>> although the latter isn't implemented yet.
>>
>> So @identifier(args) and @identifier!(args) will require parens?
>
> Good question. I think it shouldn't.

Probably it should. Single parametrized attributes (in the form of templates or CTFE constructors) are very likely to occur as often (if not more often) as parameterless (as they do in C#, for example).

December 10, 2012
On Monday, December 10, 2012 13:50:47 Walter Bright wrote:
> On 12/10/2012 12:04 PM, Jonathan M Davis wrote:
> > Regardless, the UDA stuff can't be in the next release.
> 
> Why? (It's being heavily used by some people.)

It hasn't even been properly worked out yet, and new features like that shouldn't be being introduced in the main branch. It's not at all ready for general consumption, and if it's in there, people are going to start using it and then complaining when their code breaks when we change it later. It's the sort of thing that should be on a separate branch and not in master. Even worse, if the new stable branch that we've been talking about includes this, then you'll have programmers programming with it for months before they get the updates with the design that we're actually going to end up with, meaning that that much more code will be written for that much longer with an incomplete feature, waiting to be broken when the feature is actually updated in the version of the compiler that they're using.

Andrei was already complaining about this was handled in the thread where they were introduced, and I expect that he'll agree that it shouldn't be in the release. It's not ready.

- Jonathan M Davis
December 10, 2012
On 12/10/2012 3:35 PM, Jonathan M Davis wrote:
> On Monday, December 10, 2012 13:50:47 Walter Bright wrote:
>> Why? (It's being heavily used by some people.)
>
> It hasn't even been properly worked out yet, and new features like that
> shouldn't be being introduced in the main branch. It's not at all ready for
> general consumption, and if it's in there, people are going to start using it
> and then complaining when their code breaks when we change it later. It's the
> sort of thing that should be on a separate branch and not in master. Even
> worse, if the new stable branch that we've been talking about includes this,
> then you'll have programmers programming with it for months before they get
> the updates with the design that we're actually going to end up with, meaning
> that that much more code will be written for that much longer with an
> incomplete feature, waiting to be broken when the feature is actually updated
> in the version of the compiler that they're using.

We've debated this feature at length in various threads. It's under heavy use by some people. It does not break any existing code. I don't see any unresolved issue that should delay its incorporation.