Skip to content

Conversation

@doronbehar
Copy link
Contributor

With the commits included, I managed to compile this on NixOS, without conan.

  • meta/all.py: Remove unused pip import
  • meta/code_settings: add missing stding.h include for uint32_t
  • Add -mbig-obj ar flag conditionally
  • cmake: Always install things
  • Allow to build without conan

@JohnDTill
Copy link
Owner

JohnDTill commented Apr 25, 2025

Hi Doron, thanks for this. The changes look good. Could you copy the changes to the test cmake file as well, e.g. by cherry picking c3ec32d, so that the pipeline jobs test?

(I know the replicated cmake files aren't ideal- sorry! I'm not fussed about the failing clang job; they should update Conan 1 to recognise Clang 18 eventually, and this should migrate to Conan 2 or another package manager eventually)

@doronbehar
Copy link
Contributor Author

I'm not sure whether that commit helps, but I cherry picked it. Also, feel free to push commits - I have this tick checked:

image

@JohnDTill JohnDTill self-assigned this Apr 26, 2025
@JohnDTill
Copy link
Owner

Thanks. I'll likely get around to this next week since I'm currently on holiday, but I plan to fix the 2 jobs which are failing because of Conan issues and then merge the PR.

@JohnDTill
Copy link
Owner

I found a couple hours to look at fixing the Conan issues, but didn't get much traction. I can see why you wanted to avoid Conan ;). That's all unrelated your MR, so I'll merge now and revisit dependency management later.

@JohnDTill JohnDTill merged commit 1b6d82c into JohnDTill:main Apr 27, 2025
8 of 10 checks passed
@JohnDTill
Copy link
Owner

Thanks again for the PR. I'll be curious to know if you find much use out of Forscape. There are some substantial changes on a long-running branch to add CAS support, better project file structure, and more IDE interactions. Along with improvements I'm trying to think about how the application scales.

@doronbehar
Copy link
Contributor Author

I'll be curious to know if you find much use out of Forscape.

😄 TBH, I didn't find actual use to it, which is very unfortunate because it is designed so good! I reached Forscape after reviewing software for editing LaTeX equations. I don't remember which software information page exactly pointed me here, but only after I successfully compiled Forscape I realized there is no TeX export feature :).

I also experienced other explain bugs, like:

image

After I removed that file (after giving up on using the software). I also experienced the following segmentation fault afterwards:

#0  0x00000000005394b1 in Forscape::Program::runStaticPass() [clone .part.0] ()
#1  0x0000000000570414 in Forscape::Typeset::Model::mutate(Forscape::Typeset::Command*, Forscape::Typeset::Controller&) ()
#2  0x00000000005b7540 in Forscape::Typeset::View::keyPressEvent(QKeyEvent*) ()
#3  0x00000000005b9033 in Forscape::Typeset::Editor::keyPressEvent(QKeyEvent*) ()
#4  0x00007f3b5ca0ab57 in QWidget::event(QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#5  0x00007f3b5caaf016 in QFrame::event(QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#6  0x00007f3b5c9a1baa in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#7  0x00007f3b5c9ac636 in QApplication::notify(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#8  0x00007f3b5b5b2698 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#9  0x00007f3b5ca214a8 in QWidgetWindow::event(QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#10 0x00007f3b5c9a1baa in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#11 0x00007f3b5b5b2698 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#12 0x00007f3b5bdfc6db in ?? () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Gui.so.6
#13 0x00007f3b5be6ce64 in ?? () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Gui.so.6
#14 0x00007f3b5be6d08f in ?? () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Gui.so.6
#15 0x00007f3b5b60dd97 in QObject::event(QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#16 0x00007f3b5c9a1baa in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Widgets.so.6
#17 0x00007f3b5b5b2698 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#18 0x00007f3b5b5b63e4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#19 0x00007f3b5b8c42c7 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#20 0x00007f3b5a9b9fc1 in g_main_context_dispatch_unlocked () from /nix/store/yxyncg0y2b39kjgi4c52w74c4w1za7pg-glib-2.82.5/lib/libglib-2.0.so.0
#21 0x00007f3b5a9bc280 in g_main_context_iterate_unlocked.isra () from /nix/store/yxyncg0y2b39kjgi4c52w74c4w1za7pg-glib-2.82.5/lib/libglib-2.0.so.0
#22 0x00007f3b5a9bcabc in g_main_context_iteration () from /nix/store/yxyncg0y2b39kjgi4c52w74c4w1za7pg-glib-2.82.5/lib/libglib-2.0.so.0
#23 0x00007f3b5b8c39a3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#24 0x00007f3b5b5c0beb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#25 0x00007f3b5b5bc02e in QCoreApplication::exec() () from /nix/store/cp30fin83aimfljxb5988bkn2micgi04-qtbase-6.9.0/lib/libQt6Core.so.6
#26 0x000000000043c952 in main ()

Nevertheless, I see a potential here, and I'd be happy to maintain this software on NixOS!

NixOS is very generous in that sense - We don't mind including software that might be used be 1 or less people. My motivation for including it is mostly for other people to have a chance to easily try it out.

I found a couple hours to look at fixing the Conan issues, but didn't get much traction. I can see why you wanted to avoid Conan ;). That's all unrelated your MR, so I'll merge now and revisit dependency management later.

You should give Nix a try! It is not only a Linux distribution, it is also a package manager for Darwin, and a reproducible development environment creator.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants