Skip to content

Per-conference state persists across conference changes #36

@dancrossnyc

Description

@dancrossnyc

State set per-conference, such as macros set in a conference's rc file, persists after the user switches to a different conference. For example, if one joins the "unix" conference on M-Net, the prompt is set to a mock shell prompt for the superuser: m-net:/:# . However, if one then switches to (say) the "general" conference, one observes that one still has the same prompt from "unix".

Per-conference state ought to be set in a per-conference environment that is created on entry to the conference, and discarded when leaving. For macros, this is simple enough to do: have a conference-local macro dictionary that is consulted in expand before the global and default dictionaries (one may think of this as imperfectly analogous to block scoping in e.g. a programming language). Other sorts of state could be accommodated accordingly.

I'm sure there are edge cases that add complexity here. For example, suppose a user manually defines a macro while in some conference: where should that definition go? Suppose it goes into the global macro dictionary but refers to something local to the conference, etc. A set of reasonable decisions can be made here, but the design space is a touch wider than it appears on first glance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions