HEADS-UP: Git submodule conversion imminent

Hello GHC Devs! In order to not drag this out any longer, I'll completing the submodule conversion in the next few hours by converting the remaining sub-repo packages into proper submodules. This is represents phase 1 of the reorganization (phase 2 comprises officially transitioning the push-urls of *some* the packages to github.com/haskell as happened with haddock). However, this phase 1 is important to get done early (ideally half a year ago) in order to make 'ghc-complete' bit more redundant (I hope Joachim doesn't mind... :-) ) and allow to properly 'git bisect' as far back as possible into the past. While the workflow changes[1] to additionally have the sub-repo change also registed in ghc.git, practically, this should affect only a minority of you, as the remaining packages (see list at the bottom of this mail) to be converted into submodules are modified *very* seldom. This will be similiar to the conversion of haddock.git into a proper submodule of which you read up in * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4049 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4072 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4077 List of packages converted into proper submodules: * libffi-tarballs libffi-tarballs.git * utils/hsc2hs hsc2hs.git * libraries/array packages/array.git * libraries/deepseq packages/deepseq.git * libraries/directory packages/directory.git * libraries/filepath packages/filepath.git * libraries/haskell98 packages/haskell98.git * libraries/haskell2010 packages/haskell2010.git * libraries/hoopl packages/hoopl.git * libraries/hpc packages/hpc.git * libraries/old-locale packages/old-locale.git * libraries/old-time packages/old-time.git * libraries/process packages/process.git * libraries/unix packages/unix.git * nofib nofib.git * libraries/parallel packages/parallel.git * libraries/stm packages/stm.git * libraries/dph packages/dph.git Ideally, you won't have any outstanding changes in those repos (hint, hint!) to make the transition for your GHC clones easier. I'll follow up with more specific instructions as soon as I've pushed the changes. N.B.: ghc-tarballs will *not* become a submodule, as it would impose a non-neglible cost on everyone, not only the developers on windows and, moreover, the plan is to turn ghc-tarballs into a scripted download (or maybe something git-annex based) as Git is not really suited for such large blobs. See also discussion at http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4895 [1]: For the new workflow in case you really happen to have to touch one of the affected modules, see the work-in-progress Wiki entry at https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules#Maki...

