Thread overview
writeln and write at CTFE
5 days ago
Andrey
5 days ago
Bastiaan Veelo
5 days ago
Andrey
5 days ago
z
4 days ago
tsbockman
4 days ago
oddp
4 days ago
tsbockman
5 days ago
Hello all,
Tell me please how can I "writeln" and "write" in function that is used in CTFE?
At the moment I get this:
> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time

Or may be exist some other ways to do it?
5 days ago
On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote:
> Hello all,
> Tell me please how can I "writeln" and "write" in function that is used in CTFE?
> At the moment I get this:
>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
>
> Or may be exist some other ways to do it?

pragma(msg, <compile-time-expr>);
5 days ago
On Wednesday, 13 January 2021 at 09:11:53 UTC, Guillaume Piolat wrote:
> On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote:
>> Hello all,
>> Tell me please how can I "writeln" and "write" in function that is used in CTFE?
>> At the moment I get this:
>>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
>>
>> Or may be exist some other ways to do it?
>
> pragma(msg, <compile-time-expr>);

This may however not do what you wish it to do: https://forum.dlang.org/post/mailman.4526.1499573493.31550.digitalmars-d-learn@puremagic.com

— Bastiaan.
5 days ago
On Wednesday, 13 January 2021 at 11:31:16 UTC, Bastiaan Veelo wrote:
> On Wednesday, 13 January 2021 at 09:11:53 UTC, Guillaume Piolat wrote:
>> On Wednesday, 13 January 2021 at 08:35:09 UTC, Andrey wrote:
>>> Hello all,
>>> Tell me please how can I "writeln" and "write" in function that is used in CTFE?
>>> At the moment I get this:
>>>> import\std\stdio.d(4952,5): Error: variable impl cannot be modified at compile time
>>>
>>> Or may be exist some other ways to do it?
>>
>> pragma(msg, <compile-time-expr>);
>
> This may however not do what you wish it to do: https://forum.dlang.org/post/mailman.4526.1499573493.31550.digitalmars-d-learn@puremagic.com
>
> — Bastiaan.

Function "ctfeWriteln" doens't exist.

pragma(msg, ...) is used only for CT values.

Today is 2021. Dlang still doesn't have ctfe write functions?
5 days ago
On Wednesday, 13 January 2021 at 11:50:26 UTC, Andrey wrote:
>
> Function "ctfeWriteln" doens't exist.
>
> pragma(msg, ...) is used only for CT values.
>
> Today is 2021. Dlang still doesn't have ctfe write functions?

Yes.(afaik)
It has shot me on the foot once, to the point i abandoned the idea of ever accomplishing what i wanted to do at compile-time and instead just did it at module construction-time, and i must admit that it was immediately easier to debug.
4 days ago
On Wednesday, 13 January 2021 at 11:50:26 UTC, Andrey wrote:
> Today is 2021. Dlang still doesn't have ctfe write functions?

You make it sound like D is behind the times. Is CTFE I/O a standard feature in other languages? How many other languages even have a CTFE feature comparable to D's?
4 days ago
On 13.01.21 21:47, tsbockman via Digitalmars-d-learn wrote:
> Is CTFE I/O a standard feature in other languages? How many other languages even have a CTFE feature comparable to D's?

Just two langs I use from time to time:

1) nim via forced ctfe; way faster than d by running through a vm:

const foo = fib(42)
static:
  echo "foobar"

2) crystal via macros:

{{ puts "foobar" }}

Another one would be zig via comptime, but never tried that.
4 days ago
On Wednesday, 13 January 2021 at 23:38:54 UTC, oddp wrote:
> Just two langs I use from time to time:
>
> 1) nim via forced ctfe; way faster than d by running through a vm:
>
> const foo = fib(42)
> static:
>   echo "foobar"
>
> 2) crystal via macros:
>
> {{ puts "foobar" }}
>
> Another one would be zig via comptime, but never tried that.

Good to know... doesn't sound like it's some kind of standard "2021" feature, though. Those are all lesser-known languages (like D), not industry standard stuff like C++, Java, etc.