Compilation errors with Arduino 1.8.8


I tried to compile uLisp Zero with Arduino v1.8.8 (Ubuntu 18.04 LTS) and got masses of errors.

Has anybody fixed these up? I might do them, but I don’t like duplicating the work of others.

I have no problems with uLisp on Arduino Nano and ESP-13 (ESP-8266). I have uLisp running fine on both those platforms. That tells me, that perhaps uLispZero is not as up to date.


You’re correct - uLisp Zero was derived from uLisp 1.8 and hasn’t been updated since then. I’ll investigate what the problem is and update it to match the latest version of uLisp.


See if the following change removes the errors. After the comment:

// Forward references

add the following lines:

void error (PGM_P string);
void pfstring (PGM_P s);

I’m not sure why this is necessary - some change in the way that the Arduino IDE deals with forward references.

I still need to update uLisp Zero to match Version 2.5 of uLisp, but this should work in the meantime.


I made your suggested changes. The error messages are:

Arduino: 1.8.8 (Linux), Board: "ESPDuino (ESP-13 Module), ESPduino-V2, 80 MHz, Flash, Enabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from /home/tyga/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h:6:0,
                 from /home/tyga/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/stdio.h:63,
                 from /home/tyga/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/cores/esp8266/Arduino.h:32,
                 from sketch/uLispZero.cpp.ino.cpp:1:
/home/tyga/Arduino/uLispZero/uLispZero.cpp/uLispZero.cpp.ino: In function 'void pfstring(const char*)':
/home/tyga/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:71:67: error: invalid conversion from 'int' to 'const void*' [-fpermissive]
 #define pgm_read_byte(addr)             pgm_read_byte_inlined(addr)
/home/tyga/Arduino/uLispZero/uLispZero.cpp/uLispZero.cpp.ino:622:14: note: in expansion of macro 'pgm_read_byte'
     char c = pgm_read_byte(p++);
/home/tyga/.arduino15/packages/esp8266/hardware/esp8266/2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:58:23: error:   initializing argument 1 of 'uint8_t pgm_read_byte_inlined(const void*)' [-fpermissive]
 static inline uint8_t pgm_read_byte_inlined(const void* addr) {
exit status 1
Error compiling for board ESPDuino (ESP-13 Module).

Which suggests that I have other issues to sort out in addition to the pgm_read_byte macro.

Might be better for me to put this on the back-burner and wait for when uLisp Zero is re-released with all the v2.5 goodness.


The problem isn’t uLisp 1.8 vs. 2.5. It’s that I have made changes to uLisp to work on the ESP8266, and those changes haven’t (yet) been fed back to uLisp Zero.

If I remember correctly it’s a simple change; how soon do you need uLisp Zero?


I appreciate your quick responses.

I am in no hurry for uLisp Zero. I have a number of other tasks in my queue. Although you mention that the problem isn’t a v1.8 vs v2.5 issue, I am content wait until you get around to releasing uLisp Zero v2.5 with whatever changes the ESP8266 also requires.