> Doesn’t D require a GC to achieve the safety guarantees that Rust provides without one
No. The paper covers this. The authors used D's fat pointers, scope, slices, @safe, and ownership/borrowing features to improve code safety.
It is trivial to turn off D's GC, and the authors did not use it in the project described in their paper.
> and many third-party libraries require this GC?
Yes, a lot of D libraries depend on GC, which means they wouldn't be available for use for kernel development.
The D compiler will error out if D code marked with the @nogc attribute depends on GC (or depends on code dependent on the GC), which makes going GCless easier.
No. The paper covers this. The authors used D's fat pointers, scope, slices, @safe, and ownership/borrowing features to improve code safety.
It is trivial to turn off D's GC, and the authors did not use it in the project described in their paper.
> and many third-party libraries require this GC?
Yes, a lot of D libraries depend on GC, which means they wouldn't be available for use for kernel development.
The D compiler will error out if D code marked with the @nogc attribute depends on GC (or depends on code dependent on the GC), which makes going GCless easier.