Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement full compile-time instantiation (distage plans -> scala code interpreter, tree dumper) #453

Open
kaishh opened this issue Nov 13, 2018 · 1 comment

Comments

Projects
1 participant
@kaishh
Copy link
Member

commented Nov 13, 2018

We can do this fairly easily right now for static plans (those defined by classpath plugins).

Enabling type-level bindings manipulation would first require #102

Partially solves #53

@kaishh kaishh added this to the 0.8 milestone Nov 13, 2018

@kaishh kaishh self-assigned this Nov 13, 2018

@kaishh kaishh added this to To do in DIStage via automation Nov 13, 2018

@kaishh kaishh changed the title Implement full compile-time instantiation (distage plans -> scala code interpreter) Implement full compile-time instantiation (distage plans -> scala code interpreter, tree dumper) Nov 13, 2018

@kaishh

This comment has been minimized.

Copy link
Member Author

commented Nov 30, 2018

Current reflection-based compile-time checker interracts badly with incremental compilation. Seems like the only way to fix that is to use HList-backed moduleDefs such that changes in modules would properly trigger recompilation of checking macros.

There are also incremental compilation bugs in scalac wrt TypeTags - summoners of type tags do not get recompiled when constructor of their target changes - that means that only static provisioner, which splices code that calls the constructors directly, interacts well with incremental compiles right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.