Hi,
I am the maintainer of PyDOS: https://github.com/bencz/PyDOS
PyDOS compiles a subset of Python into native 8086 programs. The compiler is written in C++ and built with OpenWatcom.
I would like to add ELKS as a target.
The DOS-specific parts should not be a major issue. PyDOS has a runtime layer, so I can implement an ELKS-specific version using ELKS libc and system APIs while keeping the same interface for generated programs.
My main questions are about the ABI and build process:
- Is there documentation for the ELKS userspace ABI?
- Which calling convention should OpenWatcom programs use?
- Which memory models are supported or recommended?
- Should new OpenWatcom applications use the OS/2 executable format?
- Are there any important restrictions involving far pointers, code segments or data segments?
- Is C++ supported if the program does not use STL, exceptions or RTTI?
- Is there an existing OpenWatcom project that would be a good reference?
My first goal would be to compile a simple program like:
print("Hello from ELKS!")
The compiler would initially run on another system and generate an ELKS executable. Only the generated program and its runtime would run inside ELKS.
Any guidance on the ABI, linker configuration or recommended approach would be very helpful.
Thanks.
Hi,
I am the maintainer of PyDOS: https://github.com/bencz/PyDOS
PyDOS compiles a subset of Python into native 8086 programs. The compiler is written in C++ and built with OpenWatcom.
I would like to add ELKS as a target.
The DOS-specific parts should not be a major issue. PyDOS has a runtime layer, so I can implement an ELKS-specific version using ELKS libc and system APIs while keeping the same interface for generated programs.
My main questions are about the ABI and build process:
My first goal would be to compile a simple program like:
The compiler would initially run on another system and generate an ELKS executable. Only the generated program and its runtime would run inside ELKS.
Any guidance on the ABI, linker configuration or recommended approach would be very helpful.
Thanks.