#DevLog: #Anklang TypeScript & Sndfile Updates
π #Jsonipc #TypeScript migration complete, including codegen!
π Updated development docs accordingly
π οΈ Manually wrote #libsndfile config.h
#DevLog: #Anklang TypeScript & Sndfile Updates
π #Jsonipc #TypeScript migration complete, including codegen!
π Updated development docs accordingly
π οΈ Manually wrote #libsndfile config.h
#DevLog: jj-fzf & #Anklang type safety π‘
π¦ Migrated all #Jsonipc glue code to #TypeScript
π§Ή Finally removed legacy #castxml + #Python based code generator
π§© Next up: porting generated bindings to TypeScript, aiming for fully type-safe #IPC!
π Fixed jj-fzf to preserve ::@ history when deleting #git tags
#DevLog: #Anklang #IPC Bindings π
π§Ή Cleaned up #API for IPC and simplified it
π οΈ Rewrote C++ <-> #JavaScript binding generator in #TypeScript
β¨ Improved code generation for handling of accessors
π¦ Tested updated #NPM dependencies
#DevLog: #Anklang #RPC Evolution π
π§± More JSON marshalling work for method calls
π οΈ Changed Json libraries and conversion logic
π Moved to managed pointers for all API obejcts
π§ Discovered LLMs don't fully understand cross-language RPC nuancesβ¦ π
β Solved the C++ template specialization issues
#DevLog: #Anklang Binding Migration π§ͺ
π οΈ Trying to base the C++ <-> JSON bindings on `#clang -extract-api` instead of castxml
πͺ Have prototype code for #JSON call dispatching
π§© Atm fighting #CPlusPlus template specializations for member func with and w/o const
β¨ The ultimate goal is to make the bindings type safe with #Typescript wrappers
#DevLog: #Anklang Build Overhaul π οΈ
π§ Reworked build rules to make #Git optional (mostly used to find linting targets)
πͺ Fixed DEB and #AppImage builds
π¦ Added #RPM packages (via Alien)
π€ Automated dist & install verification
π Rewrote the Docker CI container
π‘οΈ Isolated binary builds out-of-tree
π Tagged a nightly release:
#DevLog: #Anklang #Submodule Purge
π§ #Github release tar/zip archives cannot include submodule sources
π₯ So, we now fetch all external sources as tarballs (faster anyway)
π§Ή Deleted .gitmodules and all submodule build rules
#DevLog: #Anklang #Packaging π§
π¦ Tried converting DEB pkgs to RPMs via alien & fakeroot
βοΈ Alien wraps postinstall scripts in uuencoded strings, decodes with #Perl
π₯ #Fedora 42 dropped Perl support!
β Seeking solutions to align Alien v8.95.6 with F42, any ideas? π€
#DevLog: Revised Deb #Packaging in #Anklang
π¦ Upgraded #Debian dependencies to 24.04
π§ Fixed installation symlinks and prefix
π‘ Adjusted paths to /opt/<vendor>/ convention
π³ Built #Dockerfile twice:
π« First attempt on Debian Bookworm failed due to libstdc++-12 being too old
β Switched to #ubuntu:22.04 for newer deps
π οΈ Updated Makefiles to remove Git dependency from tarball builds (unfinished)
#DevLog: #Anklang #SolidJS Influx
𧬠Fixed some of my #LitElement bugs by migrating to solid
π§© Refactored & simplified modal dialog creation
π― Goal: Robust UI with modern reactivity patterns!
In #Anklang, we have been running into warnings from #Lit like:
> Element scheduled an update (generally because a property was set) after an update completed, causing a new update to be scheduled.
You should be good unless you see a warning directing you here:
https://lit.dev/docs/components/properties/#when-properties-change
For #Anklang we expect to have lots of small updates at the GUI, but the number of components (Tracks, Clips) remains mostly stable throughput the runtime. We do however have some heavy canvas uses (PianoRoll, Spectrogram).
It wasn't too easy to map these requirements onto Vue2/Vue3, which is why we moved to Lit. However for Lit we also have to bundle a Signals library to implement all needed updates and still see missing updates / complains about too many rerenders at the UI.
Since we need Signals anyway, it makes sense to look into SolidJS as a UI solution as well.
So here is a Wiki page with the result of LLMs comparing the two under our requirements:
DevLog: #Anklang Tech Stack Juggling
π Deep dive into SolidJS vs. Lit Components trade-offs π
π³ Resolved Dockerfile builds missing pandoc
π§ͺ Looked into combining SolidJS lifecycle with custom class logic
DevLog: #Anklang Tech Stack Modernization
π Migrated to #TailwindCSS-4 + #Vite (#HMR rocks)
π Replaced Vue with SolidJS signals + #LitElement
π‘ Fixed sidebar overlaps, double-click bugs
π§ Quirk debugging still ongoing, but progress is solid!
I'm publicly committing to the 100DaysOfCode Challenge, aiming to work on #Anklang and tweet about it daily.
I expect it to be far easier to spend an hour coding every day than to craft an intelligent microblog message about it...
Join me and learn about it here: https://100DaysOfCode.com