Skip to content

Latest commit

 

History

History
88 lines (74 loc) · 2.92 KB

ROADMAP.md

File metadata and controls

88 lines (74 loc) · 2.92 KB

Roadmap with big features. For a list of all features and fixes, check out the changelog.

[Version 0.3]

  • gc option
  • channels
  • lock{}
  • thread safe arrays
  • rune type
  • replace ustring with []rune
  • fix byte.str()
  • maps with non-string keys
  • iOS/Android support
  • parallel cgen
  • IO streams
  • struct embedding
  • interface embedding
  • interfaces: allow struct fields (not just methods)
  • short generics syntax (foo(5) instead of foo<int>(5))
  • more advanced errors, not just error('message')

[Version 0.4]

  • Coroutines
  • vfmt: add missing imports (like goimports)
  • Recursive structs via options: struct Node { next ?Node }
  • First class Option type
  • Optional function struct fields
  • Handle function pointers safely, remove if function == 0 {
  • Bundle OpenSSL like GC
  • Anonymous structs
  • Improve vweb: allow separation of logic via "controllers", lots of other fixes
  • New VPM site

[Version 0.5]

  • Parallel parser (not integrated yet)
  • Parallel checker (not integrated yet)
  • Parallel C compilation (not integrated yet)
  • Improved vweb => veb framework. Separation of global and context (request local) fields. Performance and stability. Based on picoev.
  • -skip-unused on by default
  • 64/32 bit int depending on arch (will remove array.len limitation on 64 bit systems)
  • copy() builtin function (e.g. for easier conversion from []Foo to [4]Foo)
  • Lambdas: a.sort(|a, b| a > b)
  • Custom attributes
  • Contexts that are passed implicitly (e.g. for custom allocation/memory management)
  • Implicit Veb contexts passed to requests
  • Direct C/C++ interop without generating wrappers (via -experimental for now)
  • Make ORM work without installing developer libs (libpq-dev etc)

[Version 0.6]

  • Integrate the new parallel parser/checker/cc
  • Incremental compilation
  • Runtime race detector
  • Thread safe maps
  • recover() from panics
  • -usecache on by default
  • ORM migrations
  • Allow $if everywhere: top level, inside struct definitions, etc

[Version 1.0]

  • Cross compilation of C
  • Big remaining bugs fixed
  • More powerful comptime
  • Constraints for generics
  • Coroutines on Windows
  • Autofree memory management option ready for production
  • C2V supporting entire C99 standard
  • Shared compiled libs

Tooling

  • More stable VLS
  • Profiler improvements
    • Basic interactive shell with search, sort, filter, etc.
  • VPM
    • New VPM site
    • Package versioning
  • A better documentation platform

Web

  • Site that brings everything together in a single style
  • Interactive educational platform (learning to program for beginners)