Skip to content

minipyro documentation clarification. #3003

@luiarthur

Description

@luiarthur

I really like that minipyro is in here for those interested in the internals of pyro. Super awesome!

Some of the wording in the module, particularly regarding PYRO_STACK, is confusing to me, though.

For example:

# Handlers earlier in the PYRO_STACK are applied first.

If we run:

trace(replay(model, guide_trace)).get_trace(...)

We end up (somewhere during the execution of the above line) with a PYRO_STACK with the first item referencing trace, and the second item referencing replay. But when we hit apply_stack, because of the reverse order in which the handlers are applied, replay is applied first. So, the comments should read, # Handlers *later* in the PYRO_STACK are applied first., correct?

Similarly, in

def apply_stack(msg):

Shouldn't

When a Messenger sets the "stop" field of a message,
it prevents any Messengers above it on the stack from being applied.

really be:

When a Messenger sets the "stop" field of a message,
it prevents any Messengers below it on the stack from being applied.

And

A Messenger that sets msg["stop"] == True also prevents application
of postprocess_message by Messengers above it on the stack
via the pointer variable from the process_message loop

should really be:

A Messenger that sets msg["stop"] == True also prevents application
of postprocess_message by Messengers below it on the stack
via the pointer variable from the process_message loop

I could be convinced to interpret all this otherwise, but I guess this was my default interpretation. Am I way off-base?

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationhelp wantedIssues suitable for, and inviting external contributions

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions