orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
40 stars 3 forks source link

Implement a DOT subset as the type system for Orc #185

Open arthurp opened 7 years ago

arthurp commented 7 years ago

This issue tracks the plan of for building an Orc type system based on Dependent Object Types (see 10.1145/3022671.2984008).

Once this work is complete it should address issues #165 and #170. It may also address #167 and #168.

PS: This would be a project board except there is an arbitrary restriction on the length of notes on project boards which is so stupid I decided not to deal with it. This is still a proposal for changes in the repo, so it's not too far from what issues are for.

arthurp commented 7 years ago

I have written a document describing what I think is the first step for implementing DOT in Orc. It also describes how path-dependent types could be implemented later in Orc.

https://orc.csres.utexas.edu/wiki/Wiki.jsp?page=RestrictedDOTForOrc

arthurp commented 7 years ago

As of 584b16de2e63c0267fbfd14a745352d95a102e35, the untyped element of this is working. There are still things that need to be done to allow typing (Some types generated by the translator are still placeholders). I have added todos marked "TODO: TYPECHECK". In addition, the current translator and parser do not support type members or nested classes at all.