Roadmap with big features. For a list of all features and fixes, check out the changelog.
- 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 offoo<int>(5)
) - more advanced errors, not just
error('message')
- 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
- Parallel parser (not integrated yet)
- Parallel checker (not integrated yet)
- Parallel C compilation (not integrated yet)
- 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
- Make ORM work without installing developer libs (libpq-dev etc)
- Integrate the new parallel parser/checker/cgen
- Incremental compilation
- Runtime race detector
- Thread safe maps
-
recover()
from panics - -usecache on by default
- -skip-unused on by default
- ORM migrations
- Allow
$if
everywhere: top level, inside struct definitions, etc
- 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
- More stable VLS
- Profiler improvements
- Basic interactive shell with search, sort, filter, etc.
- VPM
- New VPM site
- Package versioning
- A better documentation platform
- Site that brings everything together in a single style
- Interactive educational platform (learning to program for beginners)