orange icon indicating copy to clipboard operation
orange copied to clipboard

Create Orange Mini

Open rfratto opened this issue 9 years ago • 0 comments

Orange Mini is a subset of the Orange language to be used for bootstrapping. It will be written in C++ and contain only the following features:

  • [ ] Loose aliases
  • [ ] Arrays
  • [ ] Core builtin interfaces (Number, Ordered, etc.)
  • [ ] C interoperability
  • [ ] Type casting
  • [ ] Classes
    • [ ] Inheritance
    • [ ] Properties
  • [ ] Basic enumerators (C-style)
  • [ ] Functions
  • [ ] Type extensions
  • [ ] Generics
  • [ ] Interfaces
  • [ ] Loops (for, while, do while)
  • [ ] Packages and namespaces
  • [ ] Pointers and references
  • [ ] Basic preprocessor directives (#if)
  • [ ] Privacy levels (private/protected/public/etc)
  • [ ] Variables

The following features will not be available in the miniature version:

  • Strict aliases
  • Tuples and tuple unwrapping
  • Short blocks, blocks as values
  • Enums w/ values
  • Switch statement
  • Default values for parameters
  • Named arguments
  • Implicit generics
  • Partial classes
  • Full UTF-8 support in source files
  • Placeholder (_) variable
  • Closures
  • Lambdas
  • Generic constraints

The only binary Orange Mini will produce is oc. It will take in a series of .or files and produce either an executable or a library. It will link to libc by default, but can link to no other libraries. Using orange libraries with oc requires passing in all of their source files.

rfratto avatar Jan 21 '17 21:01 rfratto