electro-smith / oopsy

gen~ to Daisy: exporting Max Gen patchers for the ElectroSmith Daisy hardware platforms
MIT License
126 stars 30 forks source link

Oopsy Dev version Bpatcher generating "Compiler Error" Message #44

Closed simontho closed 3 years ago

simontho commented 3 years ago

On my machine, the main oopsy branch works as expected and I am able to flash Gen patches to my daisy patch. However, when I attempt to use the dev branch, the Bpatcher generates a "compiler error" message and the patch is not flashed to the daisy.

image

Log:

gen~: exported: Macintosh HD:/Users/simon_ho/Documents/Max 8/Packages/oopsy/examples/crossover.cpp oopsy-verbose: script start patch 48kHz block48 /Users/simon_ho/Documents/Max 8/Packages/oopsy/examples/crossover.cpp boost oopsy-verbose: stop success dictionary u296001129 oopsy-verbose: start success dictionary u184001130 oopsy-verbose: using build tools found in /usr/local/bin oopsy-verbose: Target patch configured in path /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/daisy.patch.json oopsy-verbose: Building to /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_crossover_patch oopsy-verbose: Will upload from /Users/simon_ho/Documents/Max 8/Packages/oopsy/examples/crossover.cpp by writing to: oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_crossover_patch/crossover_patch.cpp oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_crossover_patch/Makefile oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_crossover_patch/build/crossover.bin oopsy-verbose: oopsy generated code oopsy-verbose: generated code oopsy-verbose: compiling... oopsy-verbose: oopsy compiling... oopsy-verbose: oopsy compiler error oopsy-verbose: compiler error oopsy-verbose: null oopsy-verbose: In function 'gen_numname', oopsy-verbose: inlined from 'dir_register' at ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:2339:4: oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:1825:8: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] oopsy-verbose: 1825 | ns[i] = '~'; oopsy-verbose: | ~~^~~~~ oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c: In function 'dir_register': oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:1796:7: note: at offset -1 to object 'ns' with size 8 declared here oopsy-verbose: 1796 | BYTE ns[8], c; oopsy-verbose: | ^~ oopsy-verbose:

grrrwaaa commented 3 years ago

Thanks for the issue report!

This seems to be being triggered by the new additions with libdaisy for SDcard support. I might need to push this upstream to the libdaisy to trace the problem.

Unfortunately I can't reproduce the bug here on my machine -- can I ask what operating system you are running?

Thanks!

grrrwaaa commented 3 years ago

Note for future: this should be testable within Oopsy source folder using node oopsy.js ../examples/crossover.cpp

grrrwaaa commented 3 years ago

@simontho we're having trouble reproducing the issue here, and are a bit baffled as to how this could even arise. There's a chance perhaps that your git repository is out of sync; could you try a fresh clone of dev branch, run ./install.sh, and try again?

simontho commented 3 years ago

@grrrwaaa

No problem! As mentioned, I am new to Git so it could be some user error on my end.

System Info: image

I removed the old oopsy dev clone instance and recloned as you've suggested, and then ran ./install.sh again. At first, something seemed to have changed since the last few times I tried because the bpatchers in the oopsy dev branch examples now look like the normal bpatchers I'm used to seeing in the main branch examples and template. I successfully flashed the dattoro and crossover examples to my daisy patch, and I was running into the 'compiler error" message prior to this, so that's a good sign...

However, the new dev features (c1_int_foo, for example) do not seem to be working, and If I remove the original oopsy package (that i manually downloaded and installed outside of git last month) from the max 8/packages folder, so that only the new oopsy dev clone is present, the same thing happens and the oopsy bpatchers throw up the same compiler error message and appear with the "quiet", "boost" and "fastmath" buttons.

This leads me to believe the install was still not successful and the bpatchers were initially working because of the original, manually downloaded Oopsy main branch. The oopsy templates stopstop working when that branch is removed.

stephenhensley commented 3 years ago

Ah, part of the issue here may be the order of operations.

In order to ensure that everything is in sync together you should clone the dev branch, and then run the install script.

So basically:

git clone https://github.com/electro-smith/oopsy
cd oopsy
git checkout dev
./install.sh

It's possible that has something to do with the issues you're seeing.

simontho commented 3 years ago

Hi @stephenhensley

I think this is the same order of operations I have been following for the majority of my cloning attempts (Clone, then check out dev, then run ./install.sh) - although I was using Github Desktop application before. I tried again just now via terminal window, copying and pasting the commands from your last post and I end up with the same result. Odd-looking Bpatcher and "compiler error" message when I attempt to flash to my Daisy.

Here's the log from this attempt:

oopsy-verbose: script start patch 48kHz block48 /Users/simon_ho/Documents/Max 8/Packages/oopsy/examples/dattoro.cpp boost oopsy-verbose: stop success dictionary u406000850 oopsy-verbose: start success dictionary u098000851 oopsy-verbose: using build tools found in /usr/local/bin oopsy-verbose: Target patch configured in path /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/daisy.patch.json oopsy-verbose: Building to /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_dattoro_patch oopsy-verbose: Will upload from /Users/simon_ho/Documents/Max 8/Packages/oopsy/examples/dattoro.cpp by writing to: oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_dattoro_patch/dattoro_patch.cpp oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_dattoro_patch/Makefile oopsy-verbose: /Users/simon_ho/Documents/Max 8/Packages/oopsy/source/build_dattoro_patch/build/dattoro.bin oopsy-verbose: oopsy generated code oopsy-verbose: generated code oopsy-verbose: compiling... oopsy-verbose: oopsy compiling... oopsy-verbose: compiler error oopsy-verbose: oopsy compiler error oopsy-verbose: null oopsy-verbose: In function 'gen_numname', oopsy-verbose: inlined from 'dir_register' at ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:2339:4: oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:1825:8: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=] oopsy-verbose: 1825 | ns[i] = '~'; oopsy-verbose: | ~~^~~~~ oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c: In function 'dir_register': oopsy-verbose: ../libdaisy/Middlewares/Third_Party/FatFs/src/ff.c:1796:7: note: at offset -1 to object 'ns' with size 8 declared here oopsy-verbose: 1796 | BYTE ns[8], c; oopsy-verbose: | ^~ oopsy-verbose:

grrrwaaa commented 3 years ago

Fixed: the problem was a mistaken assumption in oopsy.js that a subprocess printing to stderr means there is an error (in this case it was only a warning). The test was unnecessary anyway.