dart-lang / dart-lang/language

Statically tracked shared immutable objects

Open
#125 47 comments 80 reactions 1 assignee Claimed by @leafpetersen View on GitHub
feature
Dominant language
TeX
Stars
2.9k
Forks
239
Avg merge
2d 18h
Merged PRs (30d)
14

Description

This is a proposed solution to the problem of [communicating data between isolates](https://github.com/dart-lang/language/issues/124).

This proposal adds a static notion of immutability which guarantees that once initialized, any immutable object is the root of a fully immutable object graph, which can therefore be shared between isolates with no copying required.

This proposal also incidentally provides at least a partial solution for the following problems:
- [Building immutable collections](https://github.com/dart-lang/language/issues/117)
- [Unwanted mutation of lists in Flutter](https://github.com/dart-lang/sdk/issues/27755)

Initial draft proposal is [here](https://github.com/dart-lang/language/blob/master/working/0125-static-immutability/feature-specification.md)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.