Closed schroef closed 3 years ago
Hi @schroef - Could you download the 0.10.1 release and try that, just to give us a point of comparison? https://github.com/GollyGang/ready/releases/download/0.10.1/Ready-0.10.1-Mac.dmg
I don't use macOS but I'm hoping our resident expert @andykt can help debug the situation.
Sure, will do and report back
No luck and no crash window. I did use console to find the crash report. ALso get this window when i restart it again but nothing shows, whereas with 0.11.0 i do get a crash window.
Ill try release 0.9.0 as i dont see a 0.10.0 for OSX. See if that works.
Okay v0.9.0 also crashes iv added another report for that. So for me on OSX 10.11.6 only v0.8.0 works
On Thu, Feb 4, 2021 at 5:59 AM schroef notifications@github.com wrote:
When trying to open the app on OSX 10.11.6, the app crashes immediately. ...
Thanks for including the crash log. It looks like one of the libs in Ready (built on 10.15.6) is using a call that's not available on 10.11.6. I suspect it's something to do with Boost because although I've been careful to build the VTK, wxMac and Ready code with macosx-version-min=10.10 I completely forgot about Boost which I installed some time ago via "brew install boost". So I suspect I'll have to build the Boost libs from source and specify the same macosx-version-min setting.
To help verify this, can you please download the dmg files from the following locations and check that both apps start up ok on your 10.11.6 system:
https://sourceforge.net/projects/glu1/files/glu-0.2/ https://sourceforge.net/projects/ag1/files/ag-1.4/
If I'm wrong about Boost being the culprit then it will probably be a lot quicker to get Ready working on your system by building it from source. It's really not that hard (assuming you have the Xcode tools and cmake installed). Just download Ready's source code and follow the macOS instructions at the bottom of BUILD.txt.
Question for Tim: How much of Ready's code relies on Boost? If only a small amount then any chance we could remove that dependency?
Andrew
@schroef: Please download this build of Ready:
http://www.trevorrow.com/ready/Ready-0.11.1-Mac.dmg
I think Ready.app should run ok on your 10.11 system. It turns out the problem was in the way I was building VTK (more details later if the above build is ok).
The Boost lib is only used by rdy (the command line version of Ready). There is still a problem with the way we build rdy that needs to be fixed, so I'm pretty sure it will fail if you try to run rdy in Terminal.app. Again, more details if I can figure out how to solve this problem.
@schroef: Please try this new build of Ready:
http://www.trevorrow.com/ready/Ready-0.11.2-Mac.dmg
Ready.app hasn't changed (so should hopefully still work!) but there is a new build of rdy that might work on your system. Open Terminal.app and try running a command like this:
./rdy -i Patterns/oregonator.vti -n 5 -k
I'll test 0.11.2 okay or do you wt me to test 0.11.1 as well?
0.11.2 seems to work, i did notice the top window frame. The toolbar's background is black, looks a bit strange.
Here's a comparison 0.8.0 vs 0.11.2
No need to test 0.11.1. Good to see that 0.11.2 works, except for the toolbar background glitches. No idea what might be causing those -- probably a wxAUI bug that only shows up on a 10.11 system for some reason. Looks a bit like a Dark mode issue but I'm pretty sure that option is only available in Mojave (10.14) or later. Tim, any idea?
@schroef: Did you also test rdy? If not, please open Terminal.app (in Applications/Utilities) and run these commands:
cd path/to/rdy ./rdy -i Patterns/oregonator.vti -n 5 -k
No idea Andrew. Which version of wxWidgets was it compiled with? Worth trying a different one?
Andrew, can we update the build instructions with what we've learnt?
There was a warning in the macOS build about the min versions: https://travis-ci.com/github/GollyGang/ready/jobs/480164758#L200
I have to use the latest development version of wxMac (3.1.5 from git) to build Ready. There is a serious bug in the stable (!) 3.1.4 release that causes Ready to crash on start up, and I can't use any older version of wxMac on my 10.15 system due to other start up bugs! wxMac development is a bit of a mess at the moment, mainly because macOS is a fast moving target and Apple don't give a stuff about supporting backward compatibility.
Those min version warnings can be safely ignored but I'll try to see if I can avoid them. I suspect it involves using -DCMAKE_OSX_DEPLOYMENT_TARGET="10.10" in the cmake command rather than specifying -mmacosx-version-min=10.10 in CMakeLists.txt. (That's actually what I had to do to ensure VTK is built for 10.10.)
Once rdy is confirmed to work on 10.11.6 I'll commit my changes.
Ok, I've been optimistic and assumed rdy will work, so I've committed my changes to BUILD.txt and CMakeLists.txt.
Note that the Boost lib used by rdy has to be statically linked (like on Windows) if we want to distribute it to other Mac users, so this means I can't just do "brew install boost". Building the Boost libs is a bit painful and I'm seeing weird warnings when linking rdy, but hopefully they can be ignored because I can't figure out how to avoid them.
Any chance we can remove the dependency on Boost? It looks like we only use it to parse program options in rdy, which seems like overkill to me. I don't really see the point of supporting all those lengthy options like --print-kernel when I bet everybody just uses the short -k version.
@schroef: Please try Ready.app in this latest build:
http://www.trevorrow.com/ready/Ready-0.11.3-Mac.dmg
I've made a couple of changes that might fix those black toolbar backgrounds. (And please don't forget to test rdy.)
@andykt I'd be very happy to get rid of Boost. boost::program_options
was added to parse the command-line arguments in rdy. There must be a tiny library we can use instead - maybe this one, a single header file library, MIT-licensed: https://github.com/jarro2783/cxxopts
@andykt i could check properly, my finder crashed and needed to do restart but was after work. I used terminal to start, but nothing showed. Then checke console and saw this message each time i tried running it
2/5/21 14:47:02.763 CoreServicesUIAgent[2225]: Error -60005 creating authorization
2/5/21 14:48:32.297 CoreServicesUIAgent[2225]: could not send Apple Event: -600
these to popup each time after i tried in Terminal. Ill test better again on Monday, i did had the time to restart and wait for it. Im sorry, the machine is terrible slow after restart, after that its okay
open ready-o.11.3-mac
hahah never mind, it was a folder. It actually runs fine and the black bg in the toolbar is gone. I do see it in the panel headers PS i noticed the startup file is less vibrant vs the current one. Is that a change in software or just different settings vs those of 0.8.0
v0.11.3
v.0.8.0
@schroef Yes, the default color palette has changed. Change colormap
to HSV blend
in the Render Settings to get the old appearance back.
@schroef: You still haven't told me if rdy works. I just need to know if it crashes or not, so please open Terminal.app and run these commands:
cd path/to/Ready-0.11.3-Mac (ie. the folder containing rdy, Ready.app, Patterns, etc) ./rdy -i Patterns/oregonator.vti -n 5 -k
@andykt sorry could not make it today to test that as well. I'll try it Monday okay. My Macs at home are all broken
@schroef: No problem. When you can, please try this latest build:
http://www.trevorrow.com/ready/Ready-0.11.4-Mac.dmg
I'm pretty sure it fixes all the black backgrounds, and even more certain rdy will work (as it no longer uses any Boost code).
@timhutton: I think we should replace the existing 0.11.0 macOS build in the release with this new 0.11.4 build ASAP. Or would you rather create a completely new 0.12.0 release?
@andykt Let's try this:
It's a bit mix-and-match but I think it works for these tiny fix releases which are quite common.
In future let's refer to versions generally as e.g. 0.12, and allow the third value (e.g. the 7 in 0.12.7) to be whatever we end up with after bugfixing, with no need for it to match across platforms.
@timhutton: Agreed on all points. 0.11.4 dmg has been released.
@schroef: You still haven't told me if rdy works. I just need to know if it crashes or not, so please open Terminal.app and run these commands:
cd path/to/Ready-0.11.4-Mac (ie. the folder containing rdy, Ready.app, Patterns, etc) ./rdy -i Patterns/oregonator.vti -n 5 -k
Sorry for the later reply. I tried the syntax using terminal but i wont run, see below I tried this with 0.11.3 but is same
its looking for this 'vtkXMLGenericDataObjectReader", i dont see i anywhere in this project. Its also not in the source folder. I see it should be included, its from an external lib VTK. I saw something in the BUILD.txt file
Mac-Pro:~ macpro1$ /Applications/Ready-0.11.4-Mac/rdy -i Patterns/oregonator.vti -n 5 -k
ERROR: In /Users/akt/HD/VTK-8.2.0/IO/XML/vtkXMLGenericDataObjectReader.cxx, line 149
vtkXMLGenericDataObjectReader (0x7fa693500a80): could not load Patterns/oregonator.vti
Error creating system!:
Unsupported data type or file read error
Mac-Pro:~ macpro1$
i tried without ./rdy but get the same error then.
I also tried version 0.11.4 looks better, it still looks a bit different compared to 0.8.0 Mainly the panel edge or outline color
The error is from here: https://github.com/GollyGang/ready/blob/9419d576faa49e7d508a0106e82adbeb2e09d799/src/readybase/SystemFactory.cpp#L88
I get that error on Windows if the file doesn't exist:
C:\Tim\Ready-git\build_vs2019_x64_staticCRT\Release>rdy -i ..\Patterns\CPU-only\grayscfott_1D.vti -n 5 -k
2021-02-10 16:31:43.391 ( 0.535s) [ ]vtkXMLGenericDataObject:147 ERR| vtkXMLGenericDataObjectReader (0000012E7596F9B0): could not load ..\Patterns\CPU-only\grayscfott_1D.vti
Error creating system!:
Unsupported data type or file read error
I should detect that situation and give a better message.
Can you check the path to Patterns/oregonator.vti?
what do you mean check the path? The file is in that folder, it doesnt seem to understand the path to the file, thats why i also tried with ./rdy. But i guess this i normal syntax using it like that.
PS should that path be
Mac-Pro:~ macpro1$ /Applications/Ready-0.11.4-Mac/rdy -i /Patterns/oregonator.vti -n 5 -k
So with an forward slash before Pattern
Hi @schroef, Sorry, I just meant something like:
ls
so that we can see if there is a Patterns folder in the current folder. I'm guessing that there isn't and that you need either:
/Applications/Ready-0.11.4-Mac/rdy -i /Applications/Ready-0.11.4-Mac/Patterns/oregonator.vti -n 5 -k
or:
cd /Applications/Ready-0.11.4-Mac
./rdy -i ./Patterns/oregonator.vti -n 5 -k
I had linked an image, the is a folder with this file. I gueess the upload didnt went properly
ac-Pro:Patterns macpro1$ ls
Agmon2014 Ginzburg-Landau Kytta2007 Purwins1999 Yang2003 oregonator.vti
Brusselator.vti GrayScott1984 LotkaVolterra1926 RosenzweigMacArthur1963 Yang2006 parameter_modulation_demo.vti
CPU-only Guo2014 Maginu1975 Schlogl.vti advection.vti parameter_modulation_demo2.vti
CellularAutomata Kobayashi1993 McCabe2010 Schrodinger1926 bilaplacian_interpolation.vti parameter_modulation_demo2_3D.vti
Experiments KortewegDeVries1895 Meinhardt1982 SmoothLife2011 heat_equation.vti wave_equation.vti
FitzHugh-Nagumo Kryuchkov2020 Morozov2008 Turing1952 heat_equation_interpolation.vti wave_soliton.vti
Froese2014 KuramotoSivashinsky1978 Pennybacker2013 Yang2002 kernel_test.vti
Mac-Pro:Patterns macpro1$
I ran the test using the path you showed and did get a return So i guess terminal version works right
Kernel source:
================================
kernel void rd_compute(global float4 *a_in,global float4 *b_in,global float4 *a_out,global float4 *b_out)
{
// parameters:
const float4 timestep = 0.00010000f;
const float4 D_a = 1.00000000f;
const float4 D_b = 0.60000002f;
const float4 epsilon = 0.01000000f;
const float4 f = 1.39999998f;
const float4 q = 0.00200000f;
const float4 dx = 0.20000000f;
// indices:
const int index_x = get_global_id(0);
const int index_y = get_global_id(1);
const int index_z = get_global_id(2);
const int X = get_global_size(0);
const int Y = get_global_size(1);
const int Z = get_global_size(2);
const int index_here = X*(Y*index_z + index_y) + index_x;
float4 a = a_in[index_here];
float4 b = b_in[index_here];
// cells needed:
const float4 a_sw4 = a_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + min(X-1, max(0, index_x-1))];
const float4 b_sw4 = b_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + min(X-1, max(0, index_x-1))];
const float4 a_w4 = a_in[X* (Y * index_z + index_y) + min(X-1, max(0, index_x-1))];
const float4 b_w4 = b_in[X* (Y * index_z + index_y) + min(X-1, max(0, index_x-1))];
const float4 a_nw4 = a_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + min(X-1, max(0, index_x-1))];
const float4 b_nw4 = b_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + min(X-1, max(0, index_x-1))];
const float4 a_s = a_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + index_x];
const float4 b_s = b_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + index_x];
const float4 a_n = a_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + index_x];
const float4 b_n = b_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + index_x];
const float4 a_se4 = a_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + min(X-1, max(0, index_x+1))];
const float4 b_se4 = b_in[X* (Y * index_z + min(Y-1, max(0, index_y-1))) + min(X-1, max(0, index_x+1))];
const float4 a_e4 = a_in[X* (Y * index_z + index_y) + min(X-1, max(0, index_x+1))];
const float4 b_e4 = b_in[X* (Y * index_z + index_y) + min(X-1, max(0, index_x+1))];
const float4 a_ne4 = a_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + min(X-1, max(0, index_x+1))];
const float4 b_ne4 = b_in[X* (Y * index_z + min(Y-1, max(0, index_y+1))) + min(X-1, max(0, index_x+1))];
const float4 a_sw = (float4)(a_sw4.w, a_s.xyz);
const float4 b_sw = (float4)(b_sw4.w, b_s.xyz);
const float4 a_w = (float4)(a_w4.w, a.xyz);
const float4 b_w = (float4)(b_w4.w, b.xyz);
const float4 a_nw = (float4)(a_nw4.w, a_n.xyz);
const float4 b_nw = (float4)(b_nw4.w, b_n.xyz);
const float4 a_se = (float4)(a_s.yzw, a_se4.x);
const float4 b_se = (float4)(b_s.yzw, b_se4.x);
const float4 a_e = (float4)(a.yzw, a_e4.x);
const float4 b_e = (float4)(b.yzw, b_e4.x);
const float4 a_ne = (float4)(a_n.yzw, a_ne4.x);
const float4 b_ne = (float4)(b_n.yzw, b_ne4.x);
// keywords needed:
const float4 laplacian_a = (-20 * a + a_nw + a_ne + a_sw + a_se + 4 * (a_n + a_w + a_e + a_s)) / (6 * dx * dx);
const float4 laplacian_b = (-20 * b + b_nw + b_ne + b_sw + b_se + 4 * (b_n + b_w + b_e + b_s)) / (6 * dx * dx);
float4 delta_a = 0.0f;
float4 delta_b = 0.0f;
// the formula:
delta_a = D_a*laplacian_a + (a - a*a - f*b*(a-q)/(a+q)) / epsilon;
delta_b = D_b*laplacian_b + a - b;
// forward-Euler update step:
a_out[index_here] = a + timestep * delta_a;
b_out[index_here] = b + timestep * delta_b;
}
================================
Run the simulation for 5 steps...
Output file not specified, not saving anything.
Mac-Pro:~ macpro1$
OSX 10.11.6 Ready 0.11.0
Crashes immediately on start
When trying to open the app on OSX 10.11.6, the app crashes immediately. I have tried the app since 0.80 honestly, so not sure where in between the updates it stopped working on OSX.
Attached crash-log i copied crash-read-1448-03022021.log