You don't have to build Lua to not do GC, you can just tell it how its GC heuristics are supposed to behave at runtime by setting the pause and multiplier variables - good treatise on how to do this at runtime is available here:
Glibc has been a source of breakage for proprietary software ever since I started using Linux. How many codebases had to add this line around 2014 (the year I brought my first laptop)?
dlopen and dlmopen no longer make the stack executable if a shared library requires it
I'm not counting intentional breakage to improve system security. I'm not even sure I'd call it an ABI breakage; by a wide definition I guess it is a "change in glibc that makes things not work anymore". You also can't execute a.out binaries anymore, eh. And I don't think I would call something that affects primarily closed source binaries (and mono on i386) a "huge" issue either.
The fix is trivial ("execstack -s <binary>") and doesn't involve any change to installed versions of anything.
> __asm__ (".symver memcpy, memcpy@GLIBC_2.2.5");
A 12 year old forward compatibility issue that is fixed by upgrading glibc, okay. (Note this is the same timeframe as the s390 thing I linked.) I guess people shipping binaries need to be aware of it if they want to support glibc pre-2.2.14. That said, the general rule of shipping binaries is that you need to assume whatever you build against becomes the minimum required version, anything else is a gift.
I think my point about never pinning glibc stands, and how many other things do you know where you need to go back 12 years to find an ABI break?
A few recent examples: many distros changed the flag for emuTLS on Windows, which gcc implemented as a hard ABI break for no essential reason. If you compile for enough platforms, it will print various notes that various alignments have changed in the struct, which has caused grief numerous times in the past few years for people I work with (many of the changes don’t come with notes, they just change alignment since new hardware comes out that has new features which need more and/or there were bugs previously, so they silently change it). There’s also win32 or posix threading, and sjlj vs structured exceptions, all of which are mutually incompatible. Oh, and then don’t get me started on ARM v6 atomics, which is some weird decided-based-on-compiler-flags-to-record-heuristics-detected-during-configure-of-some-auxiliary-header time, instead of using the current target’s ABI
Sure, the ABI does not change at all, if you know in advance where the landmines are. Though it does have quite few, especially for a large project with a huge surface area
I was talking about glibc; none of the things you mention relate to that. (Note glibc is not used on Windows.) I'm painfully aware of some of the breakage GCC occasionally causes (the atomics fall into that — but to be fair ARMv6 is also >10 years ago at this point, unless you're doing embedded, in which case you generally build the whole system anyway and don't care about these breaks.)
Also, just in case it's not clear, glibc has nothing to do with GCC.
You can have one of "they're so serious about forward and backward compat you should remove version pins because things won't ever break" and "well, I'm not counting intentional breaks" but not both.
> Yet, the market for "Indian Luxury" is booming globally. We see European houses acting as colonial curators of Indian heritage: Prada rebranding the Kolhapuri chappal for ₹84,500 ($930); Gucci selling the common kurta as an 'exotic kaftan' for the price of a small car; and Dior releasing a ₹18,180,000 ($200,000) coat dripping in Lucknowi Mukaish work without a whisper of credit to the artisans. The global appetite for the aesthetic is ravenous. But in Kanchipuram, the very hands that feed this hunger are vanishing.
The Western colonial imperial system never truly went away, it simply morphed into an opaque inscrutable machinery to make it palatable to its own highly refined taste. An empire of human rights.
It's India's State and Local Governments are promoting this - most artisans that manufacturing these goods are doing so as part of a cooperative as Khadi and MSME Cooperatives is a major pillar for Indian politics and economic development, along with One District One Product [0] in order to build a heritage consumer goods industry similar to what Japan did.
It's also something that is deeply personal for Narendra Modi and Amit Shah [1] as they started their political careers climbing up the cooperative ladder - they were able to turn Gujarat from being a Congress only state to a BJP only state by co-opting cooperatives in the dairy industry [2]. And in Kancheepuram's case it's an extremely important industry in TN.
Furthemore, if Prada or Chanel buys Indian heritage artisan goods and gives it the luxury veneer, it helps MSMEs and khadi cooperatives demand better terms when wholesaling light manufactured products.
Finally, at a personal level, much of my family is associated with Khadi and Cooperative industries - they are one of the only ways to build medium or even high value industries while giving participants some degree of agency. The profits of khadi goods being sold at high margins ends up in the hands of cooperative members and cooperatives tend to re-invest in capacity building or subsidizing new entrants. This is why you see cooperative banks dot all of India.
Don't assume pls. I'd say "ask", and you can just ask AI if you're short on time to find a Indian with sufficient humility to answer cautiously
It will tell you Indians aren't monolithic, and artisans certainly DO mind (while elite or others might not, bc they are ignorant like you or I). It will also tell you that India has "geographical indication (GI) protections for crafts like Kanchipuram silk, Banarasi sarees, and Chanderi fabric specifically to prevent this kind of appropriation".
While an Indian "joe on the street", might not have an opinion, the slower and deliberate machinery of government (which is elected to protect interests of the Indian people) certainly has a problem with such things, and might gladly refer to colonialist tendencies.
Ask a human or an AI yourself, if you care enough to learn rather than just offer a confident take
I personally just switched to using push descriptors everywhere. On desktops, the real world limits are high enough that it end up working out fine and you get a nice immediate mode API like OpenGL.
Back when I was on Android, there used to be a launcher by Nokia called Z Launcher. The idea was simple: the home screen could only show the six apps. However, you could draw a letter on the home screen with your finger, and it would be recognised and used as a beginning of the search query for app names. Of course, you would only get six search results, but you could always draw the next character to get better results.
And there was some basic ML to learn which app was more likely to be used at which time, location, etc. so that the right app could be shown at the right time without having to scribble anything. It was the most efficient way to launch apps I have ever used.
According to Wikipedia [1], it got removed in 2018 which is right before I switched to iOS. I do remember trying to replace it with KISS Launcher[2], but it just wasn't the same.
I always wonder why SQLite didn't expose a programmatic way for creating a query (as opposed to parsing SQL statements). Given that it was designed to be embedded, it seems to me that it would have made far more sense to provide an API based interface. Then, for example, stored procedures would just be function pointers passed as callbacks.
SQLite was a library for TCL, implementing "sqlite" command, and from TCL one can use it in a variety of interesting ways, approaching and even surpassing "stored procedures" concept.
Don't bother, I tried with a disposable email address and they make you subscribe to a mailing list before sending you the download link. When you do eventually get it, it's a 3 page puff marketing PDF.
I converted it to TXT and pulled out the only bit of interest here:
Collabora Office Collabora Office Classic
Fresh, modern UX Classic, established UX
Javascript & CSS UI to match Collabora Online VCL-based classic UI
Simpler settings / streamlined defaults Very extensive options, menus & dialogs
No Java Java used for some features/wizards/DB drivers
No built-in Base app Includes Base UI
Runs macros Full macro editor & advanced BASIC/Python/UNO
Modern web tech (Canvas, WebGL, CSS) Custom toolkit (VCL)
Fast to iterate (edit JS, fewer recompiles) Core/C++ changes typically require recompiles
Initial release – Enterprise Support is coming Long term Enterprise Supported
Quick Start Guides and video tutorials Extensive manuals & books
If you don't give an email address, it doesn't even prompt you to ttry again. It just bugs out and redirects to a home page with a broken URL attempting to inject HTML from client side.
That's strange because the only reason for a user to use OpenOffice/Collabra is because they don't want to deal with an annoying company that makes a far superior product. If the inferior product is also run by an annoying company, why bother?
Yeah, I'd say that's the gist of it altogether... I get they want to monetize hosting/support etc.. but they should really try not to gatekeep what should be basic/public information.
I'd still probably put Collabra above Google Docs, but definitely a step below even MS Office Online, err 365, err CoPilot App or whatever the hell they're calling it now... (naming issues not withstanding). Though MS has been enshitifying the offline versions of office a lot, not to mention Outlook in particular.
Aside: Why MS hasn't done a version of "Microsoft Access Online" with a WASM port of VBA in order to lift/shift Access apps into a hosted environment that's backed by Azure SQL under the covers is kind of beyond me. I mean, it shouldn't take too much effort at this point with the level of tooling MS has been capable of.
Access was the distilled VB + Database apps kind of thing that a lot of SOHO really thrived on, and they could totally (re)capture that market with a bit of legacy uplift/support along with a newer model/design. Displacing the winforms models with webforms and a dedicated server/service system. 3 versions to start, a legacy/support, a bridge and a new model where it's TS/JS and monaco for editing instead of VBA/wasm/webforms in a browser/canvas. People are running older versions of Windows in wasm/x86 emulation... making that pretty and wrapping hosted access runtimes should be somewhat reasonable. Shouldn't it?
That I don't know, but the s7 author, Bill Schottstaedt (who I will ping about this) is very helpful on the email list and is deeply, deeply knowledgeable about Lisp, so you could definitely ask there!
In my context, I have rigged up a REPL in Max, so I wind up using that instead. (Which is freaking awesome, because I can script all of Max from my vim buffers.)
it's trivial to implement a REPL yourself, you "just" need to poll for stdin in your main loop and pass this to S7 for evaluation. I made a demo once upon a time live coding with DearImGui: https://www.youtube.com/watch?v=MgHsl0u26MY
For the emacs side I used cmuscheme which is basically comint. Of course you don't get the same experience as in common lisp, but I found S7 to be pleasant to work with also in regards to reporting errors etc
What is the revenue model for Tangled? This is why ATProto stuff worries me, the AppView is expensive to host and no one has created a paid service yet to achieve sustainability.
Where can I read more about this? Is Lua's garbage collector tuned for real-time operations?
reply