| ▲ | One year of Roto, a compiled scripting language for Rust(blog.nlnetlabs.nl) | ||||||||||||||||
| 40 points by Hasnep 2 days ago | 7 comments | |||||||||||||||||
| ▲ | pveierland 2 hours ago | parent | next [-] | ||||||||||||||||
The syntax is of course attractive (coming from Rust), and I'd love to replace more of my posix scripts with something saner. I struggle understanding whether the utility of having language literals for IP addresses, IP prefixes, and AS numbers is worth it though [0]. It seems like the confusion added by having custom built-ins like this for one particular domain, in addition to the unclear scoping (what could later also deserve being a language literal), combined with special-case errors as famous in e.g. the YAML Norway problem, makes it seem like such features are better left as some general extension / macro / library capability. Nix is a language with built-in support for URI literals typed as strings [1], which is a source of confusion and edge-cases, and I believe the feature is now discouraged in general use. [0] https://roto.docs.nlnetlabs.nl/en/stable/reference/language_... [1] https://nix.dev/manual/nix/2.34/language/string-literals | |||||||||||||||||
| |||||||||||||||||
| ▲ | ianm218 2 hours ago | parent | prev | next [-] | ||||||||||||||||
Very cool! I have been working on scripting in Rust recently on a Lua project [1]. When you made Roto what kind of workloads were you optimizing for? How are you guys benchmarking performance? I ran a quick benchmark based on my recent work (Used AI for the code here): ``` fn sum_scalar(n: u64) -> u64 { let total = 0; let i = 0; while i < n { total = total + i; i = i + 1; } total }
```Rust benchmark.rs ```
```
I'm happy to cut a PR against your repo with some of the benchmarks I run on every commit in my own language projects if that would be helpful!
[1]. https://github.com/ianm199/lua-rs/tree/main | |||||||||||||||||
| |||||||||||||||||
| ▲ | evrimoztamur 2 hours ago | parent | prev [-] | ||||||||||||||||
Does anyone know if the Roto runtime is serde-able? A big problem I encountered in using Lua in Rust for my game engine was that I wasn't able to serde the Lua runtime such that I can snapshot a game session and save it in a file, and retrieve it in another context. | |||||||||||||||||
| |||||||||||||||||