-
Notifications
You must be signed in to change notification settings - Fork 757
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework sc-ide build to create a static library #4628
Conversation
Overall this looks good! I've built it myself on macOS and everything appears to be in order. Someone should also test on a Linux system to make sure. One request -- can you add this? Otherwise the library will be created as set_target_properties(libscide PROPERTIES PREFIX "") |
Thanks Brian
Sure, I'll do that after the dev meeting... I guess I'll have lots of rebasing to do before I can push the update anyway... |
Work in progress: On Mac, SuperCollider only links successfully when CMake was run with -DSC_USE_QTWEBENGINE=OFF See the comments in the change for the linker errors when QtWebEngine is enabled.
Content was: compiling class library... Found 847 primitives. Compiling directory '/Users/clare/Documents/develop/Audio/SuperCollider/build/Install/SuperCollider/SuperCollider.app/Contents/MacOS/SCClassLibrary' Compiling directory '/Users/clare/Library/Application Support/SuperCollider/Extensions' ERROR: There is a discrepancy. numClassDeps 0 gNumClasses 82 Library has not been compiled successfully. Library has not been compiled successfully.
b5d6796
to
cd86d90
Compare
@brianlheim I've fixed the library name, rebased and force-pushed... I'll ask on Slack to see if anyone can test the Linux build. Is this OK to ask for a formal review now? |
I just built this successfully on Linux. Here's what I did:
For good measure, I then ran
Please let me know if there is anything missing or misunderstood with my test procedure. I'm happy to do further work. I'm on Arch Linux with kernel 5.3.1-arch1-1-ARCH. |
@beatboxchad Hi, thank you very much for this - yes, I definitely care about the core dump... It would really help to know whether that existed prior to the changes I made... Would you have time at some point to repeat that test but with this version, please? |
Coming right up! |
Just built on that revision, and the core dump does not take place. Happy to help you troubleshoot this -- I'm a bit of a C++ noob, but it'd be great for me to learn. strace? set up a debugger? You can just tell me the high-level of what to do, I'll hit the search engine and flesh it out. |
Thank you SO much for checking. Am really glad to have a chance to fix that before the change makes it to the dev branch. I’m very new to SC so don’t have a lot of experience of strategies for it. I did notice some suggestions on capturing logs after this recent message on SC Slack - though I don’t know if they are at all relevant to the crash you are seeing. https://scsynth.slack.com/archives/C6F5X44RF/p1572733871189700 |
Another thing I have found really helpful in the past is to use |
One last thing for now - a fantastic thing to aid tracking this down is that you have both a working and a non-working program, which can really help speed up tracking down problems, by comparing various aspects of the two. The changes I made were not supposed to change the layout of the install at all, but it might be worth using some recursive diff tool to compare the working and broken install folders, to see if any files have ended up in the wrong place or missing. If you can find out how to create a log file of the various SC components, you could also run the two and compare the difference in the two logs, which might be revealing. Apologies for taking up your time on this - but Yay for testing!!! |
No apologies needed, these are great warmups for me. We're both new contributors. Thank you for the opportunity! |
Forgot to thank you for all the awesome troubleshooting tips, too. \m/ |
Hey @claremacrae good news! I didn't even have to use all your great advice -- before I went full Now we can reason about why. Something something linking on Linux something something. |
Hey @beatboxchad - that’s awesome work. Thank you very much indeed! As the new library is statically linked and the file name is really a hidden thing, I wonder whether it would be acceptable to revert the library filename change, instead of debugging the crash further ? @brianlheim When you have a minute, I’d really appreciate your view. Many thanks, both. |
Hold up, apologies to you both -- I might have had some build caching
gumming up my readings. I forgot to run `make clean`
Will report back
…On Thu, Nov 7, 2019, 3:51 PM Clare Macrae ***@***.***> wrote:
Hey @beatboxchad <https://github.com/beatboxchad> - that’s awesome work.
Thank you very much indeed!
As the new library is statically linked and the file name is really a
hidden thing, I wonder whether it would be acceptable to revert the library
filename change, instead of debugging the crash further ?
@brianlheim <https://github.com/brianlheim> When you have a minute, I’d
really appreciate your view. Many thanks, both.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#4628?email_source=notifications&email_token=AARIDN63GPC45NL5YZ63WWDQSSEXJA5CNFSM4JIG4I7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDN6NLI#issuecomment-551282349>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARIDN3KGVZA3L2NQAR5AI3QSSEXJANCNFSM4JIG4I7A>
.
|
That sounds like a bug in the build system if you have to a clean build after changing the code. |
Weirdest thing -- I can't seem to reproduce that core dump any more. I'm switching between revisions on your branch. I'm running I'm too new to reason about what could have caused this, but the reason I looped back is because I couldn't reproduce the core dump on the latest build any more. Any ideas? |
Wanting to make sure it wasn't something I did on my workstation, I just went and cloned -> built it on my Linode running Arch Linux (PS anybody who wants to try this, all you gotta do is run a VNC server and I've really got no clue what caused that core dump before, but I can't reproduce it now. I'm comfortable saying this builds fine on Linux. |
thanks for the persistence @beatboxchad ! |
In view of Chad's successful testing on Linux, is there anything else that I need to do with this, or would it be possible for someone to merge it please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Will merge soon unless someone else would like to review.
This fixes an error introduced in supercollider#4628.
This fixes an error introduced in supercollider#4628.
This fixes an error introduced in supercollider#4628.
Purpose and Motivation
This is the first step in implementing #4617 . It changes the Cmake steps for sc-ide so that first a static library is created, and then the executable is created.
This will later allow me to create one or more test suite executables that link this new static library.
Types of changes
To-do list
Notes on testing
I've tested the built sc-ide on Mac and Windows. There are notes in #4617 on how I tested it.
Note that I found that the translation files were not previously loaded, and they are still not. See #4619.