It's done! After pulling the latest ghc.git commit (and assuming you have made sure you have no unpushed data laying around in the repos listed below) you'll have to either run - git submodule update --init *or* - ./sync-all get (a mere "./sync-all pull" will just call "git submodule update" w/o the "--init" option) After that, a 'git submodule status' (for ghc.git @ db19c665e) should look like a0088d1da0e171849ddb47a46c869856037a01d1 libffi-tarballs (ghc-7.8.1-release) 597ed8f613db327cfab958aa64da6c0f9e1ee291 libraries/Cabal (Cabal-1.20.0.0-release-1-g597ed8f) c51e81a43cd5e9540453bd5ca6da8992245a4774 libraries/Win32 (Win32-2.3.0.2-release) 26ff04744117b0ad8233a1a2b5635fa1277b88d9 libraries/array (array-0.5.0.0-release) 2647d42f19bedae46c020fc3af029073f5690d5b libraries/binary (binary-0.7.1.0-release-2-g2647d42) 6ad8c0d27bcff28c80684a29b57d7a8dbf00caca libraries/bytestring (bytestring-0.10.4.0-release) e84c5d2145415cb0beacce0909a551ae5e28d396 libraries/containers (containers-0.5.5.1-release-11-ge84c5d2) 3a9c431e4c89ca506aae8e80867cfcde8c099724 libraries/deepseq (deepseq-1.3.0.2-release-1-g3a9c431) 0c64d5420e54bb871f0407a4ec3155c6be600756 libraries/directory (directory-1.2.1.0-release) 3ebad521cd1e3b5573d97b483305ca465a9cba69 libraries/dph (2009-06-25-1145-g3ebad52) 486373cb6bc3de8bf7f0b8532558c5fff32df20a libraries/filepath (filepath-1.3.0.2-release) 5579fc2a2949a143ec8946b9bc9dd2ba957bf091 libraries/haskeline (0.7.1.2-2-g5579fc2) c0c87ad53e377aa00f4897bc729c261459b6048a libraries/haskell2010 (haskell2010-1.1.2.0-release-1-gc0c87ad) cc6bbbf2bf4eaea57062043cbb6e7c5d6c2f42a9 libraries/haskell98 (haskell98-2.0.0.3-release-1-gcc6bbbf) a2e34db038b737365c4126f69b1a32eae84dae6b libraries/hoopl (hoopl-3.10.0.1-release-1-ga2e34db) d6ac0c532f12d30af778eeb285da9031bb06fddb libraries/hpc (hpc-0.6.0.1-release-1-gd6ac0c5) 7e7f6722895af36ca4e2f60f2fdfdc056b70db0b libraries/old-locale (old-locale-1.0.0.6-release) 89017411036b24875393e4fd6ca8ef92fc181ad2 libraries/old-time (old-time-1.1.0.2-release) 03da43303ed05ace65cb24cee1dbc1766c694233 libraries/parallel (parallel-3.2.0.4-release) 110b105c491387a73dd37b4f86a686ed131767b2 libraries/pretty (pretty-1.1.1.1-release) be63ee15d961dc1b08bc8853b9ff97708551ef36 libraries/primitive (primitive-0.5.2.1-release) b39e340bb1fa887842e99db9824906858515cdf7 libraries/process (process-1.2.0.0-release-3-gb39e340) 180aa65507d5b7c63d9f438ff908774bafc88d0d libraries/random (random-1.0.1.1-release-4-g180aa65) 52c3028aff127fd957cdaf1ec7605fc533a59961 libraries/stm (stm-2.4.3-release-1-g52c3028) 1ce8379744179e5c7f8d88049aaed4d3be52e323 libraries/terminfo (0.4.0.0) adafac26307cffab0be20c126385ab161c259237 libraries/time (time-1.4.2-release) 5df683cd87cb0ed13f915f73b83a7673e18aa294 libraries/transformers (0_4_0_0) cdc3ae7b087ac7451298a5b87fe2548fb74c2fdc libraries/unix (unix-2.7.0.1-release-6-gcdc3ae7) a6049abce040713e9a5f175887cf70d12b9057c6 libraries/vector (vector-0.10.9.1-release-1-ga6049ab) fb9e0bbb69e15873682a9f25d39652099a3ccac1 libraries/xhtml (3000.2.1) d98f7038d1111e515db9cc27d5d3bbe237e6e14f nofib (2009-06-25-218-gd98f703) 5412c262f403e52be45d607b34eb3a5806ea2a76 utils/haddock (haddock-2.15-start-57-g5412c26) 4a0f67704d89712f8493a0c7eccffa9243d6ef09 utils/hsc2hs (2009-06-25-78-g4a0f677) N.B.: The very first character in each line is a single whitespace. If there's a '-' or '+' your submodule are not in the commit state recorded in ghc.git (a '-' specifically means the submodule is not initialized properly) For further information, please read the current documentation at https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules and let me know what all needs to improved. On 2014-06-25 at 09:47:04 +0200, Herbert Valerio Riedel wrote: [...]
This will be similiar to the conversion of haddock.git into a proper submodule of which you read up in
* http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4049 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4072 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4077
List of packages converted into proper submodules:
* libffi-tarballs libffi-tarballs.git * utils/hsc2hs hsc2hs.git * libraries/array packages/array.git * libraries/deepseq packages/deepseq.git * libraries/directory packages/directory.git * libraries/filepath packages/filepath.git * libraries/haskell98 packages/haskell98.git * libraries/haskell2010 packages/haskell2010.git * libraries/hoopl packages/hoopl.git * libraries/hpc packages/hpc.git * libraries/old-locale packages/old-locale.git * libraries/old-time packages/old-time.git * libraries/process packages/process.git * libraries/unix packages/unix.git * nofib nofib.git * libraries/parallel packages/parallel.git * libraries/stm packages/stm.git * libraries/dph packages/dph.git
Ideally, you won't have any outstanding changes in those repos (hint, hint!) to make the transition for your GHC clones easier. I'll follow up with more specific instructions as soon as I've pushed the changes.
[...]

