Skip to content
This repository was archived by the owner on Oct 14, 2018. It is now read-only.

Create Orange Mini #27

@rfratto

Description

@rfratto

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions