wxMaxima-developers / wxmaxima

A gui for the computer algebra system Maxima built with wxWidgets
https://wxMaxima-developers.github.io/wxmaxima/
Other
461 stars 96 forks source link

Trying to find a working tag for a new MacPorts release #1802

Closed MSoegtropIMC closed 3 months ago

MSoegtropIMC commented 10 months ago

@ryandesign and me are currently trying to create a new MacPorts version. I tried the latest 3 tags and all have very severe issues:

2023.05.1:

2023.07, 2023.08

It is very hard to say something about these two versions because in these versions it takes 30..40 seconds to start up a maxima session. This happens for each new document and each open. As far as I can tell the cursor issues are gone, but cause of the delay I didn't test it much.

Summary

Can we have a patch of 2023.08 where whatever has changed from 2023.05.1 in maxima session management is undone or fixed?

Btw.: the long term issues with the preferences dialog seem to be fixed in 2023.05.1

Open Tasks

MSoegtropIMC commented 10 months ago

P.S.: I try to do my daily work using 2023.08, so that I can report on issues in this version.

MSoegtropIMC commented 10 months ago

One more note on the help system in 2023.05.1: "Show help in console" seems to be the default, which does not make a lot of sense on Mac since one doesn't start it from a console, so there is none (and I don't think it makes a lot of sense on other platforms either)

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : should I try to bisect the start up time issue or do you have an idea what this can be? The help menu stuff should be easy enough to fix.

I used the 2023.08.0 version the last days and besides the issues I mentioned above I couldn't find anything (but did only usual work so far - no dedicated tests).

gunterkoenigsmann commented 9 months ago

If you were willing to do that, that would be great! On Windows and Linux I thought that start-up time has increased by a fraction of a second when we stopped to compress the built-in svg images. But that was a) not logical and b) a fraction of a second on a very slow processor.

The help system issue lies in maxima, but I didn't manage to tell the maxima team what is amiss and I believe I can find a workaround.

Currently I am trying to resolve hundreds of warnings from static analysis tools: That was what made the config dialogue issues go away. Let's hope that it fixes more bugs than it creates...

MSoegtropIMC commented 9 months ago

Static analysis sounds good - in my experience it can lead to a few hickups initially but is very worthwhile in the long run.

I will do a bisection of the startup time issue on Mac.

gunterkoenigsmann commented 9 months ago

Thanks a lot

What gave me a fright was the time EditorCell.cpp needed a >400 line fix in order to get rid of a few warnings. And that coverity-scan at first complained about every fix I did for the msvc analysis tool. But it seems if they are both happy at the same time that is a good sign.

gunterkoenigsmann commented 9 months ago

Also the static analysis helped me get rid of many parts of the code that I never understood and therefore never have been able to improve. Surprisingly ChatGPT has probably been very helpful in explaining these places to me.

gunterkoenigsmann commented 9 months ago

Ok... ...the static analysis tools are happy now: image Let's hope that this is a good sign.

MSoegtropIMC commented 9 months ago

I plan to do the bisection early afternoon today. I will first try latest, and if this does not work bisect.

gunterkoenigsmann commented 9 months ago

Perhaps the "debug messages" sidebar gives some insight. Not that the problem is something like an endless loop if links in a directory wxMaxima searches on startup or something similar ...

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : I found some time to do the bisection. Here are my notes around the point where it happens. So the startup issues started with commit 7d7026393bfbc277ed0299478d156101dd46f254 (A wild guess on what makes the cursor disappear for some users)

commit 819453bf39400a34716d540f820af200c6c95d5c
bisect-271: build OK, slow startup
Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Tue Jul 4 01:44:53 2023 +0200

    Code simplification

commit 3cc8a94c7da3cbb09d4b293b88e734666da596e2
bisect-272: build OK, slow startup
Author: Wolfgang Dautermann <dauti@users.sourceforge.net>
Date:   Sun Jul 2 11:18:08 2023 +0200

    Manual: document, that wxplot_size works for many embedded plotting functions.

