v3.0.0
Cthulhu v3.0.0
Cthulhu 3.0.0 marks a major redesign of its internals with respect to how downstream packages customize Cthulhu's introspection features for their own types. Previously, the interface was established on Compiler.AbstractInterpreter; now, it uses a dedicated Cthulhu.AbstractProvider interface type, with a clearer and more powerful interface. Documentation on the whole interface is accessible via ?AbstractProvider. The PRs introducing the breaking changes are #662, and its follow-up #677.
See the CHANGELOG.md for other details. The main breakages that users may encounter are the following:
- The
annotate_sourceconfiguration option was removed in favor of aview::Symbolconfiguration option, with the:source|:ast|:typed|:llvm|:nativeavailable views by default (more may be defined by providers). - The
exception_typeconfiguration option was renamed toexception_typesfor consistency withremarks. - The
with_effectsconfiguration option was renamed toeffectsfor consistency withremarksandexception_types. - The
inline_costconfiguration option was renamed toinlining_costs, also for consistency reasons. - The
interruptexcconfiguration option was removed. It used to control whetherqexited (by throwing anInterruptException) or ascended, but now that backspace was added as a shortcut to ascend, we can now unconditionally exit withq(which actually matches its action description).
Merged pull requests:
- Redesign downstream integration with Cthulhu (#662) (@serenity4)
- TypedSyntax: Don't create empty children preemptively (#676) (@serenity4)
- Split compiler integration to avoid duplicating Cthulhu when loading the compiler extension (#677) (@serenity4)
Closed issues: