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

Reply via email to