Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wish List #80

Open
lhmouse opened this issue Dec 23, 2019 · 4 comments
Open

Wish List #80

lhmouse opened this issue Dec 23, 2019 · 4 comments

Comments

@lhmouse
Copy link
Owner

lhmouse commented Dec 23, 2019

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.

@FrankHB
Copy link
Contributor

FrankHB commented Dec 23, 2019

Any FFI demos?

@FrankHB
Copy link
Contributor

FrankHB commented Dec 23, 2019

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

@lhmouse
Copy link
Owner Author

lhmouse commented Dec 24, 2019

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
Copy link
Owner Author

lhmouse commented Nov 5, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
@FrankHB @lhmouse and others