Skip to content
Snippets Groups Projects
Commit d89ea1a5 authored by Isaac Potoczny-Jones's avatar Isaac Potoczny-Jones
Browse files

updated TODO

parent 0dd02448
Branches ghc-8.12
No related tags found
No related merge requests found
* misc ------------------------------------------------------------
-= 1.0 =-
* Fix up sdist? hide sdist? bdist?
** if there's a flag, --include-preprocessed-sources (or something
better) run the preprocessing phase and include both the
unpreprocessed and the preprocessed sources in the source tarball?
** Better way to find 'tar'; is there a library? what does darcs do?
* Fix up sdist!
* Write tests for hugs * Write tests for hugs
* Write semantic checker for package description file. start w/ * Write semantic checker for package description file. start w/
sanity checker. give error if buildInfo field given when no sanity checker. give error if buildInfo field given when no
exposed or hidden modules for a library. exposed or hidden modules for a library.
** add hooks to haddock cmd * Decide on interface
** Which fields are required
** which Distribution.* things won't change?
** make debian watchfile * unregistering the package, etc
** find a real test case that uses preprocessors ** --user flag to unregister
** unregistering the package, etc
*** --user flag to unregister ** think about HC-PKG's role here. maybe HC-PKG should do all this instead
*** think about HC-PKG's role here. maybe HC-PKG should do all this ** Should "setup install" copy Setup.lhs, Setup.description, and
instead
*** Should "setup install" copy Setup.lhs, Setup.description, and
local-build-info into a common location for the sake of unregister? local-build-info into a common location for the sake of unregister?
Will we have to make this a requirement of 'install'? (suggested by Will we have to make this a requirement of 'install'? (suggested by
kosmikus) Would it be better for HC-PKG to have the unregister kosmikus) Would it be better for HC-PKG to have the unregister
command? command?
*** Add a flag to configure to specify where to put them? ** Add a flag to configure to specify where to put them?
** It would be useful to have alternatives in dependencies, e.g. HGL
could depend on X11 | Win32.
** Preprocessors * Preprocessors
*** chain of preprocessors ** chain of preprocessors
*** what other preprocessors can't unlit? ** what other preprocessors can't unlit?
** Hugs * Hugs - look for "FIX (HUGS)"
- look for "FIX (HUGS)"
- no way to tell Hugs to turn packages on or off
- no register / unregister for hugs
** Haddock * Haddock
- should process hidden modules as well as exposed ones. The hidden - should process hidden modules as well as exposed ones. The hidden
modules might contain entities that are re-exported by an exposed modules might contain entities that are re-exported by an exposed
module. Hidden modules should use the #hide haddock directive. module. Hidden modules should use the #hide haddock directive.
...@@ -50,55 +50,28 @@ ...@@ -50,55 +50,28 @@
- we should install the haddock interface, and fill in the location - we should install the haddock interface, and fill in the location
in haddock_interfaces. Similarly for the HTML, and haddock_html. in haddock_interfaces. Similarly for the HTML, and haddock_html.
** for a source tarball:? * grep for "FIX"
- if there's a flag, --include-preprocessed-sources (or something
better) run the preprocessing phase and include both the
unpreprocessed and the preprocessed sources in the source tarball?
** grep for "FIX"
** Compatibility * Compatibility
*** add information for compiling w/ nhc ** verify windows test suite
*** add install target for nhc ** verify ghc6.4 test suite
*** verify windows test suite
*** Better way to find 'tar'; is there a library? what does darcs do?
** Doc * Parsing
*** do comments have to start in the first column? ** Allow quoting in the options fields, to allow things like
*** clarify relationship between exposed-modules and modules, etc. -f"something with spaces"
*** add preprocessor explanation (see bottom of this TODO). ** Instead of freaking out on unknown fields, the parser should return
*** Fix example for angela, expose Data.Set, etc, not A, B, etc.b a list of those unknown fields so a warning can be printed. Or not.
*** add information about executable stanzas
*** elimintate need for cpphs in haddock makefile rule.
** look carefully at "rawSystem" and error handing stuff for nhc. * Doc
** do comments have to start in the first column?
** clarify relationship between exposed-modules and modules, etc.
** add preprocessor explanation (see bottom of this TODO).
** Fix example for angela, expose Data.Set, etc, not A, B, etc.b
** add information about executable stanzas
** elimintate need for cpphs in haddock makefile rule.
** It actually makes sense to have several libraries ("hs-packages") * Misc
in one package ("cabal-package"), look at wxhaskell for example.
- So, Library stanzas, I suppose
- ./setup build should take an optional list of build targets
(that is, library and executable names)
- The overloaded terminology is *way* confusing. Feh.
** API Versioning? Libtool-style or just a major number?
** Extensions
- complain if their use makes the code non-portable?
-- but what does this mean? ghc & hugs?
** Reorganize compiler dependent code into Distribution.Compiler.*
** Parsing
*** Parser error reporting
*** Allow quoting in the options fields, to allow things like
-f"something with spaces"
*** Instead of freaking out on unknown fields, the parser should return
a list of those unknown fields so a warning can be printed. Or not.
* 1.0
** add a make target or command for tests we know will fail?
** HC-PKG (see "Depends on HC-PKG" below) ** HC-PKG (see "Depends on HC-PKG" below)
** ./Setup.lhs build for nhc
** ./Setup.lhs bdist
** add more layered tools to appendix? ** add more layered tools to appendix?
** make reference to "layered tools" appendix where approprote ** make reference to "layered tools" appendix where approprote
** integrate hscpp, use it for preprocessing step. ** integrate hscpp, use it for preprocessing step.
...@@ -106,23 +79,48 @@ ...@@ -106,23 +79,48 @@
** add sanity checking command? ** add sanity checking command?
* testing * testing
** find a real test case that uses preprocessors
** add a make target or command for tests we know will fail?
** setup test suite to run on --push? ** setup test suite to run on --push?
** redirect non-hunit outputs to a file? ** redirect non-hunit outputs to a file?
** test / port code for Hugs and nhc ** test / port code for Hugs
** error cases for parsing command-line args ** error cases for parsing command-line args
** reading & writing configuration-dropping ** reading & writing configuration-dropping
** use-cases based on SimonPJ's doc ** use-cases based on SimonPJ's doc
** discovering the location of the given flavor of compiler and pkg tool ** discovering the location of the given flavor of compiler and pkg tool
------------------------------------------------------------
-= Future Releases =-
* Depends on HC-PKG * Depends on HC-PKG
** buildDepToDep in Configure doesn't set version dependency ** buildDepToDep in Configure doesn't set version dependency
** nhc-pkg (see old package manager code)
** hugs-pkg ** hugs-pkg
** register ** register for hugs
*** for hugs & nhc
** configure: check for presence of build dependencies ** configure: check for presence of build dependencies
* NHC Support
** look carefully at "rawSystem" and error handing stuff for nhc.
** add install target for nhc
** add information for compiling w/ nhc
** nhc-pkg (see old package manager code)
** register
* Hugs
- no way to tell Hugs to turn packages on or off
- no register / unregister for hugs
* Misc * Misc
** ./Setup.lhs bdist
** Reorganize compiler dependent code into Distribution.Compiler.*
** API Versioning? Libtool-style or just a major number?
** Extensions
- complain if their use makes the code non-portable?
-- but what does this mean? ghc & hugs?
** "collections / distributions, etc" multiple cabal packages in one package
** It would be useful to have alternatives in dependencies, e.g. HGL
could depend on X11 | Win32.
** sanity checking tool for configuration; are all the .hs files ** sanity checking tool for configuration; are all the .hs files
included, etc. included, etc.
...@@ -146,59 +144,14 @@ ...@@ -146,59 +144,14 @@
** most commands should accept a -v flag to show command lines? ** most commands should accept a -v flag to show command lines?
** configure should check version of compiler ** configure should check version of compiler
------------------------------------------------------------
* Setup Command-line interface
** Actions
- build
- install (+maybe installprefix, maybe system)
- configure (+flags)
- packageinfo
- sdist
- clean
- register (maybe system)
- unregister (maybe system)
** flags
--help
--ghc
--nhc
--hugs
--with-compiler=
--prefix=
--instprefix=
* 1.0
** actions
- bdist
- doc stuff?
** flags
--hbc
--helium
--with-compiler=
------------------------------------------------------------
* Priorities for first beta release
(basically what was in SPJ's document):
** Basic command-line interface for configure, build, install,
register, unregister, info
** Ability to wrap make
** basic build system (think hmake)
** binary distributions?
* Priorities for 1.0
** binary distributions?
** basic pre-processor extensions
** hat support ** hat support
** haddock support
** user use configuration vs system use configuration
* looking ahead
** per-system source database ** per-system source database
** rebuild for new compiler ** rebuild for new compiler
** helium
** hbc
------------------------------------------------------------
* Orthogonal (layered?) tools * Orthogonal (layered?) tools
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment