Home

Awesome

42minjoy

BuildLinuxWindowsCoverity
statusGitHub CI build statusAppVeyor CI build statusCoverity Scan Build Status

Joy from Sympas translated to C.

Changes

Adding a new builtin, e.g. getch or putch, requires modification of the program in 4 locations: standardident{}, initialise(), standardident_NAMES[], and joy(). After translating from Pascal to C with the help of p2c some corrections were done. Reading the library files twice is not needed, given the nature of the language and that is why this feature was removed. After some more changes it is now a small version of Joy.

Installation

mkdir build
cd build
cmake ..
cmake --build .

Debugging

Although this software contains almost no bugs, steps have been taken that make debugging easier. For a start, gdb requires that input comes from a file, so a typical session will be:

gdb joy
...
run tutorial.joy
...
quit

If the program crashes gdb sometimes answers to the command bt with: No stack. In that case, it might be helpful that it is also possible to compile with -DDEBUG and get a trace of program execution in joy.log.