On Wed Apr 16 14:34:05 2008, geoff wrote:
> Now that 0.6.1 is out, please consider adding the attached patch to the
> Parrot trunk ... I'd like help with platform porting concerns, and I'd
> really like to reduce the size of my local diffs. :-)
Here's what I get on linux/amd64:
Determining if your platform supports OpenGL...................yes, GLUT 4.
...
[EMAIL PROTECTED] parrot-trunk % ./parrot examples/opengl/triangle.pir
error:imcc:Constant 'GL_MANGLE_C1' value must be a number, stringliteral
or register
in file 'opengl_defines.pasm' line 1394
included from 'examples/opengl/triangle.pir' line 1
The relevant portion of opengl_defines.pasm:
.macro_const GL_MAD_ATI 0x8968
.macro_const GL_MAGNITUDE_BIAS_NV 0x8718
.macro_const GL_MAGNITUDE_SCALE_NV 0x8712
.macro_const GL_MANGLE_C1 "DO
.macro_const GL_MANGLE_C2 "This
.macro_const GL_MANGLE_C3 "get
.macro_const GL_MANGLE_C4 get
.macro_const GL_MAP1_BINORMAL_EXT 0x8446
.macro_const GL_MAP1_COLOR_4 0x0D90
.macro_const GL_MAP1_GRID_DOMAIN 0x0DD0
It looks like this is a parsing bug, caused by some weird stuff in one
of my header files. The top of my /usr/include/GL/gl_mangle.h looks
like this:
#if 0
#define GL_MANGLE_C1 "DO NOT EDIT!!! - TO REGENERATE from gl.h, EXECUTE
THIS FILE IN SHELL (/bin/sh) and save the output"
#define GL_MANGLE_C2 "This file is used to create GL function protypes
and aliases for the function names"
files="gl.h glext.h"
#define GL_MANGLE_C3 "get regeneration header - copy everything in this
file above the 'REGENERATE_TO_END' line"
awk '!done; /^\/\*REGENERATE_TO_END/ {done=1}' $0
echo ""
#define GL_MANGLE_C4 get aliases
grep '^GLAPI' $files | sed -e 's/.*ENTRY gl\([^( ]*\).*$/#define
gl\1 MANGLE(\1)/' | sort | uniq
echo ""
echo "#endif /* GL_MANGLE_H */"
exit
#endif /* REGENERATION */
Pretty, huh.
Mark