DConf Hackathon Ideas

via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 28 02:52:29 PDT 2017


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.


More information about the Digitalmars-d mailing list