asteria
asteria copied to clipboard
Wish List
I am considering a demo release. Hereby I would like to hear about your opinion, what you wish, what you would like, what you propose, either as a core language feature or a library component.
If you have any suggestions, please don't hesitate to let me know.
Any FFI demos?
Maybe off topic, but I think there still remains some high-priority work TBD.
Well, the overall idea of the answer to "why need a brand new language" is still not clear to most users. Better state it briefly. Without it, there come more questions not easily resolvable as project-wise "feature requests".
The first point is that, what does a "feature" mean? As a feature request to a project, I'd expect something like:
- Completion of the language spec
- A spec of the implementation
- A standard process to propose changes to the design
- A standard process of releng
- A roadmap or a future plan
- A well-maintained wish list (like this issue)
As a feature request to a language or its implementation, I'd expect things like:
- New core language rules
- Library extensions
- New foreign language interoperability supports
This list is clearly focusing to the second kind. But both are relevant to the lack of the initial clarification: how would you expect the language to solve your problems (if already stated)? And the second kind is always somewhat depending on the first...
Yes I am also planning to make up some documentation. The runtime and parser had been refactored at lease three times and I was postponing that until they became stable. Now they seems so.
The simplest binding example would be https://github.com/lhmouse/asteria/blob/master/asteria/library/debug.cpp.
There are also complex ones, which involve function overloading, such as std.string.find
.
Calling Asteria functions from C++ is straightforward once the function value can be obtained, but I am a bit unsure how that should be done. Because at the moment there is no way to modify the global context within Asteria itself (btw this is deliberate), it is not possible to register callable functions there. It is however recommended to add (user-defined) bindings so user-defined functions may be registered with them.