💾 Archived View for bbs.geminispace.org › s › Lagrange › 19764 captured on 2024-12-17 at 15:04:31. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Lagrange v1.18: TUI and Misfin
Development of version 1.18 has been a slow burn. Over the past year, I've been putting finishing touches on the Curses-based TUI variant and adding support for new Gemini-adjacent protocols. A number of bugs were fixed as well, and I've made several minor improvements in the user interface.
clagrange (80x25) on macOS, showing BBS front page
What's new?
Sep 20 · 3 months ago · 👍 johano, cthulhu, klimperfix · ❤ 1
🕹️ skyjake [OP/mod...] · Sep 20 at 10:15:
Let me know if you have trouble running the clagrange binaries. They seem to work for me but there are so many different terminals and possible platforms out there. Weird things may always happen!
One unexplained issue I'm having is that, with certain compilers, clagrange does not display proper output unless the compilation flags use -O1 (or sometimes -O2). It is perhaps due to undefined behavior _somewhere_ that is messing up the compiler optimizations when it comes to the Curses rendering. It might be related to statically linking Curses to the executable.
Good work as always! The curses based terminal version sure is impressive! It seems to work well in alacritty on linux
This is sent with clagrange
I will see if I can build clagrange on OSX 10.4 Tiger. I was never able to build the GUI one due to problems with SDL and some of the libraries for rendering fonts.
Would be wonderful to have another client on the OS. So far the only client anyone has gotten working was (ugh) AV-98.
awesome, thanks!
🕹️ skyjake [OP/mod...] · Sep 20 at 16:24:
@istvan Curious to hear how that goes!
Well, I wrote an strnlen() function to fix that breaking. Now I'm running into trouble with the_Foundation library because it insists on threading that isn't available.
From Apple's pthread:
/*SPI to set and get pthread name*/
__API_AVAILABLE(macos(10.6), ios(3.2))
int pthread_getname_np(pthread_t,char*,size_> t);
__API_AVAILABLE(macos(10.6), ios(3.2))
int pthread_setname_np(const char*);
None of those come along until Intel Macs. Probably going to be stopping here because it probably takes significant work to get any further.
🕹️ skyjake [OP/mod...] · Sep 20 at 17:15:
The thread names are not used for anything important by Lagrange, so you might resolve that with some dummy functions...
Made a fake function to just return(1) and it continued with the compile. Now it's crying about clock_gettime().
You've probably noticed all the problems so far are things that should be solved by defining a POSIX version explicitly in the header. Unfortunately, that just introuces a few thousand much worse errors.
Maybe I need to look at some of the TigerBrew patches and see how other people solved this. It can't be a unique problem.
Nulled out the clock. Made it along the chain to process.c, which blows up because there is no spawn.h in the system.
Seems to be a known problem on 10.4. A number of MacPorts are broke because of no spawn.h.
Commented out the include, then made start_process return iFalse (good enough for Android)….
Then it built harfbuzz even though I told it not to. And then it started building SDL even though I told it to build TUI.
Nuked the mouse wheel controls but hit a wall at SDL_CreateRGBSurfaceWithFormatFrom(). The needs SDL 2.0.5+ and I’m capped at 2.0.3.
Did I screw up my cmake line? Why is it even trying to build this when I wanted to try ncurses.
Fixed it. Cmake decided to not respect a single variable set from the command line. Edited the options in the cache file and rebuilt. Finally got onto the TUI path.
Had to patch most of the files to remove all middle scroll wheel functionality because that’s not available in SDL 2.0.3. Finally compiled everything.
… And then linking failed with every single symbol missing. Guessing pkg-config isn’t playing nicely with cmake to add all the linking paths.
I’ve had enough pain for one day. May give it another shot next week. Guessing Unicode is going to ah e some serious problems even if I get it going since I’m missing ncursesw.
🕹️ skyjake [OP/mod...] · Sep 21 at 10:59:
clagrange does not display proper output unless the compilation flags use -O1 (or sometimes -O2). It is perhaps due to undefined behavior _somewhere_
I managed to track this down pretty easily. Turns out, there was an ill-advised cast and dereferencing of a value in the function that copies the text canvas to the screen.
I remember reading about Lagrange in F droids and I can't find the link to your F droids repository anymore. Can you link that here?
🕹️ skyjake [OP/mod...] · Sep 25 at 04:06:
Thanks!
I probably missed it somewhere, but how can I make the new misfin features work with my gembox at hashnix.club?