Skip to content

proper_transformer has unfavorable behavior for fine-grained compile dependencies #288

@TheGeorge

Description

@TheGeorge

Problem

When applying the parse_transform, PropEr accesses the abstract code of referenced modules, to determine if calls lead to exported types or not (and branches based on that decision).

This creates additional build dependencies on modules using proper_transformer. Typically, calls don't need to be considered when building beams, as they are resolved dynamically during run time.

Proposed Solution

PropEr should be lazy here when accessing the abstract code of referenced modules.

Why is this important?

With a build system that carefully tracks compile dependencies per-file, it is important to have a robust and quick way to determine these dependencies, and to keep dependencies as flat as possible.

Unfortunately, parse_transforms can dynamically pull in additional dependencies during compile time.

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