asteria icon indicating copy to clipboard operation
asteria copied to clipboard

Wish List

Open lhmouse opened this issue 5 years ago • 4 comments

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.

lhmouse avatar Dec 23 '19 14:12 lhmouse

Any FFI demos?

FrankHB avatar Dec 23 '19 15:12 FrankHB

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...

FrankHB avatar Dec 23 '19 23:12 FrankHB

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.

lhmouse avatar Dec 24 '19 10:12 lhmouse

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.

lhmouse avatar Nov 05 '23 17:11 lhmouse