Skip to content

Specify and re-implement exit procedure. #474

Description

@toddjonker

The exit procedure is untested and underspecified.

The docs say “Exits the running Fusion program” but the implementation just throws an exception in the current thread.

In Racket, exit abruptly terminates the process after flushing the original plumber.

In Fusion, especially for embedding cases, that's too aggressive, at least for default behavior. I think “abort this thread" makes sense in that context.

Still, I'm suspicious that the implementation may not exit as abrubtly as possible. Can the exception be intercepted and handled from Fusion code? From Java code? This may need special handling in the runtime.

The existing ExitException API is a sensible signal to the application, but perhaps that should just be an outer-layer thing, not the implementation.

Activity

  1. added this to the First Beta Release milestone on Mar 12, 2026
  2. toddjonker commented on Mar 31, 2026

    @toddjonker
    MemberAuthor

    On 2026-03-17 (#480) the exit procedure was removed, for the problems cited here.

    On 2026-03-31 (#507) the REPL supports an ,exit command that satisfies the original use case that led to the exit procedure.

    So this issue is now a re-implementation issue and can start fresh.

  3. changed the title [-]Specify and test `exit` procedure.[/-] [+]Specify and re-implement `exit` procedure.[/+] on Mar 31, 2026
  4. removed this from the First Beta Release milestone on Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions