Chapter 12. Troubleshooting and FAQ

12.1. Running Regina
12.1.1. How do I start Regina?
12.1.2. How can I run regina-python or the other command-line tools?
12.1.3. On MacOS X, do I need Fink any more?
12.2. The User Interface
12.2.1. On Ubuntu, the “What’s this?” help just gives me an empty yellow box.
12.3. Python Scripting
12.3.1. Regina tells me that Python scripting has been disabled.
12.3.2. While working with a Python object I receive a TypeError with the message "bad argument type for built-in operation". I know the object is valid since I've used it earlier without problems.
12.3.3. While calling a Python function I receive a Boost.Python.ArgumentError with the message "Python argument types did not match C++ signature". I'm fairly sure I'm passing the right arguments.
12.3.4. SnapPy has stopped working in the graphical user interface. When I import SnapPy and try to create a manifold, I receive a TypeError with the message "isinstance() arg 2 must be a class, type, or tuple of classes and types".
12.4. Miscellaneous
12.4.1. I cannot edit a triangulation. I can view it but I can't change anything.
12.4.2. I am having trouble compiling Regina.
12.4.3. What is the test suite, and how do I run it?
12.4.4. Something else not described in this list has gone wrong.

12.1. Running Regina

12.1.1. How do I start Regina?
12.1.2. How can I run regina-python or the other command-line tools?
12.1.3. On MacOS X, do I need Fink any more?
12.1.1.

How do I start Regina?

If you use GNU/Linux, look for Regina in your applications menu (for instance, the main GNOME or KDE menu). It might be classified under Science or Education. If all else fails, you can always start Regina from the command line by running regina-gui.

If you use MacOS X, you should have downloaded a drag-and-drop app bundle. You can start Regina simply by opening this app from wherever you dragged it to (typically the Applications folder).

If you use Windows, you can find Regina in the Start menu. Look for All Programs->Regina 4.96->Regina.

12.1.2.

How can I run regina-python or the other command-line tools?

If you downloaded a GNU/Linux package, these tools should all be in /usr/bin/. You can run them directly from the command line:

    example$ regina-python
    Regina 4.95
    Software for 3-manifold topology and normal surface theory
    Copyright (c) 1999-2013, The Regina development team
    >>>

If you downloaded a drag-and-drop app bundle for MacOS X, these tools are all shipped inside it. If you dragged Regina to the main Applications folder, you can find them in /Applications/Regina.app/Contents/MacOS/.

    example$ /Applications/Regina.app/Contents/MacOS/regina-python
    Regina 4.95
    Software for 3-manifold topology and normal surface theory
    Copyright (c) 1999-2013, The Regina development team
    >>>

If you use Windows, the tool regina-python is not available. Windows. However, you can still use Python scripting in Regina's graphical user interface, by opening a graphical Python console or using script packets.

The other command-line tools (such as regfiledump, tricensus and so on) are installed under Windows beneath the Program Files directory; on some machines this directory is called Program Files (x86). Specifically, the command-line tools are stored in the subdirectory c:\Program Files\Regina\Regina 4.96\bin\.

    example$ "c:\Program Files\Regina\Regina 4.96\bin\tricensus.exe" -t2 output.rga
    Starting census generation...
    0:1 0:0 1:0 1:1 | 0:2 0:3 1:3 1:2
    0:1 0:0 1:0 1:1 | 0:2 0:3 bdry bdry
    ...

12.1.3.

On MacOS X, do I need Fink any more?

No! As of version 4.92, Regina ships as a standalone app bundle that you can drag and drop straight into your Applications folder. If you installed Fink for an earlier version of Regina and you do not use it for anything else, you can remove it: simply delete /sw and everything beneath it.

12.2. The User Interface

12.2.1. On Ubuntu, the “What’s this?” help just gives me an empty yellow box.
12.2.1.

On Ubuntu, the “What’s this?” help just gives me an empty yellow box.

If you look closely, you might see that the box is full of white text on a bright yellow background (which of course is impossible to read).

Unfortunately this is a long-standing bug in Ubuntu, which affects not only Regina but all Qt-based applications. It is not clear how Regina can work around this problem; hopefully Ubuntu will fix this issue soon.

12.3. Python Scripting

12.3.1. Regina tells me that Python scripting has been disabled.
12.3.2. While working with a Python object I receive a TypeError with the message "bad argument type for built-in operation". I know the object is valid since I've used it earlier without problems.
12.3.3. While calling a Python function I receive a Boost.Python.ArgumentError with the message "Python argument types did not match C++ signature". I'm fairly sure I'm passing the right arguments.
12.3.4. SnapPy has stopped working in the graphical user interface. When I import SnapPy and try to create a manifold, I receive a TypeError with the message "isinstance() arg 2 must be a class, type, or tuple of classes and types".
12.3.1.

Regina tells me that Python scripting has been disabled.

This means that whoever built your version of Regina did not include Python support in the build.

The best solution is to download a ready-made package from the Regina website. All of the ready-made packages should have Python support built in.

If you need to build Regina yourself from source, make sure you have the Python and boost.python development files installed. If not, Regina will warn you about this when you run cmake:

example:~/source/regina/build> cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
...
... (lots of output)
...
-----------------------------------------------------------------------------
-- The following OPTIONAL packages could NOT be located on your system.
-- Consider installing them to enable more features from this software.
-----------------------------------------------------------------------------
   * Python development  <http://www.python.org/>
     Build Python bindings for Regina

