8th of November 2021 to 14th of November 2021

Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++, and JavaScript. Find more information at https://slint-ui.com/ or go straight to github at https://github.com/slint-ui/slint

SixtyFPS UI Library

De-Inlining Status Update

The de-inlining work has been integrated this week and the compiler will now produce de-inlined code by default with commit 61202c.

The environment variable SIXTYFPS_INLINING can be used to still force inlining in the compiler.

Here are some results of compiling the SixtyFPS Printer demo

C++ generated header sizeC++ binary sizeCompilation time
Before (all inlined) 1.4M 2.3M 40 seconds
Now (de-inlined) 852K 1.4M 21 seconds

Rust generated code sizeRust binary sizeCompilation time
Before (all inlined) 2.9M 6.9M 85 seconds
Now (de-inlined) 1.9M 6.4M 67 seconds

These numbers are all for a release build. The Compilation time is measured by the incremental time of just changing the .60 file.

The C++ binary is dynamically linked to the SixtyFPS library and reads its resources from disk. The rust binary on the other hand is statically linked to the SixtyFPS library and has its image resources baked into the binary. So the binary sizes are not directly comparable between the two languages.

Fixes

Improvements and Refactorings

Statistics

46 patches were committed by 4 authors.