November 07, 2021

On Saturday, 6 November 2021 at 15:46:57 UTC, JN wrote:

>

This is much less of a strength than you think. For 90% of cases, lack of metaprogramming is resolved by putting a Python script in build step that autogenerates the necessary code.

Yes, I agree. For a single project metaprogramming has little impact.

But such scripts are rarely reused between projects. Where metaprogramming has high potential is in creating more adaptive frameworks that can reused in many projects.

It does requires high level of sophistication and insight (and experimentation) to build such frameworks though.

November 08, 2021

On Saturday, 6 November 2021 at 15:46:57 UTC, JN wrote:

>

On Friday, 5 November 2021 at 13:19:24 UTC, zjh wrote:

>

D can aim at experts, especially meta programming users.
On this point,rust can't compete.
Silky general meta programming.
Use my strengths to attack theirs weaknesses.

This is much less of a strength than you think. For 90% of cases, lack of metaprogramming is resolved by putting a Python script in build step that autogenerates the necessary code.

Python has no idea about D syntax or semantics (or any other language not called Python), and therefore can't even do something as simple as "what are all the D structs in module x". You'd have to invent a templating language on top of the code you're already writing, then write some Python code to parse and generate on top of that.

To me, that's like saying that C/Fortran aren't that big of a deal compared to assembly. Who needs for loops, amirite?

November 08, 2021

On Friday, 5 November 2021 at 11:57:40 UTC, Mike Parker wrote:

>

-preview=in will not be killed. It needs to be changed such that:

  • in always means const scope ref; the compiler will not attempt to pass by value based on platform-specific heuristics.

What about C functions? The ABI changes.

November 09, 2021

On Monday, 8 November 2021 at 21:48:03 UTC, Kagamin wrote:

>

On Friday, 5 November 2021 at 11:57:40 UTC, Mike Parker wrote:

>

-preview=in will not be killed. It needs to be changed such that:

  • in always means const scope ref; the compiler will not attempt to pass by value based on platform-specific heuristics.

What about C functions? The ABI changes.

in doesn't exist in C. All DRuntime bindings have been switched not to use in AFAIK (I'll do another pass on druntime / Phobos when my other changes are ready).
There's a PR to disable it for non D/C++: https://github.com/dlang/dmd/pull/12242 but that was before this meeting.

November 09, 2021

On Monday, 8 November 2021 at 12:02:43 UTC, Atila Neves wrote:

>

On Saturday, 6 November 2021 at 15:46:57 UTC, JN wrote:

>

On Friday, 5 November 2021 at 13:19:24 UTC, zjh wrote:

>

D can aim at experts, especially meta programming users.
On this point,rust can't compete.
Silky general meta programming.
Use my strengths to attack theirs weaknesses.

This is much less of a strength than you think. For 90% of cases, lack of metaprogramming is resolved by putting a Python script in build step that autogenerates the necessary code.

Python has no idea about D syntax or semantics (or any other language not called Python), and therefore can't even do something as simple as "what are all the D structs in module x". You'd have to invent a templating language on top of the code you're already writing, then write some Python code to parse and generate on top of that.

To me, that's like saying that C/Fortran aren't that big of a deal compared to assembly. Who needs for loops, amirite?

What C# does and what's probably easier for tooling and newbes is to let users hook into the compilation step and generate code on the fly given full compiler knowledge to the already existing code prior to generation.

1 2
Next ›   Last »