From: Steven B. <bw...@ph...> - 2012-07-25 01:58:17
|
Greetings Fellow VPython Users, We are using Python fairly extensively in Physics courses here and so far 32-bit limitations have not been much of a problem on either Windows or MacOS X. However, that seems unlikely to be true in the not very distant future (especially given Apple's penchant for forced obsolescence of both hardware and software.) Recently, I have been trying to put together a 64-bit suite of tools for the MacOS X users in our student body and the final obstacle is the visual module. (Actually VPython was the final obstacle on Windows as well, but we were able to take advantage of packages built by Christoph Gohlke at http://www.lfd.uci.edu/~gohlke/pythonlibs/#vpython) It is clear that the "native" port (via Carbon) is impossible because it is only 32-bit; so the target is X11 graphics. I am working on a MacPorts Portfile that now successfully fetches visual_5.74_release.tar.bz2, unpacks it, runs configure with flags that appear to permit all of the libraries and include files to be found and then runs make. While building, I encounter problems in gl_extensions.cpp. ./core/util/gl_extensions.cpp: In member function 'void cvisual::gl_extensions::init(cvisual::display_kernel&)': ./core/util/gl_extensions.cpp:50: error: invalid conversion from 'void (*)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)' to 'void (*)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*)' Truncating signatures we have: (a) enum, int, int, sizei, sizei, int, enum, enum, void* (b) enum, int, enum, sizei, sizei, int, enum, enum, void* So, the third arguments are inconsistent. While I have a substantial amount of programming experience, but I am not a developer and I have not touched C++ since before it was an ANSI standard; so I am having a devil of a time interpreting what I am seeing in the source files. It appears that the cvisual constructor that takes a display_kernel address as an argument is finding that it has received an object that doesn't conform with signature expectations. Given that this code must be working on other platforms, do we have an enum/int casting incompatibility that is exclusive to 64-bit Mac OS X? Perhaps int is an int64 while enum is an int32? Any hints on how to fix this issue would be appreciated. Thanks. -- Steve Butterworth, Manager | If you make people think they're thinking, Physics Computing Services | they'll love you; but if you really make McLennan Labs 805 | them think, they'll hate you. -- Don Phone: 416-978-2746 | Marquis <bw...@ph...> | |