On Aug 26, 2013 10:44 PM, "Jonathan S. Shapiro" <[email protected]> wrote: > > David (I think) asked how BitC would be different from C#. On reflection, that's an interesting question. Given that I think BitC needs a single inheritance object system, it does start to look a bit like C#. So here's an attempt to answer David's question. If I were king of the universe, what would C# 6.0 have? > > 1. Fixed-size arrays in the safe language subset. The fact that the fixed keyword is unsafe is just plain irredeemably stupid. I'm told that fixed arrays were planned for CLR 1.0, didn't make the cut, and were dropped. It's time. Oh. They shouldn't be limited to non-reference types either. > > 2. Attributes on local variables. > > 3. Attributes on types, not just on variables. With this, and a very little bit of attribute algebra, effects could be encoded as attributes and effect propagation could be user defined. > > 4. A proper region typing system > > 5. readonly properly enforced, plus shallow and deep readonly. > > 6. Type classes, to be used as WHERE constraints > > 7. Nat kind and associated kind classes, as introduced in Habit > > 8. Top-level functions (this is just a sugaring change). > > 9. Closures (as opposed to delegates)
Could you expand on this distinction? My primary ask about delegates would be to have them as value types. > > 10. Direct support for immutable types and effect-free code. > > > Probably more, but that's my initial list. > > _______________________________________________ > bitc-dev mailing list > [email protected] > http://www.coyotos.org/mailman/listinfo/bitc-dev >
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
