I have been trying to use Math3D (on my Linux system) and I encountered some
problems. It's only fair to post fixes here too, as I can happily use the
library now. I also mailed these patches to the author, I hope he can use
them. Unfortunately there's no rubyforge project and I'm reluctant to set
one up with code coming from someone else.

Here are the patches:

extconf.rb:
The CFLAGS << syntax is deprecated, I did not find any new solutions for it.
On my system the atan function is not in lm (but in the standard gcc library
cmath), so I had to remove that check too. Do note that all tests run fine
now, so this did not harm the workings.

In test.rb:
I had to change the syntax for adding testsuites:
suite << klass.suite if klass < Test::Unit::TestCase

In almost every test I had to rename set_up to setup and tear_down to
teardown, this seems to be old syntax?

In some tests the object.id method is used, I changed it to object.object_id
where Ruby warned me but of course this is nothing serious.

In Bound.tests.rb I had to change [0.to_a] to [[0]] on line 30, I hope
that's equivalent to what was being tested?

In Matrix4.tests.rb I had to do the same on line 32, on line 137 I noticed
you threw IndexErrors instead of Math3d::IndexErrors so I removed Math3d::,
I had the same problem with InvertError.

In Require.tests.rb I fixed the warning that const_defined? should put ( )
around its arguments.

In m3dUnitTest.rb I added a line at the top of the class to avoid running
this empty test: undef_method :default_test (thanks Eric Hodel for the
hint).

In Vector.tests.rb I had larger problems. The instantiation matrix is also
filled with nil objects, but that gives stacktraces when executing. So I
commented out these tests, which feels incorrect... Any suggestions there?
On line 556 I changed .5 into 0.5 in order to make the file run, a trivial
correction of course.

Any comments are welcome!
Bart