GithubHelp home page GithubHelp logo

libfive / libfive Goto Github PK

View Code? Open in Web Editor NEW
1.3K 52.0 152.0 7.2 MB

Infrastructure for solid modeling

Home Page: https://libfive.com

Scheme 3.58% CMake 1.05% C++ 89.98% C 0.73% Shell 0.29% GLSL 0.17% Io 0.66% Objective-C++ 0.07% Python 3.47%
cad design scheme 3dprinting guile

libfive's Introduction

libfive

Infrastructure for solid modeling.
Homepage | API Examples | Downloads

libfive is a framework for solid modeling using functional representations.

It includes several layers, ranging from infrastructure to GUI:

  • The libfive shared library contains functions to build, manipulate, and render f-reps. A great deal of work has gone into the meshing algorithm, which produces watertight, manifold, hierarchical, feature-preserving triangle meshes. The library is written in C++ and exposes a C API in libfive.h.
  • The libfive standard library is a library of common shapes, transforms, and CSG operations. It is implemented in C++ and exposes a C API in libfive/stdlib/stdlib.h
  • The standard library is parsed and used to generate bindings for both Guile Scheme and Python, for use in the REPL or as part of larger applications.
  • Studio is a GUI application in the style of OpenSCAD. It uses the Python and Guile bindings and allows for live-coding of solid models. The interface also includes direct modeling, where the user can push and pull on the model's surface to change variables in the script.

Other projects using libfive

Language bindings

Viewers

Research

Community

For libfive-specific discussions, consider opening a topic in the Github Discussions tab.

There's also a libfive subforum in the SDF User Group Discourse, which is a good place for general discussion of modeling with signed distance fields.

License

(c) 2015-2021 Matthew Keeter

Different layers of this project are released under different licenses:

Contact the author to discuss custom development, integration, or commercial support.

Compiling from source

libfive and Studio are compatible with macOS, Linux, and Windows.

Dependencies

libfive

Guile bindings (optional, macOS and Linux only)

Python bindings (optional)

Studio (optional, requires Guile or Python bindings)

When cmake is first run, it will check for all dependencies and print details of what will be build, e.g.

Checking dependencies:
  libfive:              ✓
  Guile bindings:       ✓
  Python bindings:      ✓
  Studio:               ✓   (Python + Guile)

Mac

With homebrew installed, run

brew install cmake pkg-config eigen libpng boost guile python3 qt

Omit guile, python3, or qt to avoid building bindings and/or the UI.

Then, from the libfive folder, run something like:

mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.12.0  ..
make

