This week in SixtyFPS

13th of December 2021 to 19th of December 2021

Posted on December 20, 2021

SixtyFPS 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://sixtyfps.io/ or go straight to github at https://github.com/sixtyfpsui/sixtyfps

Merry Christmas 🎄

We are busy wrapping up the year and preparing for Christmas. So coding was slow this week and will also be next week, when we all head off for Christmas -- We will be back next year fully rested!

SixtyFPS UI Library

Fixes

  • Fix panic when compiling a property that references itself (b8cc59)

    Fixes #737

  • Fix opacity handling (ffd651, 684a8c)

    Improve handling of opacity with repeated elements and shadows.

  • WASM event loop improvements (93c28d, d8988c)
  • Avoid the use of symlinks for source files (e0a942)

    On Windows 10, the creation of symlinks by normal users requires enabling the developer mode, which may or may not be acceptable in corporate environments with restricted IT setups.

    We introduced the symlinks for the shared special key codes mapping, which instead this patch places into a shared sixtyfps-common crate.

New LLR representation in the SixtyFPS compiler

We are now working on a new Low Level Representation (LLR) in the SixtyFPS compiler, which will simplify the different code generators (C++/Rust/or the interpreter).
Currently all the generators work on a representation which is close to the original .60 markup, despite some transformations and simplifications on it. We want to have a lower level representation that is easier to translate to the final code, with less duplication in the different generators.
It will also become easier to add support for additional languages and allow us to make other changes in the compiler without touching all the generators every time. In particular, we have plans to do some refactoring in the runtime library, which will need fundamental changes in the generators. The more of those changes can be done on the level of the LLR, the easier it will be to adapt the code generators.

This work is currently done in the wip/llr branch

Janitor work

  • Typos: repeating words in documentation, across the repository (12c0ef)
    • fixed typo in image.rs
    • unnecessary repeated words in sixtyfps_runtime
    • unnecessary repeated words in sixtyfps_compiler
    • unnecessary repeated word in docs
    • unnecessary repeated words in helper_crates

    Thank you to @Vollbrecht for the fixes.

  • Fix formatting (5b31fa)

Statistics

10 patches were committed by 4 authors.