Thank you!!!! Geoff On 6/25/14, 4:46 AM, Herbert Valerio Riedel wrote:
It's done!
After pulling the latest ghc.git commit (and assuming you have made sure you have no unpushed data laying around in the repos listed below) you'll have to either run
- git submodule update --init
*or*
- ./sync-all get
(a mere "./sync-all pull" will just call "git submodule update" w/o the "--init" option)
After that, a 'git submodule status' (for ghc.git @ db19c665e) should look like
a0088d1da0e171849ddb47a46c869856037a01d1 libffi-tarballs (ghc-7.8.1-release) 597ed8f613db327cfab958aa64da6c0f9e1ee291 libraries/Cabal (Cabal-1.20.0.0-release-1-g597ed8f) c51e81a43cd5e9540453bd5ca6da8992245a4774 libraries/Win32 (Win32-2.3.0.2-release) 26ff04744117b0ad8233a1a2b5635fa1277b88d9 libraries/array (array-0.5.0.0-release) 2647d42f19bedae46c020fc3af029073f5690d5b libraries/binary (binary-0.7.1.0-release-2-g2647d42) 6ad8c0d27bcff28c80684a29b57d7a8dbf00caca libraries/bytestring (bytestring-0.10.4.0-release) e84c5d2145415cb0beacce0909a551ae5e28d396 libraries/containers (containers-0.5.5.1-release-11-ge84c5d2) 3a9c431e4c89ca506aae8e80867cfcde8c099724 libraries/deepseq (deepseq-1.3.0.2-release-1-g3a9c431) 0c64d5420e54bb871f0407a4ec3155c6be600756 libraries/directory (directory-1.2.1.0-release) 3ebad521cd1e3b5573d97b483305ca465a9cba69 libraries/dph (2009-06-25-1145-g3ebad52) 486373cb6bc3de8bf7f0b8532558c5fff32df20a libraries/filepath (filepath-1.3.0.2-release) 5579fc2a2949a143ec8946b9bc9dd2ba957bf091 libraries/haskeline (0.7.1.2-2-g5579fc2) c0c87ad53e377aa00f4897bc729c261459b6048a libraries/haskell2010 (haskell2010-1.1.2.0-release-1-gc0c87ad) cc6bbbf2bf4eaea57062043cbb6e7c5d6c2f42a9 libraries/haskell98 (haskell98-2.0.0.3-release-1-gcc6bbbf) a2e34db038b737365c4126f69b1a32eae84dae6b libraries/hoopl (hoopl-3.10.0.1-release-1-ga2e34db) d6ac0c532f12d30af778eeb285da9031bb06fddb libraries/hpc (hpc-0.6.0.1-release-1-gd6ac0c5) 7e7f6722895af36ca4e2f60f2fdfdc056b70db0b libraries/old-locale (old-locale-1.0.0.6-release) 89017411036b24875393e4fd6ca8ef92fc181ad2 libraries/old-time (old-time-1.1.0.2-release) 03da43303ed05ace65cb24cee1dbc1766c694233 libraries/parallel (parallel-3.2.0.4-release) 110b105c491387a73dd37b4f86a686ed131767b2 libraries/pretty (pretty-1.1.1.1-release) be63ee15d961dc1b08bc8853b9ff97708551ef36 libraries/primitive (primitive-0.5.2.1-release) b39e340bb1fa887842e99db9824906858515cdf7 libraries/process (process-1.2.0.0-release-3-gb39e340) 180aa65507d5b7c63d9f438ff908774bafc88d0d libraries/random (random-1.0.1.1-release-4-g180aa65) 52c3028aff127fd957cdaf1ec7605fc533a59961 libraries/stm (stm-2.4.3-release-1-g52c3028) 1ce8379744179e5c7f8d88049aaed4d3be52e323 libraries/terminfo (0.4.0.0) adafac26307cffab0be20c126385ab161c259237 libraries/time (time-1.4.2-release) 5df683cd87cb0ed13f915f73b83a7673e18aa294 libraries/transformers (0_4_0_0) cdc3ae7b087ac7451298a5b87fe2548fb74c2fdc libraries/unix (unix-2.7.0.1-release-6-gcdc3ae7) a6049abce040713e9a5f175887cf70d12b9057c6 libraries/vector (vector-0.10.9.1-release-1-ga6049ab) fb9e0bbb69e15873682a9f25d39652099a3ccac1 libraries/xhtml (3000.2.1) d98f7038d1111e515db9cc27d5d3bbe237e6e14f nofib (2009-06-25-218-gd98f703) 5412c262f403e52be45d607b34eb3a5806ea2a76 utils/haddock (haddock-2.15-start-57-g5412c26) 4a0f67704d89712f8493a0c7eccffa9243d6ef09 utils/hsc2hs (2009-06-25-78-g4a0f677)
N.B.: The very first character in each line is a single whitespace. If there's a '-' or '+' your submodule are not in the commit state recorded in ghc.git (a '-' specifically means the submodule is not initialized properly)
For further information, please read the current documentation at
https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules
and let me know what all needs to improved.
On 2014-06-25 at 09:47:04 +0200, Herbert Valerio Riedel wrote:
[...]
This will be similiar to the conversion of haddock.git into a proper submodule of which you read up in
* http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4049 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4072 * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4077
List of packages converted into proper submodules:
* libffi-tarballs libffi-tarballs.git * utils/hsc2hs hsc2hs.git * libraries/array packages/array.git * libraries/deepseq packages/deepseq.git * libraries/directory packages/directory.git * libraries/filepath packages/filepath.git * libraries/haskell98 packages/haskell98.git * libraries/haskell2010 packages/haskell2010.git * libraries/hoopl packages/hoopl.git * libraries/hpc packages/hpc.git * libraries/old-locale packages/old-locale.git * libraries/old-time packages/old-time.git * libraries/process packages/process.git * libraries/unix packages/unix.git * nofib nofib.git * libraries/parallel packages/parallel.git * libraries/stm packages/stm.git * libraries/dph packages/dph.git
Ideally, you won't have any outstanding changes in those repos (hint, hint!) to make the transition for your GHC clones easier. I'll follow up with more specific instructions as soon as I've pushed the changes. [...]
ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

