On Thursday, 27 April 2017 at 14:53:02 UTC, Mike Parker wrote:
This year, DConf has an extra day tacked on for problem solving in the form of a hackathon. The intent is to work on issues people find frustrating in the D ecosystem. While there will be time given at the event for proposals, and those involving third-party projects are welcome, it will help speed things along for the organizers to come in with a list of big issues to get the ball rolling.

To help in compiling the list, what are some major issues from the ecosystem that you'd like to see fixed?

Here's my wishlist:

D's @safe-ty story

DMD as a library (both frontend and backend):
* the backend usable as a JIT library.
* unittests (!= integration tests like those in https://github.com/dlang/dmd/tree/master/test) * fixing the GC interoperability (AFAIK, dmd currently can't use the GC)
* less coupling (e.g. https://github.com/dlang/dmd/pull/6625)
* no use of global state, except in the compiler driver
* task-based parallelism
* better docs
etc.

D REPL based on dmd library. There were a couple of attempts (e.g. https://github.com/callumenator/dabble, https://github.com/MartinNowak/drepl), but as far I know, none of them is using dmd as a library and I'm not sure how close they are actually being useful.

AST introspection - given a function definition (!= declaration, i.e. the body is available) f, the expression __traits(ast, f) should return an instance of FuncDeclaration (https://github.com/dlang/dmd/blob/197ff0fd84b7b101f47458ab06e5b6f95959941e/src/ddmd/astnull.d#L151) with all of its members filled. The class-es used to represent the AST should be plain old data types (i.e. should contain no functionality). The AST as produced by the parser should be returned, without any semantic analysis (which can modify it). No backwards compatibility guarantees should be made about __traits(ast, f) at least for a couple of years.

DMD usable as a library can help the various IDE projects improve the user experience, which is major complaint of new comers (e.g. better auto-completion, refactoring, etc). AST introspection (in addition with the previous point) is needed for D to remain competitive on the metaprogramming front with other rising languages such as Jai or Nim.

I would love to meet and work with other people interested in those areas at DConf.

Reply via email to