File: TODO.md

package info (click to toggle)
ocaml-obuild 0.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,456 kB
  • sloc: ml: 14,491; sh: 211; ansic: 34; makefile: 11
file content (56 lines) | stat: -rw-r--r-- 2,256 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
This is an unexhaustive and probably inaccurate list of items that need to be
looked at or completed to make obuild even better. It is a good source of idea
for anyone wanting to contribute.

Projects file
-------------

* support if/then/else construct in project file.
* add platform and architecture tests in project file: i.e. "if arch(x86) && ..."
* utf8 in project file (maybe useful ?)

Better configuring
------------------

* configure storing / build checking of system state (e.g. digest of libraries, pkg-config, etc)
* cache meta in a friendlier format in dist/ after configure. speed up build.
* arbitrary mechanism to poke at the platform and see what it supports. feeding the file autogeneration phase.
* per project and per system configuration file (à la git)

Perf Improvement
----------------

* use the transitive-edge-reduced dag for checking dependencies.
* remove redundant mtime checks by using a invaliding mtime hashtbl caching mechanism.
* improve change detection with a digest after mtime change.
* improve compilation with .mli by moving the dag pointer of its parents to the compiled interface, not the compiled module.
* ocamldep parallelization & multiples

Completeness
-----------

* add install, and generate META
* generate HTML documentation
* generate cmxs
* generate opam files (.install and .config)
* benchs

Documenting
-----------

* specification for the .obuild file format
* mli files and code documentation

Misc
----

* init: make it better
* add globs for extras source
* add automatic build-deps scanning/adding (see if possible and default to off probably)
* librarify some part of obuild (Config parsing, meta parsing, opam generation, dependencies analysis, building analysis,...)
* replace Digest by a faster (and more modern) digest module from cryptohash
* better portability (windows)
* add a way to refresh a .mli from scratch. for example obuild generate-mli src/ext.ml will (re-)write src/ext.mli
* add a simple way to switch stdlib so that core can be used instead of the compiler stdlib for any target. (project field parsing done already)
* have test (re-)build themselves when doing obuild test, instead of doing 'obuild build; obuild test'.
* improve command line experience (cmdliner ?)