CertainLach / jrsonnet

Rust implementation of Jsonnet language
MIT License
290 stars 33 forks source link

Rust features wanted for jrsonnet #165

Open CertainLach opened 1 month ago

CertainLach commented 1 month ago

To remove as_any[_mut] methods

Some traits in jrsonnet have as_any/as_any_mut methods Those methods might be removed by making Any a supertrait of those, but it will be only possible with

Better GC

Many good Rust GC designs with explicit root tracking (Like https://github.com/withoutboats/shifgrethor) require method receivers to be typed as in fn method(self: Gc<Self>), this requires

(This is also possible to implement with rustc_driver, which implements required linting, as in servo... But this is uglier, and requires using separate compiler)

Until then, current Gc is a reference counting with cycle collection instead, as we can't reliably track roots. rust-gc, which was used previously, spends too much time tracking roots, so its approach is not practical.