Updating submodules
Herbert, or anyone, I'm very confused about the workflow for updating submodules. I want to update several (to remove redundant constraints from contexts) which are maintained by GHC HQ. But for libraries/parallel I find: * There is no .git/config in libraries/parallel. (Whereas there is for another submodule, libraries/hoopl.) * There is, however, a .git file which points to .git/modules/libraries/parallel * In .git/modules/libraries/parallel/config, I see a url of https://git.haskell.org/packages/parallel.git. But I can't push to this URL. * That matches the url in https://ghc.haskell.org/trac/ghc/wiki/Repositories, but contradicts the url in 'packages', which says ssh://g...@github.com/haskell/parallel.git * I don't understand what URL should be expected for submodules with - in the 'upstream url' column of the 'packages' file. It says - means 'this is a submodule', but parallel is certainly a submodule and doesn't have -. But so is hoopl, which does have -. I tried a minimal change of adding pushurl = ssh://g...@git.haskell.org/packages/hoopl.git to .git/modules/libraries/parallel/config. But when I tried to push I got simonpj@cam-05-unx:~/code/HEAD-2/libraries/parallel$ git push Counting objects: 7, done. Delta compression using up to 32 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 410 bytes, done. Total 4 (delta 3), reused 0 (delta 0) remote: W refs/heads/master packages/parallel simonpj DENIED by refs/.* remote: error: hook declined to update refs/heads/master To ssh://g...@git.haskell.org/packages/parallel.git ! [remote rejected] HEAD - master (hook declined) error: failed to push some refs to 'ssh://g...@git.haskell.org/packages/parallel.git' So I'm thoroughly stuck. I can't push my main patch until I push the submodule patches. What do I do? And would it be possible to update the wiki pages to make this clear? Especially * https://ghc.haskell.org/trac/ghc/wiki/Repositories * https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules Thanks Simon ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Re: Updating submodules
Hello Simon, On 2015-01-06 at 10:59:44 +0100, Simon Peyton Jones wrote: I'm very confused about the workflow for updating submodules. I want to update several (to remove redundant constraints from contexts) which are maintained by GHC HQ. But for libraries/parallel I find: * There is no .git/config in libraries/parallel. (Whereas there is for another submodule, libraries/hoopl.) * There is, however, a .git file which points to .git/modules/libraries/parallel That's most likely because libraries/hoopl wasn't created via `git submodule` but rather inherited from a Git checkout where libraries/hoopl was an decoupled (not yet submodule) sub-repo... In any case, if you manage Git remotes (while in libraries/hoopl) via the `git remote` command, Git takes care of following the symlinked .git folder... * In .git/modules/libraries/parallel/config, I see a url of https://git.haskell.org/packages/parallel.git. But I can't push to this URL. yes, that's our mirrored copy of github.com/haskell/parallel/ * That matches the url in https://ghc.haskell.org/trac/ghc/wiki/Repositories, but contradicts the url in 'packages', which says ssh://g...@github.com/haskell/parallel.git yes, that's exactly the upstream URL you're supposed to push to... (and since it's a ssh:// protocl url, it means you should have push-rights there) * I don't understand what URL should be expected for submodules with - in the 'upstream url' column of the 'packages' file. It says - means 'this is a submodule', but parallel is certainly a submodule and doesn't have -. The comment there is probably a bit misleading; - in the upstreamurl field just means that the official upstream repo is at git.haskell.org, and you should use the usual ssh://git.haskell.org/... URL for pushing... But so is hoopl, which does have -. I tried a minimal change of adding pushurl = ssh://g...@git.haskell.org/packages/hoopl.git are you confusing 'hoopl' with 'parallel' here? hoopl's upstream is in fact at git.haskell.org, but parallel lives at github.com/haskell/parallel ... to .git/modules/libraries/parallel/config. But when I tried to push I got simonpj@cam-05-unx:~/code/HEAD-2/libraries/parallel$ git push Counting objects: 7, done. Delta compression using up to 32 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 410 bytes, done. Total 4 (delta 3), reused 0 (delta 0) remote: W refs/heads/master packages/parallel simonpj DENIED by refs/.* remote: error: hook declined to update refs/heads/master To ssh://g...@git.haskell.org/packages/parallel.git ! [remote rejected] HEAD - master (hook declined) error: failed to push some refs to 'ssh://g...@git.haskell.org/packages/parallel.git' So I'm thoroughly stuck. I can't push my main patch until I push the submodule patches. What do I do? And would it be possible to update the wiki pages to make this clear? Especially * https://ghc.haskell.org/trac/ghc/wiki/Repositories * https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules Thanks Simon ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs -- Elegance is not optional -- Richard O'Keefe ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
RE: Updating submodules
| * There is no .git/config in libraries/parallel. (Whereas | there is for another submodule, libraries/hoopl.) | | * There is, however, a .git file which points to | .git/modules/libraries/parallel | | That's most likely because libraries/hoopl wasn't created via `git | submodule` but rather inherited from a Git checkout where | libraries/hoopl was an decoupled (not yet submodule) sub-repo... Yes, that's plausible. So the hoopl one is wrong, and the parallel one is right. But how do I fix hoopl? (Short of blowing away the whole repository, which I can't do because it has lots of commits in it.) | In any case, if you manage Git remotes (while in libraries/hoopl) via | the `git remote` command, Git takes care of following the symlinked | .git folder... OK. But in this case what do I do? | * In .git/modules/libraries/parallel/config, I see a url of | https://git.haskell.org/packages/parallel.git. But I can't push to | this URL. | | yes, that's our mirrored copy of github.com/haskell/parallel/ | | * That matches the url in | https://ghc.haskell.org/trac/ghc/wiki/Repositories, but contradicts | the url in 'packages', which says | | ssh://g...@github.com/haskell/parallel.git | | yes, that's exactly the upstream URL you're supposed to push to... | (and since it's a ssh:// protocl url, it means you should have push- | rights there) So * I *push* to ssh://g...@github.com/haskell/parallel.git * I *pull* from https://git.haskell.org/packages/parallel.git Is that right? Then again, how can I get the right URLs in the right place? | The comment there is probably a bit misleading; | | - in the upstreamurl field just means that the official upstream | repo is at git.haskell.org, and you should use the usual | ssh://git.haskell.org/... URL for pushing... OK, so they are *ALL* sub-modules, and - is just shorthand for a particular URL. Would it be possible to fix the comment? Simon ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
RE: Updating submodules
Following a chat with Herbert, I've updated https://ghc.haskell.org/trac/ghc/wiki/Repositories Please check/proof-read Simon | -Original Message- | From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of | Simon Peyton Jones | Sent: 06 January 2015 10:49 | To: Herbert Valerio Riedel | Cc: ghc-devs@haskell.org | Subject: RE: Updating submodules | | | * There is no .git/config in libraries/parallel. | (Whereas | | there is for another submodule, libraries/hoopl.) | | | | * There is, however, a .git file which points to | | .git/modules/libraries/parallel | | | | That's most likely because libraries/hoopl wasn't created via `git | | submodule` but rather inherited from a Git checkout where | | libraries/hoopl was an decoupled (not yet submodule) sub-repo... | | Yes, that's plausible. So the hoopl one is wrong, and the parallel | one is right. But how do I fix hoopl? (Short of blowing away the | whole repository, which I can't do because it has lots of commits in | it.) | | | In any case, if you manage Git remotes (while in libraries/hoopl) | via | | the `git remote` command, Git takes care of following the | symlinked | | .git folder... | | OK. But in this case what do I do? | | | * In .git/modules/libraries/parallel/config, I see a url of | | https://git.haskell.org/packages/parallel.git. But I can't push to | | | this URL. | | | | yes, that's our mirrored copy of github.com/haskell/parallel/ | | | | * That matches the url in | | https://ghc.haskell.org/trac/ghc/wiki/Repositories, but | contradicts | | the url in 'packages', which says | | | | ssh://g...@github.com/haskell/parallel.git | | | | yes, that's exactly the upstream URL you're supposed to push to... | | (and since it's a ssh:// protocl url, it means you should have | push- | | rights there) | | So | | * I *push* to ssh://g...@github.com/haskell/parallel.git | * I *pull* from https://git.haskell.org/packages/parallel.git | | Is that right? Then again, how can I get the right URLs in the right | place? | | | | The comment there is probably a bit misleading; | | | | - in the upstreamurl field just means that the official | upstream | | repo is at git.haskell.org, and you should use the usual | | ssh://git.haskell.org/... URL for pushing... | | OK, so they are *ALL* sub-modules, and - is just shorthand for a | particular URL. Would it be possible to fix the comment? | | Simon | ___ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
T9938 and T9939 failing
Here's what I get, on a clean validate. = T9939(normal) 2555 of 4389 [0, 0, 0] cd ./typecheck/should_compile '/home/hs01/ezyang/ghc-validate/inplace/bin/ghc-stage2' -fforc e-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db -rtsopts -fno-warn-tabs - fno-ghci-history -c T9939.hs -fno-warn-incomplete-patterns T9939.comp.stderr 21 Actual stderr output differs from expected: --- ./typecheck/should_compile/T9939.stderr 2015-01-06 13:51:47.089376284 -0800 +++ ./typecheck/should_compile/T9939.comp.stderr2015-01-06 15:24:39.923007911 -0800 @@ -1 +1,18 @@ \ No newline at end of file +T9939.hs:5:7: +Redundant constraint: Eq a +In the type signature for: f1 :: (Eq a, Ord a) = a - a - Bool + +T9939.hs:9:7: +Redundant constraint: Eq a +In the type signature for: f2 :: (Eq a, Ord a) = a - a - Bool + +T9939.hs:13:7: +Redundant constraint: Eq b +In the type signature for: + f3 :: (Eq a, a ~ b, Eq b) = a - b - Bool + +T9939.hs:20:7: +Redundant constraint: Eq b +In the type signature for: + f4 :: (Eq a, Eq b) = a - b - Equal a b - Bool *** unexpected failure for T9939(normal) = T9938(normal) 3401 of 4389 [0, 1, 0] cd ./driver $MAKE -s --no-print-directory T9938/dev/null T9938.run.stdout 2T9938.run. stderr Wrong exit code (expected 0 , actual 2 ) Stdout: Makefile:592: recipe for target 'T9938' failed Stderr: T9938.o: In function `r3Ho_info': (.text+0x52): undefined reference to `transzuH9c1w14lEUN3zzdWCTsn8jG_ControlziMonadziTransziSta teziLazzy_zdwzdcp1Alternative_info' collect2: error: ld returned 1 exit status make[3]: *** [T9938] Error 1 *** unexpected failure for T9938(normal) Edward ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
New performance dashboard front-end
Hi, over the holidays I’ve been working on a new and custom-made¹ front-end for our performance data, mainly to work around limitations of codespeed when it comes to understanding git, but also to add other features that I happen to want. I put a (not automatically updated) preview on http://deb.haskell.org/speed/ The code is not yet online, and there are some features missing (most notably: Working with multiple builders, the per-benchmark-graphs.) I’d like to have this hosted somewhere properly, so this is a request for the infrastructure team. I am a big fan of static content, so the system is a (shake-driven) batch process that generates a bunch of .json file. These can be served statically, together with the completely static index.html and a few javascript libraries. So it’s all very CDN-friendly. So all I need is * shell access to some machine, preferably with ghc installed * some disk space (actually quite a bit due to all the build logs, although that could be reduced by gzipping or reading them directly from the git repo²) * a new virtual host or a subdirectory of http://ghc.haskell.org/ where I can deploy my files to. * the possibility to either run a cronjob to poll for new logs, or maybe (later) some more sophisticated trigger. Would that be possible? Greetings, Joachim ¹ It is still a generic display of values per git commit, and I hope I can keep it that way – maybe other projects can use it as well. ² currently at https://github.com/nomeata/ghc-speed-logs If the above becomes official, this probably also should move to git.haskell.org. The repo is 250M, but 7,2G checked out. I plan to make my code read the logs directly from the repo, and link to the cgit web interface to show the logs, so that it never has to be checked out. -- Joachim “nomeata” Breitner m...@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nome...@joachim-breitner.de • GPG-Key: 0xF0FBF51F Debian Developer: nome...@debian.org signature.asc Description: This is a digitally signed message part ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
RE: breakages due to redundant constraint removals?
| ..ah, I see, so we'll need some CPP to retain compatiblity with stable | GHCs (as parallel and deepseq have -- before your commit -- been | compatible with all stable GHC 7.x releases)... yes, I suppose so. Or, I suppose, we could revert my changes to parallel and deepseq, and add -fno-warn-redundant-constraints at the top (I suppose *that* would need cpp). And then remember in n years time to take it out. Because of the n years time issue I'm inclined to the former solution, because at least it's clear: if compiling with GHC = 7.10, use this signature, else that one. Simon | | | | | Simon | | | -Original Message- | | From: Herbert Valerio Riedel [mailto:hvrie...@gmail.com] | | Sent: 06 January 2015 22:03 | | To: Simon Peyton Jones | | Subject: breakages due to redundant constraint removals? | | | | Hello Simon, | | | | I just noticed that your recent commit to deepseq, had a devastating | | effect: | | | | https://travis-ci.org/haskell/deepseq/builds/46063392 | | | | | | similiarly for parallel: | | | | https://travis-ci.org/haskell/parallel/builds/46062982 | | | | | | ...did you notice that as well? | | | | Cheers, | | hvr | | -- | Elegance is not optional -- Richard O'Keefe ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
API Annotations status report
A quick status report on API Annotations. I have managed to integrate the API Annotations into the ghc-7.10 branch of HaRe [1], with a test comand to simply roundtrip the source. So the command ghc-hare roundtrip filename.hs will produce a file 'filename.refactored.hs' which should be the same as the original, except it does not preserve trailing whitespace or tabs. This makes use of the updated ghc-mod for 7.10 [2], and ghc-exactprint [3] However this only works for the ghc-7.10 branch with D538 [4] applied. Regards Alan [1] https://github.com/alanz/HaRe/tree/ghc-7.10 [2] https://github.com/DanielG/ghc-mod [3] https://github.com/alanz/ghc-exactprint/tree/wip [4] https://phabricator.haskell.org/D538 ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
RE: Updating submodules
Now everything is clear. I wish someone had pointed me at this site earlier. No longer do I need to pore through endless Learn You a Git for Great Happiness tutorials. I can just generate a new man page whenever I feel like it. Perfect. Simon From: Ryan Newton [mailto:rrnew...@gmail.com] Sent: 06 January 2015 16:28 To: Simon Peyton Jones; Herbert Valerio Riedel Cc: ghc-devs@haskell.org Subject: Re: Updating submodules Has everyone seen the git man page generator ;-)? Hilarious. http://git-man-page-generator.lokaltog.net/ On Tue Jan 06 2015 at 7:49:30 AM Simon Peyton Jones simo...@microsoft.commailto:simo...@microsoft.com wrote: Following a chat with Herbert, I've updated https://ghc.haskell.org/trac/ghc/wiki/Repositories Please check/proof-read Simon | -Original Message- | From: ghc-devs [mailto:ghc-devs-boun...@haskell.orgmailto:ghc-devs-boun...@haskell.org] On Behalf Of | Simon Peyton Jones | Sent: 06 January 2015 10:49 | To: Herbert Valerio Riedel | Cc: ghc-devs@haskell.orgmailto:ghc-devs@haskell.org | Subject: RE: Updating submodules | | | * There is no .git/config in libraries/parallel. | (Whereas | | there is for another submodule, libraries/hoopl.) | | | | * There is, however, a .git file which points to | | .git/modules/libraries/parallel | | | | That's most likely because libraries/hoopl wasn't created via `git | | submodule` but rather inherited from a Git checkout where | | libraries/hoopl was an decoupled (not yet submodule) sub-repo... | | Yes, that's plausible. So the hoopl one is wrong, and the parallel | one is right. But how do I fix hoopl? (Short of blowing away the | whole repository, which I can't do because it has lots of commits in | it.) | | | In any case, if you manage Git remotes (while in libraries/hoopl) | via | | the `git remote` command, Git takes care of following the | symlinked | | .git folder... | | OK. But in this case what do I do? | | | * In .git/modules/libraries/parallel/config, I see a url of | | https://git.haskell.org/packages/parallel.git. But I can't push to | | | this URL. | | | | yes, that's our mirrored copy of github.com/haskell/parallel/http://github.com/haskell/parallel/ | | | | * That matches the url in | | https://ghc.haskell.org/trac/ghc/wiki/Repositories, but | contradicts | | the url in 'packages', which says | | | | ssh://g...@github.com/haskell/parallel.githttp://g...@github.com/haskell/parallel.git | | | | yes, that's exactly the upstream URL you're supposed to push to... | | (and since it's a ssh:// protocl url, it means you should have | push- | | rights there) | | So | | * I *push* to ssh://g...@github.com/haskell/parallel.githttp://g...@github.com/haskell/parallel.git | * I *pull* from https://git.haskell.org/packages/parallel.git | | Is that right? Then again, how can I get the right URLs in the right | place? | | | | The comment there is probably a bit misleading; | | | | - in the upstreamurl field just means that the official | upstream | | repo is at git.haskell.orghttp://git.haskell.org, and you should use the usual | | ssh://git.haskell.org/.http://git.haskell.org/.. URL for pushing... | | OK, so they are *ALL* sub-modules, and - is just shorthand for a | particular URL. Would it be possible to fix the comment? | | Simon | ___ | ghc-devs mailing list | ghc-devs@haskell.orgmailto:ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.orgmailto:ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Re: T9938 and T9939 failing
This looks like the result of the new cool patch by SPJ that detects redundant constraints. IIRC, it was supposed to be added to -Wall, but disabled for validate, at least for packages out of our control. ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Re: Updating submodules
On Tue, Jan 6, 2015 at 11:28 AM, Ryan Newton rrnew...@gmail.com wrote: Has everyone seen the git man page generator ;-)? Hilarious. http://git-man-page-generator.lokaltog.net/ I still want the git version of http://thedoomthatcametopuppet.tumblr.com/ :p -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Re: Updating submodules
Has everyone seen the git man page generator ;-)? Hilarious. http://git-man-page-generator.lokaltog.net/ On Tue Jan 06 2015 at 7:49:30 AM Simon Peyton Jones simo...@microsoft.com wrote: Following a chat with Herbert, I've updated https://ghc.haskell.org/trac/ghc/wiki/Repositories Please check/proof-read Simon | -Original Message- | From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of | Simon Peyton Jones | Sent: 06 January 2015 10:49 | To: Herbert Valerio Riedel | Cc: ghc-devs@haskell.org | Subject: RE: Updating submodules | | | * There is no .git/config in libraries/parallel. | (Whereas | | there is for another submodule, libraries/hoopl.) | | | | * There is, however, a .git file which points to | | .git/modules/libraries/parallel | | | | That's most likely because libraries/hoopl wasn't created via `git | | submodule` but rather inherited from a Git checkout where | | libraries/hoopl was an decoupled (not yet submodule) sub-repo... | | Yes, that's plausible. So the hoopl one is wrong, and the parallel | one is right. But how do I fix hoopl? (Short of blowing away the | whole repository, which I can't do because it has lots of commits in | it.) | | | In any case, if you manage Git remotes (while in libraries/hoopl) | via | | the `git remote` command, Git takes care of following the | symlinked | | .git folder... | | OK. But in this case what do I do? | | | * In .git/modules/libraries/parallel/config, I see a url of | | https://git.haskell.org/packages/parallel.git. But I can't push to | | | this URL. | | | | yes, that's our mirrored copy of github.com/haskell/parallel/ | | | | * That matches the url in | | https://ghc.haskell.org/trac/ghc/wiki/Repositories, but | contradicts | | the url in 'packages', which says | | | | ssh://g...@github.com/haskell/parallel.git | | | | yes, that's exactly the upstream URL you're supposed to push to... | | (and since it's a ssh:// protocl url, it means you should have | push- | | rights there) | | So | | * I *push* to ssh://g...@github.com/haskell/parallel.git | * I *pull* from https://git.haskell.org/packages/parallel.git | | Is that right? Then again, how can I get the right URLs in the right | place? | | | | The comment there is probably a bit misleading; | | | | - in the upstreamurl field just means that the official | upstream | | repo is at git.haskell.org, and you should use the usual | | ssh://git.haskell.org/... URL for pushing... | | OK, so they are *ALL* sub-modules, and - is just shorthand for a | particular URL. Would it be possible to fix the comment? | | Simon | ___ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs