Sunjay Varma
Sunjay Varma
Given that we have a managed runtime, recursive types are actually fine. Everything is stored as a pointer. We should make sure to explicitly support recursive types. ```rust struct Foo...
Relies on #29 for slicing ranges. https://doc.rust-lang.org/std/ops/trait.Index.html Want to support `s[1..n]` and `s[k]` indexing to get slices and individual characters from strings/arrays/etc. Also want to support assignment to both individual...
Eventually, it would be great to support some concurrency primitives. For example, there is this great guide for creating a green threading runtime: https://cfsamson.gitbook.io/green-threads-explained-in-200-lines-of-rust/
https://doc.rust-lang.org/std/iter/index.html#for-loops-and-intoiterator
https://doc.rust-lang.org/std/ops/struct.Range.html
We want to get rid of the giant list of function/method insertions in `src/lib.rs`. https://github.com/sunjay/dino/blob/84adda6d51c8e86a550f51586eec5f9fbc4b3d68/src/lib.rs#L65-L348 The best way to do this is to enable the compiler to compile a "dino...
A `bstr` is an array of bytes and doesn't need a special type.
We can wrap the [`bstr`](https://docs.rs/bstr) crate to provide byte strings and methods on byte strings. This is an excellent step down from full Unicode strings that will simplify the initial...
Right now we're using `lt`, `gt`, and `eq` methods. When structs and a trait system is added, we should switch to a proper `Ord` trait and `Ordering` enum.
We should support empty/never types. [Rust RFC](https://github.com/rust-lang/rfcs/blob/master/text/1216-bang-type.md). [Rust Docs](https://doc.rust-lang.org/std/primitive.never.html) The implementation of the codegen for this will be interesting because you can have code like: ```rust fn main() { let...