Comments (8)
Thanks for the details!
I think this is the important line:
ice-9/boot-9.scm:109:20: no code for module (system foreign-library)
The (system foreign-library)
module was added in Guile 3.0.6.
I suspect that on Fedora, you need to install guile30
to get Guile 3.x, instead of guile
(which installs the older Guile 2.x series).
from libfive.
issue resolved. problem with FC37 is that GUILE2.0 provides guile and guild programs which are not supported by libfive.
in order to make libfive compile need to insteall guile30 (or guile22) instead and make links from guile30 to guile and from guild30 to guild.
better would be to use guild30 or guild22 when available
from libfive.
update:
lbfive does not compile with guile 2.2 compiler in my place due to unspecified language errors.
with guild3.0 and links corectly setup it compiles and starts correctly with the python sphere example
when i load the guile tutorial, bit crashes with this error:
[gigl@fedora build]$ ./studio/Studio
QSocketNotifier: Can only be used with threads started with QThread
;;; WARNING: loading compiled file libfive/bind/guile/libfive/kernel.go failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode kind
guile: uncaught throw to misc-error: (#f ~A ~S (no code for module (libfive kernel)) #f)
QMutex: destroying locked mutex
repetitive calls crash , too because Studio saves the last loaded example
strace ./studio/Studio crashes quite unspectacular
futex(0x7faa2cff8c80, FUTEX_WAKE_PRIVATE, 1) = 1
sendmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\f\0\7\0\0\0\1\0\0\0\0\0\f\0\23\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_DONTWAIT|MSG_NOSIGNAL) = 24
futex(0x1ffee18, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\7\0\0\0\0\0$\0\1\0\0\0\16\0\0\0wl_compositor\0\0\0"..., iov_len=2572}, {iov_base="", iov_len=1524}], msg_iovlen=2, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1056
futex(0x1ffee74, FUTEX_WAKE_PRIVATE, 2147483647) = 1
futex(0x1ffee18, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
+++ exited with 1 +++
installing into /usr/local/bin did help.
is it neeeded to clear cached guile bytecode somewhere ?
from libfive.
(I edited your post to use code fences ``` for code blocks, because the formatting was messed up)
Can you get a backtrace of where the crash occurs? QMutex
is not used anywhere in the libfive
codebase, so I'm puzzled about the error QMutex: destroying locked mutex
In procedure load-thunk-from-memory: incompatible bytecode kind
is a very suspicious error messages; is it possible that it's compiled the bytecode with Guile 2 but is trying to use Guile 3 in the program (or vice versa)?
Bytecode is compiled in a separate CMake pass here; does running guile
and guild
from the command line use Guile 2 or 3?
from libfive.
Hi Matt,
I have seen you edited libfive/bind/guile/libfive/lib.scm for me.
when i start studio, i get:
[gigl@fedora build]$ ./studio/Studio
QSocketNotifier: Can only be used with threads started with QThread
;;; WARNING: loading compiled file libfive/bind/guile/libfive/kernel.go failed:
;;; In procedure load-thunk-from-memory: incompatible bytecode kind
guile: uncaught throw to misc-error: (#f ~A ~S (no code for module (libfive kernel)) #f)
Segmentation fault (core dumped)
And here is the backtrace
0x00007f57c8355b55 in dri2_create_screen () at /lib64/libEGL_mesa.so.0
#1 0x00007f57c835fdd7 in dri2_initialize_wayland () at /lib64/libEGL_mesa.so.0
#2 0x00007f57c8353868 in dri2_initialize () at /lib64/libEGL_mesa.so.0
#3 0x00007f57c834bdad in eglInitialize () at /lib64/libEGL_mesa.so.0
#4 0x00007f57c84408a7 in QtWaylandClient::QWaylandEglClientBufferIntegration::initialize(QtWaylandClient::QWaylandDisplay*) ()
at /usr/lib64/qt5/plugins/wayland-graphics-integration-client/libqt-plugin-wayland-egl.so
#5 0x00007f57df29799c in QtWaylandClient::QWaylandIntegration::initializeClientBufferIntegration() () at /lib64/libQt5WaylandClient.so.5
#6 0x00007f57df2a3c28 in QtWaylandClient::QWaylandDisplay::clientBufferIntegration() const () at /lib64/libQt5WaylandClient.so.5
#7 0x00007f57df29ed0a in QtWaylandClient::QWaylandIntegration::createPlatformWindow(QWindow*) const () at /lib64/libQt5WaylandClient.so.5
#8 0x00007f57e2974c90 in QWindowPrivate::create(bool, unsigned long long) () at /lib64/libQt5Gui.so.5
#9 0x00007f57e31e3b25 in QWidgetPrivate::create() () at /lib64/libQt5Widgets.so.5
#10 0x00007f57e31e417f in QWidget::create(unsigned long long, bool, bool) () at /lib64/libQt5Widgets.so.5
#11 0x00007f57e31f135e in QWidgetPrivate::setVisible(bool) () at /lib64/libQt5Widgets.so.5
#12 0x0000000000450721 in Studio::Window::Window(Studio::Arguments) (this=this@entry=0xed8410, args=...) at /home/gigl/git/libfive/studio/src/window.cpp:413
#13 0x0000000000426dff in Studio::App::App(int&, char**) (this=this@entry=0x7ffdb0ed57a0, argc=@0x7ffdb0ed579c: 1, argv=argv@entry=0x7ffdb0ed58e8)
at /home/gigl/git/libfive/studio/src/app.cpp:40
#14 0x000000000041b507 in main(int, char**) (argc=, argv=0x7ffdb0ed58e8) at /home/gigl/git/libfive/studio/src/main.cpp:50
Hope it helps
of course its not nice that i have to link guile3.0 to guile and guild3.0 to guild to make compile work.
guile could actualy catch wrong shared directories with that.
is it possible to use guild3.0 rather than guild when available ?
from libfive.
Your error seems like a general Qt + Wayland error, rather than something that's specific to libfive
. Can you try running other Qt + OpenGL apps under Wayland, e.g. something from this list? What window manager + GPU are you using?
from libfive.
i wasnt able to replicate this issue anymore. sorry for that
from libfive.
This issue can still be replicated under Ubuntu 20.04. Only Guile 3.0.1 is available in the repos, not 3.0.6 as mentioned in #505.
It is buildable under 22.04 LTS, however, which includes Guile 3.0.7.
Perhaps the build instructions need to be updated to indicated that is no longer buildable under 20.04 LTS, but 22.04 LTS instead? The instructions are otherwise pretty much perfectly fine.
from libfive.
Related Issues (20)
- Expose normals in libfive_mesh HOT 2
- Does Mesh::render consume the libfive_tree? HOT 3
- Unioning nothing at the top level causes things to mesh very slow HOT 6
- koffi and ffi-napi both segfault when meshing non-trivial models HOT 6
- Publish new release and set soversion for building shared libraries
- I've packaged this for OpenSuse
- Feature resolution is unexpectedly impacted by the size of the bounding box HOT 3
- Crash in DCTree<3u>::intersection
- QSocketNotifier error message
- Need precompiled Windows binaries of any kind HOT 4
- missing 'g++' package in Ubuntu instructions HOT 1
- Symbol visibility
- C5H12 is either moved or deleted
- cmake fails because python's distutil is obsolete as of 3.12 - possible workaround included
- Make fails on heightmap.cpp.o with "integer value -1 outside valid range" HOT 1
- stack overflow of interval evaluation HOT 1
- Interval evaluation bug HOT 1
- Compiling error: Could not find a package configuration file provided by "Qt5OpenGL" - Help?
- Illegal Instruction when compiling libfive with MXE and using in Windows HOT 2
- Dual contouring meshing algorithm crash
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libfive.