Opened 7 years ago
Last modified 6 years ago
#1095 new enhancement
Ship tinycc with MAC
Reported by: | butler | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | SasView 4.3.0 |
Component: | SasView | Keywords: | |
Cc: | Work Package: | SasView Bug Fixing |
Description
The following was reported by a user and documented in ticket #1084. The cause was determined to be that they had refused to install the required inline xcode package (that used to be loaded by default on mac?) so that there was no compiler to compile the models with. The solution is to Ship tinycc with the mac version as we already do with the PC version.
Reported by user Judith Witte (using Mac OS 10.13.3).
Was fitting happily in an (unspecified) earlier version of SasView which then just "stopped working" (wouldn't open anymore). So upgraded to 4.1.2. Data loads in 4.1.2 but on attempting a fit this is returned:
Error(s) Occurred: > Traceback (most recent call last): > File "sas/sasgui/perspectives/fitting/fit_thread.pyc", line 82, in compute > File "sas/sasgui/perspectives/fitting/fit_thread.pyc", line 14, in map_apply > File "sas/sasgui/perspectives/fitting/fit_thread.pyc", line 11, in map_getattr > File "sas/sascalc/fit/BumpsFitting.pyc", line 275, in fit > File "sas/sascalc/fit/BumpsFitting.pyc", line 375, in run_bumps > AttributeError: 'FitDriver' object has no attribute 'fitter'
This looks remarkably similar to #1061 which is only classified as minor, however Judith says this is stopping her from doing any fitting. She also comments that "The first error occurs after I choose the model (not clicked on Fit yet)". If you look carefully at the screenshots you will note two slightly different errors. So am initially marking this as a blocker pending further investigation as it appears a more serious and widespread problem than in 1061.
tinycc runs on the mac, but it is missing the Mach-O library storage format, so we cannot produce the dlls we need. It shouldn't be too hard to write, but it will take time.
Meanwhile, precompile the DLLs and ship them with the application so that the compiler check is only needed when working with plugin C modules.
Anaconda provides a C compiler package for conda. We could potentially set up a miniconda environment as part of the sasview app and install it that way. The clang package for mac adds over 200 MB to the distribution.
The llvmlite package used by numba is about 21 MB, but it is only the backend. It doesn't have a translator from C99 to the llvm intermediate representation, so can't be used directly for compiling models.