{"push_id":896113778,"size":5,"distinct_size":5,"ref":"refs/heads/remote-ghci","head":"35ed2f7670771976dcf2a0d62344458ac27cafe0","before":"7c7511cd3d39bf853f7750c74e6ddc93e7dfd452","commits":[{"sha":"7997d6c0f0ba4560dab799cd87850917e0df5e2f","author":{"email":"202fbcf3c00694524024feb79f3bb8fc1c4e4f9c@gnu.org","name":"Herbert Valerio Riedel"},"message":"Refactor GHCi Command type; allow \"hidden\" commands\n\nThis transforms the 'Command' tuple into a record which is\neasier to extend.\n\nWhile at it, this refactoring turns the IDE `:complete` into a hidden\ncommand excluded from completion.\n\nThe next obvious step is to add a summary text field for constructing\nthe `:help` output (as well as allowing to get `:help <CMD>` for single\ncommands.\n\nThis is a preparatory refactoring for D1240 / #10874\n\nReviewed By: thomie, bgamari\n\nDifferential Revision: https://phabricator.haskell.org/D1590","distinct":true,"url":"https://api.github.com/repos/simonmar/ghc/commits/7997d6c0f0ba4560dab799cd87850917e0df5e2f"},{"sha":"31bddc42c24726a82e221c68df043703caeb42f4","author":{"email":"202fbcf3c00694524024feb79f3bb8fc1c4e4f9c@gnu.org","name":"Herbert Valerio Riedel"},"message":"Add missing whitespace in toArgs' error msg\n\nDifferential Revision: https://phabricator.haskell.org/D1591","distinct":true,"url":"https://api.github.com/repos/simonmar/ghc/commits/31bddc42c24726a82e221c68df043703caeb42f4"},{"sha":"af77089b08b60c00128f0e5a65d18211ea62dfee","author":{"email":"c710607fca41ac039d19b731ff217fbe4721d9a2@microsoft.com","name":"Simon Peyton Jones"},"message":"Fix DeriveAnyClass (Trac #9968)\n\nThe main issue concerned things like\n\n   data T a = MkT a deriving( C Int )\n\nwhich is supposed to generate\n\n   instance C Int (T a) where {}\n\nBut the 'Int' argument (called cls_tys in the code) wasn't\neven being passed to inferConstraints and mk_data_eqn, so it\nreally had no chance.   DeriveAnyClass came along after this\ncode was written!\n\nAnyway I did quite a bit of tidying up in inferConstraints.\n\nAlso I discovered that this case was not covered at all\n\n   data T a b = MkT a b deriving( Bifunctor )\n\nWhat constraints should we generate for the instance context?\nWe can deal with classes whose last arg has kind *, like Eq, Ord;\nor (* -> *), like Functor, Traversable.  But we really don't have\na story for classes whose last arg has kind (* -> * -> *).\n\nSo I augmented checkSideConditions to check for that and give\na sensible error message.\n\nToDo: update the user manual.","distinct":true,"url":"https://api.github.com/repos/simonmar/ghc/commits/af77089b08b60c00128f0e5a65d18211ea62dfee"},{"sha":"e9ea02092a748a72f8481b10f29464fe26658fb5","author":{"email":"c710607fca41ac039d19b731ff217fbe4721d9a2@microsoft.com","name":"Simon Peyton Jones"},"message":"Comments only","distinct":true,"url":"https://api.github.com/repos/simonmar/ghc/commits/e9ea02092a748a72f8481b10f29464fe26658fb5"},{"sha":"35ed2f7670771976dcf2a0d62344458ac27cafe0","author":{"email":"0f335816a479d40a484b0f003cd959ed488eb2a0@gmail.com","name":"Simon Marlow"},"message":"Remote GHCi, -fexternal-interpreter\n\nSummary:\n(Apologies for the size of this patch, I couldn't make a smaller one\nthat was validate-clean and also made sense independently)\n\n(Some of this code is derived from GHCJS.)\n\nThis commit adds support for running interpreted code (for GHCi and\nTemplateHaskell) in a separate process.  The functionality is\nexperimental, so for now it is off by default and enabled by the flag\n-fexternal-interpreter.\n\nReaosns we want this:\n\n* compiling Template Haskell code with -prof does not require\n  building the code without -prof first\n\n* when GHC itself is profiled, it can interpret unprofiled code, and\n  the same applies to dynamic linking.  We would no longer need to\n  force -dynamic-too with TemplateHaskell, and we can load ordinary\n  objects into a dynamically-linked GHCi (and vice versa).\n\n* An unprofiled GHCi can load and run profiled code, which means it\n  can use the stack-trace functionality provided by profiling without\n  taking the performance hit on the compiler that profiling would\n  entail.\n\nAmongst other things; see\nhttps://ghc.haskell.org/trac/ghc/wiki/RemoteGHCi for more details.\n\nNotes on the implementation are in Note [Remote GHCi] in the new\nmodule compiler/ghci/GHCi.hs.  It probably needs more documenting,\nfeel free to suggest things I could elaborate on.\n\nThings that are not currently implemented for -fexternal-interpreter:\n\n* The GHCi debugger\n* :set prog, :set args in GHCi\n* `recover` in Template Haskell\n* Redirecting stdin/stdout for the external process\n\nThese are all doable, I just wanted to get to a working validate-clean\npatch first.\n\nI also haven't done any benchmarking yet.  I expect there to be slight hit\nto link times for byte code and some penalty due to having to\nserialize/deserialize TH syntax, but I don't expect it to be a serious\nproblem.  There's also lots of low-hanging fruit in the byte code\ngenerator/linker that we could exploit to speed things up.\n\nTest Plan:\n* validate\n* I've run parts of the test suite with\nEXTRA_HC_OPTS=-fexternal-interpreter, notably tests/ghci and tests/th.\nThere are a few failures due to the things not currently implemented\n(see above).\n\nReviewers: simonpj, goldfire, ezyang, austin, alanz, hvr, niteria, bgamari, gibiansky, luite\n\nSubscribers: thomie\n\nDifferential Revision: https://phabricator.haskell.org/D1562","distinct":true,"url":"https://api.github.com/repos/simonmar/ghc/commits/35ed2f7670771976dcf2a0d62344458ac27cafe0"}]}