beef331 / nimscripter

Quick and easy Nim <-> Nimscript interop
MIT License
145 stars 8 forks source link

Nimscripter for embedded systems #29

Open davidvfx07 opened 6 days ago

davidvfx07 commented 6 days ago

I've been interested in creating a language that can be interpreted on embedded systems (esp32) for use in a larger project, which would provide an api to the user which calls precompiled procs etc. The goal would be to completely strip away nim's syntax, and replace it with simpler syntax with templates. macros, etc. I came across nimscripter which compiles great and works well on PC, but it won't compile for embedded with --os:standalone or --os:any (necessary for embedded systems, which have no os), and it screams Error: OS module not ported to your operating system!. I've stripped away the os module calls in the source of nimscripter, but it seems to be called elsewhere too because the error doesn't subside. Additionally, I'm unsure on how to go about pure standard libs because I can't seem to figure out how to embed those either.

Is there some way to stop the os module errors or strip out the os module calls entirely, and include standard libs at compile time?

Ultimately this may be impossible given the miniscule power of the esp32 to interpret nimscript on its own, and there may be other unforeseen reasons this won't work, but it would be a great tool for embedded programming and super helpful for the community.

beef331 commented 6 days ago

Nim's VM relies on the compiler, so it requires some amount of OS calls to function. You would need to fork the nim compiler to handle that. Personally for embedded I'd suggest to look towards wasm for scripting.

davidvfx07 commented 5 days ago

Interesting, that makes sense. I'll update on an alternative if I find one.