Skip to content

Instantly share code, notes, and snippets.

Last active June 29, 2020 12:39
What would you like to do?
Rum 0.12.0 release notes

Rum 0.12.0 release notes

Happy to announce that Rum 0.12.0 has been released.

Sablono -> Daiquiri

A major change in this release is Daiquiri — reworked fork of Sablono. The reason we went with a fork is to own the compiler/interpreter. Daiquiri removes input field wrappers, this was causing weird bugs with jumping caret. Similarly to Sablono, Daiquiri makes use of ClojureScript's type inference to reduce number of generated interpret calls when compiling Hiccup. This applies to primitive types such as number, string, array and function, and also anything that is hinted as js/React.Element, Rum components include the type hint implicitly.

Removed rAF based scheduling mechanism

Sablono's input wrappers exist because some ClojureScript React wrappers have their own update scheduling mechanism built on top of js/requestAnimationFrame which doesn't play well with input fields. In this release we've removed Rum's scheduler, which allowed us to remove input wrappers and rely on React's scheduler, which is hopefully a lot smarter about orchestrating updates.

What's next?

There's still a bunch of open issues. Also I'd like to put some time into assesing and improving Daiquiri's interpreter performance, as of now it's already ~30% faster than Sablono.

Please report issues in the repo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment