Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upScripting RFC #1
Conversation
Moxinilian
changed the title
Create 0001-scripting.md
Scripting RFC
Oct 28, 2018
This comment has been minimized.
This comment has been minimized.
|
I really like all of this. My only suggestion is a name change, rather than augmented FFI we should call it Automatically Idiomatic Foreign Function Interface. AI-FFI. |
This comment has been minimized.
This comment has been minimized.
What about languages that use green threads? |
This comment has been minimized.
This comment has been minimized.
|
Feel free to use GitHub's review features so we can have threads. |
This comment has been minimized.
This comment has been minimized.
I mean more like threads that are managed by a language runtime, goroutines or Erlang processes for example, but the OS views as just one OS thread. |
This comment has been minimized.
This comment has been minimized.
|
It would depend on specific cases then. I haven't thought about it yet. If you want to make an addition, please write a paragraph and PR it to my fork. |
This comment has been minimized.
This comment has been minimized.
Something about this bugs me, but I'm not sure what. Will have to think about it more. At a minimum, I think this will need a strict schema. I just have a suspicion that the driver code responsible for the the translation will end up messy. But we won't know until we try it. |
0001-scripting.md Outdated
This comment has been minimized.
This comment has been minimized.
|
It looks pretty solid to me. I'd vote move forward with a minimal PoC using LuaJIT to get an idea of the difficulties associated with this level of genercism. |
torkleyy
reviewed
Oct 31, 2018
•
I think this is pretty similar to what was said before. I'm going to go through the details later.
erlend-sh
referenced this pull request
Nov 1, 2018
Open
Dyon as a scripting language for Amethyst #551
|
|
||
| Anyway, keep in mind that what approach is chosen can be different for each language, as different languages give us more or less flexibility (Rust as a scripting language for example already enforces all of this out of the box). | ||
|
|
||
| ## Hotswapping |
This comment has been minimized.
This comment has been minimized.
Marwes
Nov 5, 2018
Does this mean that script system(s) are run in a separate World(?). I don't remember where I read it but since there is no way to add or remove systems after constructing a World it was recommended to keep dynamic systems in a separate world to avoid needing to reconstruct everything everytime something is reloaded.
This comment has been minimized.
This comment has been minimized.
torkleyy
Nov 5, 2018
Member
The architecture Specs will have in the future will differ from the current quite a bit. It's already in design ;)
This comment has been minimized.
This comment has been minimized.
torkleyy
Nov 5, 2018
Member
Regarding your comment, I think you're mixing up Dispatcher and World. Both are very likely going to change (the latter one also renamed to SystemGraph which will not need any of those workarounds).
Moxinilian commentedOct 28, 2018
This RFC introduces our scripting proposal.
Rendered
@kabergstrom