Skip to content

Are we explorer yet?

Gmos edited this page Aug 11, 2023 · 16 revisions

This wiki page attempts to answer the question "Are we explorer yet?". In other words, what gaps exist between the current state of the system and when we can say with confidence that explorer is "done" at a reasonable level.

Note that explorer is not intended to become a complete implementation of carbon. Items that are specifically out of scope for this AreWeYet are C++ interop (likely never a target for explorer), metaprogramming, parallel programming, and coroutines. The last three are likely substantial enough to merit their own AreWeYet pages.

  • ❌ Structured programming
    • Compound assignment
    • ✅ For loops (#1592)
    • ✅ Returned var
    • ✅ Variable declarations
    • ✅ Variable initialization tracking
    • ❌ Variadics
    • ✅ While loops
  • ❌ User defined types
  • ✅ Alias system
  • ❌ OO programming
    • ✅ Inheritance (#1881)
    • ❌ Virtual methods
      • ✅ Simple virtual methods (virtual, impl)
      • ❌ Abstract methods (#2512, good first issue)
      • ❌ Full virtual override logic
    • ❌ Parameterized class methods w/ inheritance
    • ✅ Destructors
      • ✅ Non-virtual destructors
      • ✅ Virtual destructors
    • ✅ Methods
    • ✅ Static functions / Class functions
  • ❌ Generic programming
    • ✅ Generic classes
    • ❌ Generic methods
    • ✅ Generic functions
    • ✅ Interfaces
    • ✅ Generic Interfaces
    • ✅ Impls
    • ✅ Generic Impls
    • ❌ Impl specialization
    • ❌ Templates
  • ❌ Operator overloading
    • ✅ Many operators
    • ❌ Constraints
    • ✅ Implicit “as”
    • ❌ Extension interfaces using default fn
    • ❌ Extension interfaces using constraint
  • ❌ Error handling
  • ✅ Prelude
    • ✅ Print function
  • ❌ Types
    • ✅ i32
    • ❌ Other integral types (#767)
    • ❌ Integral types as library types instead of native
    • ✅ Tuples
    • ✅ Pointer
    • ✅ Functions
    • ✅ Bool
    • ✅ String
    • ❌ Floating point types (#767)
    • ✅ Raw string literals
  • ❌ Code organization
    • ❌ Mixins (#2069)
    • ❌ Imports and packages (#742)
    • ❌ Namespaces (#743)