Replies: 1 comment
-
Hi @Permik, yes, I'm aware of Facet. I think the goals for Facet is quite different from the goals of CGP. In particular, Facet aims to reduce the compile time, especially for use of proc macros, by shifting the logic to runtime introspection. On the other hand, CGP aims to shift everything from run time to compile time, but via generics instead of proc macros. The promise offer by both CGP and Facet shares some similarity. Facet requires users to only use For CGP, we don't care as much about compile time as Facet. Things may take slightly longer to compile, but the extra time is worth it if we can have less runtime overhead and eliminate runtime error. That said, CGP code tend to compile much faster than regular Rust code, due to the way we write code abstractly. The current main overhead of compiling CGP programs is at the main program compilation, but even that is pretty much solved by the next-gen trait solver, which should stabilize soon in Rust. I think if there is one thing to learn from Facet, it is to remove the dependency of |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Are you aware of the https://github.com/facet-rs/facet project?
It's a cool introspection library that doesn't use syn so the compile times stay manageable.
It does a lot of the work in comp time and type system, while using minimal macros to achieve fast compilation times.
I'll be very interested about what you think if this could be utilized in the cpg project.
Cheers!
Beta Was this translation helpful? Give feedback.
All reactions