Jump to page: 1 2
Thread overview
Should `pragma(inline, expression)` be allowed ?
6 days ago
Basile B.
6 days ago
Basile B.
5 days ago
Per Nordlöw
5 days ago
Basile B.
3 days ago
Walter Bright
15 hours ago
James Blachly
15 hours ago
Basile B.
12 hours ago
H. S. Teoh
8 hours ago
Basile B.
7 hours ago
Max Samukha
7 hours ago
Basile B.
6 days ago
Example usage, probably the only that's interesting at first glance.

---
version(D_Coverage)
    enum do_inline = true;
else
    enum do_inline = false;


pragma(inline, do_inline)
void stuff(){}
---

Although this could be controlled from the command line side, i.e if -cov is there then be smart and dont put -inline.
6 days ago
On Wednesday, 14 October 2020 at 17:20:46 UTC, Basile B. wrote:
> Example usage, probably the only that's interesting at first glance.
>
> ---
> version(D_Coverage)
>     enum do_inline = true;
> else
>     enum do_inline = false;

sorry I meant

  version(D_Coverage)
      enum do_inline = false;
  else
      enum do_inline = true;

obviously...
5 days ago
On Wednesday, 14 October 2020 at 17:22:40 UTC, Basile B. wrote:
>> version(D_Coverage)
>>     enum do_inline = true;
>> else
>>     enum do_inline = false;

This has been discussed but Walter is against it if I remember correctly.

I use

void foo()
{
    version(D_Coverage) {} else pragma(inline, true);
}
5 days ago
On Thursday, 15 October 2020 at 09:14:05 UTC, Per Nordlöw wrote:
> On Wednesday, 14 October 2020 at 17:22:40 UTC, Basile B. wrote:
>>> version(D_Coverage)
>>>     enum do_inline = true;
>>> else
>>>     enum do_inline = false;
>
> This has been discussed but Walter is against it if I remember correctly.

That's exactly why I ask here be fore opening an issue

> I use
>
> void foo()
> {
>     version(D_Coverage) {} else pragma(inline, true);
> }

Ah yeah ? this works to attach or not the pragma to a func in particular? I didn't think to that
5 days ago
On 10/15/20 9:23 AM, Basile B. wrote:
> On Thursday, 15 October 2020 at 09:14:05 UTC, Per Nordlöw wrote:
>> On Wednesday, 14 October 2020 at 17:22:40 UTC, Basile B. wrote:
>>>> version(D_Coverage)
>>>>     enum do_inline = true;
>>>> else
>>>>     enum do_inline = false;
>>
>> This has been discussed but Walter is against it if I remember correctly.
> 
> That's exactly why I ask here be fore opening an issue

I think this falls in the "gratuitous limitations" category and should be fixed. Any place where a compile-time Boolean fits, a compile-time-computable expression should fit. Same about numbers, strings etc.

I'm glad that the related issue with `align(number)` has been fixed. Up until recently only literals were allowed.


3 days ago
On 10/15/2020 7:05 AM, Andrei Alexandrescu wrote:
> On 10/15/20 9:23 AM, Basile B. wrote:
>> On Thursday, 15 October 2020 at 09:14:05 UTC, Per Nordlöw wrote:
>>> On Wednesday, 14 October 2020 at 17:22:40 UTC, Basile B. wrote:
>>>>> version(D_Coverage)
>>>>>     enum do_inline = true;
>>>>> else
>>>>>     enum do_inline = false;
>>>
>>> This has been discussed but Walter is against it if I remember correctly.
>>
>> That's exactly why I ask here be fore opening an issue
> 
> I think this falls in the "gratuitous limitations" category and should be fixed. Any place where a compile-time Boolean fits, a compile-time-computable expression should fit. Same about numbers, strings etc.

I don't remember why I was against it, but it would be worth finding out why before going ahead and missing something important.

15 hours ago
On Thursday, 15 October 2020 at 14:05:20 UTC, Andrei Alexandrescu wrote:
> On 10/15/20 9:23 AM, Basile B. wrote:
>> On Thursday, 15 October 2020 at 09:14:05 UTC, Per Nordlöw wrote:
>>> On Wednesday, 14 October 2020 at 17:22:40 UTC, Basile B. wrote:
>>>>> version(D_Coverage)
>>>>>     enum do_inline = true;
>>>>> else
>>>>>     enum do_inline = false;
>>>
>>> This has been discussed but Walter is against it if I remember correctly.
>> 
>> That's exactly why I ask here be fore opening an issue
>
> I think this falls in the "gratuitous limitations" category and should be fixed. Any place where a compile-time Boolean fits, a compile-time-computable expression should fit. Same about numbers, strings etc.
>


This would solve a problem I had whereby we had several compile time backends available and wanted to do

version(A || B)
15 hours ago
On Tuesday, 20 October 2020 at 01:32:23 UTC, James Blachly wrote:
> This would solve a problem I had whereby we had several compile time backends available and wanted to do
>
> version(A || B)

I would not bet too much on this one if I were you...
12 hours ago
On Tue, Oct 20, 2020 at 01:54:38AM +0000, Basile B. via Digitalmars-d wrote:
> On Tuesday, 20 October 2020 at 01:32:23 UTC, James Blachly wrote:
> > This would solve a problem I had whereby we had several compile time backends available and wanted to do
> > 
> > version(A || B)
> 
> I would not bet too much on this one if I were you...

This has cropped up countless times over the years, and so far, the answer has been an adamant No. I'm not holding my breath on this one.

If you *really* can't live without ||, use static if instead. (Yes, it's uglier, but no, I don't have a better idea.)


T

-- 
Without outlines, life would be pointless.
8 hours ago
On Tuesday, 20 October 2020 at 05:18:50 UTC, H. S. Teoh wrote:
> On Tue, Oct 20, 2020 at 01:54:38AM +0000, Basile B. via Digitalmars-d wrote:
>> On Tuesday, 20 October 2020 at 01:32:23 UTC, James Blachly wrote:
>> > This would solve a problem I had whereby we had several compile time backends available and wanted to do
>> > 
>> > version(A || B)
>> 
>> I would not bet too much on this one if I were you...
>
> This has cropped up countless times over the years, and so far, the answer has been an adamant No. I'm not holding my breath on this one.
>
> If you *really* can't live without ||, use static if instead. (Yes, it's uglier, but no, I don't have a better idea.)
>
>
> T

yeah, CTFE on `version()` would be basically like `static if (ident <op> ident)` and alikes, so `version()` much less justified because not special anymore.

By the way, to the attention of James, the other day I've found this nice helper by Simons K: https://forum.dlang.org/post/tghdaffyugrajmenddav@forum.dlang.org, allowing to use version idents in static if expressions, the easiest way possible.
« First   ‹ Prev
1 2