| ▲ | zozbot234 3 days ago | |||||||||||||||||||||||||||||||||||||
Why can't it work? You need to assume that the C library is only ever passed well-behaved pointers and callbacks in order to avoid invoking UB that it can't know about - but other than that it's just a matter of marshaling from the usual C ABI to the Fil-C ABI, which should be doable. | ||||||||||||||||||||||||||||||||||||||
| ▲ | testdelacc1 3 days ago | parent [-] | |||||||||||||||||||||||||||||||||||||
I’m assuming the calling program is a GC language like Python or Node (the most popular run times by far), but the same holds with other popular languages like Ruby. Why would a GC language call out to slow code, that runs its own separate GC. Now you have two GCs running, neither of which knows about the other. I’m not declaring it’s impossible, I’m asking why someone would want to do this. An example: GitHub’s entire business revolves around calling libgit2 (C) from Ruby. Are they more likely to slow down libgit2 and make it substantially more complex by running 2 GCs side by side, or are they going to risk accept any potential unsafety in regular C? It’s 100% the latter, I’ll bet on that. | ||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||