Skip to content

Instantly share code, notes, and snippets.

@roman01la
Last active June 29, 2020 12:39
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roman01la/8b65652af9d086e70aabfdf08ba6129c to your computer and use it in GitHub Desktop.
Save roman01la/8b65652af9d086e70aabfdf08ba6129c to your computer and use it in GitHub Desktop.
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 github.com/tonsky/rum/issues

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