commit 7d7026393bfbc277ed0299478d156101dd46f254
bisect-273: build OK, slow startup
Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Thu Jun 29 23:06:27 2023 +0200

    A wild guess on what makes the cursor disappear for some users

commit 5604eee1fcfa2aa06a5af94f9b5625c4cb35551f
bisect-274: builds OK, startup OK, issues loading plots from wxmx file
Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Sun Jun 25 08:56:52 2023 +0200

    Tried to reinstate the EditorCell optimizations

commit 2e2ba8cf34f8ed90b19873e3774211be6462bc2f
bisect-275:
Error: Failed to build wxMaxima: command execution failed
Error: See /opt/local/var/macports/logs/_Users_msoegtrop_MacPorts_macports-local_math_wxMaxima/wxMaxima/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port wxMaxima failed
Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Sun Jun 25 08:29:05 2023 +0200

    Removed a lock that didn't help

commit 5d8592af967810013cae2c769854605a2c4e7847
bisect-276
Error: Failed to build wxMaxima: command execution failed
Error: See /opt/local/var/macports/logs/_Users_msoegtrop_MacPorts_macports-local_math_wxMaxima/wxMaxima/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port wxMaxima failed
Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Sun Jun 25 08:25:54 2023 +0200

    That lock didn't work as it should have
MSoegtropIMC commented 9 months ago

P.S.: main does not destroot (means it builds, but does not produce an installable app):

commit af1a0a9bb50fe53fae70a9a7c3c91472f3c5664e (HEAD -> main, origin/main)

bisect-1: Error in destroot
Error: Failed to destroot wxMaxima: error copying "/opt/local/var/macports/build/_Users_msoegtrop_MacPorts_macports-local_math_wxMaxima/wxMaxima/work/build/src/wxmaxima.app": no such file or directory
Error: See /opt/local/var/macports/logs/_Users_msoegtrop_MacPorts_macports-local_math_wxMaxima/wxMaxima/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port wxMaxima failed

Author: Gunter Königsmann <gunter@peterpall.de>
Date:   Sun Sep 17 08:15:38 2023 +0200

    cppcheck and coverity-scan warnings
MSoegtropIMC commented 9 months ago

P.P.S.: as mentioned 23.08 does build and destroot.

gunterkoenigsmann commented 9 months ago

If it doesn't build to destroot that should mean that earlier in the build process there was some error when creating "/opt/local/var/macports/build/_Users_msoegtrop_MacPorts_macports-local_math_wxMaxima/wxMaxima/work/build/src/wxmaxima.app". Could you send me the full build log? My hope is that that error produces an error message, somewhere.

gunterkoenigsmann commented 9 months ago

If CMD+C copy is broken my guess is that in wxMaximaFrame.cpp the line

  APPEND_MENU_ITEM(m_EditMenu, wxID_COPY, _("&Copy\tCtrl+C"),
                   _("Copy selection"), wxS("gtk-copy"));

is broken. The only way for it to break is that in the language wxMaxima uses on your system the translation of &Copy\tCtrl+C is broken, somehow...

gunterkoenigsmann commented 9 months ago

