{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":650794578,"defaultBranch":"main","name":"ghciwatch","ownerLogin":"MercuryTechnologies","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-06-07T20:29:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/31416286?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719010462.0","currentOid":""},"activityList":{"items":[{"before":"6882076ae5e2a8f6547ae349db656673003abd2b","after":"13de03fd13308d9444aad4ac6e21e51566158365","ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-21T22:55:50.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Release ghciwatch version 1.0.1","shortMessageHtmlLink":"Release ghciwatch version 1.0.1"}},{"before":"c3d456cf66dcbfb01c3adf4aee6365f9dbd99f9d","after":"24fd4a13c0e4afb78b950f8178476854f3668997","ref":"refs/heads/wiggles/dux-2348-fix-single-quoted-ghc-output-parser","pushedAt":"2024-06-21T22:55:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse single-quoted GHC output more reliably\n\nGHC output contains quoted fragments:\n\n Module graph contains a cycle:\n module ‘C’ (./C.hs)\n imports module ‘A’ (A.hs)\n which imports module ‘B’ (./B.hs)\n which imports module ‘C’ (./C.hs)\n\nWhen Unicode output is not available, the Unicode quotes are substituted\nfor GNU-style ASCII quotes:\n\n module `C' (./C.hs)\n\nHowever, when the quoted text starts or ends with a single quote, ASCII\nquotes are omitted. This leads to ambiguous output:\n\n A → `A'\n A' → A'\n `A' → `A'\n 'A → 'A\n 'A' → 'A'\n\nCorrectly parsing this is challenging.\n\nThis probably increases the amount of backtracking and lookahead\nrequired for these parsers. Not sure if that's significant or relevant.","shortMessageHtmlLink":"Parse single-quoted GHC output more reliably"}},{"before":"ffde01730e6e2bb362fae7fcfa5723fc94bb62bd","after":null,"ref":"refs/heads/rebeccat/refactor-module-set","pushedAt":"2024-06-21T22:54:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":"da5279f9fdd6eca3ed66a159a3a964b5b528cac5","after":"75e73e8605a8a940d64828215b21c5f77bb41cb6","ref":"refs/heads/main","pushedAt":"2024-06-21T22:54:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"`ModuleSet`: store a set rather than a map (#292)\n\nPreviously, a `ModuleSet` wrapped a `HashMap`.\r\nThis had a number of undesirable consequences:\r\n* The data about a module's name (as its path) and how it was loaded (as\r\nits `TargetKind`) were split from each other and difficult to reference.\r\n* The module's import name wasn't explicitly stored anywhere, so we\r\nneeded to convert between paths and dotted names when those were needed,\r\nwhich required hitting the disk.\r\n* There wasn't a type for the module's import name, so when we (e.g.)\r\n`:unadd`ed modules we needed to format them as strings.\r\n\r\nNow, a `ModuleSet` wraps a `HashSet`.\r\n\r\n* A `LoadedModule` wraps a path but optionally contains the module's\r\ndotted name, if the module is loaded by name (and needs to be referred\r\nto by name to avoid the \"module defined in multiple files\" error).\r\n* The `LoadedModule` `Display` instance formats the module's import name\r\ncorrectly (with a dotted name if needed) and avoids hitting the disk or\r\nany string processing.\r\n\r\n- [ ] Labeled the PR with `patch`, `minor`, or `major` to request a\r\nversion bump when it's merged.\r\n- [ ] Updated the user manual in `docs/`.\r\n- [ ] Added integration / regression tests in `tests/`.","shortMessageHtmlLink":"ModuleSet: store a set rather than a map (#292)"}},{"before":"2bb67b856f15a13aab4ed282dadd6fc04e5cb6b6","after":"492bfa156e1592c7adf2cae8c9e5ea7afe6bd08d","ref":"refs/heads/rebeccat/dux-2341-parse-module-not-found-messages","pushedAt":"2024-06-21T21:05:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse `File ... not found` messages\n\nThis will help us keep the module set in sync more reliably.","shortMessageHtmlLink":"Parse File ... not found messages"}},{"before":"5398873521056ded0fbc10e624489ba1463bd5e2","after":"c3d456cf66dcbfb01c3adf4aee6365f9dbd99f9d","ref":"refs/heads/wiggles/dux-2348-fix-single-quoted-ghc-output-parser","pushedAt":"2024-06-21T21:02:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse single-quoted GHC output more reliably\n\nGHC output contains quoted fragments:\n\n Module graph contains a cycle:\n module ‘C’ (./C.hs)\n imports module ‘A’ (A.hs)\n which imports module ‘B’ (./B.hs)\n which imports module ‘C’ (./C.hs)\n\nWhen Unicode output is not available, the Unicode quotes are substituted\nfor GNU-style ASCII quotes:\n\n module `C' (./C.hs)\n\nHowever, when the quoted text starts or ends with a single quote, ASCII\nquotes are omitted. This leads to ambiguous output:\n\n A → `A'\n A' → A'\n `A' → `A'\n 'A → 'A\n 'A' → 'A'\n\nCorrectly parsing this is challenging.\n\nThis probably increases the amount of backtracking and lookahead\nrequired for these parsers. Not sure if that's significant or relevant.","shortMessageHtmlLink":"Parse single-quoted GHC output more reliably"}},{"before":"1e3dda0824aa5b1eb2202443d7c18912e9715244","after":"13747a1e7a98de24c94759fa25d65d6dc93cdaf9","ref":"refs/heads/wiggles/dux-2349-parse-haskell-source-paths-more-reliably","pushedAt":"2024-06-21T21:02:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse Haskell source paths more reliably\n\nHaskell source paths, as GHC understands them, are remarkably\npermissive: they must end with one of the source extensions (now more\naccurately listed here, with references to the upstream GHC code), but\ncan otherwise contain quirks up to and including multiple extensions,\nwhitespace, and newlines.\n\nGHCi is actually even more lenient than this in what it accepts; it'll\nautomatically append `.hs` and `.lhs` to paths you give it and check if\nthose exist, but fortunately they get printed out in `:show targets` and\ndiagnostics as the resolved source paths:\n\n```text\nghci> :add src/MyLib\n[1 of 1] Compiling MyLib ( src/MyLib.hs, interpreted )\n\nghci> :show targets\nsrc/MyLib.hs\n\nghci> :add src/Foo\ntarget ‘src/Foo’ is not a module name or a source file\n\nghci> :add src/MyLib.lhs\nFile src/MyLib.lhs not found\n\nghci> :add \"src/ Foo.hs\"\nFile src/ Foo.hs not found\n\nghci> :add \"src\\n/Foo.hs\"\nFile src\n/Foo.hs not found\n```","shortMessageHtmlLink":"Parse Haskell source paths more reliably"}},{"before":"04144c2744bd6d74fbf76402b659e31a52c44ce7","after":"6882076ae5e2a8f6547ae349db656673003abd2b","ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-21T20:59:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Release ghciwatch version 1.0.1","shortMessageHtmlLink":"Release ghciwatch version 1.0.1"}},{"before":null,"after":"04144c2744bd6d74fbf76402b659e31a52c44ce7","ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-21T20:59:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Release ghciwatch version 1.0.1","shortMessageHtmlLink":"Release ghciwatch version 1.0.1"}},{"before":"a93cc3fe6e889430977ccaa60e5f827da385dd0d","after":"ffde01730e6e2bb362fae7fcfa5723fc94bb62bd","ref":"refs/heads/rebeccat/refactor-module-set","pushedAt":"2024-06-21T20:58:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Remove `LoadedModuleName`","shortMessageHtmlLink":"Remove LoadedModuleName"}},{"before":"f8ae507113111fe942f15ecf555f1353e22fb10f","after":null,"ref":"refs/heads/wiggles/dux-2345-unwrap-ghcmessage-parser-return-types","pushedAt":"2024-06-21T20:58:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":"aacc5b1ccf9c6f32e3c6077ff4dc506ba7379a09","after":"da5279f9fdd6eca3ed66a159a3a964b5b528cac5","ref":"refs/heads/main","pushedAt":"2024-06-21T20:58:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"[NFCI] Unwrap `GhcMessage` in diagnostic parsers (#299)\n\nSplit off from #297","shortMessageHtmlLink":"[NFCI] Unwrap GhcMessage in diagnostic parsers (#299)"}},{"before":"910c4c35a5a990d2fb0540e613a4fd2336f38675","after":"aacc5b1ccf9c6f32e3c6077ff4dc506ba7379a09","ref":"refs/heads/main","pushedAt":"2024-06-21T20:57:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"[NFCI] Use `line_ending_or_eof` consistently in parsers (#300)\n\nThis is useful for line-oriented parsers that may consume input with no\r\ntrailing newline character. While this is a [violation of the POSIX\r\nspec][posix], VS Code [does it by default][vscode].\r\n\r\n[posix]: https://stackoverflow.com/a/729795\r\n[vscode]:\r\nhttps://stackoverflow.com/questions/44704968/visual-studio-code-insert-newline-at-the-end-of-files\r\n\r\nSplit off from #297","shortMessageHtmlLink":"[NFCI] Use line_ending_or_eof consistently in parsers (#300)"}},{"before":"ac42d3619efb42e9861b912607621227e5518e7b","after":null,"ref":"refs/heads/wiggles/dux-2346-use-line_ending_or_eof-parser-consistently","pushedAt":"2024-06-21T20:57:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":"47cd678dd995e5573265087671037c81ad7917a8","after":null,"ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-21T20:57:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":null,"after":"1e3dda0824aa5b1eb2202443d7c18912e9715244","ref":"refs/heads/wiggles/dux-2349-parse-haskell-source-paths-more-reliably","pushedAt":"2024-06-21T20:56:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse Haskell source paths more reliably\n\nHaskell source paths, as GHC understands them, are remarkably\npermissive: they must end with one of the source extensions (now more\naccurately listed here, with references to the upstream GHC code), but\ncan otherwise contain quirks up to and including multiple extensions,\nwhitespace, and newlines.\n\nGHCi is actually even more lenient than this in what it accepts; it'll\nautomatically append `.hs` and `.lhs` to paths you give it and check if\nthose exist, but fortunately they get printed out in `:show targets` and\ndiagnostics as the resolved source paths:\n\n```text\nghci> :add src/MyLib\n[1 of 1] Compiling MyLib ( src/MyLib.hs, interpreted )\n\nghci> :show targets\nsrc/MyLib.hs\n\nghci> :add src/Foo\ntarget ‘src/Foo’ is not a module name or a source file\n\nghci> :add src/MyLib.lhs\nFile src/MyLib.lhs not found\n\nghci> :add \"src/ Foo.hs\"\nFile src/ Foo.hs not found\n\nghci> :add \"src\\n/Foo.hs\"\nFile src\n/Foo.hs not found\n```","shortMessageHtmlLink":"Parse Haskell source paths more reliably"}},{"before":null,"after":"5398873521056ded0fbc10e624489ba1463bd5e2","ref":"refs/heads/wiggles/dux-2348-fix-single-quoted-ghc-output-parser","pushedAt":"2024-06-21T20:51:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse single-quoted GHC output more reliably\n\nGHC output contains quoted fragments:\n\n Module graph contains a cycle:\n module ‘C’ (./C.hs)\n imports module ‘A’ (A.hs)\n which imports module ‘B’ (./B.hs)\n which imports module ‘C’ (./C.hs)\n\nWhen Unicode output is not available, the Unicode quotes are substituted\nfor GNU-style ASCII quotes:\n\n module `C' (./C.hs)\n\nHowever, when the quoted text starts or ends with a single quote, ASCII\nquotes are omitted. This leads to ambiguous output:\n\n A → `A'\n A' → A'\n `A' → `A'\n 'A → 'A\n 'A' → 'A'\n\nCorrectly parsing this is challenging.\n\nThis probably increases the amount of backtracking and lookahead\nrequired for these parsers. Not sure if that's significant or relevant.","shortMessageHtmlLink":"Parse single-quoted GHC output more reliably"}},{"before":null,"after":"ac42d3619efb42e9861b912607621227e5518e7b","ref":"refs/heads/wiggles/dux-2346-use-line_ending_or_eof-parser-consistently","pushedAt":"2024-06-21T20:39:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Use `line_ending_or_eof` consistently in parsers\n\nThis is useful for line-oriented parsers that may consume input with no\ntrailing newline character. While this is a [violation of the POSIX\nspec][posix], VS Code [does it by default][vscode].\n\n[posix]: https://stackoverflow.com/a/729795\n[vscode]: https://stackoverflow.com/questions/44704968/visual-studio-code-insert-newline-at-the-end-of-files","shortMessageHtmlLink":"Use line_ending_or_eof consistently in parsers"}},{"before":null,"after":"f8ae507113111fe942f15ecf555f1353e22fb10f","ref":"refs/heads/wiggles/dux-2345-unwrap-ghcmessage-parser-return-types","pushedAt":"2024-06-21T20:35:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Unwrap `GhcMessage` in diagnostic parsers","shortMessageHtmlLink":"Unwrap GhcMessage in diagnostic parsers"}},{"before":"7a91ede93372d79bf21fe6a4899d3fce38ae0b84","after":"2bb67b856f15a13aab4ed282dadd6fc04e5cb6b6","ref":"refs/heads/rebeccat/dux-2341-parse-module-not-found-messages","pushedAt":"2024-06-21T20:15:34.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse `File ... not found` messages\n\nThis will help us keep the module set in sync more reliably.","shortMessageHtmlLink":"Parse File ... not found messages"}},{"before":"a97ecd3dcc2b8f93b8157009e6373e3795f22ace","after":"a93cc3fe6e889430977ccaa60e5f827da385dd0d","ref":"refs/heads/rebeccat/refactor-module-set","pushedAt":"2024-06-21T18:07:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Remove `LoadedModuleName`","shortMessageHtmlLink":"Remove LoadedModuleName"}},{"before":null,"after":"47cd678dd995e5573265087671037c81ad7917a8","ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-21T18:01:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Release ghciwatch version 1.0.1","shortMessageHtmlLink":"Release ghciwatch version 1.0.1"}},{"before":"bec17478fd08e7defb95cc7a01704b6d4d659b47","after":null,"ref":"refs/heads/rebeccat/dux-2339-add-tests-for-normalpath","pushedAt":"2024-06-21T17:59:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":"0ea78a407400e1042de052392d3400e0a8614b4d","after":"910c4c35a5a990d2fb0540e613a4fd2336f38675","ref":"refs/heads/main","pushedAt":"2024-06-21T17:59:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Fix `:show targets` / `:show paths` parsing logic (#294)\n\nPreviously, if `:show targets` displayed a path, we would attempt to\r\njoin that path to each of the module search paths and to GHCi's working\r\ndirectory to find the file.\r\n\r\nIn reality, GHCi only checks such paths relative to its working\r\ndirectory. (Indeed, if you change the working directory with `:cd`, GHCi\r\nwill unload all modules. [1])\r\n\r\nAlso, the logic for checking these paths was broken, considering that\r\nthe search paths can be relative to the working directory, but we\r\nweren't properly joining these paths.\r\n\r\nIn the future, I'll write some tests that do `--after-startup-ghci \":cd\r\n../\"` and see how much of ghciwatch explodes.\r\n\r\n[1]:\r\nhttps://gitlab.haskell.org/ghc/ghc/-/blob/077cb2e11fa81076e8c9c5f8dd3bdfa99c8aaf8d/compiler/GHC.hs#L1073-L1083","shortMessageHtmlLink":"Fix :show targets / :show paths parsing logic (#294)"}},{"before":"03d14586791ef272b0e048b99ab03e605ddd834b","after":"7a91ede93372d79bf21fe6a4899d3fce38ae0b84","ref":"refs/heads/rebeccat/dux-2341-parse-module-not-found-messages","pushedAt":"2024-06-17T22:25:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Parse `File ... not found` messages\n\nThis will help us keep the module set in sync more reliably.","shortMessageHtmlLink":"Parse File ... not found messages"}},{"before":"1015ee5001424ae066c2bf1e981de8c617a84905","after":"03d14586791ef272b0e048b99ab03e605ddd834b","ref":"refs/heads/rebeccat/dux-2341-parse-module-not-found-messages","pushedAt":"2024-06-15T00:03:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"holy fuck","shortMessageHtmlLink":"holy fuck"}},{"before":null,"after":"1015ee5001424ae066c2bf1e981de8c617a84905","ref":"refs/heads/rebeccat/dux-2341-parse-module-not-found-messages","pushedAt":"2024-06-15T00:01:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"holy fuck","shortMessageHtmlLink":"holy fuck"}},{"before":"dc0a15c9e2898daab283df6017a07b6f0e384978","after":"a97ecd3dcc2b8f93b8157009e6373e3795f22ace","ref":"refs/heads/rebeccat/refactor-module-set","pushedAt":"2024-06-13T18:00:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Remove `LoadedModuleName`","shortMessageHtmlLink":"Remove LoadedModuleName"}},{"before":"88db52dc3abaab05819d3aa349f3bd8d2553c6a8","after":null,"ref":"refs/heads/release/1.0.1","pushedAt":"2024-06-13T17:56:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"}},{"before":null,"after":"bec17478fd08e7defb95cc7a01704b6d4d659b47","ref":"refs/heads/rebeccat/dux-2339-add-tests-for-normalpath","pushedAt":"2024-06-13T17:51:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"9999years","name":"Rebecca Turner","path":"/9999years","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15312184?s=80&v=4"},"commit":{"message":"Fix `:show targets` / `:show paths` parsing logic\n\nPreviously, if `:show targets` displayed a path, we would attempt to\njoin that path to each of the module search paths and to GHCi's working\ndirectory to find the file.\n\nIn reality, GHCi only checks such paths relative to its working\ndirectory. (Indeed, if you change the working directory with `:cd`, GHCi\nwill unload all modules. [1])\n\nAlso, the logic for checking these paths was broken, considering that\nthe search paths can be relative to the working directory, but we\nweren't properly joining these paths.\n\nIn the future, I'll write some tests that do `--after-startup-ghci\n\":cd ../\"` and see how much of ghciwatch explodes.\n\n[1]: https://gitlab.haskell.org/ghc/ghc/-/blob/077cb2e11fa81076e8c9c5f8dd3bdfa99c8aaf8d/compiler/GHC.hs#L1073-L1083","shortMessageHtmlLink":"Fix :show targets / :show paths parsing logic"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbAT9YwA","startCursor":null,"endCursor":null}},"title":"Activity · MercuryTechnologies/ghciwatch"}