We are forking D

a11e99z black80 at bk.ru
Thu Jan 11 17:40:50 UTC 2024


what should be done with D?

1) /for any future path of D/
drop DMD entirely and develop only LDC. point.
LLVM has:
- code generation/optimization. nobody should to spent precious 
time to fap with register allocations and instruction generation.
- RT code generation for any script, JIT or something.
- dozens attributes and internal asm for any platform.
- best interop with C and C++ through clang/AST.
- many other interops through LLVM-IR with any other languages 
that can generate it.
u'd have to be a fool to reject this.
- minus: to slow code generation. well, Zig decides to generate 
LLVM-binary-IR w/o LLVM framework/tools. and need to optimize 
compiler itself not generated code.

2) allow fat pointers for GC-refs and class' userdata-field.
let people enjoy to invent something useful or just integrate 
GoGC or Nim'ORC.

3) nogc std lib.

/my C++-vision of D-dev/ C++ is good but a lil ugly. current D - 
became same.

10) simplify D: to many keywords for almost nothing. wtf copy 
constructor
this(ref return scope const A rhs) { }
probably attrs like in C# on separate line will be better
@returns(scoped | other_flags)

11) getting closer to C++: use C++ types, call C++ 
.ctor/.dtr/ops, const/refs same as in C++, const char* const ptr 
and const T&, catch C++ exceptions etc.
millions libs in C++ and you drop it for abandoned/dead 
D-manual-wrappers of it - Detroit for packages.


More information about the Digitalmars-d mailing list