In the log from compiling wxMaxima on github actions (https://github.com/wxMaxima-developers/wxmaxima/actions/runs/6209454448/job/16856674735) I see the line

[113/113] Linking CXX executable src/wxmaxima.app/Contents/MacOS/wxmaxima

That should be the file that is missing in your case. Afterwards it looks like that file is somehow modified by the

sudo make install

that follows.

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : I tried latest master (05389e057c8bc7f9cc1fd706469030c5dee6b7e1):

I will test this version for a few days and then you should tag and I do a release.

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : what still doesn't work (well) is opening a wxmx file which contains plots - I get an error message:

can't open file 'maxout_18876_1.gnuplot' (error 2: No sch file or directory)

for each plot in the file.

The plots are shown anyway, btw.

gunterkoenigsmann commented 9 months ago

Could you send me such a file?

IAM extremely busy for the next two weeks, but I will do what I can.

gunterkoenigsmann commented 9 months ago

Tested it again. Somehow I find no way to trigger this bug on my computer. But I have just resolved a bug with respect to saving .wxmx files. There is a (very) remote chance that it is the one you encountered.

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : OK, I will test it.

In the commit I mentioned before, after some testing, these things don't work:

MSoegtropIMC commented 9 months ago

The Ctrl+C Ctrl+V stuff I think has nothing to do with keys not working - I now believe it either works with shortcuts and menues or neither, but it is highly modal. All Copy options are frequently grayed out in the menu.

gunterkoenigsmann commented 9 months ago

That is a good hint on where to look! Thanks a lot! In the meantime I have found out how to make Github test if the program can be compiled on MacPorts for every commit to the core repository as to prevent bit rot.

gunterkoenigsmann commented 9 months ago

Just corrected a potential issue with enabling the menu items. If the Ctrl+C still doesn't work that would mean, that wxMaxima knows how to determine when copying should work, but that function isn't triggered when it needs to. I would be surprised, though, if the problem resised there.

gunterkoenigsmann commented 9 months ago

The scrolling Issue I will hunt down and find. But for the loading Issue I am at a complete loss where it could reside and I seem not to be able to reproduce it on my linux box => either I am doing the wrong thing for testing or the mac does something different to what my linux box does.

If you could provide me with a file with the loading error I hope that makes hunting down that bug easier.

gunterkoenigsmann commented 9 months ago

For the worksheet height issue I am afraind I need some help reproducing that, too:

(%i1)   e;
(%i2)   makelist(i,i,1,10000);

doesn't allow me to reproduce the bug.

MSoegtropIMC commented 9 months ago

I see that i can prepare test files for the loading and the scrolling issue - it might take until Thursday.

gunterkoenigsmann commented 9 months ago

I am currently trying to replace the code that loads the images from the wxmx file: currently I tell the images' URLs to wxFileSystem, which causes problems when the path to the file contains spaces and/or non-ascii stuff that the URL-encoder/decoder gets wrong. But there nowadays is a second method that works with file names. Perhaps it makes sense to test once I have applied that change

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : one observation from daily use: the scoll area issues seems to happen if a command produces a lot of print output (> 1 screen page or so) and then a lot of output (in my case usually wxDraw2D graphics).

gunterkoenigsmann commented 9 months ago

Ok... ...the image loading issue might have changed with completely changing the way images are loaded from wxmx in aa97209d461354b4699e08b85f6338d42b381068

Will tomorrow look if the size of images is calculated correctly only after the worksheet size has been recalculated. Perhaps that is the other issue...

gunterkoenigsmann commented 9 months ago

Ok... ...found a way to reproduce the scrolling issue:

for i:1 thru 300 do disp(j);
wxdraw2d(explicit(sin(x),x,1,100));
gunterkoenigsmann commented 9 months ago

The problem doesn't appear if the wxdraw2d is missing.

gunterkoenigsmann commented 9 months ago

Ok... ...with a bit of Luck the scrolling issue is resolved now.

MSoegtropIMC commented 9 months ago

Many thanks! I am OOO today and will try the latest commit tomorrow.

Should the Ctrl+C/Ctrl+V issue also be solved (I lost track a bit - maybe I should create separate issues ...).

gunterkoenigsmann commented 9 months ago

I have rewritten the logic that decides if to enable the copy menu entry. If it still doesn't work that would mean we don't call that logic when we should, but that would really surprise me as we call it every time wxMaxima's event queue is empty.

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : I built the latest version (that is 2790fdb476cb15656f56f0ca8f17a7b2644b8dab) and all looks fine. Ctrl-C, Ctrl-V works, scrolling issues gone, loading of wxmx files with plots OK and the connect slowness is already fixed before. So this commit looks good to go. Let me test it until mid of next week and then I would ask for a tag (for exactly this commit).

MSoegtropIMC commented 9 months ago

@gunterkoenigsmann : I went again through my check list and what still does not work is help. Regardless of what I set the display help setting in the help menu to, I get the help in a panel (which is so small that this is hardly useful). Sure I could make it larger but I really don't like this. I find it much easier to work with help in a browser. For Ubuntu the panel reader might be useful, though, since the Ubuntu team managed to mess up Firefox in such a way that it can't open local files any more (snap sandbox).

gunterkoenigsmann commented 9 months ago

Wow... ...then loads of thanks for all the testing, debugging and persistence that has made this possible. And the web browser is really messed up, on Ubuntu. The way around this would be:

I am curious to see what we will say about such constructs ten years from now. But today I am still unsure if that is a good idea...

gunterkoenigsmann commented 9 months ago

The browser panel I added because I first thought that it would be easy to do so - and then started to like it, especially on Ubuntu, as you already guessed, and, because it doesn't open every help chapter in its own browser tab. What I still am unsure about is: Currently the help viewer can be configured using a maxima variable. Do we want wxMaxima to configure this variable for us on starting maxima remembering the last setting the user chose - and what would be sane defaults?

If I understand you right on the mac perhaps the standalone browser would make sense. On Ubuntu a wxMaxima browser tab - and on Windows I would prefer a browser tab, as well, as I know many users who liked that tab.

MSoegtropIMC commented 9 months ago

My pleasure :-) I say thank you for the quick support!

