-
Notifications
You must be signed in to change notification settings - Fork 233
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upstream patch to short-path #1645
Conversation
Adding more context from an offline discussion:
This might be fixed upstream one day: |
This should resolves short-path normalization hanging in some situations. > The paths that are not being included are weird ones used whilst checking type declarations that are recursive. Unlike almost all other type defunitions, they get mutated after they are added to an environment, and actually become invalid cyclic types. Since short-paths looks at the types lazily it sees the cyclic definition and blows up. This might be fixed upstream one day: ocaml/ocaml#9324
f115d9e
to
7065f88
Compare
from voodoos/short-paths-loop
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
CHANGES: Thu Aug 24 17:17:42 CEST 2023 + merlin binary - Constrain socket path buffer size to avoid build warnings (ocaml/merlin#1631) - Handle concurrent server start (ocaml/merlin#1622) - Omit module prefixes for constructors and record fields in the `construct` command (ocaml/merlin#1618). Prefixes are still produced when warning 42 (disambiguated name) is active. - Correctly invalidate PPX cache when pipeline ran partially (ocaml/merlin#1650, fixes ocaml/merlin#1647) - Prevent `short-path` from looping in some cases related to recursive type definitions (ocaml/merlin#1645) - Support parsing negative numbers in sexps (ocaml/merlin#1655) - Fix construct not working with inline records (ocaml/merlin#1658) - Improve behavior of `type-enclosing` on let/and operators (ocaml/merlin#1653) - Fix occurrences of extension constructors (ocaml/merlin#1662) - Improve node selection when ghosts are present (ocaml/merlin#1664, fixes ocaml/merlin#1660) + editor modes - emacs: call merlin-client-logger with "interrupted" if the merlin binary itself is interrupted, not just the parsing of the result (ocaml/merlin#1626). - emacs: merlin-construct, with a prefix argument, now includes local values in the completion options. Alternatively, this behavior can be enabled permanently by customizing `merlin-construct-with-local-values` (ocaml/merlin#1644) - emacs: add support for opam-switch-mode (ocaml/merlin#1654, fixes ocaml/merlin#1591). See <https://github.com/ProofGeneral/opam-switch-mode>
This should resolves short-path normalization hanging in some situations.