-----------------------------------------------------------------------------

-- Configuring done
-- Generating done
-- Build files have been written to: /Users/bab/source/regina/build
example:~/source/regina/build>

If you are stuck, please mail for assistance, including your CMakeCache.txt if possible to help diagnose the problem.

12.3.2.

While working with a Python object I receive a TypeError with the message "bad argument type for built-in operation". I know the object is valid since I've used it earlier without problems.

You may have run into an unusual boost.python issue regarding ownership semantics. If you have been using tree insertion routines such as NPacket.insertChildFirst(), NPacket.insertChildLast() or NPacket.insertChildAfter(), this is particularly likely.

See the Python scripting notes for a full discussion of this problem and how to work around it.

12.3.3.

While calling a Python function I receive a Boost.Python.ArgumentError with the message "Python argument types did not match C++ signature". I'm fairly sure I'm passing the right arguments.

You may have run into the same unusual ownership issue with boost.python discussed in the previous question. Again, if you have been using tree insertion routines such as NPacket.insertChildFirst(), NPacket.insertChildLast() or NPacket.insertChildAfter(), this is particularly likely.

See the Python scripting notes for a full discussion of this problem and how to work around it.

On the other hand, you may just be calling a function incorrectly. You might wish to check the API documentation, which describes all of Regina's functions and what arguments they should take.

12.3.4.

SnapPy has stopped working in the graphical user interface. When I import SnapPy and try to create a manifold, I receive a TypeError with the message "isinstance() arg 2 must be a class, type, or tuple of classes and types".

At the time of writing, SnapPy (version 2.2) is not compatible with multiple interpreters. If you run the graphical user interface and import the snappy module in more than one Python console, SnapPy will stop working.

A workaround is to open one console, import snappy within it, and then leave that console open. You can then use SnapPy in as many different consoles as you like: SnapPy will only break after you close that first console.

If you are not working directly with a data file, another option is to use the regina-python command-line tool. This only runs one instance of Python, and so avoids the problem.

The problem appears to be rooted in Cython, which SnapPy uses for its Python bindings. The SnapPy and Regina authors are currently working to find a suitable workaround.

12.4. Miscellaneous

12.4.1. I cannot edit a triangulation. I can view it but I can't change anything.
12.4.2. I am having trouble compiling Regina.
12.4.3. What is the test suite, and how do I run it?
12.4.4. Something else not described in this list has gone wrong.
12.4.1.

I cannot edit a triangulation. I can view it but I can't change anything.

If a triangulation has any normal surface lists or angle structure lists beneath it, that triangulation must not change. This is because normal surfaces and angle structures store their coordinates relative to the triangulation, and any changes to the triangulation will invalidate these coordinates.

If you wish to modify the triangulation, try cloning it (not the subtree, just the triangulation itself). Then you can edit the clone instead.

Triangulations that cannot be edited will be marked with a small padlock in the packet tree, as seen with the figure eight knot complement below.

12.4.2.

I am having trouble compiling Regina.

If you can, it is best to install Regina from a ready-made package. See the Regina website for a list of GNU/Linux distributions that have packages available.

If you do need to build Regina yourself, the website offers help on building Regina from source. There is also a page on building Regina on different distributions, which suggests specific cmake options tailored to your particular type of machine.

12.4.3.

What is the test suite, and how do I run it?

Sometimes building an application on different hardware or against different versions of libraries can produce unforseen bugs that do not appear on the developer's machine(s). To help guard against such problems, Regina ships with a rich test suite. The test suite asks Regina to perform different calculations that isolate different portions of its mathematical code, and it verifies that Regina gets all the answers correct.

You can only run the test suite if you are building Regina from source yourself. If you download a ready-made package, the person who built the package should have already verified that Regina passes the test suite (as all of the packages on the Regina website do).

You will also need CppUnit installed. Otherwise the test suite will run but only with the simpler Python tests, not the rich and detailed C++ calculation engine tests.

To run the test suite, move into your main build directory and type make test ARGS=-V. You should see the individual tests being run, as illustrated below.

example:~/source/regina/build> make test ARGS=-V
Running tests...
...
... (some initial output)
...
1: ---------------------------------------
1: Test suite for Regina's python bindings
1: ---------------------------------------
1: 
1: Running euler.test ... ok
1: Running file.test ... ok
...
... (more output)
...
2: Regina calculation engine test suite
2: 
2: NBitmaskTest::sizes... ok.
2: NBitmaskTest::firstLastBit... ok.
2: NBitmaskTest::truncate... ok.
...
... (lots and lots of output)
...
100% tests passed, 0 tests failed out of 2

Total Test time (real) =  19.48 sec
example:~/source/regina/build>

We see from the output above that Regina passed all of its tests (and hopefully this is what you will see too).

12.4.4.

Something else not described in this list has gone wrong.

Perhaps something crashed. Maybe the program gave the wrong answer. Or it could be just a little too slow?

Please! - mail the authors and let us know. You are welcome to write to us directly (our email addresses are here). Or even better, use the SourceForge services such as the bug tracking system and mailing lists so that the problem you report is publicly archived.

This program is permanently in development. There is a very long TODO list, and chances are your problem is on it. And then again chances are it's not. So please, let us know what you think can be fixed or improved.