(adjust based on your Qt installation, and consider using ninja for faster builds.

Ubuntu

libfive should build out of the box on the latest Ubuntu LTS (currently 20.04). If you find that's not the case, please open an issue!

Start by installing dependencies through the package manager:

sudo apt-get install g++ cmake pkg-config libeigen3-dev libpng-dev libboost-all-dev guile-3.0-dev qtbase5-dev python3

Omit guile-3.0-dev and/or qtbase5-dev if you do not want Guile bindings and/or Studio to be built too.

Building is similar as on Mac: clone the repository, then run something like

mkdir build
cd build
cmake ..
make -j4

Once building is complete, run Studio with ./studio/Studio.

Running sudo make install will install components to system-wide destinations, e.g. /usr/local/bin/Studio for the main executable. This will let you invoke Studio from anywhere in the system, rather than just the build directory. If you are using this workflow, sudo make install must be run after changes to the repository to update the system-wide installation of the executable and libraries. Studio.desktop may be used to put a shortcut on your desktop.

If you don't want the Python bindings installed under /usr/lib, you can specify the install directory using the cmake variable PYTHON_SITE_PACKAGES_DIR, e.g.

cmake -DPYTHON_SITE_PACKAGES_DIR=/usr/local/lib/python3.9/dist-packages .

Ubuntu releases before 20.04 are not officially supported; if you insist, there are hints here and a discussion of Python linking issues here.

Windows (VS2022)

Install Git, choosing settings so that it can be invoked from a Windows Command Prompt (the defaults should be fine).

Install VS2022 (Community Edition), configured for "Desktop development with C++". You only need MSVC, Windows 10 SDK, and C++ CMake tools for Windows, so feel free to uncheck other optional packages in the right sidebar, then run the installation!

Next, install dependencies using vcpkg.

(This step touches many files, so you may want to disable the Antimalware Service Executable, which will otherwise scan every single file and slow things down dramatically: in "Windows Security → Virus & threat protection settings", uncheck "Real-time protection".)

In a Windows Command Prompt:

git.exe clone https://github.com/libfive/libfive
cd libfive
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg.exe install --triplet x64-windows eigen3 boost-container boost-bimap boost-interval boost-lockfree boost-functional boost-algorithm boost-math libpng qt5-base python3

Go get some coffee or something - this will take a while.

Once this is done installing, you're ready to actually build libfive and Studio!

mkdir build
cd build
& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -DCMAKE_TOOLCHAIN_FILE="..\vcpkg\scripts\buildsystems\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET="x64-windows" -G"Visual Studio 17 2022" ..
& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build . --config Release --target Studio --
.\studio\Release\Studio.exe

At this point, you can also double-click on Studio.exe to launch it, and create a shortcut to put it on your desktop.

(don't move it out of the build directory, or the precarious house of cards that finds Python will come tumbling down)

When changes are made, you should only need to re-run the build step, i.e.

& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build . --config Release --target Studio --

libfive's People

Contributors

borodust avatar bradrothenberg avatar bramp avatar connertenn avatar doug-moen avatar erikstrand avatar follower avatar fponticelli avatar fros1y avatar hodapp87 avatar igfraga avatar kreyren avatar kyuvi avatar mattgleeson avatar mayjs avatar mkeeter avatar morganjamessmith avatar nickodell avatar niffler avatar occivink avatar omgitsraven avatar paines avatar photocyte avatar rcmz avatar ronasuti avatar sgssgene avatar speps avatar tachiniererin avatar virtualritz avatar yitzi2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libfive's Issues

regression: ‘QMutex’ does not name a type

Revision 5f2aadf does not compile for me. It fails with this error:

[ 74%] Building CXX object gui/CMakeFiles/Studio.dir/Studio_automoc.cpp.o
In file included from /home/nick/ao/gui/src/interpreter.cpp:21:0:
/home/nick/ao/gui/include/gui/interpreter.hpp:90:5: error: ‘QMutex’ does not name a type
     QMutex mutex;
     ^~~~~~
In file included from /home/nick/ao/gui/src/window.cpp:30:0:
/home/nick/ao/gui/include/gui/interpreter.hpp:90:5: error: ‘QMutex’ does not name a type
     QMutex mutex;
     ^~~~~~
In file included from /home/nick/ao/build/gui/Studio_automoc.dir/moc_interpreter_JL3ZW3PCB4US6T.cpp:9:0,
                 from /home/nick/ao/build/gui/Studio_automoc.cpp:7:
/home/nick/ao/build/gui/Studio_automoc.dir/../../../gui/include/gui/interpreter.hpp:90:5: error: ‘QMutex’ does not name a type
     QMutex mutex;
     ^~~~~~
/home/nick/ao/gui/src/interpreter.cpp: In member function ‘void _Interpreter::eval()’:
/home/nick/ao/gui/src/interpreter.cpp:107:28: error: ‘mutex’ was not declared in this scope
         QMutexLocker lock(&mutex);
                            ^~~~~
/home/nick/ao/gui/src/interpreter.cpp: In member function ‘void Interpreter::onScriptChanged(QString)’:
/home/nick/ao/gui/src/interpreter.cpp:270:40: error: ‘class _Interpreter’ has no member named ‘mutex’
         QMutexLocker lock(&interpreter.mutex);
                                        ^~~~~
gui/CMakeFiles/Studio.dir/build.make:542: recipe for target 'gui/CMakeFiles/Studio.dir/src/window.cpp.o' failed

However, 7dac3c7 compiles and runs successfully.

Build failure on Debian Jessie

Here's what I get trying to follow the instructions on my machine. (Note that I installed libpng12-dev instead of libpng16-dev, which is not available on Debian Stable.)

~/src/ao $ mkdir build
~/src/ao $ cd build
~/src/ao/build $ cmake -G Ninja ..
-- The C compiler identification is GNU 4.9.2
-- The CXX compiler identification is GNU 4.9.2
-- Check for working C compiler using: Ninja
-- Check for working C compiler using: Ninja -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Ninja
-- Check for working CXX compiler using: Ninja -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.2.50") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- checking for one of the modules 'glfw3'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/phil/src/ao/build
~/src/ao/build $ ninja
[1/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o
[2/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/tree/tree.cpp.o
[3/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/tree/opcode.cpp.o
[4/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o
../kernel/src/tree/tree.cpp:77:36: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(square,    Opcode::SQUARE);
                                    ^
../kernel/src/tree/tree.cpp:78:34: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(sqrt,      Opcode::SQRT);
                                  ^
../kernel/src/tree/tree.cpp:80:33: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(abs,       Opcode::ABS);
                                 ^
../kernel/src/tree/tree.cpp:81:33: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(sin,       Opcode::SIN);
                                 ^
../kernel/src/tree/tree.cpp:82:33: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(cos,       Opcode::COS);
                                 ^
../kernel/src/tree/tree.cpp:83:33: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(tan,       Opcode::TAN);
                                 ^
../kernel/src/tree/tree.cpp:84:34: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(asin,      Opcode::ASIN);
                                  ^
../kernel/src/tree/tree.cpp:85:34: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(acos,      Opcode::ACOS);
                                  ^
../kernel/src/tree/tree.cpp:86:34: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(atan,      Opcode::ATAN);
                                  ^
../kernel/src/tree/tree.cpp:87:33: warning: extra ‘;’ [-Wpedantic]
 OP_UNARY(exp,       Opcode::EXP);
                                 ^
../kernel/src/tree/tree.cpp:92:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(operator+,    Opcode::ADD);
                                     ^
../kernel/src/tree/tree.cpp:93:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(operator*,    Opcode::MUL);
                                     ^
../kernel/src/tree/tree.cpp:94:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(min,          Opcode::MIN);
                                     ^
../kernel/src/tree/tree.cpp:95:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(max,          Opcode::MAX);
                                     ^
../kernel/src/tree/tree.cpp:96:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(operator-,    Opcode::SUB);
                                     ^
../kernel/src/tree/tree.cpp:97:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(operator/,    Opcode::DIV);
                                     ^
../kernel/src/tree/tree.cpp:98:39: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(atan2,        Opcode::ATAN2);
                                       ^
../kernel/src/tree/tree.cpp:99:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(pow,          Opcode::POW);
                                     ^
../kernel/src/tree/tree.cpp:100:42: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(nth_root,     Opcode::NTH_ROOT);
                                          ^
../kernel/src/tree/tree.cpp:101:37: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(mod,          Opcode::MOD);
                                     ^
../kernel/src/tree/tree.cpp:102:41: warning: extra ‘;’ [-Wpedantic]
 OP_BINARY(nanfill,      Opcode::NANFILL);
                                         ^
[5/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/format/mesh.cpp.o
[6/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/format/image.cpp.o
[7/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/dc.cpp.o
[8/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/heightmap.cpp.o
[9/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/quadtree.cpp.o
[10/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/subregion.cpp.o
[11/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/region.cpp.o
[12/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/dc2d.cpp.o
[13/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/octree.cpp.o
[14/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o
[15/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/eval/result.cpp.o
[16/69] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/solve/solver.cpp.o
FAILED: /usr/bin/c++    -Wall -Wextra -Wno-comment -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE -isystem ../vendor -I../kernel/include -MMD -MT kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o -MF kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o.d -o kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o -c ../kernel/src/eval/evaluator.cpp
In file included from /usr/include/boost/numeric/interval/hw_rounding.hpp:15:0,
                 from /usr/include/boost/numeric/interval.hpp:18,
                 from ../kernel/include/ao/kernel/eval/interval.hpp:21,
                 from ../kernel/include/ao/kernel/eval/result.hpp:24,
                 from ../kernel/include/ao/kernel/eval/evaluator.hpp:27,
                 from ../kernel/src/eval/evaluator.cpp:27:
/usr/include/boost/numeric/interval/rounded_arith.hpp: In instantiation of ‘T boost::numeric::interval_lib::rounded_arith_std<T, Rounding>::int_down(const T&) [with T = float; Rounding = boost::numeric::interval_lib::rounding_control<float>]’:
/usr/include/boost/numeric/interval/arith2.hpp:40:49:   required from ‘boost::numeric::interval<T, Policies> boost::numeric::fmod(const boost::numeric::interval<T, Policies>&, const boost::numeric::interval<T, Policies>&) [with T = float; Policies = boost::numeric::interval_lib::policies<boost::numeric::interval_lib::detail::save_state_unprotected<boost::numeric::interval_lib::rounded_transc_std<float> >, boost::numeric::interval_lib::checking_base<float> >]’
/usr/include/boost/numeric/interval/transc.hpp:62:32:   required from ‘boost::numeric::interval<T, Policies> boost::numeric::cos(const boost::numeric::interval<T, Policies>&) [with T = float; Policies = boost::numeric::interval_lib::policies<boost::numeric::interval_lib::save_state<boost::numeric::interval_lib::rounded_transc_std<float> >, boost::numeric::interval_lib::checking_base<float> >]’
../kernel/src/eval/evaluator.cpp:1164:41:   required from here
/usr/include/boost/numeric/interval/rounded_arith.hpp:71:61: error: ‘to_int’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   T int_down(const T& x) { this->downward(); return to_int(x); }
                                                             ^
/usr/include/boost/numeric/interval/rounded_arith.hpp:71:61: note: declarations in dependent base ‘boost::numeric::interval_lib::detail::c99_rounding_control’ are not found by unqualified lookup
/usr/include/boost/numeric/interval/rounded_arith.hpp:71:61: note: use ‘this->to_int’ instead
ninja: build stopped: subcommand failed.

Longer example/demo?

I keep stumbling across screenshots on your twitter that mention enormous, important features that I had no idea that Ao included :) Particularly things like define-shape, or prefacing a value with # so you can change it with the mouse...

There's also plenty of things that I see listed in the shape reference, that I have no idea how to actually use in practice, like what I'm supposed to be using for the "shape" argument in extrude-z... (That part might just be because I'm a beginner at Scheme?)

I know development is still early, but a simple example scene (or a collection of them?) that just shows the most important of these actually put into practice somehow (even just on cubes or whatever) would be extremely helpful for figuring out what can be done with this program!

Problem building

I'm getting this error while running cmake -DGUILE_INCLUDE_DIR=/usr/include/guile/2.2/ ..:

CMake Error at CMakeLists.txt:52 (add_executable):
  Cannot find source file:

    tst.cpp

tst.cpp is mentioned by CMakeLists.txt, so I think this file is supposed to be here?

Crash with while trying to watch a file

Under Ubuntu with Guile 2.1.3 and the gcc-5 patch (cf. PR #5) I can't watch for files inside ao-guile.

Here is my run

 amirouche@ubuaout  ~/src/guile/ao/bin   master  GUILE_LOAD_PATH=`pwd` gdb guile 
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from guile...done.
(gdb) r
Starting program: /usr/bin/guile 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff5e87700 (LWP 3622)]
[New Thread 0x7ffff5686700 (LWP 3623)]
[New Thread 0x7ffff4e85700 (LWP 3624)]
[New Thread 0x7ffff4684700 (LWP 3625)]
[New Thread 0x7ffff3e83700 (LWP 3626)]
[New Thread 0x7ffff3682700 (LWP 3627)]
[New Thread 0x7ffff2e81700 (LWP 3628)]
[New Thread 0x7ffff247d700 (LWP 3629)]
[New Thread 0x7ffff0f5c700 (LWP 3630)]
GNU Guile 2.1.3
Copyright (C) 1995-2016 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (load "ao-guile")
[New Thread 0x7fffec9d4700 (LWP 3631)]

         .8.
        .888.
       :88888.          ,o8888o.
      . `88888.      . 8888   `88.
     .8. `88888.    ,8 8888     `8b
    .8`8. `88888.   88 8888      `8b
   .8' `8. `88888.  88 8888      ,8P
  .8'   `8. `88888. `8 8888     ,8P
 .888888888. `88888. ` 8888   ,88'
.8'       `8. `88888.   `88888P'
       (c) 2015 Matt Keeter

REPL is provided by Ao [1]> (ao-watch "../examples/menger.scm")
Watching /home/amirouche/src/guile/ao/bin/../examples/menger.scm
[New Thread 0x7fffe53b6700 (LWP 3634)]

Thread 11 "guile" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffec9d4700 (LWP 3631)]
0x00007ffff7afac60 in scm_make_dynamic_state (parent=parent@entry=0x0) at fluids.c:430
430   SCM_ASSERT (IS_DYNAMIC_STATE (parent), parent, SCM_ARG1, FUNC_NAME);
(gdb) bt

Here is the full backtrace

#0  0x00007ffff7afac60 in scm_make_dynamic_state (parent=parent@entry=0x0) at fluids.c:430
#1  0x00007fffecab0d38 in guilify_self_2 (parent=0x0) at threads.c:617
#2  0x00007fffecab13ec in scm_i_init_thread_for_guile (base=0x7fffec9d34c0, parent=0x0) at threads.c:855
#3  0x00007fffecab1810 in scm_init_guile () at threads.c:867
#4  0x00007fffefe8800c in window_watch_callback_ (s="/home/amirouche/src/guile/ao/bin/../examples/menger.scm")
    at ../bind/api.cpp:273
#5  0x00007fffefe880fb in std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >), void (*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) (
    __functor=..., __args#0=<optimized out>) at /usr/include/c++/5/functional:1871
#6  0x00007fffefec8a45 in std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const (
    __args#0="", this=0x7fffec9d3620) at /usr/include/c++/5/functional:2267
#7  ScriptWatcher::ScriptWatcher(Window*, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) (this=0x7fffe8008f40, window=<optimized out>, 
    callback=..., directory="", filename=...) at ../ui/src/watcher.cpp:40
#8  0x00007fffefe86e4e in window_watch_file (dir=<optimized out>, file=<optimized out>) at ../bind/api.cpp:288
#9  0x00007ffff704fe40 in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#10 0x00007ffff704f8ab in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6
#11 0x00007ffff7afd2e7 in scm_i_foreign_call (foreign=<optimized out>, argv=0x7fffefe68ce8) at foreign.c:1030
#12 0x00007ffff7b65db8 in vm_debug_engine (thread=0x0, vp=0x980c80, registers=0xba2e90, resume=-325237128)
    at vm-engine.c:847
#13 0x00007ffff7b70f88 in scm_call_n (proc=proc@entry=0x7ffff01395c0, argv=argv@entry=0x0, nargs=nargs@entry=0)
    at vm.c:1238
#14 0x00007ffff7af0859 in scm_call_0 (proc=proc@entry=0x7ffff01395c0) at eval.c:473
#15 0x00007ffff7b5e300 in really_launch (d=0x7fffffffdba0) at threads.c:885
#16 0x00007ffff7aeb83a in c_body (d=0x7fffec9d3e60) at continuations.c:429
#17 0x00007ffff7b65ce9 in vm_debug_engine (thread=0x0, vp=0x980c80, registers=0xba2e90, resume=-325237128)
    at vm-engine.c:815
#18 0x00007ffff7b70f88 in scm_call_n (proc=proc@entry=0x8063c0, argv=argv@entry=0x0, nargs=nargs@entry=0)
    at vm.c:1238
#19 0x00007ffff7af0859 in scm_call_0 (proc=proc@entry=0x8063c0) at eval.c:473
#20 0x00007ffff7b5fb8a in catch (tag=tag@entry=0x404, thunk=0x8063c0, handler=0x8063a0, pre_unwind_handler=0x829fe0)
    at throw.c:135
#21 0x00007ffff7b5ffe5 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, 
    handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:249
#22 0x00007ffff7b6009f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7ffff7aeb830 <c_body>, 
    body_data=body_data@entry=0x7fffec9d3e60, handler=handler@entry=0x7ffff7aebb00 <c_handler>, 
    handler_data=handler_data@entry=0x7fffec9d3e60, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7ffff7aeb960 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x6ecbe0) at throw.c:370
#23 0x00007ffff7aebe60 in scm_i_with_continuation_barrier (body=body@entry=0x7ffff7aeb830 <c_body>, 
    body_data=body_data@entry=0x7fffec9d3e60, handler=handler@entry=0x7ffff7aebb00 <c_handler>, 
    handler_data=handler_data@entry=0x7fffec9d3e60, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7ffff7aeb960 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x6ecbe0) at continuations.c:367
#24 0x00007ffff7aebf45 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at continuations.c:463
#25 0x00007ffff7b5da3c in with_guile_and_parent (base=0x7fffec9d3ec0, data=0x7fffec9d3ef0) at threads.c:786
#26 0x00007ffff726d952 in GC_call_with_stack_base () from /usr/lib/x86_64-linux-gnu/libgc.so.1
#27 0x00007ffff7b5d4ac in scm_i_with_guile_and_parent (parent=<optimized out>, data=0x7fffffffdba0, 
    func=0x7ffff7b5e280 <really_launch>) at threads.c:829
#28 launch_thread (d=0x7fffffffdba0) at threads.c:897
#29 0x00007ffff78936fa in start_thread (arg=0x7fffec9d4700) at pthread_create.c:333
#30 0x00007ffff75c9b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

If I paste the content of charm.scm or menger.scm inside ao-guile, it works.

Mesh crash

(lambda-shape (x y z)
  (+ (* x x) (* y y) (* (log (+ z 3.2)) (log (+ z 3.2))) 0.02))

(from @fponticelli in PR #52)

Segmentation Fault on Ubuntu 16.04

Brief Description

Using "master" branch with latest commit aa7c5bf, evaluating "ao-show" on a model causes a segmentation fault (including all the models in the "./examples" directory). Previous builds from the master branch (circa 10/25/2016) on this system worked correctly.

System Information

OS: ubuntu 16.04 LTS
Processor: AMD A8-6410 APU with AMD Radeon R5 Graphics × 4
Graphics: Gallium 0.4 on AMD MULLINS (DRM 2.43.0, LLVM 3.8.0)
OS type: 64-bit
uname -a: Linux echo-one 4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
gcc: version 5.4.0

Minimal example to reproduce bug [1]

  ;; start ao-guile and evaluate:
  (define (sphere r)
      (lambda ( x y z )
          (- (sqrt (+ (* x x) (* y y) (* z z))) r)))
  (define s (sphere 2))
  (ao-show s)

Abbreviated gdb Output [2]

Thread 9 "guile" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdffff700 (LWP 2698)]
0x00007ffff3276791 in eval_clause_derivs (count=32, odz=0x20e70b0, ody=0x20e40a0, odx=0x2124b90, ov=0x2121b80, 
    bdz=0x20e74b0, bdy=0x20e44a0, bdx=0x2124f90, bv=0x2121f80, adz=0x20e74b0, ady=0x20e44a0, adx=0x2124f90, av=0x2121f80, 
    op=<optimized out>) at ../kernel/src/eval/evaluator.cpp:968
968	                                       _mm256_mul_ps(adx[i], bv[i]));

Notes:

[1] Different models can cause segmentation fault in different lines of "evaluator.cpp".

[2] gdb commands which might be needed to work-around Guile GC signals:

    handle SIGPWR nostop noprint
    handle SIGXCPU nostop noprint

macOS: rotating shape in graphics window

In Antimony, on macOS, I can rotate the shape in the graphics window by holding down the CTRL key. However, this doesn't work in AO. Consider this a feature request.

macOS: rotating shape in graphics window

In Antimony, on macOS, I can rotate the shape in the graphics window by holding down the CTRL key. However, this doesn't work in AO. Consider this a feature request.

CSG Crashes on Similar Overlapping Shapes

CSG operations (tried: union / difference / intersection) crash when shapes are similar and overlapping with curves.

I've had similar crashes with OpenSCAD/CGAL for years, so sorry if this is a tricky one 🙈

I was working on the same file yesterday and I don't think it was crashing (just the difference error but intersection / union was fine). So maybe the floating point stuff you added has caused a regression?

[master on OS X]

Code that crashes:

#! RENDER -100 -100 -100 / 100 100 100 / 10 / 2 !#

(define z 2.5)
(define r 0.4)

(define a-x 16.0)
(define a-y 11.4)

(define b-x (sqrt (- (* a-x a-x) (* z z))))

(define tilt (asin (/ z a-x)))



; non-rounded works fine (uncomment):
;(define a (rectangle #[0 0] #[a-x a-y]))
;(define b (rectangle #[0 0] #[b-x a-y]))
;(intersection
;  (extrude-z b 0 z)
;  (rotate-y (extrude-z a 0 z) tilt)
;)


; rounded crashes
(define a (rounded-rectangle #[0 0] #[a-x a-y] r))
(define b (rounded-rectangle #[0 0] #[b-x a-y] r))

(intersection
  (extrude-z b 0 z)
  (rotate-y (extrude-z a 0 z) tilt)
)
Crash log
Process:               Studio [8177]
Path:                  /Users/USER/Documents/*/Studio.app/Contents/MacOS/Studio
Identifier:            com.impraxical.studio
Version:               0.0.0
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Studio [8177]
User ID:               501

Date/Time: 2017-09-15 22:26:31.504 +0100
OS Version: Mac OS X 10.12.6 (16G29)
Report Version: 12
Anonymous UUID: 48194326-790D-81B6-B9DB-2FA65DA67DAD

Sleep/Wake UUID: FC42AF8C-1DD3-4531-A70D-70557DE3A0BF

Time Awake Since Boot: 4500 seconds
Time Since Wake: 1000 seconds

System Integrity Protection: enabled

Crashed Thread: 16

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Application Specific Information:
Assertion failed: (itr == choices.end()), function push, file /Users/sfcgeorge/Documents/Projects/3D/ao/ao/src/eval/evaluator.cpp, line 348.

Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff9e0f234a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff9e0f1797 mach_msg + 55
2 com.apple.framework.IOKit 0x00007fff8a81cc91 io_connect_method + 375
3 com.apple.framework.IOKit 0x00007fff8a7a21f2 IOConnectCallMethod + 336
4 com.apple.framework.IOKit 0x00007fff8a7a23b9 IOConnectCallStructMethod + 56
5 com.apple.IOAccelerator 0x00007fff97594c10 IOAccelContextSubmitDataBuffersExt2 + 270
6 libGPUSupportMercury.dylib 0x00007fff96513390 gpusSubmitDataBuffers + 156
7 com.apple.GeForceGLDriver 0x00007fff840ca867 0x7fff83dbf000 + 3192935
8 com.apple.GeForceGLDriver 0x00007fff840cabfa gldPresentFramebufferData + 407
9 GLEngine 0x000000010abab4f1 glSwap_Exec + 97
10 com.apple.opengl 0x00007fff8d80e126 CGLFlushDrawable + 66
11 com.apple.AppKit 0x00007fff8662bd7b -[NSOpenGLContext flushBuffer] + 27
12 org.qt-project.QtGui 0x0000000104ecdb37 QOpenGLContext::swapBuffers(QSurface*) + 487
13 org.qt-project.QtGui 0x000000010510f884 QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, QOpenGLContext*, bool) + 2612
14 org.qt-project.QtWidgets 0x00000001048cf472 0x1048b5000 + 107634
15 org.qt-project.QtWidgets 0x00000001048cf6e5 0x1048b5000 + 108261
16 org.qt-project.QtWidgets 0x00000001048d431a 0x1048b5000 + 127770
17 org.qt-project.QtWidgets 0x0000000104902248 QWidget::event(QEvent*) + 1464
18 org.qt-project.QtWidgets 0x00000001049f93a4 QMainWindow::event(QEvent*) + 1108
19 org.qt-project.QtWidgets 0x00000001048c6e92 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 306
20 org.qt-project.QtWidgets 0x00000001048c81af QApplication::notify(QObject*, QEvent*) + 383
21 org.qt-project.QtCore 0x000000010553ff3f QCoreApplication::notifyInternal2(QObject*, QEvent*) + 159
22 org.qt-project.QtCore 0x00000001055410d2 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 850
23 libqcocoa.dylib 0x000000010757920e 0x107552000 + 160270
24 libqcocoa.dylib 0x0000000107579ac1 0x107552000 + 162497
25 com.apple.CoreFoundation 0x00007fff88863321 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
26 com.apple.CoreFoundation 0x00007fff88844197 __CFRunLoopDoSources0 + 423
27 com.apple.CoreFoundation 0x00007fff88843716 __CFRunLoopRun + 934
28 com.apple.CoreFoundation 0x00007fff88843114 CFRunLoopRunSpecific + 420
29 com.apple.HIToolbox 0x00007fff87da3ebc RunCurrentEventLoopInMode + 240
30 com.apple.HIToolbox 0x00007fff87da3cf1 ReceiveNextEventCommon + 432
31 com.apple.HIToolbox 0x00007fff87da3b26 _BlockUntilNextEventMatchingListInModeWithFilter + 71
32 com.apple.AppKit 0x00007fff8633ca54 _DPSNextEvent + 1120
33 com.apple.AppKit 0x00007fff86ab87ee -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796
34 com.apple.AppKit 0x00007fff863313db -[NSApplication run] + 926
35 libqcocoa.dylib 0x000000010757886f 0x107552000 + 157807
36 org.qt-project.QtCore 0x000000010553bc92 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 418
37 org.qt-project.QtCore 0x0000000105540632 QCoreApplication::exec() + 402
38 com.impraxical.studio 0x00000001045ec516 main + 182 (app.hpp:6)
39 libdyld.dylib 0x00007fff9dfcb235 start + 1

Thread 1:: QThread
0 libsystem_kernel.dylib 0x00007fff9e0fb19e poll + 10
1 org.qt-project.QtCore 0x00000001055930b0 qt_safe_poll(pollfd*, unsigned int, timespec const*) + 544
2 org.qt-project.QtCore 0x0000000105594729 QEventDispatcherUNIX::processEvents(QFlagsQEventLoop::ProcessEventsFlag) + 857
3 org.qt-project.QtCore 0x000000010553bc92 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) + 418
4 org.qt-project.QtCore 0x000000010537d3c1 QThread::exec() + 113
5 org.qt-project.QtCore 0x00000001053811af 0x105356000 + 176559
6 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
7 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
8 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 2:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 3:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 4:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 5:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 6:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 7:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 8:
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libgc.1.dylib 0x00000001058e4436 GC_wait_marker + 23
3 libgc.1.dylib 0x00000001058dc3f0 GC_help_marker + 58
4 libgc.1.dylib 0x00000001058e2eda GC_mark_thread + 137
5 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
6 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
7 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 9:
0 libsystem_kernel.dylib 0x00007fff9e0fb246 read + 10
1 libguile-2.2.1.dylib 0x00000001047bb045 read_finalization_pipe_data + 28
2 libgc.1.dylib 0x00000001058e3ad2 GC_do_blocking_inner + 128
3 libgc.1.dylib 0x00000001058d99b1 GC_with_callee_saves_pushed + 117
4 libgc.1.dylib 0x00000001058deeac GC_do_blocking + 32
5 libguile-2.2.1.dylib 0x000000010481564d scm_without_guile + 40
6 libguile-2.2.1.dylib 0x00000001047baff7 finalization_thread_proc + 48
7 libguile-2.2.1.dylib 0x00000001047acbf6 c_body + 15
8 libguile-2.2.1.dylib 0x000000010481aebf vm_regular_engine + 1217
9 libguile-2.2.1.dylib 0x0000000104819c27 scm_call_n + 380
10 libguile-2.2.1.dylib 0x000000010481752d catch + 490
11 libguile-2.2.1.dylib 0x00000001047acb85 scm_i_with_continuation_barrier + 137
12 libguile-2.2.1.dylib 0x00000001047acbdc scm_c_with_continuation_barrier + 60
13 libguile-2.2.1.dylib 0x00000001048170ab with_guile + 63
14 libgc.1.dylib 0x00000001058dee75 GC_call_with_stack_base + 27
15 libguile-2.2.1.dylib 0x000000010481561f scm_with_guile + 45
16 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
17 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
18 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 10:: com.apple.NSEventThread
0 libsystem_kernel.dylib 0x00007fff9e0f234a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff9e0f1797 mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff88844434 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff888438c1 __CFRunLoopRun + 1361
4 com.apple.CoreFoundation 0x00007fff88843114 CFRunLoopRunSpecific + 420
5 com.apple.AppKit 0x00007fff86489f02 _NSEventThread + 205
6 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
7 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
8 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 11:
0 libsystem_kernel.dylib 0x00007fff9e0fb246 read + 10
1 libguile-2.2.1.dylib 0x00000001047f9a8a read_signal_pipe_data + 28
2 libgc.1.dylib 0x00000001058e3ad2 GC_do_blocking_inner + 128
3 libgc.1.dylib 0x00000001058d99b1 GC_with_callee_saves_pushed + 117
4 libgc.1.dylib 0x00000001058deeac GC_do_blocking + 32
5 libguile-2.2.1.dylib 0x000000010481564d scm_without_guile + 40
6 libguile-2.2.1.dylib 0x00000001047f9a15 signal_delivery_thread + 104
7 libguile-2.2.1.dylib 0x000000010481aebf vm_regular_engine + 1217
8 libguile-2.2.1.dylib 0x0000000104819c27 scm_call_n + 380
9 libguile-2.2.1.dylib 0x00000001047a448c scm_call_with_unblocked_asyncs + 53
10 libguile-2.2.1.dylib 0x000000010481aebf vm_regular_engine + 1217
11 libguile-2.2.1.dylib 0x0000000104819c27 scm_call_n + 380
12 libguile-2.2.1.dylib 0x00000001048171a1 really_launch + 106
13 libguile-2.2.1.dylib 0x00000001047acbf6 c_body + 15
14 libguile-2.2.1.dylib 0x000000010481aebf vm_regular_engine + 1217
15 libguile-2.2.1.dylib 0x0000000104819c27 scm_call_n + 380
16 libguile-2.2.1.dylib 0x000000010481752d catch + 490
17 libguile-2.2.1.dylib 0x00000001047acb85 scm_i_with_continuation_barrier + 137
18 libguile-2.2.1.dylib 0x00000001047acbdc scm_c_with_continuation_barrier + 60
19 libguile-2.2.1.dylib 0x00000001048170ab with_guile + 63
20 libgc.1.dylib 0x00000001058dee75 GC_call_with_stack_base + 27
21 libguile-2.2.1.dylib 0x00000001048157b0 launch_thread + 63
22 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
23 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
24 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 12:
0 libsystem_kernel.dylib 0x00007fff9e0fa44e __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff9e1e448e _pthread_wqthread + 1023
2 libsystem_pthread.dylib 0x00007fff9e1e407d start_wqthread + 13

Thread 13:
0 libsystem_kernel.dylib 0x00007fff9e0fa44e __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff9e1e4621 _pthread_wqthread + 1426
2 libsystem_pthread.dylib 0x00007fff9e1e407d start_wqthread + 13

Thread 14:

Thread 15:: Thread (pooled)
0 libsystem_kernel.dylib 0x00007fff9e0f9bf2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff9e1e57fa _pthread_cond_wait + 712
2 libc++.1.dylib 0x00007fff9cb624cd std::__1::condition_variable::wait(std::__1::unique_lockstd::__1::mutex&) + 47
3 libc++.1.dylib 0x00007fff9cb62e08 std::__1::__assoc_sub_state::__sub_wait(std::__1::unique_lockstd::__1::mutex&) + 46
4 libao-kernel.dylib 0x000000010470464b std::__1::__assoc_state<Kernel::XTree<3u>>::move() + 43 (exception:131)
5 libao-kernel.dylib 0x00000001046eba5f Kernel::XTree<3u>::XTree(Kernel::Evaluator
, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1295 (future:1175)
6 libao-kernel.dylib 0x00000001046eaff8 Kernel::XTree<3u>::build(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 168 (atomic:848)
7 libao-kernel.dylib 0x00000001047161ae Kernel::Mesh::render(Kernel::Evaluator*, Kernel::Region<3u> const&, double, double, std::__1::atomic&) + 78 (mesh.cpp:104)
8 com.impraxical.studio 0x00000001045f753a Shape::renderMesh(QPair<Settings, int>) + 154 (memory:2726)
9 com.impraxical.studio 0x00000001045f9b1a QtConcurrent::StoredMemberFunctionPointerCall1<Kernel::Mesh*, Shape, QPair<Settings, int>, QPair<Settings, int> >::runFunctor() + 74 (qtconcurrentstoredfunctioncall.h:551)
10 com.impraxical.studio 0x00000001045f9a33 QtConcurrent::RunFunctionTaskKernel::Mesh*::run() + 51 (qtconcurrentrunbase.h:117)
11 org.qt-project.QtCore 0x000000010537df96 0x105356000 + 163734
12 org.qt-project.QtCore 0x00000001053811af 0x105356000 + 176559
13 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
14 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
15 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 16 Crashed:
0 libsystem_kernel.dylib 0x00007fff9e0f9d42 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff9e1e7457 pthread_kill + 90
2 libsystem_c.dylib 0x00007fff9e05f420 abort + 129
3 libsystem_c.dylib 0x00007fff9e026893 __assert_rtn + 320
4 libao-kernel.dylib 0x00000001046c9343 Kernel::Evaluator::push(Kernel::Feature const&) + 931 (evaluator.cpp:348)
5 libao-kernel.dylib 0x00000001046d1972 Kernel::Evaluator::featuresAt(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 626 (evaluator.cpp:492)
6 libao-kernel.dylib 0x00000001046c9750 Kernel::Evaluator::isInside(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 304 (evaluator.cpp:445)
7 libao-kernel.dylib 0x00000001046eca7e Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 5422 (xtree.cpp:393)
8 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
9 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
10 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
11 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
12 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
13 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
14 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
15 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
16 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
17 libao-kernel.dylib 0x00000001047044bc std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()>::__execute<>(Kernel::XTree<3u>, std::__1::__tuple_indices<>) + 140 (future:2348)
18 libao-kernel.dylib 0x00000001047042ea std::__1::__async_assoc_state<Kernel::XTree<3u>
, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::__execute() + 26 (future:976)
19 libao-kernel.dylib 0x0000000104704561 std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::)(), std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >> >(void, void*) + 113 (memory:2537)
20 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
21 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
22 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 17:
0 libsystem_malloc.dylib 0x00007fff9e15cbbd default_zone_free_definite_size + 4
1 libao-kernel.dylib 0x00000001046d21c9 Kernel::Evaluator::featuresAt(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 2761 (list:670)
2 libao-kernel.dylib 0x00000001046c9750 Kernel::Evaluator::isInside(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 304 (evaluator.cpp:445)
3 libao-kernel.dylib 0x00000001046eca7e Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 5422 (xtree.cpp:393)
4 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
5 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
6 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
7 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
8 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
9 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
10 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
11 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
12 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
13 libao-kernel.dylib 0x00000001047044bc std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()>::__execute<>(Kernel::XTree<3u>, std::__1::__tuple_indices<>) + 140 (future:2348)
14 libao-kernel.dylib 0x00000001047042ea std::__1::__async_assoc_state<Kernel::XTree<3u>
, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::__execute() + 26 (future:976)
15 libao-kernel.dylib 0x0000000104704561 std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::)(), std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >> >(void, void*) + 113 (memory:2537)
16 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
17 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
18 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 18:
0 libsystem_malloc.dylib 0x00007fff9e15ea6c _nano_vet_and_size_of_live + 106
1 libsystem_malloc.dylib 0x00007fff9e14ee2c free + 87
2 libao-kernel.dylib 0x00000001046d1d66 Kernel::Evaluator::featuresAt(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 1638 (list:555)
3 libao-kernel.dylib 0x00000001046c9750 Kernel::Evaluator::isInside(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 304 (evaluator.cpp:445)
4 libao-kernel.dylib 0x00000001046eca7e Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 5422 (xtree.cpp:393)
5 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
6 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
7 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
8 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
9 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
10 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
11 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
12 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
13 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
14 libao-kernel.dylib 0x00000001047044bc std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()>::__execute<>(Kernel::XTree<3u>, std::__1::__tuple_indices<>) + 140 (future:2348)
15 libao-kernel.dylib 0x00000001047042ea std::__1::__async_assoc_state<Kernel::XTree<3u>
, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::__execute() + 26 (future:976)
16 libao-kernel.dylib 0x0000000104704561 std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::)(), std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >> >(void, void*) + 113 (memory:2537)
17 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
18 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
19 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 19:
0 libsystem_malloc.dylib 0x00007fff9e14c1e9 malloc + 1
1 libc++abi.dylib 0x00007fff9cbd4e0e operator new(unsigned long) + 30
2 libao-kernel.dylib 0x00000001046da2a6 Kernel::Feature::Feature(Kernel::Feature const&) + 582 (utility:288)
3 libao-kernel.dylib 0x00000001046d1c9f Kernel::Evaluator::featuresAt(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 1439 (PacketMath.h:336)
4 libao-kernel.dylib 0x00000001046c9750 Kernel::Evaluator::isInside(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 304 (evaluator.cpp:445)
5 libao-kernel.dylib 0x00000001046eca7e Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 5422 (xtree.cpp:393)
6 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
7 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
8 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
9 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
10 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
11 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
12 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
13 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
14 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
15 libao-kernel.dylib 0x00000001047044bc std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()>::__execute<>(Kernel::XTree<3u>, std::__1::__tuple_indices<>) + 140 (future:2348)
16 libao-kernel.dylib 0x00000001047042ea std::__1::__async_assoc_state<Kernel::XTree<3u>
, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::__execute() + 26 (future:976)
17 libao-kernel.dylib 0x0000000104704561 std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::)(), std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >> >(void, void*) + 113 (memory:2537)
18 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
19 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
20 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 20:
0 libao-kernel.dylib 0x00000001046bf5ea Kernel::Evaluator::values(unsigned int) + 1418 (AssignEvaluator.h:389)
1 libao-kernel.dylib 0x00000001046c9896 Kernel::Evaluator::derivs(unsigned int) + 54 (evaluator.cpp:777)
2 libao-kernel.dylib 0x00000001046d197f Kernel::Evaluator::featuresAt(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 639 (evaluator.cpp:492)
3 libao-kernel.dylib 0x00000001046c9750 Kernel::Evaluator::isInside(Eigen::Matrix<float, 3, 1, 0, 3, 1> const&) + 304 (evaluator.cpp:445)
4 libao-kernel.dylib 0x00000001046eca7e Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 5422 (xtree.cpp:393)
5 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
6 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
7 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
8 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
9 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
10 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
11 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
12 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
13 libao-kernel.dylib 0x00000001046ebc67 Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&) + 1815 (xtree.cpp:148)
14 libao-kernel.dylib 0x00000001047044bc std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()>::__execute<>(Kernel::XTree<3u>, std::__1::__tuple_indices<>) + 140 (future:2348)
15 libao-kernel.dylib 0x00000001047042ea std::__1::__async_assoc_state<Kernel::XTree<3u>
, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::__execute() + 26 (future:976)
16 libao-kernel.dylib 0x0000000104704561 std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >::)(), std::__1::__async_assoc_state<Kernel::XTree<3u>, std::__1::__async_func<Kernel::XTree<3u>::XTree(Kernel::Evaluator*, Kernel::Region<3u>, double, double, bool, std::__1::atomic&)::'lambda'()> >> >(void, void*) + 113 (memory:2537)
17 libsystem_pthread.dylib 0x00007fff9e1e493b _pthread_body + 180
18 libsystem_pthread.dylib 0x00007fff9e1e4887 _pthread_start + 286
19 libsystem_pthread.dylib 0x00007fff9e1e408d thread_start + 13

Thread 16 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000006 rcx: 0x000070000f56b2b8 rdx: 0x0000000000000000
rdi: 0x0000000000018a2b rsi: 0x0000000000000006 rbp: 0x000070000f56b2e0 rsp: 0x000070000f56b2b8
r8: 0x0000000000000000 r9: 0x000000000000015c r10: 0x0000000008000000 r11: 0x0000000000000206
r12: 0x00000001091ac028 r13: 0x00000001091ac000 r14: 0x000070000f57c000 r15: 0x000000010472f2d4
rip: 0x00007fff9e0f9d42 rfl: 0x0000000000000206 cr2: 0x000070000f56c080

Logical CPU: 0
Error Code: 0x0100001f
Trap Number: 133

Binary Images:
0x1045e8000 - 0x104614fff +com.impraxical.studio (0.0.0) <13F5BDBF-F5F9-3A4E-B720-DB8D358FD289> /Users/USER/Documents//Studio.app/Contents/MacOS/Studio
0x10464d000 - 0x104655ffb +libguile-ao.dylib (0) /Users/USER/Documents/
/libguile-ao.dylib
0x104659000 - 0x10468dffb +org.qt-project.QtOpenGL (5.9 - 5.9.1) <1368A603-5898-3FA3-BA81-1EF2E6CE9613> /usr/local/opt/qt/lib/QtOpenGL.framework/Versions/5/QtOpenGL
0x1046af000 - 0x1046b3ffb +org.qt-project.QtConcurrent (5.9 - 5.9.1) <2FAE3EE3-5C6E-3A81-9149-464E4FBE6B3E> /usr/local/opt/qt/lib/QtConcurrent.framework/Versions/5/QtConcurrent
0x1046bb000 - 0x104730fef +libao-kernel.dylib (0) <021C524F-6C01-3B21-810C-8D2884CAB0E2> /Users/USER/Documents/*/libao-kernel.dylib
0x10476b000 - 0x10478effb +libpng16.16.dylib (0) <949DC3DD-DB87-3DE9-9615-FCF16DCBAC61> /usr/local/opt/libpng/lib/libpng16.16.dylib
0x10479c000 - 0x104857fff +libguile-2.2.1.dylib (0) <624D7FBA-0DAB-3B10-AC03-1503FB53C1B7> /usr/local/opt/guile/lib/libguile-2.2.1.dylib
0x1048b5000 - 0x104d02fff +org.qt-project.QtWidgets (5.9 - 5.9.1) <48D8F006-3348-3AC8-B419-8AA370E1B218> /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets
0x104e5f000 - 0x105262fe3 +org.qt-project.QtGui (5.9 - 5.9.1) /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui
0x105356000 - 0x10581effb +org.qt-project.QtCore (5.9 - 5.9.1) /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore
0x1058d1000 - 0x1058e7fff +libgc.1.dylib (0) <00EB7F2D-93AF-3022-A3C1-8F57308AC636> /usr/local/opt/bdw-gc/lib/libgc.1.dylib
0x10592f000 - 0x105933ff7 +libffi.6.dylib (0) <986DC089-727D-3563-935B-652AB8C97396> /usr/local/opt/libffi/lib/libffi.6.dylib
0x10593e000 - 0x105a8ffff +libunistring.2.dylib (0) /usr/local/opt/libunistring/lib/libunistring.2.dylib
0x105aa9000 - 0x105b08fc7 +libgmp.10.dylib (0) <8FB71FC7-D55D-3C1C-91F9-6DAB14049DDA> /usr/local/opt/gmp/lib/libgmp.10.dylib
0x105b1a000 - 0x105b1ffff +libltdl.7.dylib (0) /usr/local/opt/libtool/lib/libltdl.7.dylib
0x107552000 - 0x10769eff7 +libqcocoa.dylib (0) <45358FF2-6A3E-3B16-B99C-C7675904F91F> /usr/local/Cellar/qt/5.9.1/plugins/platforms/libqcocoa.dylib
0x1076e3000 - 0x10770eff7 +org.qt-project.QtPrintSupport (5.9 - 5.9.1) <752403C7-0181-3CC5-AF9A-F2C2B9222867> /usr/local/Cellar/qt/5.9.1/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport
0x109124000 - 0x10912afff +libqgif.dylib (0) <9610B5F2-099F-359B-8DAA-243F87D906D0> /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqgif.dylib
0x10916f000 - 0x109176ffb +libqicns.dylib (0) <9013126F-2ABF-3465-94D2-638A05CC0EEE> /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqicns.dylib
0x10917b000 - 0x10917fff3 +libqmacjp2.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqmacjp2.dylib
0x10ab8f000 - 0x10ad35fff GLEngine (14.0.16) <08F2E804-13D2-3E80-9322-1A23A84A55F3> /System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine
0x10ad74000 - 0x10b2cfff7 com.apple.driver.AppleIntelHD5000GraphicsGLDriver (10.25.17 - 10.2.5) <37814D97-7FB0-3378-BF1E-375CE00043ED> /System/Library/Extensions/AppleIntelHD5000GraphicsGLDriver.bundle/Contents/MacOS/AppleIntelHD5000GraphicsGLDriver
0x10b4e2000 - 0x10b50cfff GLRendererFloat (14.0.16) <6B57F70A-EFAC-3DB2-B9BA-E55D05D44DB5> /System/Library/Frameworks/OpenGL.framework/Resources/GLRendererFloat.bundle/GLRendererFloat
0x10b516000 - 0x10b58eff7 com.apple.driver.AppleIntelHD5000GraphicsMTLDriver (10.25.17 - 10.2.5) <256C1732-C04F-3952-9630-9AE95BDCB245> /System/Library/Extensions/AppleIntelHD5000GraphicsMTLDriver.bundle/Contents/MacOS/AppleIntelHD5000GraphicsMTLDriver
0x10b6cc000 - 0x10b6d1fff +libqico.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqico.dylib
0x10b6d6000 - 0x10b6dafff +libqsvg.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqsvg.dylib
0x10bcfd000 - 0x10bd38ff7 +libqjpeg.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqjpeg.dylib
0x10bd3e000 - 0x10bd73ff7 +org.qt-project.QtSvg (5.9 - 5.9.1) <8FF8ECBB-E37C-3006-9113-55330E6F75E8> /usr/local/Cellar/qt/5.9.1/lib/QtSvg.framework/Versions/5/QtSvg
0x10bd8f000 - 0x10bd93ff7 +libqtga.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqtga.dylib
0x10bd97000 - 0x10bdeaff3 +libqtiff.dylib (0) /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqtiff.dylib
0x10bdf2000 - 0x10bdf6ff3 +libqwbmp.dylib (0) <9F97B516-F19E-3CB7-9202-95F4B22D1654> /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqwbmp.dylib
0x10bdfa000 - 0x10be85ffb +libqwebp.dylib (0) <5A60779E-1CE6-3B5F-B679-899E7F6492C0> /usr/local/Cellar/qt/5.9.1/plugins/imageformats/libqwebp.dylib
0x112ca3000 - 0x112ce0dc7 dyld (433.5) <322C06B7-8878-311D-888C-C8FD2CA96FF3> /usr/lib/dyld
0x119017000 - 0x119031ff7 com.apple.security.csparser (3.0 - 57740.60.18) <119893A8-D878-3AF2-BA3C-F70D5C6E6950> /System/Library/Frameworks/Security.framework/PlugIns/csparser.bundle/Contents/MacOS/csparser
0x11bd9b000 - 0x11bdbbfff com.apple.CoreNLP (1.0 - 78.2) /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
0x11c002000 - 0x11c0e6ff7 com.apple.NLP (1.0 - 98.7) /System/Library/PrivateFrameworks/NLP.framework/Versions/A/NLP
0x11e4c3000 - 0x11e4c4ff1 +cl_kernels (???) cl_kernels
0x11e4c7000 - 0x11e5adfff unorm8_bgra.dylib (2.8.5) <74CB9618-8EDC-336E-A994-C5A1612BD32E> /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/ImageFormats/unorm8_bgra.dylib
0x7fff8346d000 - 0x7fff837b2ff7 com.apple.RawCamera.bundle (7.04 - 914) <86A67D11-9791-3CE6-9FF5-3387C0AB925B> /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
0x7fff83dbf000 - 0x7fff8460cfff com.apple.GeForceGLDriver (10.17.5 - 10.1.7) /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/GeForceGLDriver
0x7fff8460d000 - 0x7fff84ed2ff3 libclh.dylib (4.0.3 - 4.0.3) <2CA40E20-9E48-3A2E-A0A4-2AAAF150F723> /System/Library/Extensions/GeForceGLDriver.bundle/Contents/MacOS/libclh.dylib
0x7fff84ed3000 - 0x7fff84fe3ff7 com.apple.GeForceMTLDriver (10.17.5 - 10.1.7) /System/Library/Extensions/GeForceMTLDriver.bundle/Contents/MacOS/GeForceMTLDriver
0x7fff84fe4000 - 0x7fff84fe8ffb com.apple.agl (3.3.1 - AGL-3.3.1) <752FDB92-EF67-3D04-BF40-A352BF1075CF> /System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x7fff84fe9000 - 0x7fff851aafff com.apple.avfoundation (2.0 - 1187.36) <2F390EAD-07BB-3788-9E73-13104C2E04CD> /System/Library/Frameworks/AVFoundation.framework/Versions/A/AVFoundation
0x7fff851ab000 - 0x7fff8524dff7 com.apple.audio.AVFAudio (1.0 - ???) <7997D588-B542-3EBB-B822-D719C1114BB4> /System/Library/Frameworks/AVFoundation.framework/Versions/A/Frameworks/AVFAudio.framework/Versions/A/AVFAudio
0x7fff8524e000 - 0x7fff85317ff3 com.apple.AVKit (1.1 - 356.12) <1A0929CC-BD23-377D-8A22-6C092409AA9D> /System/Library/Frameworks/AVKit.framework/Versions/A/AVKit
0x7fff85318000 - 0x7fff85318fff com.apple.Accelerate (1.11 - Accelerate 1.11) <916E360F-323C-3AE1-AB3D-D1F3B284AEE9> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x7fff85319000 - 0x7fff85330ffb libCGInterfaces.dylib (331.5) <17109679-A284-3C72-AA60-DBA815D3062B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/Libraries/libCGInterfaces.dylib
0x7fff85331000 - 0x7fff8584afeb com.apple.vImage (8.1 - ???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x7fff8584b000 - 0x7fff859bcff3 libBLAS.dylib (1185.50.4) <4087FFE0-627E-3623-96B4-F0A9A1991E09> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x7fff859bd000 - 0x7fff859d1ffb libBNNS.dylib (15) <254698C7-7D36-3FFF-864E-ADEEEE543076> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
0x7fff859d2000 - 0x7fff85dc8fef libLAPACK.dylib (1185.50.4) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x7fff85dc9000 - 0x7fff85ddffff libLinearAlgebra.dylib (1185.50.4) <345CAACF-7263-36EF-B69B-793EA8B390AF> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
0x7fff85de0000 - 0x7fff85de6fff libQuadrature.dylib (3) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
0x7fff85de7000 - 0x7fff85dfbff7 libSparseBLAS.dylib (1185.50.4) <67BA432E-FB59-3C78-A8BE-ED4274CBC359> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
0x7fff85dfc000 - 0x7fff85f83fe7 libvDSP.dylib (600.60.1) <4155F45B-41CD-3782-AE8F-7AE740FD83C3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x7fff85f84000 - 0x7fff86036fff libvMisc.dylib (600.60.1) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x7fff86037000 - 0x7fff86037fff com.apple.Accelerate.vecLib (3.11 - vecLib 3.11) <7C5733E7-0568-3E7D-AF61-160F19FED544> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x7fff86038000 - 0x7fff86075ffb com.apple.Accounts (113 - 113) <8550BD08-7D05-3AC4-A0CC-B67ECB2DE950> /System/Library/Frameworks/Accounts.framework/Versions/A/Accounts
0x7fff86076000 - 0x7fff862f5ff7 com.apple.AddressBook.framework (10.0 - 1756.20) /System/Library/Frameworks/AddressBook.framework/Versions/A/AddressBook
0x7fff862f6000 - 0x7fff870cfff3 com.apple.AppKit (6.9 - 1504.83.101) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x7fff870e1000 - 0x7fff870e1fff com.apple.ApplicationServices (48 - 48) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x7fff870e2000 - 0x7fff87150ff7 com.apple.ApplicationServices.ATS (377 - 422.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x7fff871ea000 - 0x7fff87319ff7 libFontParser.dylib (194.12) <73C3946D-EF92-3AC1-89C3-0E75B2A85325> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
0x7fff8731a000 - 0x7fff87364fff libFontRegistry.dylib (196.4) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x7fff873c1000 - 0x7fff873f4fff libTrueTypeScaler.dylib (194.12) <8944A23A-EE36-3657-9B4F-933231C8FDEC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
0x7fff87461000 - 0x7fff8750bff7 com.apple.ColorSync (4.12.0 - 502.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x7fff8750c000 - 0x7fff8755dfff com.apple.HIServices (1.22 - 593) <045870A9-1D92-3FEF-8722-671E99A35E71> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x7fff8755e000 - 0x7fff8756dff3 com.apple.LangAnalysis (1.7.0 - 1.7.0) <2CBE7F61-2056-3F96-99A1-0D527796AFA6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
0x7fff8756e000 - 0x7fff875bbfff com.apple.print.framework.PrintCore (12 - 491) <5027FD58-F0EE-33E4-8577-934CA06CD2AF> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x7fff875bc000 - 0x7fff875f7fff com.apple.QD (3.12 - 313) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x7fff875f8000 - 0x7fff87603fff com.apple.speech.synthesis.framework (6.6.2 - 6.6.2) <7853EFF4-62B9-394E-B7B8-41A645656820> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x7fff87604000 - 0x7fff87810ff7 com.apple.audio.toolbox.AudioToolbox (1.14 - 1.14) <01518CAB-7DAD-3F09-83F8-B9FE0ABE998F> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x7fff87811000 - 0x7fff87811fff com.apple.audio.units.AudioUnit (1.14 - 1.14) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
0x7fff8797a000 - 0x7fff87d54fff com.apple.CFNetwork (811.5.4 - 811.5.4) <46B1227B-F38C-3F8E-B0B5-5D9861ABF36B> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x7fff87d6e000 - 0x7fff87d6efff com.apple.Carbon (154 - 157) <69F403C7-F0CB-34E6-89B0-235CF4978C17> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
0x7fff87d6f000 - 0x7fff87d72fff com.apple.CommonPanels (1.2.6 - 98) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
0x7fff87d73000 - 0x7fff8807cfff com.apple.HIToolbox (2.1.1 - 857.8) <5367366E-747E-32CF-8E76-93CD8E7424C7> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x7fff8807d000 - 0x7fff88080ff7 com.apple.help (1.3.5 - 49) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
0x7fff88081000 - 0x7fff88086fff com.apple.ImageCapture (9.0 - 9.0) <341252B4-E082-361A-B756-6A330259C741> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
0x7fff88087000 - 0x7fff8811eff3 com.apple.ink.framework (10.9 - 219) <1BD40B45-FD33-3177-A935-565EE5FC79D7> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
0x7fff8811f000 - 0x7fff88139fff com.apple.openscripting (1.7 - 172) <31CFBB35-24BD-3E12-9B6B-1FA842FB605B> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
0x7fff8813a000 - 0x7fff8813bff3 com.apple.print.framework.Print (12 - 267) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
0x7fff8813c000 - 0x7fff8813eff7 com.apple.securityhi (9.0 - 55006) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
0x7fff8813f000 - 0x7fff88145ff7 com.apple.speech.recognition.framework (6.0.1 - 6.0.1) <082895DC-3AC7-3DEF-ADCA-5B018C19C9D3> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x7fff88146000 - 0x7fff88225ffb com.apple.cloudkit.CloudKit (651.14 - 651.14) <9F901E45-23E3-3F45-B66F-1BAB3AFC4462> /System/Library/Frameworks/CloudKit.framework/Versions/A/CloudKit
0x7fff88226000 - 0x7fff88226fff com.apple.Cocoa (6.11 - 22) <85EDFBE1-75F0-369E-8CA8-C6A639B98FA6> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x7fff88370000 - 0x7fff883fdfff com.apple.audio.CoreAudio (4.3.0 - 4.3.0) <78767F88-91D4-31CE-AAC6-1F9407F479BB> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x7fff883fe000 - 0x7fff88411fff com.apple.CoreBluetooth (1.0 - 1) /System/Library/Frameworks/CoreBluetooth.framework/Versions/A/CoreBluetooth
0x7fff88412000 - 0x7fff8870dfff com.apple.CoreData (120 - 754.2) <4C9CAB2C-60D4-3694-A0A0-5B04B14BD14E> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x7fff8870e000 - 0x7fff887bbff7 com.apple.CoreDisplay (1.0 - 1) <53D1EAFE-23A4-398D-BF52-E4299E670DB6> /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
0x7fff887bc000 - 0x7fff88c55ff7 com.apple.CoreFoundation (6.9 - 1349.8) <09ED473E-5DE8-307F-B55C-16F6419236D5> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x7fff88c56000 - 0x7fff892d8fff com.apple.CoreGraphics (2.0 - 1070.22) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x7fff892d9000 - 0x7fff8951cffb com.apple.CoreImage (12.4.0 - 451.4.9) /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x7fff8951d000 - 0x7fff89582ff7 com.apple.corelocation (2101.0.63) /System/Library/Frameworks/CoreLocation.framework/Versions/A/CoreLocation
0x7fff89583000 - 0x7fff89634fff com.apple.CoreMedia (1.0 - 1907.59.1.6) <570690D8-A956-3629-9E46-4F8BDDB8A82C> /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
0x7fff89635000 - 0x7fff89680ff7 com.apple.CoreMediaIO (805.0 - 4932) <03F2B863-BF99-36DF-9A14-1DB534A289F3> /System/Library/Frameworks/CoreMediaIO.framework/Versions/A/CoreMediaIO
0x7fff89681000 - 0x7fff89681fff com.apple.CoreServices (775.19 - 775.19) <7255917D-EFBB-3BE2-A8FD-DAD631BC0949> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x7fff89682000 - 0x7fff896d3fff com.apple.AE (712.5 - 712.5) <61F2AE2C-E04E-3FDF-9E88-201325136C83> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x7fff896d4000 - 0x7fff899afff7 com.apple.CoreServices.CarbonCore (1159.6 - 1159.6) <08AC074C-965B-3EDF-8E45-0707C8DE9EAD> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x7fff899b0000 - 0x7fff899e3fff com.apple.DictionaryServices (1.2 - 274) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x7fff899e4000 - 0x7fff899ecff3 com.apple.CoreServices.FSEvents (1230.50.1 - 1230.50.1) <2AD1B0E5-7214-37C4-8D11-A27C9CAC0F74> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
0x7fff899ed000 - 0x7fff89b59ff7 com.apple.LaunchServices (775.19 - 775.19) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x7fff89b5a000 - 0x7fff89c0affb com.apple.Metadata (10.7.0 - 1075.40) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x7fff89c0b000 - 0x7fff89c6afff com.apple.CoreServices.OSServices (775.19 - 775.19) <4140569A-1848-3765-A52B-BB61C35CF88F> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x7fff89c6b000 - 0x7fff89cdbfff com.apple.SearchKit (1.4.0 - 1.4.0) <7A6DDA2B-03F1-3137-BA9E-1CC211973E26> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x7fff89cdc000 - 0x7fff89d21ff7 com.apple.coreservices.SharedFileList (38 - 38) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
0x7fff89daa000 - 0x7fff89ef7ffb com.apple.CoreText (352.0 - 544.15) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x7fff89ef8000 - 0x7fff89f2dff3 com.apple.CoreVideo (1.8 - 235.3) /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x7fff89f2e000 - 0x7fff89f9fffb com.apple.framework.CoreWLAN (11.0 - 1200.31) /System/Library/Frameworks/CoreWLAN.framework/Versions/A/CoreWLAN
0x7fff89fd2000 - 0x7fff89fddff3 com.apple.DirectoryService.Framework (10.12 - 194) <45BEA292-4550-3082-8CE7-5D6CE7E0052A> /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
0x7fff89fde000 - 0x7fff8a09cff7 com.apple.DiscRecording (9.0.3 - 9030.4.5) <9397E609-CB54-37B2-B28E-D4BC6C34BFAB> /System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
0x7fff8a09d000 - 0x7fff8a0a2fff com.apple.DiskArbitration (2.7 - 2.7) <70F56042-EF04-3BAF-9E04-90F423FB2BCC> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x7fff8a234000 - 0x7fff8a5dafff com.apple.Foundation (6.9 - 1349.91) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x7fff8a606000 - 0x7fff8a637ff7 com.apple.GSS (4.0 - 2.0) <6FADED0B-0425-3567-A75A-040C5A4638EB> /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x7fff8a6f7000 - 0x7fff8a79afff com.apple.Bluetooth (5.0.5 - 5.0.5f1) <913B97A6-9E18-3F15-992D-D522AA22EDE9> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
0x7fff8a79b000 - 0x7fff8a831ff7 com.apple.framework.IOKit (2.0.2 - 1324.60.3) <7CE4C98B-107C-3AAA-B49A-F2ACFCBBF526> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x7fff8a832000 - 0x7fff8a838ffb com.apple.IOSurface (159.9 - 159.9) <08F1A246-1367-32EC-B3CE-724379409729> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x7fff8a839000 - 0x7fff8a88aff7 com.apple.ImageCaptureCore (7.0 - 7.0) /System/Library/Frameworks/ImageCaptureCore.framework/Versions/A/ImageCaptureCore
0x7fff8a88b000 - 0x7fff8a9ebfef com.apple.ImageIO.framework (3.3.0 - 1599.12) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x7fff8a9ec000 - 0x7fff8a9f0fff libGIF.dylib (1599.12) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x7fff8a9f1000 - 0x7fff8aae1ff7 libJP2.dylib (1599.12) <0DB4F152-B36D-365C-97B1-34F1C114982B> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x7fff8aae2000 - 0x7fff8ab05ffb libJPEG.dylib (1599.12) <2F66BA16-D569-35AD-A4BB-7A1909F1BF11> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x7fff8ab06000 - 0x7fff8ab2dff7 libPng.dylib (1599.12) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x7fff8ab2e000 - 0x7fff8ab30ff3 libRadiance.dylib (1599.12) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x7fff8ab31000 - 0x7fff8ab7fffb libTIFF.dylib (1599.12) <5D161E6A-D279-37A0-9F5F-A71A4C13BB09> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x7fff8acdd000 - 0x7fff8b8e7fff com.apple.JavaScriptCore (12603 - 12603.3.8) <9557271A-1838-38DD-93E3-D8A9ECDE3B6B> /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore
0x7fff8b8e8000 - 0x7fff8b901ff7 com.apple.Kerberos (3.0 - 1) /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x7fff8b902000 - 0x7fff8b938fff com.apple.LDAPFramework (2.4.28 - 194.5) <492ACA22-373E-3DD9-BAEB-9EF6AA962FD5> /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
0x7fff8bb8b000 - 0x7fff8bb91fff com.apple.MediaAccessibility (1.0 - 97.1.1) <0BD82735-6644-37CE-B13D-8E7CC59A1752> /System/Library/Frameworks/MediaAccessibility.framework/Versions/A/MediaAccessibility
0x7fff8bba7000 - 0x7fff8c0e0ff7 com.apple.MediaToolbox (1.0 - 1907.59.1.6) /System/Library/Frameworks/MediaToolbox.framework/Versions/A/MediaToolbox
0x7fff8c0e1000 - 0x7fff8c13cfff com.apple.Metal (87.18 - 87.18) /System/Library/Frameworks/Metal.framework/Versions/A/Metal
0x7fff8ca25000 - 0x7fff8ca2dfff com.apple.NetFS (6.0 - 4.0) <14A24D00-5673-330A-959D-87F72040DEFF> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
0x7fff8cc04000 - 0x7fff8cc0cff7 libcldcpuengine.dylib (2.8.5) <81563526-886E-37E4-BF85-4A6D75F93C65> /System/Library/Frameworks/OpenCL.framework/Versions/A/Libraries/libcldcpuengine.dylib
0x7fff8cc0d000 - 0x7fff8cc5bff3 com.apple.opencl (2.8.6 - 2.8.6) /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x7fff8cc5c000 - 0x7fff8cc75ffb com.apple.CFOpenDirectory (10.12 - 194) /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x7fff8cc76000 - 0x7fff8cc81ff7 com.apple.OpenDirectory (10.12 - 194) <4298FFD0-B1A7-3064-AF5B-708B3FA38671> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x7fff8cc82000 - 0x7fff8cc84fff libCVMSPluginSupport.dylib (14.0.16) <9E12EB67-6630-39A0-AB93-77405F5EC2A7> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x7fff8cc85000 - 0x7fff8cc88ff7 libCoreFSCache.dylib (156.3) <687C4CC3-6537-344B-8BE1-5234C8CB2864> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
0x7fff8cc89000 - 0x7fff8cc8dfff libCoreVMClient.dylib (156.3) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x7fff8cc8e000 - 0x7fff8cc97ff7 libGFXShared.dylib (14.0.16) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x7fff8cc98000 - 0x7fff8cca3fff libGL.dylib (14.0.16) <0801F3B9-A525-32BB-9BC0-478947CE21D9> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x7fff8cca4000 - 0x7fff8cce0ff7 libGLImage.dylib (14.0.16) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x7fff8cce1000 - 0x7fff8ce57ff3 libGLProgrammability.dylib (14.0.16) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
0x7fff8ce58000 - 0x7fff8ce99ff7 libGLU.dylib (14.0.16) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x7fff8d801000 - 0x7fff8d80ffff com.apple.opengl (14.0.16 - 14.0.16) <167C9883-A79E-3B7F-AFED-8CD6683B291D> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x7fff8d8ac000 - 0x7fff8d9f3fff com.apple.QTKit (7.7.3 - 2978.7) <49F88771-52FE-3989-AAB7-10A7494C4419> /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit
0x7fff8d9f4000 - 0x7fff8dc5eff7 com.apple.imageKit (3.0 - 1023) <9C547565-CBAA-3ACB-A3F6-1366A0DCDCB4> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/ImageKit
0x7fff8dc5f000 - 0x7fff8dd26fff com.apple.PDFKit (1.0 - 1) /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/PDFKit.framework/Versions/A/PDFKit
0x7fff8dd27000 - 0x7fff8e24dff7 com.apple.QuartzComposer (5.1 - 356) /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/QuartzComposer
0x7fff8e24e000 - 0x7fff8e271ffb com.apple.quartzfilters (1.10.0 - 1.10.0) <365342ED-7A1A-3C75-AE60-90764E96034C> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzFilters.framework/Versions/A/QuartzFilters
0x7fff8e272000 - 0x7fff8e35ffff com.apple.QuickLookUIFramework (5.0 - 720.7) <3136C23E-399E-3296-928A-B18EC9FC423C> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuickLookUI.framework/Versions/A/QuickLookUI
0x7fff8e360000 - 0x7fff8e360fff com.apple.quartzframework (1.5 - 21) <09455972-8A33-3D61-B193-BA7E7CF984CA> /System/Library/Frameworks/Quartz.framework/Versions/A/Quartz
0x7fff8e361000 - 0x7fff8e561fff com.apple.QuartzCore (1.11 - 453.39.4) /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x7fff8e562000 - 0x7fff8e5b7fff com.apple.QuickLookFramework (5.0 - 720.7) <3BD7BA2F-924C-3EFF-B26E-3F930E62E6B4> /System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook
0x7fff8e5b8000 - 0x7fff8e5cdfff com.apple.SafariServices.framework (12603 - 12603.3.8) <966BF0C8-B94B-3BDF-AFE1-0F99DAAE6D99> /System/Library/Frameworks/SafariServices.framework/Versions/A/SafariServices
0x7fff8eac8000 - 0x7fff8edcaff7 com.apple.security (7.0 - 57740.60.18) <005E8C96-40B6-35E3-B58B-888A5F5957C2> /System/Library/Frameworks/Security.framework/Versions/A/Security
0x7fff8edcb000 - 0x7fff8ee40fff com.apple.securityfoundation (6.0 - 55132.50.7) <15C53957-A9DE-31AE-A192-949244F47CD7> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x7fff8ee41000 - 0x7fff8ee6afff com.apple.securityinterface (10.0 - 55079.50.4) /System/Library/Frameworks/SecurityInterface.framework/Versions/A/SecurityInterface
0x7fff8ee6b000 - 0x7fff8ee6eff3 com.apple.xpc.ServiceManagement (1.0 - 1) /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement
0x7fff8f1f5000 - 0x7fff8f264ff7 com.apple.SystemConfiguration (1.14 - 1.14) <3FFD3930-B307-3E31-9FA6-12221EB0F969> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x7fff8f265000 - 0x7fff8f613fff com.apple.VideoToolbox (1.0 - 1907.59.1.6) /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
0x7fff8f614000 - 0x7fff9099bff3 com.apple.WebCore (12603 - 12603.3.8) /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore
0x7fff9099c000 - 0x7fff90b88ff3 com.apple.WebKitLegacy (12603 - 12603.3.8) <8C2FFEAA-1E05-3756-8EA7-DF406C866191> /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebKitLegacy.framework/Versions/A/WebKitLegacy
0x7fff90b89000 - 0x7fff90f34fff com.apple.WebKit (12603 - 12603.3.8) /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
0x7fff91340000 - 0x7fff91347ffb com.apple.APFS (1.0 - 1) /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
0x7fff91abb000 - 0x7fff91ad6ff3 com.apple.AppContainer (4.0 - 307.50.21) /System/Library/PrivateFrameworks/AppContainer.framework/Versions/A/AppContainer
0x7fff91ad7000 - 0x7fff91ae4ff3 com.apple.AppSandbox (4.0 - 307.50.21) /System/Library/PrivateFrameworks/AppSandbox.framework/Versions/A/AppSandbox
0x7fff91ae5000 - 0x7fff91b07ffb com.apple.framework.Apple80211 (12.0 - 1200.47) /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
0x7fff91b08000 - 0x7fff91b17feb com.apple.AppleFSCompression (88.50.3 - 1.0) <478E8BFF-8BA2-375E-BE02-BA27F115C15A> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
0x7fff91c05000 - 0x7fff91c9097f com.apple.AppleJPEG (1.0 - 1) /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
0x7fff91ca4000 - 0x7fff91cbffff com.apple.aps.framework (4.0 - 4.0) <6CA07CDF-1E35-34E9-95BF-BD565FF42BAD> /System/Library/PrivateFrameworks/ApplePushService.framework/Versions/A/ApplePushService
0x7fff91cc0000 - 0x7fff91cc8ffb com.apple.AppleSRP (5.0 - 1) <6AAE93B6-9816-35B2-9C59-D5C3218065AF> /System/Library/PrivateFrameworks/AppleSRP.framework/Versions/A/AppleSRP
0x7fff91cc9000 - 0x7fff91cccff3 com.apple.AppleSystemInfo (3.1.5 - 3.1.5) <42A1731A-A576-307A-B07C-9F8F64696CB7> /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo
0x7fff91ccd000 - 0x7fff91d1ffff com.apple.AppleVAFramework (5.0.36 - 5.0.36) <7352078D-C230-397C-81A5-57A48CF218C0> /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
0x7fff91d29000 - 0x7fff91d30ff7 com.apple.AssetCacheServices (48.3 - 48.3) /System/Library/PrivateFrameworks/AssetCacheServices.framework/Versions/A/AssetCacheServices
0x7fff920c3000 - 0x7fff92141ff7 com.apple.backup.framework (1.8.5 - 1.8.5) /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
0x7fff9216a000 - 0x7fff921a7ffb com.apple.bom (14.0 - 194.1) <0CBECAF1-B5E0-302F-99EC-D7ED14E12B84> /System/Library/PrivateFrameworks/Bom.framework/Versions/A/Bom
0x7fff923e8000 - 0x7fff92411ffb com.apple.CacheDelete (1.0 - 1) /System/Library/PrivateFrameworks/CacheDelete.framework/Versions/A/CacheDelete
0x7fff927dd000 - 0x7fff92804fff com.apple.CalendarAgentLink (8.0 - 250) /System/Library/PrivateFrameworks/CalendarAgentLink.framework/Versions/A/CalendarAgentLink
0x7fff92dcc000 - 0x7fff92df3ff3 com.apple.ChunkingLibrary (173 - 173) /System/Library/PrivateFrameworks/ChunkingLibrary.framework/Versions/A/ChunkingLibrary
0x7fff92df4000 - 0x7fff92e80ff7 com.apple.CloudDocs (1.0 - 486.29) <392B87EC-0317-313F-8FE2-F571831C7F35> /System/Library/PrivateFrameworks/CloudDocs.framework/Versions/A/CloudDocs
0x7fff93718000 - 0x7fff93721ffb com.apple.CommonAuth (4.0 - 2.0) <216950CB-269F-3476-BA17-D6363AC49FBC> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x7fff937e8000 - 0x7fff93839ff7 com.apple.AddressBook.ContactsFoundation (8.0 - 2250.11) <1324A70E-A093-3DB9-A802-07B8F4A499B5> /System/Library/PrivateFrameworks/ContactsFoundation.framework/Versions/A/ContactsFoundation
0x7fff9383a000 - 0x7fff9385cfff com.apple.contacts.ContactsPersistence (1.0 - 2250.11) <7CDEB852-B3B7-328F-9537-DFB3A58B882C> /System/Library/PrivateFrameworks/ContactsPersistence.framework/Versions/A/ContactsPersistence
0x7fff938a6000 - 0x7fff93c85ff7 com.apple.CoreAUC (226.0.0 - 226.0.0) /System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
0x7fff93c86000 - 0x7fff93cb6fff com.apple.CoreAVCHD (5.9.0 - 5900.4.1) <3F6857D1-AE7C-3593-B064-930F5BB7269E> /System/Library/PrivateFrameworks/CoreAVCHD.framework/Versions/A/CoreAVCHD
0x7fff93d51000 - 0x7fff93d59ffb com.apple.frameworks.CoreDaemon (1.3 - 1.3) <2AB86FAF-37B3-3323-9EF0-CA591B6E357C> /System/Library/PrivateFrameworks/CoreDaemon.framework/Versions/B/CoreDaemon
0x7fff93e6a000 - 0x7fff93e7afff com.apple.CoreEmoji (1.0 - 40.3.3) /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
0x7fff93f3f000 - 0x7fff93f55ff3 com.apple.CoreMediaAuthoring (2.2 - 956) /System/Library/PrivateFrameworks/CoreMediaAuthoring.framework/Versions/A/CoreMediaAuthoring
0x7fff93f5c000 - 0x7fff93fecffb com.apple.CorePDF (4.0 - 4) <7F50E4A6-940C-33F5-BE4E-7E01AFE98A8F> /System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF
0x7fff941b5000 - 0x7fff941e5ff3 com.apple.CoreServicesInternal (276.2 - 276.2) <05EB7D45-DD4C-3A0F-AC63-A0C2A68E6481> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/Versions/A/CoreServicesInternal
0x7fff94476000 - 0x7fff94505ff7 com.apple.CoreSymbolication (62046) <7839CD8E-011D-3567-88DE-3D472C661136> /System/Library/PrivateFrameworks/CoreSymbolication.framework/Versions/A/CoreSymbolication
0x7fff94506000 - 0x7fff94645fe7 com.apple.coreui (2.1 - 431.3) <2E8FEC10-FC5B-3782-92DA-A85C24B7BF7C> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x7fff94646000 - 0x7fff94716ff3 com.apple.CoreUtils (5.1 - 510.31) /System/Library/PrivateFrameworks/CoreUtils.framework/Versions/A/CoreUtils
0x7fff94766000 - 0x7fff947cbff3 com.apple.framework.CoreWiFi (12.0 - 1200.31) /System/Library/PrivateFrameworks/CoreWiFi.framework/Versions/A/CoreWiFi
0x7fff947cc000 - 0x7fff947daff7 com.apple.CrashReporterSupport (10.12 - 827) <802A9B81-E349-348B-90AB-10E40B654250> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport
0x7fff9484c000 - 0x7fff94856ffb com.apple.framework.DFRFoundation (1.0 - 104.25) <7CFF896C-EF22-3941-BB3D-F3615CE4C908> /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
0x7fff94857000 - 0x7fff9485bff3 com.apple.DSExternalDisplay (3.1 - 380) <4B5E3FF0-E8C3-38CC-BF72-418C928956AB> /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
0x7fff9485c000 - 0x7fff94890ff3 com.apple.datadetectors (5.0 - 348.2.1) /System/Library/PrivateFrameworks/DataDetectors.framework/Versions/A/DataDetectors
0x7fff94891000 - 0x7fff94906ffb com.apple.datadetectorscore (7.0 - 539.1) <74595F6C-8283-3C73-9F56-C6FA957F8B94> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x7fff94942000 - 0x7fff94981fff com.apple.DebugSymbols (137 - 137) <58A70B66-2628-3CFE-B103-2200D95FC5F7> /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
0x7fff94982000 - 0x7fff94a93fff com.apple.desktopservices (1.11.5 - 1.11.5) <46A9D4F3-1EF8-373C-98A4-AD48D285E484> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
0x7fff94a98000 - 0x7fff94b6dfff com.apple.DiskImagesFramework (444.50.16 - 444.50.16) <85BC24F9-3DF7-3AFC-B953-DE2CC94D61E9> /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages
0x7fff94bd6000 - 0x7fff94be1fff com.apple.DisplayServicesFW (3.1 - 380) <0BDF6C17-5E5F-33F8-8E99-C7350C6F9667> /System/Library/PrivateFrameworks/DisplayServices.framework/Versions/A/DisplayServices
0x7fff94c26000 - 0x7fff94c28ffb com.apple.EFILogin (2.0 - 2) /System/Library/PrivateFrameworks/EFILogin.framework/Versions/A/EFILogin
0x7fff94d7b000 - 0x7fff951acff7 com.apple.vision.FaceCore (3.3.2 - 3.3.2) <9391D5A3-738C-3136-9D07-518CB43DBADA> /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x7fff951ea000 - 0x7fff9557cff7 com.apple.FinderKit (1.5.5 - 1.5.5) <85D64484-35E0-3500-A651-FD1DD9A1D6C5> /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit
0x7fff96503000 - 0x7fff96503fff libmetal_timestamp.dylib (600.0.49.9) /System/Library/PrivateFrameworks/GPUCompiler.framework/libmetal_timestamp.dylib
0x7fff96510000 - 0x7fff9651bff3 libGPUSupportMercury.dylib (14.0.16) <7EE3DA75-2F9D-3C6D-AECD-F73EA47BE81B> /System/Library/PrivateFrameworks/GPUSupport.framework/Versions/A/Libraries/libGPUSupportMercury.dylib
0x7fff967d4000 - 0x7fff967f0fff com.apple.GenerationalStorage (2.0 - 267.1) <3DE1C580-D089-362D-8582-8DE68A3C5F13> /System/Library/PrivateFrameworks/GenerationalStorage.framework/Versions/A/GenerationalStorage
0x7fff96809000 - 0x7fff96ebbfff com.apple.GeoServices (1.0 - 1228.24.9.30.34) <96BF97F6-8FF2-3FC4-A8C1-498CB7B0D9A0> /System/Library/PrivateFrameworks/GeoServices.framework/Versions/A/GeoServices
0x7fff96f01000 - 0x7fff96f77ff3 com.apple.Heimdal (4.0 - 2.0) <8F9C9041-66D5-36C9-8A4C-1658035C311D> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x7fff96f78000 - 0x7fff96f89fff com.apple.HelpData (2.1.12 - 100.1) /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData
0x7fff97592000 - 0x7fff97599ffb com.apple.IOAccelerator (311.14 - 311.14) <278124AF-02DC-3785-9FA9-14EDB8E5FD56> /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
0x7fff9759b000 - 0x7fff975afff7 com.apple.IOPresentment (1.0 - 29.10) <30DF04EE-10E2-353F-845F-A97B87DF3207> /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
0x7fff975b0000 - 0x7fff975d2fff com.apple.IconServices (74.4 - 74.4) <218DDD05-35F4-3833-B98D-471ED0EBC031> /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x7fff9766e000 - 0x7fff9767eff3 com.apple.IntlPreferences (2.0 - 216) <77C9C2E7-EF9F-34BB-A5E3-B8BEA4226B5F> /System/Library/PrivateFrameworks/IntlPreferences.framework/Versions/A/IntlPreferences
0x7fff976b9000 - 0x7fff97870fff com.apple.LanguageModeling (1.0 - 123.2.5) /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
0x7fff978bc000 - 0x7fff978c0ff7 com.apple.LoginUICore (4.0 - 4.0) <7ADA40B1-995C-3947-8163-2257E7FB9440> /System/Library/PrivateFrameworks/LoginUIKit.framework/Versions/A/Frameworks/LoginUICore.framework/Versions/A/LoginUICore
0x7fff9796c000 - 0x7fff97a2eff3 com.apple.MMCS (1.3 - 385.4) /System/Library/PrivateFrameworks/MMCS.framework/Versions/A/MMCS
0x7fff97ee0000 - 0x7fff97ee3fff com.apple.Mangrove (1.0 - 1) <98814966-FD65-302B-B47E-00928DC34E5C> /System/Library/PrivateFrameworks/Mangrove.framework/Versions/A/Mangrove
0x7fff97fbc000 - 0x7fff97ff0ff3 com.apple.MediaKit (16 - 845) <883DC63F-F90F-3FB9-8C23-9CECD72EBCDE> /System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
0x7fff97ff1000 - 0x7fff98151ffb com.apple.MediaRemote (1.0 - 1) /System/Library/PrivateFrameworks/MediaRemote.framework/Versions/A/MediaRemote
0x7fff98152000 - 0x7fff9816dffb com.apple.MediaServices (1.0 - 1) /System/Library/PrivateFrameworks/MediaServices.framework/Versions/A/MediaServices
0x7fff98191000 - 0x7fff9820aff7 com.apple.MetalPerformanceShaders.MetalPerformanceShaders (1.0 - 1) /System/Library/PrivateFrameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
0x7fff9820b000 - 0x7fff9821bfff com.apple.MobileAssets (1.0 - 339.60.1) <06A9194C-0038-380D-904D-52706BE61E99> /System/Library/PrivateFrameworks/MobileAsset.framework/Versions/A/MobileAsset
0x7fff9836e000 - 0x7fff9837cfff com.apple.MobileKeyBag (2.0 - 1.0) /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
0x7fff9838d000 - 0x7fff983b5ff7 com.apple.MultitouchSupport.framework (368.16 - 368.16) <9E602B4A-22CD-3CF3-B284-78D5123C9AE8> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x7fff98467000 - 0x7fff98472fff com.apple.NetAuth (6.2 - 6.2) <97F487D6-8089-31A8-B68C-6C1EAC6ED1B5> /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth
0x7fff988bf000 - 0x7fff988c1fff com.apple.OAuth (25 - 25) /System/Library/PrivateFrameworks/OAuth.framework/Versions/A/OAuth
0x7fff98d4a000 - 0x7fff98d8bff3 com.apple.PerformanceAnalysis (1.148.3 - 148.3) <4E468BC7-F863-3674-909D-417231EB8C28> /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x7fff98dce000 - 0x7fff98dd5ff3 com.apple.phonenumbers (1.1.1 - 105) /System/Library/PrivateFrameworks/PhoneNumbers.framework/Versions/A/PhoneNumbers
0x7fff993c3000 - 0x7fff993e5fff com.apple.pluginkit.framework (1.0 - 1) <775E1168-9A28-34EC-AACD-B73803B9DDD4> /System/Library/PrivateFrameworks/PlugInKit.framework/Versions/A/PlugInKit
0x7fff99438000 - 0x7fff99472ffb com.apple.ProtectedCloudStorage (1.0 - 1) <8B32A7EC-D371-38E3-A286-F1BE1307F1E1> /System/Library/PrivateFrameworks/ProtectedCloudStorage.framework/Versions/A/ProtectedCloudStorage
0x7fff99473000 - 0x7fff9948dfff com.apple.ProtocolBuffer (1 - 249.1) /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
0x7fff9948e000 - 0x7fff9949dff7 com.apple.QuickLookThumbnailing (1.0 - 1) <173EE873-1700-3FCA-9782-C060FBB5BCAD> /System/Library/PrivateFrameworks/QuickLookThumbnailing.framework/Versions/A/QuickLookThumbnailing
0x7fff994a6000 - 0x7fff994c9ff3 com.apple.RemoteViewServices (2.0 - 124) <6B967FDA-6591-302C-BA0A-76C4856E584E> /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x7fff9a193000 - 0x7fff9a196fff com.apple.SecCodeWrapper (4.0 - 307.50.21) /System/Library/PrivateFrameworks/SecCodeWrapper.framework/Versions/A/SecCodeWrapper
0x7fff9a225000 - 0x7fff9a2b2fff com.apple.Sharing (696.2.67 - 696.2.67) /System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing
0x7fff9a2b3000 - 0x7fff9a2d2ff7 com.apple.shortcut (2.16 - 98) <6C0435B1-83DD-3254-B0D3-3B86C6CE606A> /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut
0x7fff9a2d3000 - 0x7fff9a539feb com.apple.SkyLight (1.600.0 - 170.3) <38AC05EF-3A9E-3E3E-9849-04E0223DF7B9> /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
0x7fff9a718000 - 0x7fff9a724ff7 com.apple.SpeechRecognitionCore (3.3.2 - 3.3.2) <684BD1EA-8268-331C-A5A9-080EB375C658> /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
0x7fff9aaae000 - 0x7fff9ab0ffff com.apple.Suggestions (6.0 - 197) <9DD142A2-82A5-3202-B36C-20E19B4C5D56> /System/Library/PrivateFrameworks/Suggestions.framework/Versions/A/Suggestions
0x7fff9ae10000 - 0x7fff9ae84fdf com.apple.Symbolication (62048.1) <1A30ED19-7532-3F46-9DD3-9879A973D0CF> /System/Library/PrivateFrameworks/Symbolication.framework/Versions/A/Symbolication
0x7fff9b0a4000 - 0x7fff9b0d0ff3 com.apple.framework.SystemAdministration (1.0 - 1.0) /System/Library/PrivateFrameworks/SystemAdministration.framework/Versions/A/SystemAdministration
0x7fff9b2c3000 - 0x7fff9b2c9ff7 com.apple.TCC (1.0 - 1) <911B534B-4AC7-34E4-935E-E42ECD008CBC> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x7fff9b355000 - 0x7fff9b41bff7 com.apple.TextureIO (2.8 - 2.8) <3D61E533-4156-3B21-B7ED-CB823E680DFC> /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
0x7fff9b464000 - 0x7fff9b479ff3 com.apple.ToneKit (1.0 - 1) /System/Library/PrivateFrameworks/ToneKit.framework/Versions/A/ToneKit
0x7fff9b47a000 - 0x7fff9b488ffb com.apple.ToneLibrary (1.0 - 1) /System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/ToneLibrary
0x7fff9b48f000 - 0x7fff9b490fff com.apple.TrustEvaluationAgent (2.0 - 28.50.1) /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
0x7fff9b491000 - 0x7fff9b621ff3 com.apple.UIFoundation (1.0 - 490.7) <2A3063FE-1790-3510-8A0E-AEC581D42B7E> /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
0x7fff9c0f0000 - 0x7fff9c1b0fff com.apple.ViewBridge (283 - 283) <25A635B3-C87C-3D3A-ADF3-539713FA1048> /System/Library/PrivateFrameworks/ViewBridge.framework/Versions/A/ViewBridge
0x7fff9c5fb000 - 0x7fff9c601fff com.apple.XPCService (2.0 - 1) <4B28B225-2105-33F4-9ED0-F04288FF4FB1> /System/Library/PrivateFrameworks/XPCService.framework/Versions/A/XPCService
0x7fff9c64e000 - 0x7fff9c6ccff7 com.apple.iLifeMediaBrowser (2.11.2 - 733) <13B4CC92-9DFE-3C01-A519-6E32CC504662> /System/Library/PrivateFrameworks/iLifeMediaBrowser.framework/Versions/A/iLifeMediaBrowser
0x7fff9c6d2000 - 0x7fff9c6d4ffb com.apple.loginsupport (1.0 - 1) /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport
0x7fff9c700000 - 0x7fff9c727ff7 com.apple.contacts.vCard (1.0 - 2250.11) /System/Library/PrivateFrameworks/vCard.framework/Versions/A/vCard
0x7fff9c729000 - 0x7fff9c744ff7 libCRFSuite.dylib (34) /usr/lib/libCRFSuite.dylib
0x7fff9c745000 - 0x7fff9c750fff libChineseTokenizer.dylib (21) <0886E908-A825-36AF-B94B-2361FD8BC2A1> /usr/lib/libChineseTokenizer.dylib
0x7fff9c751000 - 0x7fff9c7e1ff7 libCoreStorage.dylib (540.30.1) <85C0A366-F901-36E3-854A-FE8A14A04A72> /usr/lib/libCoreStorage.dylib
0x7fff9c7e2000 - 0x7fff9c7e3ff3 libDiagnosticMessagesClient.dylib (102) <84A04D24-0E60-3810-A8C0-90A65E2DF61A> /usr/lib/libDiagnosticMessagesClient.dylib
0x7fff9c7e4000 - 0x7fff9c9f7fff libFosl_dynamic.dylib (16.39) /usr/lib/libFosl_dynamic.dylib
0x7fff9ca13000 - 0x7fff9ca1afff libMatch.1.dylib (27) <70D4BD2A-9383-37F2-B0D6-9B592D236601> /usr/lib/libMatch.1.dylib
0x7fff9ca1b000 - 0x7fff9ca1bfff libOpenScriptingUtil.dylib (172) <90743888-C1E8-34E3-924E-1A754B2B63B9> /usr/lib/libOpenScriptingUtil.dylib
0x7fff9ca1c000 - 0x7fff9ca20ffb libScreenReader.dylib (477.40.6) /usr/lib/libScreenReader.dylib
0x7fff9ca21000 - 0x7fff9ca22ffb libSystem.B.dylib (1238.60.2) /usr/lib/libSystem.B.dylib
0x7fff9ca8e000 - 0x7fff9cab9ff3 libarchive.2.dylib (41.70.1) /usr/lib/libarchive.2.dylib
0x7fff9caba000 - 0x7fff9cb36fc7 libate.dylib (1.12.13) /usr/lib/libate.dylib
0x7fff9cb3a000 - 0x7fff9cb3aff3 libauto.dylib (187) <34388D0B-C539-3C1B-9408-2BC152162E43> /usr/lib/libauto.dylib
0x7fff9cb3b000 - 0x7fff9cb4bff3 libbsm.0.dylib (34) <20084796-B04D-3B35-A003-EA11459557A9> /usr/lib/libbsm.0.dylib
0x7fff9cb4c000 - 0x7fff9cb5aff7 libbz2.1.0.dylib (38) /usr/lib/libbz2.1.0.dylib
0x7fff9cb5b000 - 0x7fff9cbb1ff7 libc++.1.dylib (307.5) <0B43BB5D-E6EB-3464-8DE9-B41AC8ED9D1C> /usr/lib/libc++.1.dylib
0x7fff9cbb2000 - 0x7fff9cbdbff7 libc++abi.dylib (307.4) /usr/lib/libc++abi.dylib
0x7fff9cbdc000 - 0x7fff9cbecffb libcmph.dylib (6) <2B5D405E-2D0B-3320-ABD6-622934C86ABE> /usr/lib/libcmph.dylib
0x7fff9cbed000 - 0x7fff9cc03fcf libcompression.dylib (39) /usr/lib/libcompression.dylib
0x7fff9cc04000 - 0x7fff9cc04ff7 libcoretls.dylib (121.50.4) <64B1001E-10F6-3542-A3B2-C4B49F51817F> /usr/lib/libcoretls.dylib
0x7fff9cc05000 - 0x7fff9cc06ff3 libcoretls_cfhelpers.dylib (121.50.4) <1A10303E-5EB0-3C7C-9165-021FCDFD934D> /usr/lib/libcoretls_cfhelpers.dylib
0x7fff9ccc0000 - 0x7fff9cda5ff7 libcrypto.0.9.8.dylib (64.50.6) /usr/lib/libcrypto.0.9.8.dylib
0x7fff9cf37000 - 0x7fff9cf42fff libcsfde.dylib (540.30.1) <0C2B183B-16D9-3D5F-962D-0A09C7063211> /usr/lib/libcsfde.dylib
0x7fff9cf43000 - 0x7fff9cf96ff7 libcups.2.dylib (450) <9950BFCB-7882-33C9-9ECF-CE66773C5657> /usr/lib/libcups.2.dylib
0x7fff9cf97000 - 0x7fff9cfe9fff libcurl.4.dylib (95.70.1) <8987EFA8-0BF6-3E2A-8F04-7BD5803B9A37> /usr/lib/libcurl.4.dylib
0x7fff9cfea000 - 0x7fff9cff1ff3 libdscsym.dylib (148.3) /usr/lib/libdscsym.dylib
0x7fff9d013000 - 0x7fff9d013fff libenergytrace.dylib (15) /usr/lib/libenergytrace.dylib
0x7fff9d023000 - 0x7fff9d028ff7 libheimdal-asn1.dylib (498.50.8) /usr/lib/libheimdal-asn1.dylib
0x7fff9d029000 - 0x7fff9d11bff7 libiconv.2.dylib (50) <42125B35-81D7-3FC4-9475-A26DBE10884D> /usr/lib/libiconv.2.dylib
0x7fff9d11c000 - 0x7fff9d341ffb libicucore.A.dylib (57166.0.1) /usr/lib/libicucore.A.dylib
0x7fff9d347000 - 0x7fff9d348fff liblangid.dylib (126) <2085E7A7-9A34-3735-87F4-F174EF8EABF0> /usr/lib/liblangid.dylib
0x7fff9d349000 - 0x7fff9d362ffb liblzma.5.dylib (10) <44BD0279-99DD-36B5-8A6E-C11432E2098D> /usr/lib/liblzma.5.dylib
0x7fff9d363000 - 0x7fff9d379ff7 libmarisa.dylib (5) <9030D214-5D0F-30CB-AC03-902C63909362> /usr/lib/libmarisa.dylib
0x7fff9d37a000 - 0x7fff9d622ff7 libmecabra.dylib (744.8) /usr/lib/libmecabra.dylib
0x7fff9d655000 - 0x7fff9d6cfff3 libnetwork.dylib (856.60.1) <191E99F5-4723-3180-8013-02AF2F9AE4B8> /usr/lib/libnetwork.dylib
0x7fff9d6d0000 - 0x7fff9daa2047 libobjc.A.dylib (709.1) <70614861-0340-32E2-85ED-FE65759CDFFA> /usr/lib/libobjc.A.dylib
0x7fff9daa3000 - 0x7fff9daa4fff libodfde.dylib (23.50.1) <744F1E66-11EB-3A4D-8944-722F39C55278> /usr/lib/libodfde.dylib
0x7fff9daa5000 - 0x7fff9daa9fff libpam.2.dylib (21.30.1) <71EB0D88-DE84-3C8D-A2C5-58AA282BC5BC> /usr/lib/libpam.2.dylib
0x7fff9daaa000 - 0x7fff9dadbfff libpcap.A.dylib (67.60.1) /usr/lib/libpcap.A.dylib
0x7fff9daf8000 - 0x7fff9db14ffb libresolv.9.dylib (64) /usr/lib/libresolv.9.dylib
0x7fff9db15000 - 0x7fff9db4efff libsandbox.1.dylib (592.70.1) <9C428C49-9D9A-3F9F-9573-BF5202D1F933> /usr/lib/libsandbox.1.dylib
0x7fff9db4f000 - 0x7fff9db61ffb libsasl2.2.dylib (209) <32107C59-22C6-3049-B86E-9C2F85FF549B> /usr/lib/libsasl2.2.dylib
0x7fff9db62000 - 0x7fff9db63ff3 libspindump.dylib (231.3) /usr/lib/libspindump.dylib
0x7fff9db64000 - 0x7fff9dcb2ff7 libsqlite3.dylib (254.8) <1ECF7DF7-7A07-3B4B-A63B-F4EFF6BC7ACF> /usr/lib/libsqlite3.dylib
0x7fff9dda3000 - 0x7fff9dda6ff7 libutil.dylib (47.30.1) <88CC63B3-0EDF-306E-9AB5-D87EBE0F3F16> /usr/lib/libutil.dylib
0x7fff9dda7000 - 0x7fff9ddb4fff libxar.1.dylib (357) <69547C64-E811-326F-BBED-490C6361BDCB> /usr/lib/libxar.1.dylib
0x7fff9ddb5000 - 0x7fff9dea4fff libxml2.2.dylib (30.17) /usr/lib/libxml2.2.dylib
0x7fff9dea5000 - 0x7fff9decefff libxslt.1.dylib (15.9) <00735AD5-B62D-3E83-86AC-5533E4E2B102> /usr/lib/libxslt.1.dylib
0x7fff9decf000 - 0x7fff9dee0ff3 libz.1.dylib (67) <46E3FFA2-4328-327A-8D34-A03E20BFFB8E> /usr/lib/libz.1.dylib
0x7fff9deef000 - 0x7fff9def3ff7 libcache.dylib (79) <093A4DAB-8385-3D47-A350-E20CB7CCF7BF> /usr/lib/system/libcache.dylib
0x7fff9def4000 - 0x7fff9defefff libcommonCrypto.dylib (60092.50.5) <8A64D1B0-C70E-385C-92F0-E669079FDA90> /usr/lib/system/libcommonCrypto.dylib
0x7fff9deff000 - 0x7fff9df06fff libcompiler_rt.dylib (62) <55D47421-772A-32AB-B529-1A46C2F43B4D> /usr/lib/system/libcompiler_rt.dylib
0x7fff9df07000 - 0x7fff9df0ffff libcopyfile.dylib (138) <819BEA3C-DF11-3E3D-A1A1-5A51C5BF1961> /usr/lib/system/libcopyfile.dylib
0x7fff9df10000 - 0x7fff9df93fdf libcorecrypto.dylib (442.50.19) <65D7165E-2E71-335D-A2D6-33F78E2DF0C1> /usr/lib/system/libcorecrypto.dylib
0x7fff9df94000 - 0x7fff9dfc5fff libdispatch.dylib (703.50.37) <6582BAD6-ED27-3B30-B620-90B1C5A4AE3C> /usr/lib/system/libdispatch.dylib
0x7fff9dfc6000 - 0x7fff9dfcbffb libdyld.dylib (433.5) <9B2AC56D-107C-3541-A127-9094A751F2C9> /usr/lib/system/libdyld.dylib
0x7fff9dfcc000 - 0x7fff9dfccffb libkeymgr.dylib (28) <7AA011A9-DC21-3488-BF73-3B5B14D1FDD6> /usr/lib/system/libkeymgr.dylib
0x7fff9dfcd000 - 0x7fff9dfd9fff libkxld.dylib (3789.70.16) /usr/lib/system/libkxld.dylib
0x7fff9dfda000 - 0x7fff9dfdafff liblaunch.dylib (972.70.1) /usr/lib/system/liblaunch.dylib
0x7fff9dfdb000 - 0x7fff9dfe0ff3 libmacho.dylib (898) <17D5D855-F6C3-3B04-B680-E9BF02EF8AED> /usr/lib/system/libmacho.dylib
0x7fff9dfe1000 - 0x7fff9dfe3ff3 libquarantine.dylib (85.50.1) <12448CC2-378E-35F3-BE33-9DC395A5B970> /usr/lib/system/libquarantine.dylib
0x7fff9dfe4000 - 0x7fff9dfe5ffb libremovefile.dylib (45) <38D4CB9C-10CD-30D3-8B7B-A515EC75FE85> /usr/lib/system/libremovefile.dylib
0x7fff9dfe6000 - 0x7fff9dffeff7 libsystem_asl.dylib (349.50.5) <096E4228-3B7C-30A6-8B13-EC909A64499A> /usr/lib/system/libsystem_asl.dylib
0x7fff9dfff000 - 0x7fff9dfffff7 libsystem_blocks.dylib (67) <10DC5404-73AB-35B3-A277-A8AFECB476EB> /usr/lib/system/libsystem_blocks.dylib
0x7fff9e000000 - 0x7fff9e08dfef libsystem_c.dylib (1158.50.2) /usr/lib/system/libsystem_c.dylib
0x7fff9e08e000 - 0x7fff9e091ffb libsystem_configuration.dylib (888.60.2) /usr/lib/system/libsystem_configuration.dylib
0x7fff9e092000 - 0x7fff9e095fff libsystem_coreservices.dylib (41.4) <7D26DE79-B424-3450-85E1-F7FAB32714AB> /usr/lib/system/libsystem_coreservices.dylib
0x7fff9e096000 - 0x7fff9e0aefff libsystem_coretls.dylib (121.50.4) /usr/lib/system/libsystem_coretls.dylib
0x7fff9e0af000 - 0x7fff9e0b5fff libsystem_dnssd.dylib (765.50.9) /usr/lib/system/libsystem_dnssd.dylib
0x7fff9e0b6000 - 0x7fff9e0dfff7 libsystem_info.dylib (503.50.4) <611DB84C-BF70-3F92-8702-B9F28A900920> /usr/lib/system/libsystem_info.dylib
0x7fff9e0e0000 - 0x7fff9e102ff7 libsystem_kernel.dylib (3789.70.16) <34B1F16C-BC9C-3C5F-9045-0CAE91CB5914> /usr/lib/system/libsystem_kernel.dylib
0x7fff9e103000 - 0x7fff9e14afe7 libsystem_m.dylib (3121.6) <86D499B5-BBDC-3D3B-8A4E-97AE8E6672A4> /usr/lib/system/libsystem_m.dylib
0x7fff9e14b000 - 0x7fff9e169ff7 libsystem_malloc.dylib (116.50.8) /usr/lib/system/libsystem_malloc.dylib
0x7fff9e16a000 - 0x7fff9e1c3ffb libsystem_network.dylib (856.60.1) <369D0221-56CA-3C3E-9EDE-94B41CAE77B7> /usr/lib/system/libsystem_network.dylib
0x7fff9e1c4000 - 0x7fff9e1cdff3 libsystem_networkextension.dylib (563.60.2) /usr/lib/system/libsystem_networkextension.dylib
0x7fff9e1ce000 - 0x7fff9e1d7ff3 libsystem_notify.dylib (165.20.1) /usr/lib/system/libsystem_notify.dylib
0x7fff9e1d8000 - 0x7fff9e1e0fe7 libsystem_platform.dylib (126.50.8) <897462FD-B318-321B-A554-E61982630F7E> /usr/lib/system/libsystem_platform.dylib
0x7fff9e1e1000 - 0x7fff9e1ebff7 libsystem_pthread.dylib (218.60.3) /usr/lib/system/libsystem_pthread.dylib
0x7fff9e1ec000 - 0x7fff9e1efff7 libsystem_sandbox.dylib (592.70.1) <4B92EC49-ACD0-36AE-B07A-A2B8152EAF9D> /usr/lib/system/libsystem_sandbox.dylib
0x7fff9e1f0000 - 0x7fff9e1f1ff3 libsystem_secinit.dylib (24.50.4) /usr/lib/system/libsystem_secinit.dylib
0x7fff9e1f2000 - 0x7fff9e1f9ffb libsystem_symptoms.dylib (532.50.47) <3390E07C-C1CE-348F-ADBD-2C5440B45EAA> /usr/lib/system/libsystem_symptoms.dylib
0x7fff9e1fa000 - 0x7fff9e20dff7 libsystem_trace.dylib (518.70.1) /usr/lib/system/libsystem_trace.dylib
0x7fff9e20e000 - 0x7fff9e213ffb libunwind.dylib (35.3) <3D50D8A8-C460-334D-A519-2DA841102C6B> /usr/lib/system/libunwind.dylib
0x7fff9e214000 - 0x7fff9e23dff7 libxpc.dylib (972.70.1) /usr/lib/system/libxpc.dylib

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 7373
thread_create: 0
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=389.5M resident=0K(0%) swapped_out_or_unallocated=389.5M(100%)
Writable regions: Total=332.4M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=332.4M(100%)

                            VIRTUAL   REGION 

REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 512K 5
Activity Tracing 256K 2
CG backing stores 12.1M 5
CG image 688K 73
CoreAnimation 248K 16
CoreUI image data 4568K 32
CoreUI image file 300K 6
Foundation 40K 3
Image IO 12K 2
Kernel Alloc Once 8K 2
MALLOC 263.9M 69
MALLOC guard page 48K 10
Memory Tag 242 12K 2
Memory Tag 251 56K 5
OpenCL 16K 3
OpenGL GLSL 256K 4
STACK GUARD 56.1M 21
Stack 17.6M 21
VM_ALLOCATE 16.7M 47
__DATA 46.5M 347
__GLSLBUILTINS 2588K 2
__IMAGE 528K 2
__LINKEDIT 120.5M 40
__TEXT 269.0M 341
__UNICODE 556K 2
mapped file 102.9M 203
shared memory 16.9M 18
=========== ======= =======
TOTAL 932.7M 1256

Model: MacBookPro11,3, BootROM MBP112.0138.B40, 4 processors, Intel Core i7, 2.5 GHz, 16 GB, SMC 2.19f12
Graphics: Intel Iris Pro, Intel Iris Pro, Built-In
Graphics: NVIDIA GeForce GT 750M, NVIDIA GeForce GT 750M, PCIe, 2048 MB
Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533641465238412D50422020
Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533641465238412D50422020
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x134), Broadcom BCM43xx 1.0 (7.21.171.130.1a1)
Bluetooth: Version 5.0.5f1, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SM0512F, 500.28 GB
USB Device: USB 3.0 Bus
USB Device: Apple Internal Keyboard / Trackpad
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
USB Device: Atreus
Thunderbolt Bus: MacBook Pro, Apple Inc., 17.1

define pi?

I know I can just wrap my whole script in a let, but this seems like a common enough case that it might be worth including by default :)

Consistent crash on startup

I'm on Mac OS 10.12.6, and I'm trying to run the ao-guile-repl branch. (I know that branch is marked as deprecated, but the master branch is marked as not ready yet, so I figured it was the best bet... but if I just shouldn't be trying to use that older branch, then please let me know!)

I got everything installed & compiled through brew & git, but when I actually double-click ao-guile, I just get the following message in a Terminal window every time:

Andrews-MacBook-Air:~ andrew$ /Users/andrew/ao/bin/ao-guile ; exit;
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /Users/andrew/ao/bin/ao-guile
;;; WARNING: compilation of /Users/andrew/ao/bin/ao-guile failed:
;;; ERROR: In procedure scm_to_utf8_stringn: Wrong type argument in position 1 (expecting string): #f
Backtrace:
          11 (primitive-load "/Users/andrew/ao/bin/ao-guile")
In ice-9/eval.scm:
   721:20 10 (primitive-eval (use-modules ((ice-9 readline) # (…))))
In ice-9/psyntax.scm:
  1234:36  9 (expand-top-sequence ((use-modules ((ice-9 #) # (…)))) _ …)
  1181:24  8 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   284:10  7 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3369:20  6 (process-use-modules _)
   230:17  5 (map1 (((ice-9 readline) #:select (write-history # #))))
  3370:31  4 (_ ((ice-9 readline) #:select (write-history # #)))
  2805:10  3 (resolve-interface (ice-9 readline) #:select _ #:hide _ …)
   268:13  2 (for-each #<procedure 1103f7980 at ice-9/boot-9.scm:28…> …)
  2810:38  1 (_ _)
In unknown file:
           0 (scm-error misc-error #f "~A" ("no binding `history-f…") …)

ERROR: In procedure scm-error:
ERROR: no binding `history-file' in module (ice-9 readline)
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

Changing render parameters doesn't cancel renders in progress

In short: if I open the render options window, and punch in a resolution value that will take 60 seconds to render, then immediately change it to something that should take 1 second to render, I will still have to wait 61 seconds to see it.

Changing any of the parameter values should immediately cancel any renders in progress, to start the new render as soon as possible (since the user has already indicated they're not interested in whatever the previous render was). In the case of renders that take hours, I didn't realise I was making myself wait for far longer than I needed to, since I was switching from my 'preview' settings to my 'final' settings by changing both the resolution value and the quality value, which I didn't realise was essentially starting TWO rendering jobs, back to back, each taking several hours to complete.

I can work around this by changing the values, saving, quitting, and relaunching Studio, but it would be nice not to have to bother -- and extra nice for people who haven't realised that this is what Studio is doing, yet :)

Testcase findBounds/Moved circle fails

$ ./ao/test/ao-test findBounds

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ao-test is a Catch v1.1 b3 host application.
Run with -? for options

-------------------------------------------------------------------------------
findBounds
  Moved circle
-------------------------------------------------------------------------------
/home/nick/ao/ao/test/bounds.cpp:28
...............................................................................

/home/nick/ao/ao/test/bounds.cpp:68: FAILED:
  REQUIRE( r.lower.y() == Approx(0.6).epsilon(0.001) )
with expansion:
  -0.0000305176 == Approx( 0.6 )
with messages:
  r.lower := -3.05176e-05
  -3.05176e-05
          -inf
  r.upper := 0.600006
  0.600006
       inf

===============================================================================
test cases:  1 |  0 passed | 1 failed
assertions: 56 | 55 passed | 1 failed

Crash when passing zero arguments to *

Build: a92168e

Steps to reproduce:

  1. Open tutorial.ao
  2. Find the expression (* x x)
  3. Delete both x's.
  4. Studio crashes.

Here's a trace in gdb:

GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
[snipped]
QWidget::setWindowModified: The window title does not contain a '[*]' placeholder
[snipped]

Thread 6 "QThread" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffda7a9700 (LWP 2050)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff531d3fa in __GI_abort () at abort.c:89
#2  0x00007ffff5359bd0 in __libc_message (do_abort=do_abort@entry=2, 
    fmt=fmt@entry=0x7ffff544edd0 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175
#3  0x00007ffff535ff96 in malloc_printerr (action=3, 
    str=0x7ffff544b9c8 "malloc(): memory corruption", ptr=<optimized out>, 
    ar_ptr=<optimized out>) at malloc.c:5049
#4  0x00007ffff5362059 in _int_malloc (av=av@entry=0x7fffd0000020, 
    bytes=bytes@entry=164) at malloc.c:3512
#5  0x00007ffff5363f34 in __GI___libc_malloc (bytes=164) at malloc.c:2928
#6  0x00007ffff795ff50 in Eigen::internal::handmade_aligned_malloc (size=132)
    at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:88
#7  Eigen::internal::aligned_malloc (size=132)
    at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:164
#8  Eigen::internal::conditional_aligned_malloc<true> (size=132)
    at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:214
#9  Eigen::internal::conditional_aligned_new_auto<float, true> (size=33)
    at /usr/include/eigen3/Eigen/src/Core/util/Memory.h:374
#10 Eigen::DenseStorage<float, -1, 3, -1, 0>::resize (cols=11, size=33, 
    this=0x7fffda7a86c8)
    at /usr/include/eigen3/Eigen/src/Core/DenseStorage.h:477
#11 Eigen::PlainObjectBase<Eigen::Array<float, 3, -1, 0, 3, -1> >::resize (
    cols=11, rows=3, this=0x7fffda7a86c8)
    at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:293
#12 Eigen::PlainObjectBase<Eigen::Array<float, 3, -1, 0, 3, -1> >::_init2<int, unsigned long> (cols=11, rows=3, this=0x7fffda7a86c8)
    at /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:739
#13 Eigen::Array<float, 3, -1, 0, 3, -1>::Array<int, unsigned long> (
    val1=<optimized out>, val0=<optimized out>, this=0x7fffda7a86c8)
    at /usr/include/eigen3/Eigen/src/Core/Array.h:181
#14 Kernel::DerivEvaluator::DerivEvaluator (this=0x7fffda7a86a8, t=..., 
    vars=...) at /home/nick/ao/ao/src/eval/eval_deriv.cpp:31
#15 0x00007ffff7960672 in Kernel::FeatureEvaluator::FeatureEvaluator (
    this=<optimized out>, t=..., vars=...)
    at /home/nick/ao/ao/src/eval/eval_feature.cpp:31
#16 0x0000555555583a11 in Kernel::XTreeEvaluator::XTreeEvaluator (
    vars=std::map with 0 elements, t=..., this=<optimized out>)
    at /home/nick/ao/ao/src/../include/ao/render/brep/eval_xtree.hpp:36
#17 Shape::Shape (this=0x7fffd0149b60, t=..., 
    vars=std::shared_ptr (empty) 0x7fffda7a88c0)
    at /home/nick/ao/gui/src/shape.cpp:36
#18 0x0000555555591080 in _Interpreter::eval (this=0x555555ad5730)
    at /home/nick/ao/gui/src/interpreter.cpp:187
#19 0x00007ffff61d0499 in QObject::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007ffff6a86b8c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff6a8e341 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff61a39e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff61a616d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff61f7c43 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff2c1b7f7 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007ffff2c1ba60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007ffff2c1bb0c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007ffff61f804f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007ffff61a19ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007ffff5fcf0f3 in QThread::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff5fd3da8 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007ffff72c1494 in start_thread (arg=0x7fffda7a9700)
    at pthread_create.c:333
#33 0x00007ffff53d1aff in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
(gdb) quit
A debugging session is active.

	Inferior 1 [process 2042] will be killed.

Quit anyway? (y or n) y

Issues building on Linux

I'm getting this error during compile:

$ make clean ; make all
[  1%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/eval/evaluator.cpp.o
[  3%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/eval/result.cpp.o
[  5%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/eval/feature.cpp.o
[  6%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/render/discrete/heightmap.cpp.o
[  8%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/render/discrete/voxels.cpp.o
[ 10%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/render/brep/xtree.cpp.o
[ 12%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/render/brep/contours.cpp.o
In file included from /home/nick/ao/ao/src/render/brep/contours.cpp:5:0:
/home/nick/ao/ao/src/../include/ao/render/brep/xtree.hpp:34:18: error: ‘std::atomic_bool’ has not been declared
             std::atomic_bool& cancel);
                  ^~~~~~~~~~~
/home/nick/ao/ao/src/../include/ao/render/brep/xtree.hpp:44:18: error: ‘std::atomic_bool’ has not been declared
             std::atomic_bool& cancel);
                  ^~~~~~~~~~~
/home/nick/ao/ao/src/../include/ao/render/brep/xtree.hpp:155:16: error: ‘std::atomic_bool’ has not been declared
           std::atomic_bool& cancel);
                ^~~~~~~~~~~
ao/src/CMakeFiles/ao-kernel.dir/build.make:206: recipe for target 'ao/src/CMakeFiles/ao-kernel.dir/render/brep/contours.cpp.o' failed
make[2]: *** [ao/src/CMakeFiles/ao-kernel.dir/render/brep/contours.cpp.o] Error 1
CMakeFiles/Makefile2:109: recipe for target 'ao/src/CMakeFiles/ao-kernel.dir/all' failed
make[1]: *** [ao/src/CMakeFiles/ao-kernel.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2


$ git rev-parse --short HEAD
5377b53

Build fails on aarch64

Hello Ao,

When I try to build Ao "ao-guile-repl" branch on aarch64 the build fails in the efsw directory with an error from inotify_nosys.h, saying "Unsupported architecture!"

The following patch fixes this. Please forward to the efsw devs.

--- ao/ui/vendor/efsw/src/efsw/inotify-nosys.h  2017-12-14 16:27:16.125871099 -0600
+++ ao/ui/vendor/efsw/src/efsw/inotify-nosys.h  2017-12-14 16:26:39.786022981 -0600
@@ -69,6 +69,11 @@
 # define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317)
 # define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318)

+#elif defined (__aarch64__)
+# define __NR_inotify_init 1043
+# define __NR_inotify_add_watch 27
+# define __NR_inotify_rm_watch 28
+
 #elif defined (__frv__)
 # define __NR_inotify_init 291
 # define __NR_inotify_add_watch 292

Argument order for shape-taking (nesting) functions

So, I'll be honest: I only recently discovered the "Shape reference" in the help menu (was it there all along?), and prior to that I had written a lot of my own versions of those same functions, not knowing they already existed.

I'm sure there's a lot wrong with my approach (I know barely anything about Scheme), but there's one thing about my version that I miss, and it's that the values came before the shape, which lent itself to writing things like:

(translate x y z 0.1 0.2 0.3 (lambda (x y z)
(rot3dY x y z 0.1 (lambda (x y z)
(scale x y z 1.0 1.5 1.0 (lambda (x y z)
    (mysphere x y z 0.2)
)) )) ))

I won't miss all those verbose 'x y z' and 'lambda's that I couldn't figure out how to get rid of, but writing it this way let me keep the values on the same line as the function that they're referring to, whereas with things like 'move' I'd have to write it this way:

(move
(rotate-y
(scale-y
    (mysphere x y z 0.2)
1.5)
0.1)
#[0.1 0.2 0.3])

where the values are a pretty big distance away from the name describing what they are—and also in reverse order.

I understand that this would be a breaking change, but I figured I'd bring it up anyway (if only to also implicitly ask if there's some more reasonable way of approaching this that I'm unaware of?)

Build fails at src/eval/evaluator.cpp

I'm using Ubuntu trusty, and installed the dependencies as:

sudo add-apt-repository -y ppa:keithw/glfw3
sudo apt-get update
sudo apt-get install -y libglfw3 libglfw3-dev libepoxy0 libepoxy-dev
cmake -G Ninja ..

FAILED: kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o
/usr/bin/c++ -Wall -Wextra -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE -isystem ../vendor -I../kernel/include -MMD -MT kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o -MF kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o.d -o kernel/CMakeFiles/ao-kernel.dir/src/eval/evaluator.cpp.o -c ../
kernel/src/eval/evaluator.cpp
In file included from ../kernel/include/ao/kernel/tree/tree.hpp:26:0,
from ../kernel/src/eval/evaluator.cpp:24:
../kernel/include/ao/kernel/tree/opcode.hpp:54:5: warning: multi-line comment [-Wcomment]
// /
^
../kernel/include/ao/kernel/tree/opcode.hpp:56:5: warning: multi-line comment [-Wcomment]
// / \ /
^
../kernel/include/ao/kernel/tree/opcode.hpp:58:5: warning: multi-line comment [-Wcomment]
// / \ / \ /
^
../kernel/src/eval/evaluator.cpp: In constructor ‘Evaluator::Evaluator(const Tree*, const mat4&)’:
../kernel/src/eval/evaluator.cpp:49:17: error: ‘align’ is not a member of ‘std’
std::align(alignment, sizeof(Clause) * count, buf, bytes));
^
[22/71] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/quadtree.cpp.o
In file included from ../kernel/include/ao/kernel/eval/clause.hpp:23:0,
from ../kernel/include/ao/kernel/eval/evaluator.hpp:29,
from ../kernel/include/ao/kernel/render/xtree.hpp:28,
from ../kernel/include/ao/kernel/render/quadtree.hpp:21,
from ../kernel/src/render/quadtree.cpp:20:
../kernel/include/ao/kernel/tree/opcode.hpp:54:5: warning: multi-line comment [-Wcomment]
// /
^
../kernel/include/ao/kernel/tree/opcode.hpp:56:5: warning: multi-line comment [-Wcomment]
// / \ /
^
../kernel/include/ao/kernel/tree/opcode.hpp:58:5: warning: multi-line comment [-Wcomment]
// / \ / \ /
^
[23/71] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/render/octree.cpp.o
In file included from ../kernel/include/ao/kernel/eval/clause.hpp:23:0,
from ../kernel/include/ao/kernel/eval/evaluator.hpp:29,
from ../kernel/include/ao/kernel/render/xtree.hpp:28,
from ../kernel/include/ao/kernel/render/octree.hpp:21,
from ../kernel/src/render/octree.cpp:21:
../kernel/include/ao/kernel/tree/opcode.hpp:54:5: warning: multi-line comment [-Wcomment]
// /
^
../kernel/include/ao/kernel/tree/opcode.hpp:56:5: warning: multi-line comment [-Wcomment]
// / \ /
^
../kernel/include/ao/kernel/tree/opcode.hpp:58:5: warning: multi-line comment [-Wcomment]
// / \ / \ /
^
ninja: build stopped: subcommand failed.

Native transformation functions ignore changes to x,y,z?

There's a decent chance I'm just misunderstanding how these functions are meant to be used, but, in case it's something like #44 , I might as well ask:

I'm trying out the native transformation functions for the first time, and while they mostly work alright in a vacuum, it seems like they ignore any existing changes that had already taken place to the arguments?

I've attached a very simple example nesttest.zip where I use (let ((x (abs x))) ... ) to make a shape symmetrical, once using my translate function on the shape, and once using the native move function (with different Y values so you can see them at the same time). Things inside move seem to hold a reference to lambda-shape's original x value, rather than the one defined in the 'let'?

I guess my question is, how can I write a function that will make changes to the space arguments that will actually be acknowledged by native functions like move? (Or just, am I doing any of this the intended way at all? I know very little about Scheme, and even less about what Ao is doing internally... And unfortunately, I don't really know enough C++ or enough advanced math to make much sense of what the source says!)

exception after changing watched file

OSX 10.11.6

I can watch a file and its contents will be displayed, but after saving the file ao-guile quits after printing

guile: uncaught throw to wrong-type-arg: (scm_i_foreign_call Wrong type argument in position ~A (expecting ~A): ~S (1 POINTER_P #<unspecified>) (#<unspecified>))

The watched file contains

(define (neg x) (* -1 x))

(define (chop inner outer)
  (difference
      (cube (map neg (list outer outer outer))
                     (list outer outer outer))
      (union
          (cube (map neg (list inner outer outer))
                         (list inner outer outer))
          (cube (map neg (list outer inner outer))
                         (list outer inner outer))
          (cube (map neg (list outer outer inner))
                         (list outer outer inner)))))

(define m (difference
              (difference 
                  (sphere '(0 0 0) 1)  
                  (sphere '(0 0 0) .8) )
              (chop .1 1)))

(ao-show m)

Build crashes while linking libao

While rebuilding after patching ao to fix #9, I missed GL/glcorearb.h:

/usr/local/include/GLFW/glfw3.h:131:28: fatal error: GL/glcorearb.h: No such file or directory
#include <GL/glcorearb.h>
^
compilation terminated.
[49/71] Building CXX object ui/CMakeFiles/ao-ui.dir/src/task.cpp.o
FAILED: ui/CMakeFiles/ao-ui.dir/src/task.cpp.o
/usr/bin/c++ -DGLFW_INCLUDE_GLCOREARB -Wall -Wextra -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE -isystem ../vendor -isystem /usr/local/include -isystem /usr/inclu
de/libdrm -I../ui/include -I../ui/vendor -I../kernel/include -MMD -MT ui/CMakeFiles/ao-ui.dir/src/task.cpp.o -MF ui/CMakeFiles/ao-ui.dir/src/task.cpp.o.d -o ui/CMakeFiles/ao-ui.dir/src/task.cpp
.o -c ../ui/src/task.cpp
In file included from ../ui/include/ao/ui/gl/core.hpp:28:0,
from ../ui/include/ao/ui/worker.hpp:24,
from ../ui/src/task.cpp:20:
/usr/local/include/GLFW/glfw3.h:131:28: fatal error: GL/glcorearb.h: No such file or directory
#include <GL/glcorearb.h>
^
compilation terminated.

So I downloaded it from here and placed it locally as /usr/include/GL/glcorearb.h. Rebuilding after that brings this:

28/28] Linking CXX executable test/ao-test
FAILED: test/ao-test
: && /usr/bin/c++ -Wall -Wextra -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE test/CMakeFiles/ao-test.dir//ui/test/gl.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/heightmap.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/region.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/shapes.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/dc.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/octree.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/eval.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/mesh.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/jit.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/matrix.cpp.o test/CMakeFiles/ao-tes
t.dir//kernel/test/affine.cpp.o test/CMakeFiles/ao-test.dir//kernel/test/subregion.cpp.o test/CMakeFiles/ao-test.dir/__/kernel/test/avx.cpp.o test/CMakeFiles/ao-test.dir/main.cpp.o test/CMakeFiles/ao-test.dir/api.cpp.o -o test/ao-test -rdynamic bind/libao.so ui/libao-ui.a kernel/libao-kernel.a -lpng -lz -lglfw3 -lepoxy ui/vendor/efsw/libefsw.so -lpthread -Wl,-rpath,/home/brian/git/ao/build/bind:/home/brian/git/ao/build/ui/vendor/efsw && :
bind/libao.so: undefined reference to XConvertSelection' bind/libao.so: undefined reference toXUnsetICFocus'
bind/libao.so: undefined reference to XSetScreenSaver' bind/libao.so: undefined reference toXRRSetCrtcGamma'
bind/libao.so: undefined reference to XRRGetOutputInfo' bind/libao.so: undefined reference toXrmUniqueQuark'
bind/libao.so: undefined reference to XAllocSizeHints' bind/libao.so: undefined reference toXFreeColormap'
bind/libao.so: undefined reference to XcursorImageLoadCursor' bind/libao.so: undefined reference toXRRGetScreenResourcesCurrent'
bind/libao.so: undefined reference to XRRAllocGamma' bind/libao.so: undefined reference toXRRQueryVersion'
bind/libao.so: undefined reference to XSendEvent' bind/libao.so: undefined reference toXGetWindowProperty'
bind/libao.so: undefined reference to XGetIMValues' bind/libao.so: undefined reference toXGetScreenSaver'
bind/libao.so: undefined reference to XSetErrorHandler' bind/libao.so: undefined reference toXutf8SetWMProperties'
bind/libao.so: undefined reference to XQueryExtension' bind/libao.so: undefined reference toXUndefineCursor'
bind/libao.so: undefined reference to XFreeEventData' bind/libao.so: undefined reference toXGrabPointer'
bind/libao.so: undefined reference to XRRFreeOutputInfo' bind/libao.so: undefined reference toXRRFreeScreenResources'
bind/libao.so: undefined reference to XFindContext' bind/libao.so: undefined reference toXPeekEvent'
bind/libao.so: undefined reference to XkbKeycodeToKeysym' bind/libao.so: undefined reference toXSetWMHints'
bind/libao.so: undefined reference to XSetWMNormalHints' bind/libao.so: undefined reference toXFilterEvent'
bind/libao.so: undefined reference to XIconifyWindow' bind/libao.so: undefined reference toXRRGetOutputPrimary'
bind/libao.so: undefined reference to XSetWMProtocols' bind/libao.so: undefined reference toXCreateFontCursor'
bind/libao.so: undefined reference to XRRFreeGamma' bind/libao.so: undefined reference toXSetClassHint'
bind/libao.so: undefined reference to XineramaQueryScreens' bind/libao.so: undefined reference toXCreateColormap'
bind/libao.so: undefined reference to Xutf8LookupString' bind/libao.so: undefined reference toXF86VidModeSetGammaRamp'
bind/libao.so: undefined reference to XInternAtom' bind/libao.so: undefined reference toXSetInputFocus'
bind/libao.so: undefined reference to XRRQueryExtension' bind/libao.so: undefined reference toXAllocWMHints'
bind/libao.so: undefined reference to XF86VidModeGetGammaRampSize' bind/libao.so: undefined reference toXkbFreeClientMap'
bind/libao.so: undefined reference to XInitThreads' bind/libao.so: undefined reference toXMoveWindow'
bind/libao.so: undefined reference to XSaveContext' bind/libao.so: undefined reference toXkbQueryExtension'
bind/libao.so: undefined reference to XChangeProperty' bind/libao.so: undefined reference toXLookupString'
bind/libao.so: undefined reference to XMoveResizeWindow' bind/libao.so: undefined reference toXPending'
bind/libao.so: undefined reference to XineramaIsActive' bind/libao.so: undefined reference toXCreateIC'
bind/libao.so: undefined reference to XkbFreeNames' bind/libao.so: undefined reference toXineramaQueryExtension'
bind/libao.so: undefined reference to XDestroyIC' bind/libao.so: undefined reference toXkbGetMap'
bind/libao.so: undefined reference to XUngrabPointer' bind/libao.so: undefined reference toXRRGetScreenResources'
bind/libao.so: undefined reference to XGetEventData' bind/libao.so: undefined reference toXF86VidModeQueryExtension'
bind/libao.so: undefined reference to XCloseIM' bind/libao.so: undefined reference toXFreeCursor'
bind/libao.so: undefined reference to XSetSelectionOwner' bind/libao.so: undefined reference toXSupportsLocale'
bind/libao.so: undefined reference to XEventsQueued' bind/libao.so: undefined reference toXRRGetCrtcGamma'
bind/libao.so: undefined reference to XMapWindow' bind/libao.so: undefined reference toXQueryPointer'
bind/libao.so: undefined reference to XRaiseWindow' bind/libao.so: undefined reference toXISelectEvents'
bind/libao.so: undefined reference to XRRFreeCrtcInfo' bind/libao.so: undefined reference toXRRUpdateConfiguration'
bind/libao.so: undefined reference to XFree' bind/libao.so: undefined reference toXRRGetCrtcInfo'
bind/libao.so: undefined reference to XSetLocaleModifiers' bind/libao.so: undefined reference toXOpenDisplay'
bind/libao.so: undefined reference to XcursorImageCreate' bind/libao.so: undefined reference toXIQueryVersion'
bind/libao.so: undefined reference to XNextEvent' bind/libao.so: undefined reference toXF86VidModeGetGammaRamp'
bind/libao.so: undefined reference to XGetErrorText' bind/libao.so: undefined reference toXResizeWindow'
bind/libao.so: undefined reference to XUnmapWindow' bind/libao.so: undefined reference toXRRSetCrtcConfig'
bind/libao.so: undefined reference to XWarpPointer' bind/libao.so: undefined reference toXAllocClassHint'
bind/libao.so: undefined reference to XcursorImageDestroy' bind/libao.so: undefined reference toXDeleteContext'
bind/libao.so: undefined reference to XFlush' bind/libao.so: undefined reference toXCreateWindow'
bind/libao.so: undefined reference to XDestroyWindow' bind/libao.so: undefined reference toXChangeWindowAttributes'
bind/libao.so: undefined reference to XTranslateCoordinates' bind/libao.so: undefined reference toXkbGetNames'
bind/libao.so: undefined reference to XDeleteProperty' bind/libao.so: undefined reference toXSetICFocus'
bind/libao.so: undefined reference to XRRSelectInput' bind/libao.so: undefined reference toXOpenIM'
bind/libao.so: undefined reference to XGetInputFocus' bind/libao.so: undefined reference toXCheckTypedEvent'
bind/libao.so: undefined reference to XDefineCursor' bind/libao.so: undefined reference toXGetWindowAttributes'
bind/libao.so: undefined reference to XkbSetDetectableAutoRepeat' bind/libao.so: undefined reference toXGetKeyboardMapping'
bind/libao.so: undefined reference to XRRGetCrtcGammaSize' bind/libao.so: undefined reference toXGetSelectionOwner'
bind/libao.so: undefined reference to XCloseDisplay' bind/libao.so: undefined reference toXSync'
bind/libao.so: undefined reference to XMapRaised' bind/libao.so: undefined reference toXCheckIfEvent'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

ao-guile aborts with error message

On macOS 10.11.6, using homebrew to build ao.
guile version 2.2.2

Sorry to bug you, but I've never dealt with Guile errors before.

$ bin/ao-guile 
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /Users/doug/git/ao/bin/ao-guile
;;; compiling /Users/doug/git/ao/bin/../bind/guile/ao/sys/libao.scm
;;; compiling /Users/doug/git/ao/bin/../bind/guile/ao/sys/util.scm
;;; compiled /Users/doug/.cache/guile/ccache/2.2-LE-8-3.A/Users/doug/git/ao/bind/guile/ao/sys/util.scm.go
;;; compiled /Users/doug/.cache/guile/ccache/2.2-LE-8-3.A/Users/doug/git/ao/bind/guile/ao/sys/libao.scm.go
;;; WARNING: compilation of /Users/doug/git/ao/bin/ao-guile failed:
;;; ERROR: In procedure scm_to_utf8_stringn: Wrong type argument in position 1 (expecting string): #f
Backtrace:
          11 (primitive-load "/Users/doug/git/ao/bin/ao-guile")
In ice-9/eval.scm:
   721:20 10 (primitive-eval (use-modules ((ice-9 readline) # (…))))
In ice-9/psyntax.scm:
  1234:36  9 (expand-top-sequence ((use-modules ((ice-9 #) # (…)))) _ …)
  1181:24  8 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   284:10  7 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3369:20  6 (process-use-modules _)
   230:17  5 (map1 (((ice-9 readline) #:select (write-history # #))))
  3370:31  4 (_ ((ice-9 readline) #:select (write-history # #)))
  2805:10  3 (resolve-interface (ice-9 readline) #:select _ #:hide _ …)
   268:13  2 (for-each #<procedure 1079ee040 at ice-9/boot-9.scm:28…> …)
  2810:38  1 (_ _)
In unknown file:
           0 (scm-error misc-error #f "~A" ("no binding `history-f…") …)

ERROR: In procedure scm-error:
ERROR: no binding `history-file' in module (ice-9 readline)

Possibility of assigning normals based on distance function?

Would it be possible for Ao to sample the distance field to generate smoothed normals for the mesh?

When I was messing around with marching tetrahedra, I was able to (in some cases) greatly improve the visual smoothness of the meshes by assigning normals to the vertices based on three axis-aligned samples from the distance function, the way it's usually done in raymarching: http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/#surface-normals-and-lighting

No normal smoothing:
1_sharp

Typical mesh normal-averaging:
2_smooth

Normals generated by sampling the distance function:
3_field

Obviously this approach has a lot of compromises and tradeoffs—I'm not sure whether Dual Contouring provides any hint as to whether an edge is meant to be sharp or smooth, for one thing—but it's a drastic enough improvement when it works that I think it's worth considering offering as an option, and it's specific enough to the same distance field that was used to generate the mesh that it's really something that would have to be done by the same program to be done at all, unlike traditional normal averaging. (Users could still manually re-sharpen the sharp edges in another program afterwards though, for example.)

Error while building: multithreading namespace errors in cache.cpp

I’ve noticed that some commits ago ao stopped building correctly, giving me this:
galex-713@PC713:~/src/ao/build$ ninja

[1/67] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/tree/opcode.cpp.o
../kernel/src/tree/opcode.cpp: In function ‘size_t Opcode::args(Opcode::Opcode)’:
../kernel/src/tree/opcode.cpp:65:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
../kernel/src/tree/opcode.cpp: In function ‘std::__cxx11::string Opcode::to_str(Opcode::Opcode)’:
../kernel/src/tree/opcode.cpp:103:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
[2/67] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o
FAILED: kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o
/usr/bin/c++ -isystem ../vendor -I../kernel/include -Wall -Wextra -Wno-comment -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE -MD -MT kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o -MF kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o.d -o kernel/CMakeFiles/ao-kernel.dir/src/tree/cache.cpp.o -c ../kernel/src/tree/cache.cpp
In file included from ../kernel/src/tree/cache.cpp:22:0:
../kernel/include/ao/kernel/tree/cache.hpp:177:17: error: ‘mutex’ in namespace ‘std’ does not name a type
static std::mutex instance_lock;
^~~~~
../kernel/src/tree/cache.cpp:29:6: error: ‘mutex’ in namespace ‘std’ does not name a type
std::mutex Cache::instance_lock;
^~~~~
../kernel/src/tree/cache.cpp: In static member function ‘static std::shared_ptr Cache::instance()’:
../kernel/src/tree/cache.cpp:35:5: error: ‘lock_guard’ is not a member of ‘std’
std::lock_guardstd::mutex g(instance_lock);
^~~
../kernel/src/tree/cache.cpp:35:21: error: ‘mutex’ is not a member of ‘std’
std::lock_guardstd::mutex g(instance_lock);
^~~
../kernel/src/tree/cache.cpp:35:35: error: ‘instance_lock’ was not declared in this scope
std::lock_guardstd::mutex g(instance_lock);
^~~~~~~~~~~~~
../kernel/src/tree/cache.cpp:35:48: error: ‘g’ was not declared in this scope
std::lock_guardstd::mutex g(instance_lock);
^
../kernel/src/tree/cache.cpp: In static member function ‘static void Cache::reset()’:
../kernel/src/tree/cache.cpp:47:5: error: ‘lock_guard’ is not a member of ‘std’
std::lock_guardstd::mutex g(instance_lock);
^~~
../kernel/src/tree/cache.cpp:47:21: error: ‘mutex’ is not a member of ‘std’
std::lock_guardstd::mutex g(instance_lock);
^~~
../kernel/src/tree/cache.cpp:47:35: error: ‘instance_lock’ was not declared in this scope
std::lock_guardstd::mutex g(instance_lock);
^~~~~~~~~~~~~
../kernel/src/tree/cache.cpp:47:48: error: ‘g’ was not declared in this scope
std::lock_guardstd::mutex g(instance_lock);
^
[4/67] Building CXX object kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o
FAILED: kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o
/usr/bin/c++ -isystem ../vendor -I../kernel/include -Wall -Wextra -Wno-comment -g -fPIC -pedantic -std=c++11 -Werror=switch -march=native -O3 -DRELEASE -MD -MT kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o -MF kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o.d -o kernel/CMakeFiles/ao-kernel.dir/src/format/contours.cpp.o -c ../kernel/src/format/contours.cpp
In file included from ../kernel/include/ao/kernel/tree/tree.hpp:27:0,
from ../kernel/include/ao/kernel/eval/evaluator.hpp:30,
from ../kernel/include/ao/kernel/render/xtree.hpp:30,
from ../kernel/include/ao/kernel/render/quadtree.hpp:21,
from ../kernel/include/ao/kernel/format/contours.hpp:24,
from ../kernel/src/format/contours.cpp:22:
../kernel/include/ao/kernel/tree/cache.hpp:177:17: error: ‘mutex’ in namespace ‘std’ does not name a type
static std::mutex instance_lock;
^~~~~
ninja: build stopped: subcommand failed.
galex-713@PC713:~/src/ao/build$

Please notice me if I forgot to give any useful information (I really have the impression to have…)

Graphical Window Resize Broken

Brief Description

When resizing the graphical output window, the area that displays the model stays fixed in the lower left corner. Expectation is that the model display area would expand to fit the bounds of the window. I have only tested it on Ubuntu 16.04.

System Information

OS: ubuntu 16.04 LTS
Processor: AMD A8-6410 APU with AMD Radeon R5 Graphics × 4
Graphics: Gallium 0.4 on AMD MULLINS (DRM 2.43.0, LLVM 3.8.0)
OS type: 64-bit
uname -a: Linux echo-one 4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
gcc: version 5.4.0

Minimal Example To Reproduce Bug

  ;; start ao-guile and evaluate:
  (define (sphere r)
      (lambda ( x y z )
          (- (sqrt (+ (* x x) (* y y) (* z z))) r)))
  (define s (sphere 2))
  (ao-show s)

  ;; Resize graphical output window and model stays in lower left corner.

Can't use lambda-shape arguments in comparison function

I'm extremely new to Scheme, so it's possible this is a silly mistake on my end, but I'm having an issue that works in the general case but not inside of a lambda-shape:

(lambda-shape (x y z) (if (> x 0) x 0) )
gives an error that says

wrong-type-arg: Wrong type: #<<tree> 139e64140>

Stack trace:
0: (lambda-shape (x y z) (if (> x 0) x 0))

even though
(let ((x 1)) (if (> x 0) x 0) )
works fine, so it isn't some kind of syntax thing; it seems like for some operations, the x y z arguments aren't treated like numbers? (even though for functions like + it works fine...)

Y-up

Is there any hope of adding a Y-up option for the display in Studio :) It would mainly just impact the way the mouse orbit controls work; when I rotate the shape so that Y is up, I'm not able to pivot around Y to view the sides without pivoting around X first...

Backspace deletes two characters almost always

I see there's a commit saying that backspace will delete both characters of a pseudo-tab, but I think it's having a lot of false positives: try opening a new document, and typing 123456789, then hitting backspace a few times. At least for me (on macOS), it always deletes to the closest even-numbered character (the first backspace deletes only '9', but the next deletes '78', and so on...)

Better auto-indent for text editor

Look at how vim does auto-indenting for Scheme:
vim

It's very clever – it autoindents by one if you're starting a new call, otherwise it matches the previous argument indentation, even behaving correctly around nested calls.

Studio should be clever, like vim.

This would be a great first issue! Right now, auto-indent is handled here, and is quite dumb.

2D shapes are too fun

AO looks awesome. I've been wanting an excuse to learn LISP for years and this is it. After a lot of frustration with OpenSCAD I'm more than excited about AO.

Anyway, I thought I'd start with 2D shapes right?

(rectangle #[0 0] #[10 5])

(circle #[0 0] 5)

screen shot 2017-09-14 at 21 08 33

I'm not sure... what is happening. I guess this must make sense to the function kernel but it's a bit too "fun" for the average user ;)

boost not found

I can't seem to build Ao on Mac OS High Sierra. I installed boost, eigen and qt using brew.

I run

> cmake -D CMAKE_PREFIX_PATH=/usr/local/Cellar/qt5/5.7.0  ..
-- The C compiler identification is AppleClang 9.0.0.9000037
-- The CXX compiler identification is AppleClang 9.0.0.9000037
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.11")
-- Found PNG: /usr/local/lib/libpng.dylib (found version "1.5.18")
-- Found Eigen3: /usr/local/include/eigen3 (Required is at least version "2.91.0")
Checking dependencies:
  libao-kernel: ✓
  guile-ao:     ✓
  Studio:       ✓
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/francoponticelli/projects/ao/build

Which seems ok. When I run make, I get:

Scanning dependencies of target ao-kernel
[  1%] Building CXX object ao/src/CMakeFiles/ao-kernel.dir/eval/base.cpp.o
In file included from /Users/francoponticelli/projects/ao/ao/src/eval/base.cpp:21:
In file included from /Users/francoponticelli/projects/ao/ao/src/../include/ao/eval/base.hpp:20:
/Users/francoponticelli/projects/ao/ao/src/../include/ao/eval/tape.hpp:23:10: fatal error: 'boost/bimap.hpp' file not
      found
#include <boost/bimap.hpp>
         ^~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [ao/src/CMakeFiles/ao-kernel.dir/eval/base.cpp.o] Error 1
make[1]: *** [ao/src/CMakeFiles/ao-kernel.dir/all] Error 2
make: *** [all] Error 2

Progress meter

I've currently got a pretty complex model (lots of smooth-minimum use) with lots of fiddly details that call for me to render it at a very high resolution (before I decimate it back down to something reasonable elsewhere).

To be specific, once I crank the quality up, I'm staring at that spinning wheel for something like eight hours before it's ready. And, that's fine if that's how long it takes! But, given that mesh generation can take that long, it would be nice if there could be some kind of progress meter instead of just a spinning wheel—even if not a time estimate, just a percentage indication of how far through the bounds it's calculated (and/or how many iterations it's gone through, I'm not sure exactly how dual contouring works to be honest :) ).

(While I'm at it, just as a quality-of-life thing, it might be nice to be able to opt into a confirmation dialog box if you're about to drop something on the keyboard and make the process have to start over because it responded automatically to your changes.... It hasn't happened to me yet, but I live in terror of the day it does ;) )

Issue when trying to run: `guile: Couldn't find current GLX or EGL context.`

Hi, I tried to exactely follow the procedure to install from source, and I’m under Debian GNU/Linux testing, and when running, it gives me this:

galex-713@PC713:~/src/ao/bin$ guile ao-guile 
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/galex-713/src/ao/bin/ao-guile
;;; compiling /home/galex-713/src/ao/bin/../bind/guile/ao/bind.scm
;;; compiled /home/galex-713/.cache/guile/ccache/2.0-LE-4-2.0/home/galex-713/src/ao/bind/guile/ao/bind.scm.go
;;; compiled /home/galex-713/.cache/guile/ccache/2.0-LE-4-2.0/home/galex-713/src/ao/bin/ao-guile.go
;;; compiling /home/galex-713/src/ao/bin/../bind/guile/ao/operators.scm
;;; compiling /home/galex-713/src/ao/bin/../bind/guile/ao/jit.scm
;;; compiled /home/galex-713/.cache/guile/ccache/2.0-LE-4-2.0/home/galex-713/src/ao/bind/guile/ao/jit.scm.go
guile: Couldn't find current GLX or EGL context.

It also seems a certain Ralf Mattes encountered a similar problem as he said on the 21 August on guile-user mailing-list…

Please say if I can provide any more relevant information ^^ your project seems absolutely great since it solves all the very problems I feeled while trying OpenSCAD :D

Multi-line indent?

I don't know if this is an easy thing to add in whatever GUI system you're using, but is there any way there could be some shortcut to add one level of indentation to a multi-line selection?

Difference errors

A simple difference doesn't seem to work. I've tried different values to see if it was edges overlapping or something but I can't get it to work. Union / intersection work fine which is odd as I see difference is built from those.

(difference
	(box #[0 0 0] #[10 10 10])
	(box #[5 5 5] #[11 11 11])
)

Error:

goops-error: No applicable method for #<<generic> min (3)> in call (min #<<tree> 124fe7e80>)

Stack trace:
0: (difference (box (vec3 0 0 0) (vec3 10 10 10)) (box (vec3 5 5 5) (vec3 11 11 11)))

Text sometimes is invisible when first loaded

I'm having a strange issue where there's a small chance that a saved .ao document will have some of its lines invisibly hidden until something triggers a reflow. Some entire lines (seemingly only ones containing only close-parentheses?) will be invisible, but I'll still be able to move the cursor through them with the arrow keys -- I can tell because when the cursor reaches the (invisible) close-parentheses, the corresponding open-parenthesis will highlight like normal.

Typing out a #! comment block will fix any affected text that falls inside the new comment (but if there was already another block further on for example, that block will stop the new block since comment blocks don't nest, and nothing further on will be fixed.)

I've made a video demonstrating the bug (watch the areas that I point to with the cursor, the parenthesis-matching shows up kind of faintly unfortunately), and I've attached the file that the issue occurs with -- although note that it seems to only happen on maybe 25% of loads. (I've had it happen a few times in a row, though; I'm not sure if there's something persisting between launches that causes it to happen or not happen even though I'm not saving the file between attempts...)

Also, even when this happens, it doesn't seem to apply to the entire file; it seems as though it's hitting something that breaks everything after that point. Try skipping down to the ;eyes section featured in the video; that part is usually affected if anything is.

Video:
linebreaks.zip

.ao file:
idol.zip

Crash on startup

About half the time, ao crashes on startup. There are many different kinds of errors that it writes to the terminal when this happens. I ran it 2000 times, and it successfully started 994 times.

Here is a table of outcomes after being run 2000 times:

success: 994
fail: 1006
  bad_alloc: 830
  segfault: 150
  sysmalloc: 14
  fp: 1
  unknown failure reason: 11

Here is a representative sample of each kind of error: (I have silenced the setWindowModified warning in each of them.)

bad_alloc:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

segfault:

./test.sh: line 2: 18187 Segmentation fault      ( ./gui/Studio 2>&1 )

sysmalloc:

Studio: malloc.c:2406: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.

fp:

./test.sh: line 2: 20081 Floating point exception( ./gui/Studio 2>&1 )

(test.sh is the script I'm using to run it 2000 times and collect stdout/stderr. The failure rate is pretty similar when Studio is run directly from terminal.)

I assume that all of these errors stem from some single cause, since they all happen on startup. However, I have no idea what that would be.

Text editor doesn't update

If the code in the editor window contains any errors, the text will not update until the viewport is moved. In addition, the entire window will not update if resized until the viewport is moved. If the code is valid, it will update with significant delay, and the blinking cursor is not displayed in any situations. Tumbling the viewport continuously reveals the location of the cursor. I'm on Ubuntu 17.10 using Qt 5.9.2, eigen 3.3.4-3, and Guile 2.2.2. This issue is present with all files, including the tutorial files, empty files, and any files I've written myself.

Crash on weird shape

This works, and renders a cylinder:

(extrude-z
(lambda-shape (x y z)
 (define r (sqrt (+ (expt x 2) (expt y 2))))
 (define theta (atan (/ y x)))
 (- r (+ 2)))
0 1)

This crashes:

(extrude-z
(lambda-shape (x y z)
 (define r (sqrt (+ (expt x 2) (expt y 2))))
 (define theta (atan (/ y x)))
 (- r (+ 2 theta)))
0 1)

It gives this error:

Studio: /home/nick/ao/ao/src/render/brep/mesh.cpp:39: void Kernel::Mesh::load(const std::array<const Kernel::XTree<3u>*, 4ul>&) [with Kernel::Axis::Axis A = (Kernel::Axis::Axis)4u; bool D = false]: Assertion `vi != -1' failed.
Aborted

I can sometimes get this to run and produce a shape, though it isn't solid - which might be because theta isn't defined for x=0. Is there a better way to define an object in polar coordinates?

(Lemme know if the problem is that I'm using ao in an unsupported way.)

Crash on exit

Revision: a7ffb99

Reproduction steps:

  1. Open Studio
  2. Close Studio by clicking x in upper right corner.

This can trigger one of two errors.

Error message type 1:

QWidget::setWindowModified: The window title does not contain a '[*]' placeholder
Studio: /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:365: Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator()(Eigen::Index, Eigen::Index) [with Derived = Eigen::Array<float, -1, 256, 1>; Eigen::DenseCoeffsBase<Derived, 1>::Scalar = float; Eigen::Index = long int]: Assertion `row >= 0 && row < rows() && col >= 0 && col < cols()' failed.
Aborted

Stack trace type 1:

Thread 46 "Thread (pooled)" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffb77fe700 (LWP 26198)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff43643fa in __GI_abort () at abort.c:89
#2  0x00007ffff435be37 in __assert_fail_base (fmt=<optimized out>, 
    assertion=assertion@entry=0x7ffff77b3cc0 "row >= 0 && row < rows() && col >= 0 && col < cols()", 
    file=file@entry=0x7ffff77b3c88 "/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h", line=line@entry=365, 
    function=function@entry=0x7ffff77b50c0 <Eigen::DenseCoeffsBase<Eigen::Array<float, -1, 256, 1, -1, 256>, 1>::operator()(long, long)::__PRETTY_FUNCTION__> "Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator()(Eigen::Index, Eigen::Index) [with Derived = Eigen::Array<float, -1, 256, 1>; Eigen::DenseCoeffsBase<Derived, "...) at assert.c:92
#3  0x00007ffff435bee2 in __GI___assert_fail (assertion=0x7ffff77b3cc0 "row >= 0 && row < rows() && col >= 0 && col < cols()", 
    file=0x7ffff77b3c88 "/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h", line=365, 
    function=0x7ffff77b50c0 <Eigen::DenseCoeffsBase<Eigen::Array<float, -1, 256, 1, -1, 256>, 1>::operator()(long, long)::__PRETTY_FUNCTION__> "Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator()(Eigen::Index, Eigen::Index) [with Derived = Eigen::Array<float, -1, 256, 1>; Eigen::DenseCoeffsBase<Derived, "...) at assert.c:101
#4  0x00007ffff75ca3bd in Eigen::DenseCoeffsBase<Eigen::Array<float, -1, 256, 1, -1, 256>, 1>::operator() (this=0x7fffc8015ef8, 
    row=3355523968, col=0) at /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:364
#5  0x00007ffff75ca0a9 in Kernel::ArrayEvaluator::set (this=0x7fffc8015ee0, p=..., index=0)
    at /home/nick/ao/ao/src/../include/ao/eval/eval_array.hpp:46
#6  0x00007ffff765e8fe in Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&, unsigned long)#8}::operator()(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&, unsigned long) const (__closure=0x7fffb77eb6a0, v=..., i=0) at /home/nick/ao/ao/src/render/brep/xtree.cpp:341
#7  0x00007ffff765bf9c in Kernel::XTree<3u>::XTree (this=0x7fff78004360, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:387
#8  0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff780034e0, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#9  0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff78006260, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#10 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff78002ca0, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#11 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff78002aa0, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#12 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff78005b40, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#13 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff78001a80, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#14 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff780008e0, eval=0x7fffc8015ec0, region=..., min_feature=0.10000000149011612, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#15 0x00007ffff765e654 in Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1}::operator()() const (__closure=0x7fffc0003198) at /home/nick/ao/ao/src/render/brep/xtree.cpp:152
#16 0x00007ffff771f3c8 in std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x7fffc0003198) at /usr/include/c++/6/functional:1391
#17 0x00007ffff77184cd in std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>::operator()() (this=0x7fffc0003198) at /usr/include/c++/6/functional:1380
#18 0x00007ffff77072db in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<Kernel::XTree<3u>*>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<Kernel::XTree<3u>::_Bind_simple(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::operator()() const (this=0x7fffb77fddf0)
    at /usr/include/c++/6/future:1325
#19 0x00007ffff76fcdec in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<Kernel::XTree<3u>*>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<Kernel::XTree<3u>::_Bind_simple(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/6/functional:1717
#20 0x00007ffff7635f3f in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=0x7fffb77fddf0) at /usr/include/c++/6/functional:2127
#21 0x00007ffff7634b57 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (this=0x7fffc0003160, __f=0x7fffb77fddf0, __did_set=0x7fffb77fdd77)
    at /usr/include/c++/6/future:533
#22 0x00007ffff763cb3d in std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__f=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __t=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/functional:227
#23 0x00007ffff7639600 in std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (
    __fn=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#2=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/functional:251
#24 0x00007ffff7635c8e in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}::operator()() const (__closure=0x7fffb77fdd00) at /usr/include/c++/6/mutex:602
#25 0x00007ffff7635cf9 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::operator()() const (__closure=0x0) at /usr/include/c++/6/mutex:607
#26 0x00007ffff7635d0a in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::_FUN() () at /usr/include/c++/6/mutex:607
#27 0x00007ffff657f739 in __pthread_once_slow (once_control=0x7fffc0003178, init_routine=0x7ffff4ca3120 <__once_proxy>)
    at pthread_once.c:116
#28 0x00007ffff762fc24 in __gthread_once (__once=0x7fffc0003178, __func=0x7ffff4ca3120 <__once_proxy>)
    at /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:699
#29 0x00007ffff7635db4 in std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__once=..., __f=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#2=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/mutex:614
#30 0x00007ffff7634925 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (this=0x7fffc0003160, __res=..., __ignore_failure=false)
    at /usr/include/c++/6/future:393
#31 0x00007ffff76e8861 in std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const
    (__closure=0x7fffc00031d8) at /usr/include/c++/6/future:1664
#32 0x00007ffff7768992 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x7fffc00031d8) at /usr/include/c++/6/functional:1391
#33 0x00007ffff776880b in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() (this=0x7fffc00031d8) at /usr/include/c++/6/functional:1380
#34 0x00007ffff7767f1e in std::thread::_State_impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() (this=0x7fffc00031d0) at /usr/include/c++/6/thread:197
#35 0x00007ffff4ca3e6f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#36 0x00007ffff6578494 in start_thread (arg=0x7fffb77fe700) at pthread_create.c:333
#37 0x00007ffff4418aff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Error message type 2:

Studio: /home/nick/ao/ao/src/eval/eval_array.cpp:238: void Kernel::ArrayEvaluator::operator()(Kernel::Opcode::Opcode, Kernel::Clause::Id, Kernel::Clause::Id, Kernel::Clause::Id): Assertion `false' failed.

Stack trace type 2:

Thread 36 "Thread (pooled)" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffb37fe700 (LWP 27126)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff43643fa in __GI_abort () at abort.c:89
#2  0x00007ffff435be37 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x7ffff77b3c01 "false", 
    file=file@entry=0x7ffff77b3bd8 "/home/nick/ao/ao/src/eval/eval_array.cpp", line=line@entry=238, 
    function=function@entry=0x7ffff77b5ac0 <Kernel::ArrayEvaluator::operator()(Kernel::Opcode::Opcode, unsigned int, unsigned int, unsigned int)::__PRETTY_FUNCTION__> "void Kernel::ArrayEvaluator::operator()(Kernel::Opcode::Opcode, Kernel::Clause::Id, Kernel::Clause::Id, Kernel::Clause::Id)") at assert.c:92
#3  0x00007ffff435bee2 in __GI___assert_fail (assertion=0x7ffff77b3c01 "false", 
    file=0x7ffff77b3bd8 "/home/nick/ao/ao/src/eval/eval_array.cpp", line=238, 
    function=0x7ffff77b5ac0 <Kernel::ArrayEvaluator::operator()(Kernel::Opcode::Opcode, unsigned int, unsigned int, unsigned int)::__PRETTY_FUNCTION__> "void Kernel::ArrayEvaluator::operator()(Kernel::Opcode::Opcode, Kernel::Clause::Id, Kernel::Clause::Id, Kernel::Clause::Id)")
    at assert.c:101
#4  0x00007ffff75c861d in Kernel::ArrayEvaluator::operator() (this=0x7fffc80967a0, op=Kernel::Opcode::INVALID, id=0, a=2, b=11)
    at /home/nick/ao/ao/src/eval/eval_array.cpp:238
#5  0x00007ffff75ca75b in Kernel::Tape::rwalk<Kernel::ArrayEvaluator> (this=0x7fffc80a8bc0, t=...)
    at /home/nick/ao/ao/src/../include/ao/eval/tape.hpp:125
#6  0x00007ffff75c66e6 in Kernel::ArrayEvaluator::values (this=0x7fffc80967a0, _count=48) at /home/nick/ao/ao/src/eval/eval_array.cpp:94
#7  0x00007ffff765bfd3 in Kernel::XTree<3u>::XTree (this=0x7fff9400b420, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:394
#8  0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff9400a9c0, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#9  0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff94002bc0, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#10 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff940029c0, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#11 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff94001320, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#12 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff94001e60, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#13 0x00007ffff765ad14 in Kernel::XTree<3u>::XTree (this=0x7fff940030e0, eval=0x7fffc8096780, region=..., min_feature=0.20000000298023224, 
    max_err=1e-08, multithread=false, cancel=...) at /home/nick/ao/ao/src/render/brep/xtree.cpp:167
#14 0x00007ffff765e654 in Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1}::operator()() const (__closure=0x7fffb8002888) at /home/nick/ao/ao/src/render/brep/xtree.cpp:152
#15 0x00007ffff771f3c8 in std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x7fffb8002888) at /usr/include/c++/6/functional:1391
#16 0x00007ffff77184cd in std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>::operator()() (this=0x7fffb8002888) at /usr/include/c++/6/functional:1380
#17 0x00007ffff77072db in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<Kernel::XTree<3u>*>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<Kernel::XTree<3u>::_Bind_simple(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::operator()() const (this=0x7fffb37fddf0)
    at /usr/include/c++/6/future:1325
#18 0x00007ffff76fcdec in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<Kernel::XTree<3u>*>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<Kernel::XTree<3u>::_Bind_simple(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*> >::_M_invoke(std::_Any_data const&) (__functor=...) at /usr/include/c++/6/functional:1717
#19 0x00007ffff7635f3f in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (this=0x7fffb37fddf0) at /usr/include/c++/6/functional:2127
#20 0x00007ffff7634b57 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (this=0x7fffb8002850, __f=0x7fffb37fddf0, __did_set=0x7fffb37fdd77)
    at /usr/include/c++/6/future:533
#21 0x00007ffff763cb3d in std::__invoke_impl<void, void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::__invoke_memfun_deref, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__f=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __t=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/functional:227
#22 0x00007ffff7639600 in std::__invoke<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (
    __fn=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#2=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/functional:251
#23 0x00007ffff7635c8e in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#1}::operator()() const (__closure=0x7fffb37fdd00) at /usr/include/c++/6/mutex:602
#24 0x00007ffff7635cf9 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::operator()() const (__closure=0x0) at /usr/include/c++/6/mutex:607
#25 0x00007ffff7635d0a in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&)::{lambda()#2}::_FUN() () at /usr/include/c++/6/mutex:607
#26 0x00007ffff657f739 in __pthread_once_slow (once_control=0x7fffb8002868, init_routine=0x7ffff4ca3120 <__once_proxy>)
    at pthread_once.c:116
#27 0x00007ffff762fc24 in __gthread_once (__once=0x7fffb8002868, __func=0x7ffff4ca3120 <__once_proxy>)
    at /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:699
#28 0x00007ffff7635db4 in std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) (__once=..., __f=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65a9f7>, 
    __args#0=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x5a45ef>, 
    __args#1=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa03>, 
    __args#2=<unknown type in /home/nick/ao/build/ao/src/libao-kernel.so, CU 0x581789, DIE 0x65aa0f>) at /usr/include/c++/6/mutex:614
#29 0x00007ffff7634925 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (this=0x7fffb8002850, __res=..., __ignore_failure=false)
    at /usr/include/c++/6/future:393
#30 0x00007ffff76e8861 in std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const
    (__closure=0x7fffb80028c8) at /usr/include/c++/6/future:1664
#31 0x00007ffff7768992 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x7fffb80028c8) at /usr/include/c++/6/functional:1391
#32 0x00007ffff776880b in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() (this=0x7fffb80028c8) at /usr/include/c++/6/functional:1380
#33 0x00007ffff7767f1e in std::thread::_State_impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} ()>, Kernel::XTree<3u>*>::_Async_state_impl(Kernel::XTree<3u>::XTree(Kernel::XTreeEvaluator*, Kernel::Region<3u>, double, double, bool, std::atomic<bool>&)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() (this=0x7fffb80028c0) at /usr/include/c++/6/thread:197
#34 0x00007ffff4ca3e6f in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#35 0x00007ffff6578494 in start_thread (arg=0x7fffb37fe700) at pthread_create.c:333
#36 0x00007ffff4418aff in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

xtree cancel takes longer than 50 ms

The testcase "XTree<3> cancellation" consistently fails on my system.

Reproduction

Run ./ao/test/ao-test "XTree<3> cancellation"

Output:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ao-test is a Catch v1.1 b3 host application.
Run with -? for options

-------------------------------------------------------------------------------
XTree<3> cancellation
-------------------------------------------------------------------------------
/home/nick/ao/ao/test/xtree.cpp:212
...............................................................................

/home/nick/ao/ao/test/xtree.cpp:237: FAILED:
  REQUIRE( elapsed_ms.count() < 50 )
with expansion:
  79 < 50

===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed

(The number of milliseconds it takes varies from 55 to 80.)

Removing cancel

If cancel.store(true); is commented out, the computation takes 433816 milliseconds.

End user visible impact

None known.

Crash when zooming, panning, and changing detail

Steps to reproduce: (tentative)

  1. Open tutorial.ao
  2. Zoom around some
  3. Change the detail setting (the last argument on the render line)
  4. Pan the screen

This does not happen every time, and I'm trying to nail down the reproduction steps more definitely.

Crash log:

$ ./gui/Studio
QWidget::setWindowModified: The window title does not contain a '[*]' placeholder
ASSERT failure in QVector<T>::at: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qvector.h, line 429
Aborted

I have not been able to reproduce this under a debugger.

Crashes when changing view properties with certain data

I'm not sure if I should list these two crashes as two separate issues, but they have similar triggers and use the same data, so I'll just list them together here for now.

I'm working on a model, and I've wound up in a position where if I make certain changes to the bounding box, or if I turn the resolution up past a certain amount, Ao crashes (either instantly, or after several seconds).

I'm on macOS 10.12.6, and I'm using the latest files on github as of this posting (the Oct 16 commits).

I've stripped down my file to as small as it can get while still triggering the bug. I've attached it here (zipped so github will accept it): idol_CRASHDEMO.zip

CRASH 1: Open the view options menu, and change the bounds for the X dimension to -1.5 and 1.5
In a previous build, it would crash as soon as the first number was changed; after updating to the latest build it seems like it only crashes as soon as you try to change the second number.

CRASH 2: Open the view options menu, and change the resolution to anything above 64, then wait a few seconds.

I'm pretty sure some of my operations aren't exactly distance-preserving, but it's always seemed to work out fine until now; could the crash be caused by the 'impossible' distance fields becoming a problem when the resolution gets precise enough?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.