Adrien Champion
Adrien Champion
Short term, how about this: we can have a branch on this repo that's the same but without the `u64` uid. That way you can use this branch instead of...
Alternatively, we could just feature-gate no-uid in the `main` branch and say it's experimental somewhere as long as we're not sure it's safe
It's starting to sound like you're right: - https://users.rust-lang.org/t/can-a-rc-move-location-behind-my-back/28828/2 Since hashconsing will not let you mutate terms anyways, I think addresses must be stable like you said. Inner mutability would...
By the way @amarmaduke, it sounds like we will have quite a few configuration options soon, so I think @Pat-Lafon's PR #14 is the way to go. We would have...
My thoughts exactly 😸 Let me take care of the proc-macro PR first then
Hey thank you for your kind words 😸 Regarding the `derive` macro, it's definitely something we could propose. We can generate the identifier `RawTerm` for the raw term type automatically,...
> And just randomly, I'm wondering if you have any thoughts on updating the edition to 2021? Sorry if you've already considered this. Oh sure that's quite easy to do,...
For the `derive` macro, I would expect it to look like this: ```rust #[derive(HConsed(RawTerm), Debug, Hash, Clone, PartialEq, Eq)] enum Term { Var(usize), Lam(RawTerm), App(Term, RawTerm) } ``` This means...
@Pat-Lafon would you be interested in writing the `derive` macro by any chance?
Regarding caching using weak references, I actually wrote [an example in a branch][weak] back when I misunderstood your question in #15. It only uses std. [weak]: https://github.com/AdrienChampion/hashconsing/blob/weak_ref_doc/src/test/weak.rs