-
Notifications
You must be signed in to change notification settings - Fork 168
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
Tracking issue for new features #100
Comments
Oh wow, there's been a lot of neat development that eluded my sight. That's awesome :D I'll see if I can help with some of these in the future! |
Kudos to the team that laid all the superb groundwork beforehand! |
I'm probably spending way more time on this than I really should... but... it seems like the language is at a reasonably stable state with most of the low hanging fruits already picked. To speed up Rhai further will really require some hefty architectural changes, time for which may be productively spent on implementing other useful features instead. So... what feature do you fancy to be added to Rhai next? I would probably pick one of the following:
|
Is version 1.0 (or next intermediate semver-incompatible version) a good chance to fix Cargo features to be positive instead of negative? |
I am still divided on this - on the one hand, it may break a lot of existing code. On the other hand, it conforms to "standard". I think I'll let the community ponder it more before deciding to change it for 1.0... |
@schungx Personally I would vote for this one:
Even having first-class functions without closures would be very good. This is something I need to make structural data constructions more concise in my project that is using rhai extensively. I would suggest a syntax in a form conformed with Rust, so something like Will be happy to help with this implementation if you need more hands. LMK. Thanks! |
Actually I've already put in place all the mechanism needed to parse the closure syntax. The current idea is Then other than not being able to capture the running environment, this will look almost like standard OOP. |
Anonymous functions (not closures) support already in, together with the ability to curry a function. |
Full closures with capturing merged in. This is thanks to the work of @Eliah-Lakhin |
And I want to say thank you to @schungx for his great work in development and maintenance of Rhai! Without his help in stabilizing of my prototype and implementing of other related features it wouldn't be possible to deliver this feature that fast. Rhai in my opinion is the most promising and well maintained embedded scripting project in Rust ecosystem. |
Plugins system (powered by procedural macros) merged in. Thanks to @jhwgh1968 Documentation: https://schungx.github.io/rhai/vnext/plugins/index.html |
A minor new feature lands: https://schungx.github.io/rhai/vnext/language/try-catch.html A The particular implementation technique of treating return values and loop breaks from the very beginning of this repo translates well to implementing this, which took very little time and very little code for perhaps a high impact new language feature. |
Deprecating this list in favor of new feature requests as new issues. |
pre 1.0
1.0
rhaifmt
formatter.closed
no-std
(How to use with no-std #19) closed by Add no_std support #103eval
closed by eval #110in
operator (in
operator. (was: can Any::downcast_ref be public? after upgrading rhai it's private now) #124) closed by Reentrant Engine, Rust anonymous functions,in
expression, timestamps, bug fixes #128in
expression, timestamps, bug fixes #128serde
support (serde support for Dynamic values #174) closed by Serde support, disable keywords, custom operators, custom syntax and chainable API. #176panic
the whole system (Make Rhai rugged #102)mdbook
to convert theREADME
into The Rhai BookEngine
and environment (How to use with no-std #19 (comment)) closed by Serde support, disable keywords, custom operators, custom syntax and chainable API. #176unicode-xid-ident
feature to allow unicode-xid for identifiers. #205The text was updated successfully, but these errors were encountered: