mattwparas / steel

An embedded scheme interpreter in Rust
Apache License 2.0
1.07k stars 50 forks source link

implement vector literals #262

Closed jrvidal closed 2 weeks ago

jrvidal commented 3 weeks ago

Implements vector and bytevector literals.

TODO

jrvidal commented 3 weeks ago

Funny how little I know about Scheme :upside_down_face: My initial implementation was totally wrong, b/c vectors were not self-quoting, so #(a) would throw if the a variable were undefined, instead of giving me the a symbol.

Vectors are valid quasiquote patterns, but this is not working yet, but I suppose I need to add vector macro patterns first. I also think a bunch of visit_vector() implementations are redundant or even incorrect, once you realize that the contents of the vector are "inert". I'll revisit that in the macro PR.

jrvidal commented 3 weeks ago

Oops, I'll fix those tests.

mattwparas commented 3 weeks ago

Once the sync work lands that whole type moving across threads stuff will go away, so that's nice at least

mattwparas commented 2 weeks ago

Thank you!