Comments (3)
Thanks @colelawrence, I've been wondering the same thing myself 😀
While a web server might be possible right now, my focus for the rest of the year is probably going to be on three things:
-
Implementing core data structures. While I'm happy with
Int
/Float
/Str
/Sym
/List
,Vector
is just barely implemented on top of Rust vectors andMap
/Set
don't make it beyond the parser. I'd like to implement them using something like Clojure's persistent data structures. I've done this previously in C++ so I'll hopefully have an easier go this time. -
Working on the asynchronous model. I'd like to support actor-like concurrency on top of function closures but some form of
async
/await
would be nice as well -
Pattern matching. This is a nightmare to implement correctly but I love pattern matching too much to not do it.
I work on Arret mostly on the weekends when I have time and kind of meander through what I find interesting at the time. If you have any specific questions/feedback/bug reports/etc. please ask them; that will be a better motivator than boredom!
from arret.
@etaoins would async/await and/or actor systems be a standard library feature implemented as macros? Thanks for the response!
from arret.
For the actor system compiler support should be complete. There's an implicit Task
parameter passed to every function that threads through the current Arret task. Right now this is just the garbage collected heap, but once actors are supported this can carry the actor context as well. The unit tests already run multiple Arret tasks concurrently so I'm confident that Arret is essentially thread safe.
The core runtime would need to grow an event loop, primitives for sending messages between actors, etc. which would be exposed at a higher-level by the standard library. This hasn't been started yet but it shouldn't be an immense amount of work.
For async
/await
I'm planning on doing something similar to what C#/Rust/etc. do where they rewrite async functions to a state machine built on top of a Promise
type. I've never done this before so I'm expecting it to be pretty daunting. Hopefully the fact Arret is garbage collected lets it avoid some of the pain Rust has had with async
/await
.
from arret.
Related Issues (4)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arret.