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 ?)
|