/j@trcwm
I'm doing some bare metal AVR (8 bit MCU) in #oberon (using an Oberon to C transpiler and hand coded register addresses from spec docs) as well as some (BSD/Linux/MacOSX) server side companion (over serial USB) to the AVR.
I would normally do this in #C99 (or believe it or not #Ada) but Oberon is forcing me to think about what I want to do vs figuring out compiler/language tricks to optimize what I want to do.
For example -- I have a simple comms protocol full of little endian values.
In C (or even in Ada) I would be tempted to slam a packed little endian oriented data structure over top of a transferred binary blob and call that a protocol vs having to explicitly byte by byte walk the data... I C I can do this easily. In Ada I can tell the compiler the endianness I want and it magically does the translation.
Oberon simply doesn't have the facility for such optimization tricks.
And you know? I feel more like I'm writing elegant code than "hacks" that need copious documentation.
Just pushed pset004.c into my Euler Repo.
No. Not happy with the palindrome solution I came up with. 4-digit numbers onwards get pretty heavy for the computer.
But I refuse to ask an AI to teach me algorithms. I'd rather eat my own left foot than ask for a O(n) solution.
Currently battling against Project Euler's pset004 in #C.
How come a simple function that reverses a 6-digit number to check whether it is a playndrome (O(n)) can furiously turn into a massive resource waster when digits increase?
Unfortunately, my most feared enemy, the pointer, will save me on this one.
Ollama for classical ML models. AOT compiler that turns XGBoost, LightGBM, scikit-learn, CatBoost & ONNX models into native C99 inference code. One command to load, one command to serve. 336x f...