Skip to content

Support using as a library #12

@puff

Description

@puff

Currently, everything is built into a standalone executable. It would be nice to be able to use the project as a library to allow a more extensible pipeline.

Tasks to be done:

  • Split Core into separate projects.
  • Make Core completely separated from the pipeline.
    - For example, IO namespace uses DevirtualizationContext from the pipeline. We should move IO away from the Core namespace.
  • Fix the internal access modifier spam.
  • Split MethodDevirtualizer stage into MethodDisassembler and MethodRecompiler stages.
    - Decouple VMMethod and other VM architecture from CIL and keep them more VMIL.
    - Allows other stages to modify instructions before recompilation (i.e. Fixers or Data Devirtualization)
  • Move Devirtualization namespace to its own project and implement an IPipeline.
    - Decentralizes the pipeline and allow for more pipelines to be created and used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions