The Fil-C Manifesto: Garbage In, Memory Safety Out
github.com
github.com
It’s not clear from reading but it seems like most checks happen at run time, and not at compile time. How much feedback goes the compiler give to the user about mistakes?
Here’s a few I remember:
CCured https://people.eecs.berkeley.edu/~necula/Papers/ccured_topla...
Softbound + CETS https://people.cs.rutgers.edu/~sn349/softbound/
Clay Systems Language https://www.eg.bucknell.edu/~lwittie/research.html
Cyclone Language (Rust drew on it) https://en.m.wikipedia.org/wiki/Cyclone_(programming_languag...
Fail-Safe C https://staff.aist.go.jp/y.oiwa/FailSafeC/index-en.html
CheckedC https://github.com/microsoft/checkedc
Also, one can combine subsets of C with FOSS, static analyzers that can handle those subsets. Then, compose only in ways that the tools can handle. Then, combinatorial and fuzz testing of the interface composition.
I know you’re doing the project for fun while exploring specific ways to achieve your goals. So, these are just some links and concepts that might help on your journey. Lots of folks don’t know about prior work in this area. So, I keep passing it on.
Thanks for the super sweet attempt to teach me about this field, but I'm an expert on this stuff already.
The fact that I'm starting from a "no premature opts" mindset and just being full-on pragmatic is because I know better than any of those folks. :-)
“Know better than any of those folks”
The Word of God says pride comes before the fall and the proud get humbled. If you have the knowledge, then wisdom might be the next thing to add to the project. You will be living pleasing to God and might draw in others with exactly the ideas you need.
God made it easy on us, though. He said anyone who humbly reads His Word will, by supernatural action, know it’s true. He also provided proof. Please do look at GetHisWord.com for both. You’ll get to meet the Creator who made you and all the interesting things you love.
What caught my eye in his replies on Lobste.rs and here is how he replies. There seems to be as much ego as technical decisions driving it. In that case, people arguing technical details are wasting time since the project needs something else. Or they should thank him and fork it if they have different ideas.
For me, this ain't it, because I know how to solve this problem better than others have done, and so: I'm going to talk about why I think I'm right and I'm going to keep implementing Fil-C.
No need to be offended by the fact that I'm calling my shot!
But it can run real code, and that's what matters most in early bringup.
BTW, awesome work!