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

Reply via email to