▲ | foundry27 10 months ago | ||||||||||||||||||||||||||||||||||||||||||||||||||||
The big-picture view is here: https://gitlab.com/owl-lisp/owl/-/blob/master/doc/manual.md Key points include: - 100% immutable datastructures - Immutability is leveraged to make a lot of core operations concurrent - Continuation-based threading model and Actor-based concurrency - Fun little VM implemented behind the scenes That being said, the documentation strongly contradicts the title! > The goal has not at any point been to become an ultimate Lisp and take over the world | |||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | ValentinA23 10 months ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||
I'm wondering if a language could optimize immutable data structures to use mutable, in place semantics instead of duplication or structural sharing when it is possible. When an immutable data structure only has one consumer (only has one descendant in the flow graph), then it can easily be turned into a mutable version. Generalizing, any linear subgraph in the program's flow graph could be made to use in place semantics on the same mutable variable. The challenge I guess is figuring out how variables captures by lambdas should be dealt with. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | dleink 10 months ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||
> The goal has not at any point been to become an ultimate Lisp and take over the world obviously something a lisp that had designated itself ultimate and was keen to take over the world would say. | |||||||||||||||||||||||||||||||||||||||||||||||||||||
▲ | zelphirkalt 10 months ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Does it feature implementations of lots of purely functional data structures then? Or does it only apply to a few builtins? And would other Schemes be free to copy those? |