Difference between revisions of "Wish list"
(Merge in Walter Andrei Action List) |
m (→An improved std.xml: add link to wip gsoc code) |
||
Line 20: | Line 20: | ||
=== An improved std.xml === | === An improved std.xml === | ||
Maybe Thomas Sowinski is working on a replacement, but haven't seen any updates in a long time. There was also [https://launchpad.net/d2-xml xml2] which was abandoned too. | Maybe Thomas Sowinski is working on a replacement, but haven't seen any updates in a long time. There was also [https://launchpad.net/d2-xml xml2] which was abandoned too. | ||
+ | |||
+ | '''Update:''' Lodovico Giaretta is working on this as part of this GSoC project - [https://github.com/lodo1995/experimental.xml WiP code] | ||
=== Matrices and linear algebra === | === Matrices and linear algebra === |
Revision as of 11:51, 19 June 2016
Warning: This wish list is partially outdated and needs some updates. For the time being head over to Review Queue to see the status of current additions.
Contents
Wish list
Containers
No one is working on this. It's tough to get started because, despite lots of discussion at various times on this forum, no one seems to really know what they want. Since the containers in question are well-known, it's much more a design problem than an implementation problem.
Update: there has been a lot of progress made towards GC-free containers with EMSI Containers.
Compression/archiving
Opening standard compressed/archived file formats needs to just work. This includes at least zip, gzip, tar and bzip2. Of course, zip already is available and gzip is supported by the zlib module but with a crufty C API. At least gzip and bzip2, which are stream-based as opposed to file-based, should be handled via streams, which means that streams block compression/archiving. Also, since tar and zip are both file based, they should probably be handled by the same API, which might mean deprecating std.zip and rewriting it.
Encryption and hashing
This is more an implementation problem than a design problem. No one is working on it. Some work has been done here but it's unfinished. One of the ideas is to wrap OpenSSL? at first and then implement the most useful crypto primitives in D to avoid library dependency and to make them usable with CTFE.
An improved std.json
Nobody is working on this right now. Wish_list/std.json documents the issues with the current std.json and some requirements for a replacement. Update: See std.data.json for recent development.
An improved std.xml
Maybe Thomas Sowinski is working on a replacement, but haven't seen any updates in a long time. There was also xml2 which was abandoned too.
Update: Lodovico Giaretta is working on this as part of this GSoC project - WiP code
Matrices and linear algebra
Cristi Cobzarenco's GSoC? project is a good starting point but it needs polish. He has indicated that he wants to get back to working on it but doesn't have time.
Update: Matrices are now merged part of Phobos (std.experimental.ndslice) and Ilya Yaroshenko started a new project - mir which will cover more numeric functionalities.
std.database
This is a large, complicated project because we're trying to define a common API for a variety of RDBMSs. Again, it's more a design problem than an implementation problem. There is at least one current attempt at a unified interface: DDBC
Parallel algorithms
dsimcha has implemented a decent amount of these in his std.parallel_algorithm Github project, but has become somewhat frustrated and unmotivated to finish this project because so many of the relevant algorithms seem memory bandwidth bound and aren't substantially faster when parallelized than when run serially.
Walter and Andrei's Action List
Walter and Andrei have veto rights when it comes to inclusion of new stuff into DMD, druntime, and phobos. So if you're looking to work on new stuff either pick something from the list. Or get in contact with Walter or Andrei early during the design phase of your project. This way you can avoid a lot of frustration.
Walter's List
Id | Description | People working on |
---|---|---|
1 | eliminate all gratuitous use of gc | |
2 | review all Phobos modules for compatibility with ranges - std.zip, for example, was done before ranges and does not work with them | |
3 | use -cov to improve code coverage of Phobos modules | |
4 | make sure every function in Phobos has an example | |
5 | make sure every function in Phobos has Params: and Returns: sections http://www.digitalmars.com/d/archives/digitalmars/D/Phobos_Documentation_-_call_to_action_258777.html | |
6 | replace std.xml with something we can be proud of | https://github.com/lodo1995/experimental.xml |
7 | compile a list of popular modules in other languages and see what we should have | |
8 | create a greenthreads module that works like Goroutines | |
9 | create a module that enables code to be run on GPUs | |
10 | now that D can interface to C++ templates and exceptions, create the interface code to the C++ STL | |
11 | review all of Phobos for @safe compatibility | |
12 | remove dependency on autodecode from Phobos | |
13 | there was recently a thread on Phobos desperately needing a BigDecimal module, someone helpfully posted links to a couple of free C versions, I suggested that someone build a D wrapper for one or convert one to D. Sadly, that was the end of the discussion | |
14 | I regularly ask people to write articles about D, and the situation is slowly getting better, in that more and more good ones are getting written |
Andrei's List
Id | Description | People working on |
---|