Skip to content

v0.4.0.0

Choose a tag to compare

@CrystalSplitter CrystalSplitter released this 17 Nov 00:30
· 5 commits to main since this release

0.4.0.0 -- 2024-11-15

New features

  • Interruptable expressions! This was a huge rework of the code. You can now press Ctrl+c
    and expression evaluation will be interrupted! Very handy for avoiding hanging.
    See GitHub Issue #49 for details.

API changes

Large overhaul in general, as GHCiTUI has moved to an async daemon scheduling model.

  • Ghcitui.Brick
    • Introduction of the new CustomAppEvent to handle new event handling.
    • The brickApp now specifies a CustomAppEvent.
    • Moved event utils to EventUtils.hs
    • Separated out Events.hs into InterpWindowEvents.hs and SourceWindowEvents.hs.
    • Introduced the callback functions handleSourceWindowPostCb and interpWindowPostCb.
  • Ghcitui.Core
    • Removed the run command as it was misleading in an asynchronous context. Replaced with
      threadUnsafeRun.
    • Added the schedule and scheduleWithCb functions, which mostly replace the intent
      of run, but work with async.
    • Added interruptDaemon to call the interrupt signal.
    • emptyInterpreterState now must be run under IO, as it must set up the lock.
    • Added readyToExec to check if the ghci handle lock is taken.

In general, lots of doc fixes.

Bug fixes

  • Fixed a bug where the module display wouldn't reveal the source in the Source Window.
    when there was only one module. See GitHub Issue #48
    for details.

Known issues

See https://github.com/CrystalSplitter/ghcitui/issues for the latest issues.

  • Inability to suspend operation through Ctrl+z.