adfd238ee23ca31d9e69832b9193c5a3b79ad932
dlsym opcode modified so that 0 for library is converted to RTLD_DEFAULT as the two don't match on Darwin. Made errno an opcode, as previous method depended on Linux internals. [1] https://opensource.apple.com/source/xnu/xnu-201/osfmk/libsa/errno.h.auto.html [2] https://pubs.opengroup.org/onlinepubs/9699919799/functions/errno.html Placed errno in internals and then alias inside posix vocabulary, as it seemed a waste to have another builtin stub for one symbol. Arguably maybe dlsym should be that way too, but leaving for now. Added OS make variable to conditionally set flags. Set stripping / minimization options based on it. Based off of https://github.com/flagxor/ueforth/pull/3 Thanks Ulrich!
µEforth / ESP32forth
This EForth inspired implementation of Forth is bootstraped from a minimalist C kernel.
Building from Source
To build from source:
git clone https://github.com/flagxor/ueforth
cd ueforth
make
The resulting output will have this structure:
- out/deploy - A copy of the eforth.appspot.com / esp32forth.appspot.com ready to deploy.
- out/esp32 - A source build for ESP32.
- out/esp32 - A source build for ESP32.
- out/esp32-sim - A POSIX build approximating ESP32.
- out/gen - Intermediate / generated files.
- out/posix - A build for Linux / POSIX.
- out/resources - Intermediate / generated resources.
- out/web - A build for Web.
- out/windows - A build for Windows.
Individual platforms can be built as follows:
make posix
make esp32
make win32
make win64
make web
To install to /usr/bin on Linux / POSIX do:
make install
ESP32 boards can be compiled and flashed with:
make esp32-flash
make esp32s2-flash
make esp32s3-flash
make esp32c3-flash
make esp32cam-flash
Set PORT=com3 etc. to select board.
Description
A fork of https://github.com/flagxor/ueforth - an implementation of the forth programming language for ESP32 microprocessors.
Languages
Forth
55.3%
C
16.2%
HTML
11.9%
JavaScript
5.7%
Python
4.6%
Other
6.3%