Here is a summary of the proposed text format changes.
**RefCreate**: `ref(n)`
**RefWrite**: `r := v`
**RefRead**: `!r`
**ADTs**:
```
type myVariant =
| HasNothing
| HasSingleInt(int)
| HasSingleTuple((int, int))
| HasMultipleInts(int, int)
| HasMultipleTuples((int, int), (int, int))
```
**Pattern Matching**:
```
match (x) {
| HasNothing => 0
| HasSingleInt(x) => 0
| HasSingleTuple((x, y)) => 0
| HasMultipleInts(x, y) => 0
| HasMultipleTuples((x, y), (q, r)) => 0
}
```
**Generics**
```
type Option[A] =
| Some(A)
| None
fn takes_anything[T](%x: T) {
// do something with %x
}
let x = Some[i32](5);
let x = Some[i64](5);
```
**TupleGetItem**: `("foo", 2, true).0 // "foo"`
**Semicolons**: optional unless collapsing multiple lines into one as in Python
**Attrs**: We still don't have a satisfying answer for this so we may punt it.
We will default to Tianqi's suggestion of `attrs=ValueFormat` where we allow
different options for `ValueFormat`.
**Please vote on these changes.** This will allow us to nearly solidify the
text format.
cc @tqchen @MarisaKirisame @jroesch @wweic @vinx13 @junrushao1994 @nhynes
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/dmlc/tvm/issues/3016#issuecomment-504065532