Herbert,
It's done!
Thanks. I tried to build GHC HEAD on Mac. I did: % git clone git://git.haskell.org/ghc.git % cd ghc % ./sync-all get % CPUS=10 sh validate Unfortunately, I got the following errors: ---- "inplace/bin/ghc-stage1" -optc-m64 -optc-fno-stack-protector -optc-Werror -optc- Wall -optc-Ilibraries/unix/include -optc-I'/Users/kazu/work/ghc/libraries/time/i nclude' -optc-I'/Users/kazu/work/ghc/libraries/bytestring/include' -optc-I'/User s/kazu/work/ghc/libraries/base/include' -optc-I'/Users/kazu/work/ghc/libraries/i nteger-gmp/include' -optc-I'/Users/kazu/work/ghc/rts/dist/build' -optc-I'/Users/ kazu/work/ghc/includes' -optc-I'/Users/kazu/work/ghc/includes/dist-derivedconsta nts/header' -optc-Wno-unknown-pragmas -static -H32m -O -Werror -Wall -H64m -O0 -package-name unix-2.7.0.1 -hide-all-packages -i -ilibraries/unix/. -ilibrari es/unix/dist-install/build -ilibraries/unix/dist-install/build/autogen -Ilibrari es/unix/dist-install/build -Ilibraries/unix/dist-install/build/autogen -Ilibrari es/unix/include -optP-include -optPlibraries/unix/dist-install/build/autogen/cabal_macros.h -package base-4.7.1.0 -package bytestring-0.10.4.0 -package time- 1.4.2 -Wall -XHaskell2010 -O2 -O -dcore-lint -fno-warn-deprecated-flags -no-use r-package-db -rtsopts -c libraries/unix/cbits/dirUtils.c -o libraries/unix/ dist-install/build/cbits/dirUtils.o libraries/ghc-prim/cbits/atomic.c:108:10: error: implicit declaration of function '__sync_fetch_and_nand' is invalid : libraries/ghc-prim/cbits/atomic.c:108:10: note: did you mean '__sync_fetch_and_and'? libraries/ghc-prim/cbits/atomic.c:78:10: note: '__sync_fetch_and_and' declared here return __sync_fetch_and_and(x, (StgWord8) val); ^ 1 error generated. ---- I think that I could validate GHC HEAD yesterday. --Kazu