Regarding help: I still think the browser should be default or the tab should have a reasonable default size. As is, it is almost so small, that one doesn't realise that the help opened in it, so people might believe that the help menu is not functioning correctly.

The main issue I have is that on Mac is different, though. it is that the setting (console, panel, browser) doesn't do anything at all. Whatever I choose, I get the help in the panel. This must be fixed. What is the default is then a secondary question.

MSoegtropIMC commented 9 months ago

Regarding snap: I don't like it very much either - the security overhead is very high and if this makes a lot of sense in a system where one can install .deb packages as well is a good question. But it is used, and in this sense it is useful.

gunterkoenigsmann commented 9 months ago

I actually understand that you want to sandbox applications. But if your browser can read your files, has access to the web and can place files in your autostart folder the sandbox hinders you from working whilst not preventing many attack scenarios...

MSoegtropIMC commented 9 months ago

Yes, the firefox sandboxing on Ubuntu is questionable.

Anyway: how about Mac: as I said the real issue is that the selection of help display does not work. Regardless what I set there, the output always ends up in the panel.

gunterkoenigsmann commented 9 months ago

Ok ... The browser tab has now a default size > 0, it is more obvious now that wxMaxima had its own configuration item for the help browser and Maxima's help browser setting now is persistent. And as one of the bug fixes you requested caused the intermittent issues with the self test on GitHub actions to be persistent I managed to fix that bug, too.

MSoegtropIMC commented 9 months ago

Ahh now I understand - the setting was where maxima itself displays help - not wxMaxima. The new setting works fine. There is a certain chance that people read to fast and think that this is about where the Maxima and the wxMaxima help is displayed, not where Maxima and wxMaxima display help, but on second read I got it right.

I will test fc23d905049d600265cfd61073d08487a12d7398 for a week or so, but I would appreciate if you would tag it already.

gunterkoenigsmann commented 9 months ago

For me that commit reverts the zoom factor on right-click -> more bug fixing to do; when I suspected that you interpreted the menu item wrong I added additional menu entries for clarification: my guess is if you are misled many others will be, too.

gunterkoenigsmann commented 9 months ago

I believe 7346ab87230e30c01335a90c877e110090344021 should be a good commit to make a tag.

MSoegtropIMC commented 9 months ago

Sure, I can test this commit - it is only one after the one I tested so far.

gunterkoenigsmann commented 9 months ago

The difference is: If you try to handle pinch zoom events on windows and Linux current wxWidgets versions interpret right -clicks as zoom events => disabled the pinch zoom handler.

gunterkoenigsmann commented 9 months ago

Ok. Made a tag. Difference between the tag and that commit: