* removed IDE code
* updated readme, removed ide dir
* typo
* Update README.md
Co-Authored-By: Ara Adkins <iamrecursion@users.noreply.github.com>
* flatten common/scala to scala
Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
This PR adds `json-rpc` crate — a library facilitating writing clients using JSON-RPC 2.0 protocol.
This library is meant to be used in implementation of File Manager and, in future, of Language Server clients.
The library is agnostic about `Transport` — but the interface has been designed in compliance with web-sys websockets, as this will be primary platform.
The RPC clients implemented on top of this library are expected to provide Future-based asynchronous API.
Client is designed to work in a single-thread environment,
Implements #426.
Previously, paths in markdown links were incorrectly pointing to non-existent directories at repo root. This commit fixes them to link to existing subdirectories relative to the Readme file they're in.
Provides implementation of `HasSpan` and (newly introduced) `HasRepr` for all relevant Ast types.
Implements #379.
Wherever feasible, I tried to reduce boilerplate with macros. Certainly more can be done in that regard but that'd require spending more time on this task than we allocated.
This adds support for using `derive(Iterator)` to iterate over such structures like
```rust
struct Foo<T> {
a:(T,U,T),
b:Option<T>
}
```
i.e. where fields are dependent over last type argument, however they do not store it directly.
Dependent types like `Option<T>` are required to provide a compatible `iter` method.
Implements #407.
This PR extends `derive(Iterator)` proc macro to support enumeration type when they have variants with a single unnamed field, that implements `IntoIterator`.
Thanks to that, it is now finally possible to derive iterator for the `Shape` type and similar enum types used in AST.
Implements #385
This pull request adjusts AST data structures in Scala and Rust to be compatible, while also fixing a number of JSON format mismatches find along the way. This implements #336.
This commit adds support for suspended blocks in the interpreter and also fixes
a major performance issue with nested thunks that was causing quadratic
evaluation time.
This PR updates JSON serialization in Scala in Rust, so they are compatible, implementing #297. The parser wrapper now uses the real AST in API. Still most of non-trivial use-cases will fail. Once #336 is done, it should finally work.