diff --git a/bril-rs/rs2bril/README.md b/bril-rs/rs2bril/README.md index 3f5e2758..d70ab9a9 100644 --- a/bril-rs/rs2bril/README.md +++ b/bril-rs/rs2bril/README.md @@ -12,8 +12,8 @@ View the interface with `cargo doc --open` or install with `make install` using - Automatic static memory management has not been implemented so arrays must be explicitly dropped where `drop` is specialized to translate to a call to free: `drop([0]);` - For loops, `continue`, `break`, and ranges have not been implemented(but could be). - Memory is implemented using Rust arrays. These are statically sized values unlike how calls to Bril `alloc` can be dynamically sized. One solution is to just allocate a large enough array and then treat the dynamic size like the length. (A subset of vectors could also be specialized in the future). +- Arrays must be initialized with repetition syntax, which is awkward for nested arrays. - In normal Rust, `if` can also be used as an expression that evaluates a value to be put in a variable. This is not implemented and it is assumed that there will only be if statements. -- The Bril code that it produces is super inefficient and it is left to other tools to optimize it. Array initialization is unrolled is not an optimal solution. - `!=` and automatic promotions of integer literals to floats are not implemented. -- to support indexing into arrays, you can cast to usize in the Rust code. This will be ignored when generating Bril. `arr[i as usize];` -- The parts of Rust which make it valid like lifetimes, references, mutability, and function visibility are ignored and compiled away in Bril. +- To support indexing into arrays, you can cast to usize in the Rust code. This will be ignored when generating Bril. `arr[i as usize];` +- The parts of Rust which make it valid like lifetimes, references, mutability, and function visibility are ignored and compiled away in Bril. \ No newline at end of file