Commit 5e0734bc authored by Andrey Mokhov's avatar Andrey Mokhov
Browse files

Add comments/todos.

parent c488f65d
......@@ -14,11 +14,12 @@ Done:
* Improve complexity when searching for module files (40x)
Todo: Target:
* Build utils, rts October
* Build utils, rts & put in GHC tree October
* Better dependencies (.hs-incl etc.) November
* Support command line options December
* Validate November-December (GHC 8.0?)
* Validate November-December
* Documentation December-January
* Journal paper + provenance December-February
Notes:
* Zero build: under 7 seconds
......@@ -26,6 +27,14 @@ Notes:
* Limited parallelism: ghc-cabal/ghc-pkg not thread-safe, ghc fails on > 4 cores
* Codebase growing: 50 files
Things to do:
-- Use OrderOnly for ordering ghc-cabal's
-- Fix parallel invokations of ghc-cabal
-- Fix GHC -M to handle .hs-incl (--make already knows how to do that) instead of writing a new parser. Maybe already done -- find a flag!
-- Rename files -> outputs, sources -> inputs
-- Start separating general bits from GHC bits. A separate package for Args maybe
-- Look up Bazel and Buck
-- Decompose args into builder-specific and package-specific
2. Seemingly dead-code
----------------------
......@@ -46,7 +55,7 @@ ifeq "$(TargetOS_CPP)" "irix"
@echo "#endif" >> $@
endif
But IRIX_MAJOR is never set anywhere in the build system. Dead code?
But IRIX_MAJOR is never set anywhere in the build system. Dead code? YES
3. Command line options
......@@ -56,6 +65,12 @@ Discuss the need for command line options, e.g. 'make GhcDebugged=YES'. Do we ne
Settings.User is fairly readable, so perhaps some options may be changeable only by editing this file and recompiling the build system (typically takes negligible time compared to building). This will simplify things. Can we come up with a must-have list for command line options?
-- Try to support these first:
* EXTRA_HC_OPTS = file "asd" ? arg ".."
* EXTRA_CC_OPTS
* GhcDebugged = True
* make 2
4. Better names for build stages
--------------------------------
......@@ -79,3 +94,5 @@ Stage3 -> Selftest
build system' is overly verbose. Calling it 'shake' is confusing.
* I haven't thought about any names yet, just checking whether we want to.
-- Use mk2
\ No newline at end of file
......@@ -12,3 +12,10 @@ alexArgs = builder Alex ? do
, package compiler ? arg "--latin1"
, arg src
, arg "-o", arg file ]
-- TODO:
-- compilierArgs = package compiler ? builder Alex ? arg "awe"
-- args = mconcat
-- [ alexArgs
-- , compilerArgs ]
......@@ -5,6 +5,7 @@ import Base
import GHC.Generics (Generic)
-- TODO: rename to something more meaningful, e.g. 'Stage0' -> 'Boot'.
-- TODO: explain stages
data Stage = Stage0 | Stage1 | Stage2 | Stage3 deriving (Eq, Enum, Generic)
instance Show Stage where
......
......@@ -22,8 +22,8 @@ data Target = Target
package :: Package,
builder :: Builder,
way :: Way,
sources :: [FilePath],
files :: [FilePath]
sources :: [FilePath], -- input
files :: [FilePath] -- output
}
deriving (Show, Eq, Generic)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment