> > As a counterpoint to your example, (although this isn't strictly > correct), Rust has also been cited as an example of a language solving > some of the problems that were seen in BitC's development.. > I think Rust is looking pretty impressive as a project and if Bitc kicks of again is probably a good starting point and has regional analysis built in ( the compiler is rust )
It has a solid team now ( the Firefox dev team) It is funded good environment with LLVM back end good documentation seamless interop with c with no marshalling . good modularization ( .NET style assemblies and working libs) Significant body of code in the stdlib and compiler. Performance is currently between Java and Haskell. ( They are changing from dynamic vectors to supporting fixed sized arrays which should prove a performance boost) utf8 strings ucs-4 chars. No GC pauses at the moment. Technically for those who are interested it allows safe pointers via regions , a basic type class system , interfaces or functions and a funny way to tie records/structs to methods. There is no encapsulation and very basic polymorphism. They had classes but scrapped them since no one used them , an important point. Compilation is AOT . Types can be ref types or value types and can be shared or local. The system has some inbuilt types and all other data types are records / unions. Probably the most critical thing is they have sort of embraced the concepts of parallelism with basic Erlang style tasks and messages between them. Most types in Rust by default are not shared and are stack allocated , because of this they have a dynamic stack that grows and shrinks. Shared types are supported and use ref counting but they soon plan to use a GC ( it may be there already) , the key here is heap types are a much smaller percentage resulting in smaller GC heaps . Also any thread running a task with no shared types in the task has no relation to the GC and does not need to be paused. Biggest issues Clumsy tying of records to functions using enum Type class system is pretty basic so the new arrays will need bounds checks. Lack of encapsulation or method overloading / var args runtime lib is not that great , its c style and I would prefer to see a more non expert programmer friendly lib. ( eg string has an addchar method that builds a new string behind the scenes) performance not close enough to C++ . Ben _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