This looks like my fault. I will look into it. Which gcc are you using?
clang?
On Thu, Jun 26, 2014 at 3:18 AM, Kazu Yamamoto
Herbert,
It's done!
Thanks.
I tried to build GHC HEAD on Mac. I did:
% git clone git://git.haskell.org/ghc.git % cd ghc % ./sync-all get % CPUS=10 sh validate
Unfortunately, I got the following errors:
---- "inplace/bin/ghc-stage1" -optc-m64 -optc-fno-stack-protector -optc-Werror -optc- Wall -optc-Ilibraries/unix/include -optc-I'/Users/kazu/work/ghc/libraries/time/i nclude' -optc-I'/Users/kazu/work/ghc/libraries/bytestring/include' -optc-I'/User s/kazu/work/ghc/libraries/base/include' -optc-I'/Users/kazu/work/ghc/libraries/i nteger-gmp/include' -optc-I'/Users/kazu/work/ghc/rts/dist/build' -optc-I'/Users/ kazu/work/ghc/includes' -optc-I'/Users/kazu/work/ghc/includes/dist-derivedconsta nts/header' -optc-Wno-unknown-pragmas -static -H32m -O -Werror -Wall -H64m -O0 -package-name unix-2.7.0.1 -hide-all-packages -i -ilibraries/unix/. -ilibrari es/unix/dist-install/build -ilibraries/unix/dist-install/build/autogen -Ilibrari es/unix/dist-install/build -Ilibraries/unix/dist-install/build/autogen -Ilibrari es/unix/include -optP-include -optPlibraries/unix/dist-install/build/autogen/cabal_macros.h -package base-4.7.1.0 -package bytestring-0.10.4.0 -package time- 1.4.2 -Wall -XHaskell2010 -O2 -O -dcore-lint -fno-warn-deprecated-flags -no-use r-package-db -rtsopts -c libraries/unix/cbits/dirUtils.c -o libraries/unix/ dist-install/build/cbits/dirUtils.o
libraries/ghc-prim/cbits/atomic.c:108:10: error: implicit declaration of function '__sync_fetch_and_nand' is invalid :
libraries/ghc-prim/cbits/atomic.c:108:10: note: did you mean '__sync_fetch_and_and'?
libraries/ghc-prim/cbits/atomic.c:78:10: note: '__sync_fetch_and_and' declared here return __sync_fetch_and_and(x, (StgWord8) val); ^ 1 error generated. ----
I think that I could validate GHC HEAD yesterday.
--Kazu _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

Hi Johan,
This looks like my fault. I will look into it. Which gcc are you using? clang?
% which gcc /usr/bin/gcc % gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.2.0 Thread model: posix I'm not using any wrappers for gcc(clang). --Kazu

As a very temporary (and wrong) workaround you can edit
libraries/ghc-prim/cbits/atomic.c to have the functions involving nand all
return 0. I should have a fix soon.
On Thu, Jun 26, 2014 at 7:58 AM, Kazu Yamamoto
Hi Johan,
This looks like my fault. I will look into it. Which gcc are you using? clang?
% which gcc /usr/bin/gcc % gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.2.0 Thread model: posix
I'm not using any wrappers for gcc(clang).
--Kazu

Should be fixed in 04dd7cb3423f1940242fdfe2ea2e3b8abd68a177.
On Thu, Jun 26, 2014 at 8:07 AM, Johan Tibell
As a very temporary (and wrong) workaround you can edit libraries/ghc-prim/cbits/atomic.c to have the functions involving nand all return 0. I should have a fix soon.
On Thu, Jun 26, 2014 at 7:58 AM, Kazu Yamamoto
wrote: Hi Johan,
This looks like my fault. I will look into it. Which gcc are you using? clang?
% which gcc /usr/bin/gcc % gcc --version Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.2.0 Thread model: posix
I'm not using any wrappers for gcc(clang).
--Kazu

