8000 mm1 import cycles don't fail nicely · Issue #49 · digama0/mm0 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
mm1 import cycles don't fail nicely #49
Open
@ammkrn

Description

@ammkrn

Trying to make two files that import each other (a.mm1 imports b.mm1 and b.mm1 imports a.mm1) stops a future from making progress during elaboration at this await point which I think leads to:

    elab(a.mm1) // waiting on mk(b.mm1)
        elab(b.mm1) // waiting on mk(a.mm1)
          elab(a.mm1) // vfs returns FileCache::InProgress, giving a(2nd) a sender handle from a(1st) 

and the receiver seems to await a message that isn't coming.
You either get the last parser error before it picked up the completed import, or the logging shows no error and gets stuck on "change a.mm1" if you copy-paste the whole line.

adding the previously seen/parent path info as an argument to server::elaborate seems like an easy way to propagate the relevant info without changing any types. Server/VFS are convenient, but neither of those seem concerned with the actual content of files.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0