While reading the Rust spec, I can't help but desire a language which is Rust, but with a standard C-style memory model.
Do folks know if there is any effort out there which tries to modernize C constructs and build while keeping not only the C syntax, memory-model, ABI, and programming conventions, but also the same programmer responsibility for the memory model details? For example, C++ to C interface is challenged by exceptions and method-type-overloading + name-mangling Java, C#, D, Vala, Rust, TOM, - have complex runtimes, including ARC or GC I'm thinking of something which is more of a direct C model, but with... - typechecked enums - exhaustive-enum-switch ( and/or exhaustive pattern match ) - type/module namespaces ( no inheritance! ) - structured error-returns and compiler-enforced check-or-propagate ( but not exceptions! ) - perhaps built on exhaustive switch - compiler-checked memory-use-contract constructs ( like Rust borrowed pointers ) - type-erasure based type-parametrics for void* - dynamic code generation templates ala tcc / `C - a structured build/macro system to replace CPP/headers ( toughest thing here probably ) - support DSLs, type-metadata-generation, 'Attributes', - ... in a "standard" language defined cross platform way - ... without build system complexity AFAIK, all of the above can done while still putting out a standard C library, and is also compatible with directly importing C libraries though some amount of "library type metadata" generation. This language wouldn't be type-safe, but it would be much safer than C, and doesn't require solving "hard problems" in regions/GC/etc/etc. Anything like this out there?
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