Hi herbert,
I followed your instructions, and one of my repos converted well:
e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm
(stm-2.4.3-release-3-ge8a901f)
the other gave:
-e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm
How can I salvage the situation?
Thanks,
Gabor
On 6/25/14, Herbert Valerio Riedel
It's done!
After pulling the latest ghc.git commit (and assuming you have made sure you have no unpushed data laying around in the repos listed below) you'll have to either run
- git submodule update --init
*or*
- ./sync-all get
(a mere "./sync-all pull" will just call "git submodule update" w/o the "--init" option)
After that, a 'git submodule status' (for ghc.git @ db19c665e) should look like
[snip]

On 2014-06-28 at 13:49:15 +0200, Gabor Greif wrote:
Hi herbert,
I followed your instructions, and one of my repos converted well:
e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm (stm-2.4.3-release-3-ge8a901f)
the other gave:
-e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm
How can I salvage the situation?
That (the '-'-sign) simply means the 'libraries/stm' submodule wasn't properly initalized; running 'git submodule update --init' should usually take care of initializing newly added submodules.

Hmm, I guess this was the reason, when I did that, I got
fatal: Needed a single revision Unable to find current revision in submodule path 'libraries/parallel'
so the other submodules were not initialized.
What might be wrong with 'libraries/parallel' ?
Thanks,
Gabor
On 6/28/14, Herbert Valerio Riedel
On 2014-06-28 at 13:49:15 +0200, Gabor Greif wrote:
Hi herbert,
I followed your instructions, and one of my repos converted well:
e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm (stm-2.4.3-release-3-ge8a901f)
the other gave:
-e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm
How can I salvage the situation?
That (the '-'-sign) simply means the 'libraries/stm' submodule wasn't properly initalized;
running 'git submodule update --init' should usually take care of initializing newly added submodules.

On 2014-06-28 at 14:19:15 +0200, Gabor Greif wrote:
Hmm, I guess this was the reason, when I did that, I got
fatal: Needed a single revision Unable to find current revision in submodule path 'libraries/parallel'
so the other submodules were not initialized.
What might be wrong with 'libraries/parallel' ?
Tbh, not sure, but if you know you have nothing important in libraries/parallel, rm -rf libraries/parallel and retry a 'git submodule update --init' This is essentially the suggested course of action according to http://www.gostai.com/downloads/urbi-sdk-2.0/doc/urbi-sdk.htmldir/faq.html#x... and other results you may get if you google for that error
Thanks,
Gabor
On 6/28/14, Herbert Valerio Riedel
wrote: On 2014-06-28 at 13:49:15 +0200, Gabor Greif wrote:
Hi herbert,
I followed your instructions, and one of my repos converted well:
e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm (stm-2.4.3-release-3-ge8a901f)
the other gave:
-e8a901fddc88c6560af34e18a5201deeb8d51557 libraries/stm
How can I salvage the situation?
That (the '-'-sign) simply means the 'libraries/stm' submodule wasn't properly initalized;
running 'git submodule update --init' should usually take care of initializing newly added submodules.
-- "Elegance is not optional" -- Richard O'Keefe

On 6/28/14, Herbert Valerio Riedel
On 2014-06-28 at 14:19:15 +0200, Gabor Greif wrote:
Hmm, I guess this was the reason, when I did that, I got
fatal: Needed a single revision Unable to find current revision in submodule path 'libraries/parallel'
so the other submodules were not initialized.
What might be wrong with 'libraries/parallel' ?
Tbh, not sure, but if you know you have nothing important in libraries/parallel,
rm -rf libraries/parallel
and retry a 'git submodule update --init'
This is essentially the suggested course of action according to
http://www.gostai.com/downloads/urbi-sdk-2.0/doc/urbi-sdk.htmldir/faq.html#x...
and other results you may get if you google for that error
Great, that helped! Cheers, Gabor

