Drop doc directory (no useful docs there anyway), fix #54.
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 26 Dec 2015 15:23:08 +0000 (15:23 +0000)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sat, 26 Dec 2015 15:23:08 +0000 (15:23 +0000)
doc/boom.png [deleted file]
doc/build-expressions.docx [deleted file]
doc/build-expressions.pdf [deleted file]
doc/build-package-data.docx [deleted file]
doc/comment-hi-rule.txt [deleted file]
doc/deepseq-build-progress.txt [deleted file]
doc/demo.txt [deleted file]
doc/meeting-16-June-2015.txt [deleted file]
doc/meeting-25-September-2015.txt [deleted file]

diff --git a/doc/boom.png b/doc/boom.png
deleted file mode 100644 (file)
index 834e1bb..0000000
Binary files a/doc/boom.png and /dev/null differ
diff --git a/doc/build-expressions.docx b/doc/build-expressions.docx
deleted file mode 100644 (file)
index e4fef75..0000000
Binary files a/doc/build-expressions.docx and /dev/null differ
diff --git a/doc/build-expressions.pdf b/doc/build-expressions.pdf
deleted file mode 100644 (file)
index bf70430..0000000
Binary files a/doc/build-expressions.pdf and /dev/null differ
diff --git a/doc/build-package-data.docx b/doc/build-package-data.docx
deleted file mode 100644 (file)
index a2708cc..0000000
Binary files a/doc/build-package-data.docx and /dev/null differ
diff --git a/doc/comment-hi-rule.txt b/doc/comment-hi-rule.txt
deleted file mode 100644 (file)
index c5354c6..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-commit that introduced the weird sed stuff:\r
-\r
-commit a49e9cf3ff5af48c011c7ade9338b49b667b2201\r
-Author: Ian Lynagh <ian@well-typed.com>\r
-Date:   Fri Feb 22 22:18:50 2013 +0000\r
-\r
-     Add separate rules for all .hi files, rather than using %.hi style\r
-\r
-     If a file is created by a %.hi rule, and the actual filename isn't\r
-     mentioned in the makefiles, then make will treat it as an 'intermediate\r
-     file' and delete it when it is finished.\r
-\r
-     We'd been lucky so far that .hi files weren't actually being built due\r
-     to our rules (but rather, as side-effects of the .o rules). However,\r
-     when using -dynamic-too to build, we had a rule\r
-         $1/$2/build/%.$$(dyn_osuf): $1/$2/build/%.$$(v_hisuf)\r
-     which meant that building a .dyn_o could cause the rule for the\r
-     corresponding .hi to be used, and the .hi may then be deleted later on.\r
-     This was exacerbated by a bug in GNU make 3.81 which caused make to\r
-     enter an infinite loop if running in parallel mode:\r
-         http://lists.gnu.org/archive/html/bug-make/2013-02/msg00020.html\r
-\r
-     Adding\r
-         .SECONDARY:\r
-     would stop make from deleting the intermediate files. However, this\r
-     caused make to take a pathologically long time (it appeared to be\r
-     live-locked for 2 hours before I killed it) with our build system.\r
-\r
-     This patch instead creates lines like\r
-         $(eval $(call\r
-hi-rule,libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi\r
-libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o\r
-libraries/base/Unsafe/Coerce.hs))\r
-     in the .depend files, which results in a rule like\r
-         libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi\r
-libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o libraries/base/Unsafe/Coerce.hs ;\r
-     which, as the files are now all named in the makefiles, means they are\r
-     no longer intermediate files so do not get deleted.\r
-\r
diff --git a/doc/deepseq-build-progress.txt b/doc/deepseq-build-progress.txt
deleted file mode 100644 (file)
index 84845fe..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-# Skipping:
-"inplace/bin/ghc-cabal.exe" check libraries/deepseq
-
-# Done:
-"inplace/bin/ghc-cabal.exe"                        configure libraries/deepseq dist-install "" --with-ghc="C:/msys/home/chEEtah/ghc/inplace/bin/ghc-stage1.exe" --with-ghc-pkg="C:/msys/home/chEEtah/ghc/inplace/bin/ghc-pkg.exe"  --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --enable-library-profiling --disable-shared --configure-option=CFLAGS=" -fno-stack-protector   " --configure-option=LDFLAGS="   " --configure-option=CPPFLAGS="   " --gcc-options=" -fno-stack-protector       " --with-gcc="C:/msys/home/chEEtah/ghc/inplace/mingw/bin/gcc.exe" --with-ld="C:/msys/home/chEEtah/ghc/inplace/mingw/bin/ld.exe" --configure-option=--with-cc="C:/msys/home/chEEtah/ghc/inplace/mingw/bin/gcc.exe" --with-ar="/usr/bin/ar"          --with-alex="/usr/local/bin/alex"          --with-happy="/usr/local/bin/happy"
-Configuring deepseq-1.4.0.0...
-
-# Done:
-"C:/msys/home/chEEtah/ghc/inplace/bin/ghc-pkg.exe" update --force  libraries/deepseq/dist-install/inplace-pkg-config
-Reading package info from "libraries/deepseq/dist-install/inplace-pkg-config" ... done.
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/.depend-v-p.c_asm.tmp
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/.depend-v-p.c_asm.bit
-
-# Skipping:
-echo "libraries/deepseq_dist-install_depfile_c_asm_EXISTS = YES" >> libraries/deepseq/dist-install/build/.depend-v-p.c_asm.tmp
-
-# Skipping:
-mv libraries/deepseq/dist-install/build/.depend-v-p.c_asm.tmp libraries/deepseq/dist-install/build/.depend-v-p.c_asm
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp
-
-# Done:
-"inplace/bin/ghc-stage1.exe" -M -static  -H32m -O    -this-package-key deeps_FT5iVCELxOr62eHY0nbvnU -hide-all-packages -i -ilibraries/deepseq/. -ilibraries/deepseq/dist-install/build -ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/dist-install/build -Ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/.    -optP-include -optPlibraries/deepseq/dist-install/build/autogen/cabal_macros.h -package-key array_3w0nMK0JfaFJPpLFn2yWAJ -package-key base_469rOtLAqwTGFEOGWxSUiQ -package-key ghcpr_FgrV6cgh2JHBlbcx1OSlwt -Wall -XHaskell2010 -O2  -no-user-package-db -rtsopts      -odir libraries/deepseq/dist-install/build -hidir libraries/deepseq/dist-install/build -stubdir libraries/deepseq/dist-install/build -dep-makefile libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp -dep-suffix "" -dep-suffix "p_" -include-pkg-deps  libraries/deepseq/./Control/DeepSeq.hs
-
-# Skipping:
-echo "libraries/deepseq_dist-install_depfile_haskell_EXISTS = YES" >> libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp
-
-# Skipping:
-for dir in libraries/deepseq/dist-install/build/Control/; do if test ! -d $dir; then mkdir -p $dir; fi done
-
-# Skipping:
-grep -v ' : [a-zA-Z]:/' libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp > libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp2
-
-# Skipping:
-sed -e '/hs$/ p' -e '/hs$/ s/o /hi /g' -e '/hs$/ s/:/ : %hi: %o /' -e '/hs$/ s/^/$(eval $(call hi-rule,/' -e '/hs$/ s/$/))/' -e '/hs-boot$/ p' -e '/hs-boot$/ s/o-boot /hi-boot /g' -e '/hs-boot$/ s/:/ : %hi-boot: %o-boot /' -e '/hs-boot$/ s/^/$(eval $(call hi-rule,/' -e '/hs-boot$/ s/$/))/' libraries/deepseq/dist-install/build/.depend-v-p.haskell.tmp2 > libraries/deepseq/dist-install/build/.depend-v-p.haskell
-
-# Done:
-"inplace/bin/ghc-stage1.exe" -hisuf hi -osuf  o -hcsuf hc -static  -H32m -O    -this-package-key deeps_FT5iVCELxOr62eHY0nbvnU -hide-all-packages -i -ilibraries/deepseq/. -ilibraries/deepseq/dist-install/build -ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/dist-install/build -Ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/.    -optP-include -optPlibraries/deepseq/dist-install/build/autogen/cabal_macros.h -package-key array_3w0nMK0JfaFJPpLFn2yWAJ -package-key base_469rOtLAqwTGFEOGWxSUiQ -package-key ghcpr_FgrV6cgh2JHBlbcx1OSlwt -Wall -XHaskell2010 -O2  -no-user-package-db -rtsopts      -odir libraries/deepseq/dist-install/build -hidir libraries/deepseq/dist-install/build -stubdir libraries/deepseq/dist-install/build -split-objs  -c libraries/deepseq/./Control/DeepSeq.hs -o libraries/deepseq/dist-install/build/Control/DeepSeq.o
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a.contents
-
-# Skipping:
-/usr/bin/find libraries/deepseq/dist-install/build/Control/DeepSeq_o_split -name '*.o' -print >> libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a.contents
-
-# Skipping:
-echo        >> libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a.contents
-
-# Done:
-"/usr/bin/ar" q  libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a @libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a.contents
-/usr/bin/ar: creating libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU.a.contents
-
-# Done:
-"inplace/bin/ghc-stage1.exe" -hisuf p_hi -osuf  p_o -hcsuf p_hc -static -prof  -H32m -O    -this-package-key deeps_FT5iVCELxOr62eHY0nbvnU -hide-all-packages -i -ilibraries/deepseq/. -ilibraries/deepseq/dist-install/build -ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/dist-install/build -Ilibraries/deepseq/dist-install/build/autogen -Ilibraries/deepseq/.    -optP-include -optPlibraries/deepseq/dist-install/build/autogen/cabal_macros.h -package-key array_3w0nMK0JfaFJPpLFn2yWAJ -package-key base_469rOtLAqwTGFEOGWxSUiQ -package-key ghcpr_FgrV6cgh2JHBlbcx1OSlwt -Wall -XHaskell2010 -O2  -no-user-package-db -rtsopts      -odir libraries/deepseq/dist-install/build -hidir libraries/deepseq/dist-install/build -stubdir libraries/deepseq/dist-install/build -split-objs  -c libraries/deepseq/./Control/DeepSeq.hs -o libraries/deepseq/dist-install/build/Control/DeepSeq.p_o
-
-# Done:
-"C:/msys/home/chEEtah/ghc/inplace/mingw/bin/ld.exe"  -r -o libraries/deepseq/dist-install/build/HSdeeps_FT5iVCELxOr62eHY0nbvnU.o  libraries/deepseq/dist-install/build/Control/DeepSeq.o
-
-# Done:
-"rm" -f libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a.contents
-
-# Skipping:
-/usr/bin/find libraries/deepseq/dist-install/build/Control/DeepSeq_p_o_split -name '*.p_o' -print >> libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a.contents
-echo        >> libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a.contents
-
-# Done:
-"/usr/bin/ar" q  libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a @libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a.contents
-/usr/bin/ar: creating libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a
-
-# Skipping:
-"rm" -f libraries/deepseq/dist-install/build/libHSdeeps_FT5iVCELxOr62eHY0nbvnU_p.a.contents
-
-
-"inplace/bin/mkdirhier" libraries/deepseq/dist-install/doc/html/deepseq//.
-"C:/msys/home/chEEtah/ghc/inplace/bin/haddock" --odir="libraries/deepseq/dist-install/doc/html/deepseq" --no-tmp-comp-dir --dump-interface=libraries/deepseq/dist-install/doc/html/deepseq/deepseq.haddock --html --hoogle --title="deepseq-1.4.0.0: Deep evaluation of data structures" --prologue="libraries/deepseq/dist-install/haddock-prologue.txt"  --read-interface=../array-0.5.0.1,../array-0.5.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/array/dist-install/doc/html/array/array.haddock --read-interface=../base-4.8.0.0,../base-4.8.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/base/dist-install/doc/html/base/base.haddock --read-interface=../ghc-prim-0.3.1.0,../ghc-prim-0.3.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/ghc-prim/dist-install/doc/html/ghc-prim/ghc-prim.haddock --optghc=-hisuf --optghc=hi --optghc=-osuf --optghc=o --optghc=-hcsuf --optghc=hc --optghc=-static --optghc=-H32m --optghc=-O --optghc=-this-package-key --optghc=deeps_FT5iVCELxOr62eHY0nbvnU --optghc=-hide-all-packages --optghc=-i --optghc=-ilibraries/deepseq/. --optghc=-ilibraries/deepseq/dist-install/build --optghc=-ilibraries/deepseq/dist-install/build/autogen --optghc=-Ilibraries/deepseq/dist-install/build --optghc=-Ilibraries/deepseq/dist-install/build/autogen --optghc=-Ilibraries/deepseq/. --optghc=-optP-include --optghc=-optPlibraries/deepseq/dist-install/build/autogen/cabal_macros.h --optghc=-package-key --optghc=array_3w0nMK0JfaFJPpLFn2yWAJ --optghc=-package-key --optghc=base_469rOtLAqwTGFEOGWxSUiQ --optghc=-package-key --optghc=ghcpr_FgrV6cgh2JHBlbcx1OSlwt --optghc=-Wall --optghc=-XHaskell2010 --optghc=-O2 --optghc=-no-user-package-db --optghc=-rtsopts --optghc=-odir --optghc=libraries/deepseq/dist-install/build --optghc=-hidir --optghc=libraries/deepseq/dist-install/build --optghc=-stubdir --optghc=libraries/deepseq/dist-install/build --optghc=-split-objs    libraries/deepseq/./Control/DeepSeq.hs  +RTS -tlibraries/deepseq/dist-install/doc/html/deepseq/deepseq.haddock.t --machine-readable
-Haddock coverage:
-100% (  5 /  5) in 'Control.DeepSeq'
-
diff --git a/doc/demo.txt b/doc/demo.txt
deleted file mode 100644 (file)
index 7b3484b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-1. Rebuild only when argument list has changed\r
-2. Rebuild only when package-data.mk contents has changed\r
-\r
-* Add to Settings/GhcPkg.hs: package deepseq ? arg "--force"\r
-\r
-3. Reduce complexity when searching for source files by 40x:\r
-\r
-* compiler, was: 25 dirs (24 source dirs + autogen) x 406 modules x 2 extensions = 20300 candidates\r
-* compiler, now: 25 dirs x 20 module-dirs = 500 candidates\r
-\r
-4. Limit parallelism of ghc-cabal & ghc-pkg\r
-\r
-* https://mail.haskell.org/pipermail/ghc-commits/2013-May/001712.html\r
-* see ghc.mk, comment about parallel ghc-pkg invokations\r
-\r
-5. Discovered dead & duplicated code in the old build system, e.g:\r
-\r
-* Alex3 variable not needed as Alex 3.1 is required\r
-* There are no generated *.y/*.ly files, hence they can never be in the build directory\r
-* hsc2hs gets multuple "--cflag=-I$1/$2/build/autogen" flags in one invokation\r
-* No generated Haskell files actually require copying of *.(l)hs-boot files\r
-* Postprocessing primops.txt to remove lines starting with '#pragma GCC'\r
-* Use of IRIX_MAJOR variable that is never set while generating ghc_platform_boot.h
\ No newline at end of file
diff --git a/doc/meeting-16-June-2015.txt b/doc/meeting-16-June-2015.txt
deleted file mode 100644 (file)
index 72c4586..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-Shaking up GHC (3rd shake) meeting, 16 June 2015\r
-\r
-Things to discuss:\r
-================================================\r
-\r
-1. Parameters of the build system that are still not user configurable:\r
-\r
-* targetDirectory (Targets.hs) -- is this important? Can be moved to\r
-UserSettings.hs, but will clutter it (what is the good balance of\r
-what we expose to users?). Can be made into a conditional expression\r
-similar to userWays, userPackages and userSettings, but is it worth it?\r
-\r
-=> DONE: make this configurable.\r
-\r
-* knownPackages (Targets.hs) -- fix by adding knownUserPackages? A nasty\r
-import cycle is then created between Targets.hs and UserSettings.hs. Possible\r
-solution: add file Settings/Targets.hs which will actually put two things\r
-together similar to how it's done with userWays, userPackages and userSettings.\r
-\r
-=> DONE: keep duplication\r
-\r
-* integerLibraryImpl (Switches.hs) -- DONE: fix by having three integer library\r
-packages in Targets.hs and choosing which one to build in userPackages, e.g.:\r
-\r
-userPackages = remove [integerGmp2] <> append [integerSimple]\r
-\r
-(Maybe a useful pattern: replace a b = remove a <> append b.)\r
-\r
-* In general, should Targets.hs (or any other file) be editable by users?\r
-Ideally, there should only be one place for users to look: UserSettings.hs.\r
-\r
-=> Only UserSettings.hs is touched by users.\r
-\r
-* Any other parameters I missed which should be user configurable?\r
-\r
-=> Look up config.mk\r
-\r
-================================================\r
-\r
-2. When predicates (e.g. buildHaddock) are moved from configuration files to\r
-UserSettings.hs we no longer track their state in oracles. This may lead to an\r
-inconsistent state of the build system. This is a special case of a more general\r
-problem: how do we accurately track changes in the build system, specifically\r
-in UserSettings.hs? Although in general this is a hard problem, this special\r
-case may be easier to solve: e.g., just channel everything exported from\r
-UserSettings.hs through oracles? Another alternative which was discussed\r
-previously: pass the final lists of arguments through oracles. Care must\r
-be taken though as final command lines can be as large as 5Mb and may bloat\r
-the Shake database!\r
-\r
-=> DONE: hash command lines and channel them through oracles\r
-\r
-================================================\r
-\r
-3. Discuss if/how the current approach makes recording provenance information\r
-possible. (Should probably be implemented only after the first successful\r
-complete build though.)\r
-\r
-==============================================\r
-\r
-4. Duplication of information in knownPackages and packages.\r
-\r
-I'd like to enforce the following invariant: whenever a package is used\r
-in userPackages, it must also be placed in knownPackages/knownUserPackages.\r
-\r
-This feels awkward/redundant. The reason for having knownPackages is that I\r
-need a list of packages outside the Action monad for it to be useable in\r
-packageRules (see Rules.hs). The current solution seems to be the cheapest way\r
-to achieve that. An alternative would be to have one additional implementation\r
-of interpret, which would extract the 'support' from a given expression, i.e.\r
-the set of packages that can occur in a given expression, regardless of how\r
-predicates evaluate (without looking up oracles which live in the Action monad).\r
-\r
-For example,\r
-\r
-interpret' (stage0 ? base <> stage1 ? compiler) == [base, compiler]\r
-\r
-This seems to require a lot of extra code though. Hence redundant knownPackages.\r
-\r
-==============================================\r
-\r
-5. (Just realised that the following is trickier than I thought. Maybe not\r
-worth raising at this meeting if not enough time.)\r
-\r
-I'd like interpret/interpretDiff to be total functions. It should be\r
-possible to check at compile which questions a given environment can\r
-answer and raise a *compile* error if the expression needs to know more. Why\r
-is this useful? For example, I'd like to allow only getStage and\r
-platform-specific predicates in userPackages (since nothing else is known at\r
-this point; one can argue that we should even forbid to use such predicates\r
-when constructing expressions of type Packages).\r
-\r
-For example, consider an environment envS that can only answer 'getStage'\r
-question, and environment envSP that can answer questions 'getStage' and\r
-'getPackage'. Now consider two expressions:\r
-\r
-exprS = stage0 ? arg "foo"\r
-\r
-exprSP = stage0 ? package base ? arg "bar"\r
-\r
-Now I'd like the following to produce a compile error:\r
-\r
-interpret envS exprSP\r
-\r
-However, all other combinations should be fine:\r
-\r
-interpret envS  exprS\r
-interpret envSP exprS\r
-interpret envSP exprSP\r
-\r
-I played with some possible solutions using type classes, but they all\r
-seem clumsy/heavy, e.g. carrying (GetStage env, GetPackage env) constraints\r
-with any expression similar to exprSP.\r
-\r
-Right now I have:\r
-\r
-data Environment = Environment\r
-     {\r
-        getStage   :: Stage,\r
-        getPackage :: Package,\r
-        getBuilder :: Builder,\r
-        getFile    :: FilePath,\r
-        getWay     :: Way\r
-     }\r
-\r
-defaultEnvironment :: Environment\r
-defaultEnvironment = Environment\r
-    {\r
-        getStage   = error "Stage not set in the environment",\r
-        getPackage = error "Package not set in the environment",\r
-        getBuilder = error "Builder not set in the environment",\r
-        getFile    = error "File not set in the environment",\r
-        getWay     = error "Way not set in the environment"\r
-    }\r
-\r
-which is annoying and leads to many partial functions all over the build\r
-system. Haskell should be above that!\r
-\r
-Any ideas? Having\r
-\r
-(GetStage env, GetPackage env, GetBuilder env, ...) => DiffExpr env\r
-\r
-all over the build system seems unsatisfactory.\r
-\r
-Note, environment is (always?) built in the following order: getStage,\r
-getPackage, getBuilder, getFile, getWay. Hence, it may be OK to have only\r
-6 combinations of getters in a type constraint, not 2^5, e.g.: empty,\r
-GetStage env, (GetStage env, GetPackage env), etc.\r
-\r
-==============================================\r
-DONE:\r
-\r
-stageEnvironment :: Environment\r
-stageEnvironment stage = Environment\r
-    {\r
-        getStage   = stage\r
-        getPackage = error "stageEnvironment: Package not set in the environment",\r
-        getBuilder = error "Builder not set in the environment",\r
-        getFile    = error "File not set in the environment",\r
-        getWay     = error "Way not set in the environment"\r
-    }\r
-\r
-...\r
diff --git a/doc/meeting-25-September-2015.txt b/doc/meeting-25-September-2015.txt
deleted file mode 100644 (file)
index 166c3d8..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-Shaking up GHC meeting, 25 September 2015\r
-\r
-Things to discuss:\r
-================================================\r
-\r
-1. Progress report\r
-------------------\r
-\r
-Done:\r
-* Build all libraries and compiler\r
-* Generate code (alex, happy, hsc2hs, genprimopcode, Config.hs, ghc_boot_platform.h)\r
-* Track changes in the build system\r
-* Extract accurate package dependencies from .cabal files\r
-* Improve complexity when searching for module files (40x)\r
-\r
-Todo:                                   Target:\r
-* Build utils, rts & put in GHC tree    October\r
-* Better dependencies (.hs-incl etc.)   November\r
-* Support command line options          December\r
-* Validate                              November-December\r
-* Documentation                         December-January\r
-* Journal paper + provenance                   December-February\r
-\r
-Notes:\r
-* Zero build: under 7 seconds\r
-* Full build (when compilation not required): under 12 minutes on 4 cores\r
-* Limited parallelism: ghc-cabal/ghc-pkg not thread-safe, ghc fails on > 4 cores\r
-* Codebase growing: 50 files\r
-\r
-Things to do:\r
--- Use OrderOnly for ordering ghc-cabal's\r
--- Fix parallel invokations of ghc-cabal\r
--- 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!\r
--- Rename files -> outputs, sources -> inputs\r
--- Start separating general bits from GHC bits. A separate package for Args maybe\r
--- Look up Bazel and Buck\r
--- Decompose args into builder-specific and package-specific\r
-\r
-2. Seemingly dead-code\r
-----------------------\r
-\r
-I used to carefully migrate all code to the new build system even when it seemed dead, but this is often getting in the way of readability. New proposal: drop all such suspicious instances and bring them back only if/when things break. \r
-\r
-Example (generating primops.txt):\r
-\r
-C:/msys/home/chEEtah/ghc/inplace/mingw/bin/gcc.exe -E -undef -traditional -P -Iincludes -Iincludes/dist -Iincludes/dist-derivedconstants/header -Iincludes/dist-ghcconstants/header  -Icompiler/stage2 -x c compiler/prelude/primops.txt.pp | grep -v '^#pragma GCC' > compiler/stage2/build/primops.txt\r
-\r
-But primops.txt.pp has no lines containing #pragma GCC. Dead code?\r
-\r
-Another example (generating ghc_boot_platform.h):\r
-\r
-ifeq "$(TargetOS_CPP)" "irix"\r
-    @echo "#ifndef $(IRIX_MAJOR)_TARGET_OS"                   >> $@\r
-    @echo "#define $(IRIX_MAJOR)_TARGET_OS 1"                 >> $@\r
-    @echo "#endif"                                            >> $@\r
-endif\r
-\r
-But IRIX_MAJOR is never set anywhere in the build system. Dead code? YES\r
-\r
-\r
-3. Command line options\r
------------------------\r
-\r
-Discuss the need for command line options, e.g. 'make GhcDebugged=YES'. Do we need to  support all options as in the old build system?\r
-\r
-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?\r
-\r
--- Try to support these first:\r
-* EXTRA_HC_OPTS = file "asd" ? arg ".."\r
-* EXTRA_CC_OPTS \r
-* GhcDebugged = True\r
-* make 2\r
-\r
-\r
-4. Better names for build stages\r
---------------------------------\r
-\r
-Currently we have Stage0, Stage1, etc. It is not particularly clear from the names what they stand for (as a newcomer to the build system I used to look up what these numbers stand for all the time). Shall we use this opportunity to pick more helpful names, for example:\r
-\r
-Stage0 -> Boot    \r
-Stage1 -> Interim \r
-Stage2 -> Install \r
-Stage3 -> Selftest\r
-\r
-\r
-5. Do we need a name for the new build system?\r
-----------------------------------------------\r
-\r
-* At least we need a name for the folder in the GHC tree.\r
-\r
-* If we call it 'shake' there may be a confusion with the Shake library.\r
-\r
-* In future discussions/announcements/etc. calling it 'the new shake-based\r
-  build system' is overly verbose. Calling it 'shake' is confusing.\r
-\r
-* I haven't thought about any names yet, just checking whether we want to. \r
-\r
--- Use mk2
\ No newline at end of file