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

RFC: Scripting #51

Open
2 of 4 tasks
vifino opened this issue Jul 6, 2018 · 1 comment
Open
2 of 4 tasks

RFC: Scripting #51

vifino opened this issue Jul 6, 2018 · 1 comment
Assignees
Labels
enhancement Enhancement suggestions to the project.

Comments

@vifino
Copy link
Member

vifino commented Jul 6, 2018

Not just scripting, but rather loading modules of different types.

My plan is to implement another module type, mod. It's basically a module loader, as as module.
The idea is that we can implement a really bare-bones modloader in the core, add perhaps missing APIs and not only outsource the complex loading, but also allow the addition other loaders that aren't loading dynamic objects for example, but Lua or Scheme scripts.
This could make the effect prototyping phase even faster, which is already something we're pretty good at.

Ideally, with this rework, we'd also support dynamic module loading and unloading, probably invoked via FISh.

  • Introduce mod module type: Module loaders.
  • Introduce mod_native for loading existing sled-native modules.
    • This can have quite some complexity, maybe introducing search paths and other goodies?
    • With this, feature parity to the existing master is reached.

  • Introduce mod_lua for Lua(JIT) based scripting. Same methods, but Lua.
    • Should be beginner-friendly, heh.
  • Introduce mod_chicken for CHICKEN scheme.
    • While Scheme's not everybody's favourite, it's pretty great.
@vifino vifino self-assigned this Jul 6, 2018
@vifino vifino added the enhancement Enhancement suggestions to the project. label Jul 6, 2018
@20kdc
Copy link
Contributor

20kdc commented Jul 6, 2018

Regarding Lua: Nice idea, but a word of warning!
Under no circumstances have both LuaJIT and Lua 5.2/5.3 as available options.
Instead, add a simulation of (or the actual version of) the LuaJIT bit-manipulation library on Lua 5.1.
The issues you'll get otherwise were bad enough with lua-cpuemus, let's not repeat Minetest's mistakes.

@vifino vifino mentioned this issue Jul 10, 2018
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement suggestions to the project.
Projects
None yet
Development

No branches or pull requests

2 participants