Herbert, all, I just pulled the new HEAD and have a question which I believe was not addressed so far. In my work on the GHC tree I never pulled the dph subrepo because the only thing it adds for me is extra build time (of course I pull it for my validation tree because I have no choice). Now it seems that getting rid of dph is not that simple. If I `rm -df libraries/dph` then it gets restored after `./sync-all pull`. Running `rm -df libraries/dph/*` seems to prevent that but I imagine there will be problems if the dph submodule actually gets modified and I try to pull the latest version. Moreover in both cases `git status` lists the submodule content as modified, which I see as noise. So is there a good way of removing dph from the source tree? The only solution I see is to remove library/dph from the build tree (I use the lndir trick). This means I have DPH in the source tree but not in the symlinked build tree, which is not perfect, but acceptable. Janek Dnia sobota, 28 czerwca 2014, Gabor Greif napisał:
On 6/28/14, Herbert Valerio Riedel
wrote: On 2014-06-28 at 14:19:15 +0200, Gabor Greif wrote:
Hmm, I guess this was the reason, when I did that, I got
fatal: Needed a single revision Unable to find current revision in submodule path 'libraries/parallel'
so the other submodules were not initialized.
What might be wrong with 'libraries/parallel' ?
Tbh, not sure, but if you know you have nothing important in libraries/parallel,
rm -rf libraries/parallel
and retry a 'git submodule update --init'
This is essentially the suggested course of action according to
http://www.gostai.com/downloads/urbi-sdk-2.0/doc/urbi-sdk.htmldir/faq.htm l#x22-10400014.1.4
and other results you may get if you google for that error
Great, that helped!
Cheers,
Gabor
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

On 2014-06-30 at 08:45:57 +0200, Jan Stolarek wrote:
Herbert, all,
I just pulled the new HEAD and have a question which I believe was not addressed so far. In my work on the GHC tree I never pulled the dph subrepo because the only thing it adds for me is extra build time (of course I pull it for my validation tree because I have no choice). Now it seems that getting rid of dph is not that simple. If I `rm -df libraries/dph` then it gets restored after `./sync-all pull`. Running `rm -df libraries/dph/*` seems to prevent that but I imagine there will be problems if the dph submodule actually gets modified and I try to pull the latest version. Moreover in both cases `git status` lists the submodule content as modified, which I see as noise. So is there a good way of removing dph from the source tree?
You probably haven't seen http://git.haskell.org/ghc.git/commit/88d85aa65ea15d984bf207f82d99928eda0b6c... yet, which now provides a way to disable DPH via mk/build.mk It may be worth considering setting BUILD_DPH=NO in some of the quick-build templates in mk/build.mk, but I didn't want to change anything w/o discussion here first.

It may be worth considering setting BUILD_DPH=NO in some of the quick-build templates in mk/build.mk, but I didn't want to change anything w/o discussion here first. +1 from me. I see this change as being beginner-friendly - most newcomers probably don't need DPH.
Janek

Good to document this in our building guide somewhere. https://ghc.haskell.org/trac/ghc/wiki/Building/Using perhaps Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of | Herbert Valerio Riedel | Sent: 01 July 2014 10:19 | To: Jan Stolarek | Cc: ghc-devs@haskell.org | Subject: DPH-setting in mk/build.mk (was: HEADS-UP: Git submodule | conversion imminent) | | On 2014-06-30 at 08:45:57 +0200, Jan Stolarek wrote: | > Herbert, all, | > | > I just pulled the new HEAD and have a question which I believe was not | > addressed so far. In my work on the GHC tree I never pulled the dph | > subrepo because the only thing it adds for me is extra build time (of | > course I pull it for my validation tree because I have no choice). Now | > it seems that getting rid of dph is not that simple. If I `rm -df | > libraries/dph` then it gets restored after `./sync-all pull`. Running | > `rm -df libraries/dph/*` seems to prevent that but I imagine there | > will be problems if the dph submodule actually gets modified and I try | > to pull the latest version. Moreover in both cases `git status` lists | the submodule content as modified, which I see as noise. So is there a | good way of removing dph from the source tree? | | You probably haven't seen | | | http://git.haskell.org/ghc.git/commit/88d85aa65ea15d984bf207f82d99928eda | 0b6c26 | | yet, which now provides a way to disable DPH via mk/build.mk | | | It may be worth considering setting BUILD_DPH=NO in some of the quick- | build templates in mk/build.mk, but I didn't want to change anything w/o | discussion here first. | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs

