uLisp 4.4a on a Pico W: Compilation error


When compiling µLisp for a Raspberry Pico W I got this error:

ulisp-extensions:41:14: error: redefinition of ‘tbl_entry_t* tables []’ 41 | tbl_entry_t tables[] = {lookup_table, lookup_table2}; | ^~~~~~ /tmp/ulisp-arm/ulisp-arm.ino:6510:14: note: 'tbl_entry_t tables [2]’ previously defined here 6510 | tbl_entry_t tables[] = {lookup_table, NULL}; | ^~~~~~ ulisp-extensions:42:20: error: redefinition of ‘const unsigned int tablesizes []’ 42 | const unsigned int tablesizes[] = { arraysize(lookup_table), arraysize(lookup_table2) }; | ^~~~~~~~~~ /tmp/ulisp-arm/ulisp-arm.ino:6511:20: note: ‘const unsigned int tablesizes [2]’ previously defined here 6511 | const unsigned int tablesizes[] = { arraysize(lookup_table), 0 }; | ^~~~~~~~~~ ulisp-extensions:44:20: error: redefinition of 'tbl_entry_t table(int)’ 44 | const tbl_entry_t *table (int n) { | ^~~~~ /tmp/ulisp-arm/ulisp-arm.ino:6513:20: note: ‘tbl_entry_t* table(int)’ previously defined here 6513 | const tbl_entry_t *table (int n) { | ^~~~~ ulisp-extensions:48:14: error: redefinition of ‘unsigned int tablesize(int)’ 48 | unsigned int tablesize (int n) { | ^~~~~~~~~ /tmp/ulisp-arm/ulisp-arm.ino:6517:14: note: ‘unsigned int tablesize(int)’ previously defined here 6517 | unsigned int tablesize (int n) { | ^~~~~~~~~

How can I fix it?



If you provide an extensions file you need to uncomment the directive:

#define extensions

If you don’t have an extensions file you need to leave that directive commented out. Let me know if that doesn’t resolve the issue.


I tried it and it compiles without errors.
It gave me a “low memory - instability may occur” (something like that) though. I removed the
extension file and commented the #define again.
I could compile and upload.
But my Pico W was no longer responsive anymore - the REPL does not longer occur.


Low memory available, stability problems may occur.

You can ignore that warning.

my Pico W was no longer responsive anymore

You may need to reselect the correct USB port on the Port menu.

Also, there’s no Reset button on the Raspberry Pi Pico so you may need to unplug the USB and plug it back in to reset.

All of this is nothing to do with uLisp; it can happen when you upload any program.

Let me know if this fixes the problem.


I could fix that problem by erasing the flash completely before trying to install µLisp. One need a special *.uf2 file for that. There was micropython installed before on that board. See second post here: