Compilation errors with Arduino 1.8.8


#1

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.


#2

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.


#3

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.


#4

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.


#5

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?


#6

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.