Thank you Herbert! Did you follow up with more specific instructions? In particular, - how do I bring an existing clean tree up to date? - if I have a tree with a bunch of as-yet-unpushed commits, what do I do? Thanks Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Herbert | Valerio Riedel | Sent: 25 June 2014 08:47 | To: ghc-devs | Subject: HEADS-UP: Git submodule conversion imminent | | Hello GHC Devs! | | In order to not drag this out any longer, I'll completing the submodule | conversion in the next few hours by converting the remaining sub-repo | packages into proper submodules. | | This is represents phase 1 of the reorganization (phase 2 comprises | officially transitioning the push-urls of *some* the packages to | github.com/haskell as happened with haddock). However, this phase 1 is | important to get done early (ideally half a year ago) in order to make | 'ghc-complete' bit more redundant (I hope Joachim doesn't mind... :-) ) | and allow to properly 'git bisect' as far back as possible into the | past. | | While the workflow changes[1] to additionally have the sub-repo change | also | registed in ghc.git, practically, this should affect only a minority of | you, as the remaining packages (see list at the bottom of this mail) to | be | converted into submodules are modified *very* seldom. | | This will be similiar to the conversion of haddock.git into a proper | submodule of which you read up in | | * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4049 | * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4072 | * http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4077 | | List of packages converted into proper submodules: | | * libffi-tarballs libffi-tarballs.git | * utils/hsc2hs hsc2hs.git | * libraries/array packages/array.git | * libraries/deepseq packages/deepseq.git | * libraries/directory packages/directory.git | * libraries/filepath packages/filepath.git | * libraries/haskell98 packages/haskell98.git | * libraries/haskell2010 packages/haskell2010.git | * libraries/hoopl packages/hoopl.git | * libraries/hpc packages/hpc.git | * libraries/old-locale packages/old-locale.git | * libraries/old-time packages/old-time.git | * libraries/process packages/process.git | * libraries/unix packages/unix.git | * nofib nofib.git | * libraries/parallel packages/parallel.git | * libraries/stm packages/stm.git | * libraries/dph packages/dph.git | | | Ideally, you won't have any outstanding changes in those repos (hint, | hint!) to make the transition for your GHC clones easier. I'll follow up | with more specific instructions as soon as I've pushed the changes. | | | N.B.: ghc-tarballs will *not* become a submodule, as it would impose a | non-neglible cost on everyone, not only the developers on windows | and, moreover, the plan is to turn ghc-tarballs into a scripted | download (or maybe something git-annex based) as Git is not really | suited for such large blobs. | | See also discussion at | http://permalink.gmane.org/gmane.comp.lang.haskell.ghc.devel/4895 | | | [1]: For the new workflow in case you really happen to have to touch | one of the affected modules, see the work-in-progress Wiki entry at | | https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules#M | akingchangestoGHCsubmodules | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs

Hi Simon, On 2014-06-26 at 14:13:08 +0200, Simon Peyton Jones wrote:
Did you follow up with more specific instructions?
In particular, - how do I bring an existing clean tree up to date?
I tought I addressed that right at the start of http://www.haskell.org/pipermail/ghc-devs/2014-June/005311.html ?
- if I have a tree with a bunch of as-yet-unpushed commits, what do I do?
If you have as-yet-unpushed commits in ghc.git, there shouldn't be anything special to handle. Or were you referring to the case of having unpushed commits in the converted sub-repos? Cheers, hvr

| > - if I have a tree with a bunch of as-yet-unpushed commits, what do I | > do? | | If you have as-yet-unpushed commits in ghc.git, there shouldn't be | anything special to handle. Or were you referring to the case of having | unpushed commits in the converted sub-repos? I meant mainly in ghc.git, so what you say is reassuring. Thank you! Simon
participants (8)
-
Gabor Greif
-
Geoffrey Mainland
-
Herbert Valerio Riedel
-
Herbert Valerio Riedel
-
Jan Stolarek
-
Johan Tibell
-
Kazu Yamamoto
-
Simon Peyton Jones