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