Keeping multiple devices synced


#1

I currently have three platforms that I’m running uLisp on:

  1. The PicoCalc
  2. A pair of Teensy 4.1s
  3. The T-Deck

I’d like to have a way to generate a uLisp build that keeps the Lisp libraries generally in sync (with perhaps a few variations based on the platform, e.g. LoRa support on the T-Deck), as well as keeping my extensions synced. Maybe the right choice is to figure out how to generate this in uLisp Builder and keep some #if defined(feature) flags in a Lisp library.

Does this sound like the right approach?


#2

What exactly do you mean by synced? In my experience of working with the t-deck and cardputer the two platforms are different enough to warrant separate codebases. I found it most effective to develop for one of the platforms and not worry about the other, then port it when it’s done.

The picocalc looks like a much better platform than either the t-deck or cardputer because it has a large screen, extended keyboard, and isn’t an esp32 so you don’t have to deal with the limitation on uploading through the terminal. If I were you (and I might be when my picocalc ships) I’d focus entirely on it and port stuff later. The t-deck keyboard is so limited that considering how I’ll make certain features work on it slows me down considerably. YMMV but that’s my two cents, also I don’t have a picocalc yet so maybe it has other issues that I don’t know about and it’s not as nice as it looks.


#3

For example, I have some of the same functions in my extensions: now, some tools for writing functions to the SD card, and some SD card related functions. They work the same across all of the platforms as they just use built-in functionality. I also have very similar contents in my LispLibrary.h. I’d like to reuse these across all three platforms, with the ability to use *platform* to gate functions in lisp programs and ifdef guards in the extensions.

The PicoCalc is a great form factor, just missing a few things right now. I passed a diff on, and I’m looking at more work I can do to support the system. The T-Deck is nice to have as a reference platform, and it has built-in LoRa functionality I’d like to explore.