NCI questions

2008-04-17 Thread Geoffrey Broadwell
I've been working on parsing the function prototypes in the
GL/GLU/GLUT/GLX headers, in preparation for generating bindings for all
of them during the Parrot build.

Currently my prototype parser is able to compute NCI signatures for all
but 14 out of the 1835 total prototypes found in my system's headers.
Those 14 failures break down as follows:

  5   Parrot NCI doesn't handle 'long long', only 'long long *'
  4   Callback registration functions neither Parrot nor I handle yet
  3   GetProcAddress-type functions; not sure how to deal with these
  2   SGI-specific (IRIS?) headers required, which I don't have
 --
 14   TOTAL

The second group I'll handle soon, and the fourth group I'll just ignore
for now.  That leaves the first and third groups, for which I could use
some advice:

1. Any suggestions on a sane way to handle 'long long' NCI arguments,
   when Parrot could be built with either 32 or 64 bit INTVAL?

2. How do you create an NCI Sub (like the dlfunc op does) using a
   function pointer returned anonymously by a function, instead
   of by name using the normal dlfunc op?

Also, I'm having to squash away signed/unsigned distinctions for
non-pointer NCI arguments with integer types, because current Parrot NCI
always forces integer types to signed.  Any way to lift this limitation?


-'f




[perl #52988] [NEW] OpenGL binding, part 1

2008-04-17 Thread via RT
# New Ticket Created by  Geoffrey Broadwell 
# Please include the string:  [perl #52988]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52988 


(I have heard nothing at all since my last posting on this subject, so I
have continued working on it on my own.)

I have now converted all of my OpenGL binding proof of concept code to
the Parrot build system and directory structure.  I have also added
parsing of GL/GLU/GLUT headers to obtain all OpenGL #defines, fixed some
bugs, and generally cleaned up some messy bits.

This is still *FAR* from a complete OpenGL binding, but it includes a
working animation example, and is considerably more right in its
implementation than my previous postings.  It will even properly respect
a '--without-opengl' flag to Configure.pl.

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.  :-)


-'f

=== CREDITS
==
--- CREDITS	(revision 4769)
+++ CREDITS	(local)
@@ -247,6 +247,7 @@
 D: Fix typo in PARROT_BIGENDIAN case
 
 N: Geoff Broadwell
+D: OpenGL binding
 D: examples fixes
 
 N: Gerard Goossen
=== MANIFEST
==
--- MANIFEST	(revision 4769)
+++ MANIFEST	(local)
@@ -266,6 +266,8 @@
 config/auto/memalign/test_c2.in []
 config/auto/msvc.pm []
 config/auto/msvc/test_c.in  []
+config/auto/opengl.pm   []
+config/auto/opengl/opengl.in[]
 config/auto/ops.pm  []
 config/auto/pack.pm []
 config/auto/perldoc.pm  []
@@ -317,6 +319,7 @@
 config/gen/makefiles/pirc.in[]
 config/gen/makefiles/root.in[]
 config/gen/makefiles/tge.in []
+config/gen/opengl.pm[]
 config/gen/parrot_include.pm[]
 config/gen/platform.pm  []
 config/gen/platform/aix/asm.s   []
@@ -653,6 +656,7 @@
 examples/nci/ls.pir [main]doc
 examples/nci/sdl_blue_rectangle.pir [main]doc
 examples/nci/win32api.pir   [main]doc
+examples/opengl/triangle.pir[main]doc
 examples/pasm/cat.pasm  [main]doc
 examples/pasm/fact.pasm [main]doc
 examples/pasm/hello.pasm[main]doc
@@ -2595,6 +2599,8 @@
 runtime/parrot/library/JSON.pir [library]
 runtime/parrot/library/MIME/Base64.pir  [library]
 runtime/parrot/library/Math/Random/mt19937ar.pir[library]
+runtime/parrot/library/NCI/call_toolkit_init.pir[library]
+runtime/parrot/library/OpenGL.pir   [library]
 runtime/parrot/library/PCT/README   [library]
 runtime/parrot/library/PGE/Dumper.pir   [library]
 runtime/parrot/library/PGE/Glob.pir [library]
@@ -3468,6 +3474,7 @@
 t/steps/auto_msvc-02.t  []
 t/steps/auto_msvc-03.t  []
 t/steps/auto_msvc-04.t  []
+t/steps/auto_opengl-01.t[]
 t/steps/auto_ops-01.t   []
 t/steps/auto_pack-01.t  []
 t/steps/auto_perldoc-01.t   []
@@ -3504,6 +3511,7 @@
 t/steps/gen_core_pmcs-01.t  []
 t/steps/gen_languages-01.t  []
 t/steps/gen_makefiles-01.t  []
+t/steps/gen_opengl-01.t []
 t/steps/gen_parrot_include-01.t []
 t/steps/gen_platform-01.t   []
 t/steps/init_defaults-01.t  []
=== MANIFEST.generated
==
--- MANIFEST.generated	(revision 4769)
+++ MANIFEST.generated	(local)
@@ -129,6 +129,10 @@
 runtime/parrot/dynext/gdbmhash.dll[library]
 runtime/parrot/dynext/gdbmhash.dylib  [library]
 runtime/parrot/dynext/gdbmhash.so [library]
+runtime/parrot/dynext/libglutcb.bundle[library]
+runtime/parrot/dynext/libglutcb.dll   [library]

[perl #52988] [PATCH] OpenGL binding, part 1

2008-04-17 Thread Mark Glines via RT
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_NV0x8718
.macro_const GL_MAGNITUDE_SCALE_NV   0x8712
.macro_const GL_MANGLE_C1DO
.macro_const GL_MANGLE_C2This
.macro_const GL_MANGLE_C3get
.macro_const GL_MANGLE_C4get
.macro_const GL_MAP1_BINORMAL_EXT0x8446
.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



M2 Bytecode format

2008-04-17 Thread Mark Glines
: 
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi, Jonathan (and everyone else)!

Wednesday on IRC, we discussed the M2 Bytecode format milestone.  This
email is my attempt to formalize a plan for this work.  I am hoping you
will read through it and tell me how wrong I am. :)

First off, I've created a branch (named pdd13pbc) for this.  So that's
where all this work is going to go.

As we discussed, there are two top level goals here:

1.  Update the disk format and/or interface to match the PDD13 spec.

2.  Move all of the .pbc-handling code into a PackFile.pmc class.


At your suggestion, I'm going to be focusing on the second option.  It
seems to me that I should tackle this in the following order:

2.1.  Create some simple PMC classes named as specified in PDD13.

2.2.  Toss together some methods which wrap around the existing
src/packfile.c, src/packdump.c and src/packout.c functions.

2.3.  Write a bunch of tests, test the hell out of it.

2.4.  Start moving everything in parrot over to use the new PMC-based
packfile API.

2.5.  Copypaste pieces of packfile.c, packout.c, packdump.c code into
the PMCs, to make them self-reliant.

2.6.  Test the hell out of it.  (Again.)

2.7.  Rip out src/pack*.c and make sure nothing breaks.


Questions:

Does this plan sound reasonable?

Should this PMC implement the pdump functionality (src/packdump.c) as
well as packfile.c/packout.c?

Speaking of pdump, it seems to be mentioned in various places,
mostly documentation and scripts, but it does not actually seem to be
buildable. Judging from the documentation, there used to be a make
pdump, but not any more. What's up with that?

Should I be tracking these subtasks in RT, or just keeping track of
things on my own?

Mark


Re: M2 Bytecode format

2008-04-17 Thread Will Coleda
On Thu, Apr 17, 2008 at 10:59 AM, Mark Glines [EMAIL PROTECTED] wrote:
 :
  Mime-Version: 1.0
  Content-Type: text/plain; charset=US-ASCII
  Content-Transfer-Encoding: 7bit

  Hi, Jonathan (and everyone else)!

  Wednesday on IRC, we discussed the M2 Bytecode format milestone.  This
  email is my attempt to formalize a plan for this work.  I am hoping you
  will read through it and tell me how wrong I am. :)

  First off, I've created a branch (named pdd13pbc) for this.  So that's
  where all this work is going to go.

+1

  As we discussed, there are two top level goals here:

  1.  Update the disk format and/or interface to match the PDD13 spec.

  2.  Move all of the .pbc-handling code into a PackFile.pmc class.


  At your suggestion, I'm going to be focusing on the second option.  It
  seems to me that I should tackle this in the following order:

  2.1.  Create some simple PMC classes named as specified in PDD13.

  2.2.  Toss together some methods which wrap around the existing
  src/packfile.c, src/packdump.c and src/packout.c functions.

  2.3.  Write a bunch of tests, test the hell out of it.

  2.4.  Start moving everything in parrot over to use the new PMC-based
  packfile API.

  2.5.  Copypaste pieces of packfile.c, packout.c, packdump.c code into
  the PMCs, to make them self-reliant.

  2.6.  Test the hell out of it.  (Again.)

  2.7.  Rip out src/pack*.c and make sure nothing breaks.


  Questions:

  Does this plan sound reasonable?

  Should this PMC implement the pdump functionality (src/packdump.c) as
  well as packfile.c/packout.c?

  Speaking of pdump, it seems to be mentioned in various places,
  mostly documentation and scripts, but it does not actually seem to be
  buildable. Judging from the documentation, there used to be a make
  pdump, but not any more. What's up with that?

  Should I be tracking these subtasks in RT, or just keeping track of
  things on my own?

RT works. Thanks!

  Mark





-- 
Will Coke Coleda


Re: [perl #52988] [PATCH] OpenGL binding, part 1

2008-04-17 Thread Geoffrey Broadwell
On Thu, 2008-04-17 at 05:49 -0700, Mark Glines via RT wrote:
 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 */

Oh man, that's just nasty.  What the heck was that coder thinking?!?
Clearly the problem is too much exposure to sed and awk.  :-)

I was hoping to not have to try to parse that kind of mess correctly,
but it looks like I've got three options:

  1. Parse the headers for real, instead of the current 80% solution.
  2. Special case '#if 0 ... #endif'.
  3. Parse the define *values*, and toss any that don't look right.

I'm thinking #3, since it's probably best to have that safety check
anyway, and it's probably the easiest.  I'll work on that one.

 Pretty, huh.

Oh yeah.  Nice catch, thank you!


-'f




Re: [perl #52988] [PATCH] OpenGL binding, part 1

2008-04-17 Thread Mark Glines
On Thu, 17 Apr 2008 08:16:23 -0700
Geoffrey Broadwell [EMAIL PROTECTED] wrote:
   3. Parse the define *values*, and toss any that don't look right.
 
 I'm thinking #3, since it's probably best to have that safety check
 anyway, and it's probably the easiest.  I'll work on that one.

Sounds good to me.  Clearly those values weren't meant to actually be
used anywhere.

Mark


[perl #52818] readline detection failing (linux x86_64)

2008-04-17 Thread Alberto Simoes via RT
A solution was implemented at revision 27020.
They might be cases where this doesn't work. (hope not)



Re: parrot benchmarking

2008-04-17 Thread Andy Dougherty
If optimized builds are to be the default, however, someone needs to 
either hunt down and fix all the wrong attribute_null decorations, or 
apply a patch similar in spirit to the one I proposed in

 [PATCH] Re: [perl #50684] String Failures with -O2 (GCC 4.1.3, 32-bit x86 
Linux)

Otherwise core dumps will ensue.

-- 
Andy Dougherty  [EMAIL PROTECTED]


Re: parrot benchmarking

2008-04-17 Thread Geoffrey Broadwell
On Thu, 2008-04-17 at 15:35 -0400, Andy Dougherty wrote:
 If optimized builds are to be the default, however, someone needs to 
 either hunt down and fix all the wrong attribute_null decorations, or 
 apply a patch similar in spirit to the one I proposed in
 
  [PATCH] Re: [perl #50684] String Failures with -O2 (GCC 4.1.3, 32-bit x86 
 Linux)
 
 Otherwise core dumps will ensue.

I see this particular priority bump to be a Good Thing, actually.  I'd
really like to see the correctness of optimized parrot ratcheted up a
few notches -- so I can feel safe using it all the time.  :-)


-'f




Re: PCT tutorial update suggestions

2008-04-17 Thread Klaas-Jan Stol
On Fri, Apr 11, 2008 at 5:32 AM, Patrick R. Michaud [EMAIL PROTECTED] wrote:
 With some recent PCT-related changes I think we may want to
  update the tutorials a bit.

  1.  Remove the custom List class.

  ResizablePMCArray now has built-in shift/unshift/push/pop
  methods, so we can use it directly from NQP and don't need
  to create a custom List class to be able to invoke these
  operations.

  2.  Remove :scope attribute from PAST::Var nodes.

  My intent has been that most PAST::Var nodes for simple variables
  would not require individual scope attributes; with the changes
  I checked into Parrot tonight this should be easier.  In Squaak's
  case this means that the Cidentifier action method should now
  read:

 method identifier($/) {
 make PAST::Var.new( :name($name),
 :viviself('Undef'),
 :node($/) );
 }

  In particular, note that there's no longer a need to
  explicitly search outer blocks for the scope -- PCT
  will handle this automatically.

  To indicate that all undeclared variables should default
  to 'package' scope, we use the Csymbol_defaults method on
  the top-level block.  For Squaak, we add the following to its
  TOP action method:

 $?BLOCK.symbol_defaults(:scope('package'));

  This says that 'package' scope is to be used for any PAST::Var
  node that doesn't have its own :scope and that doesn't have a
  scope provided by an outer block's symbol hash.


  3. (Bonus problem)  Eliminate @?BLOCK

  Since PAST::Var nodes no longer need to search outer blocks
  (PCT will handle that), we no longer need to maintain a @?BLOCK
  array.  So, for bonus points, eliminate @?BLOCK from the Squaak
  methods.


I don't really see immediately that @?BLOCK can be removed...

blocks open and close, but $?BLOCk should always point to the current
block, right?
So, in order to restore $?BLOCK, we need to store the old one
somewhere, and this must be done in a LIFO order (to allow for
multiple nested blocks).

Maybe I'm missing something. Could you explain this a bit?

thanks!
kjs

  If I can help explain or demonstrate any of the above, let me know.
  Thanks!

  Pm



Re: parrot benchmarking

2008-04-17 Thread chromatic
On Thursday 17 April 2008 12:35:42 Andy Dougherty wrote:

 If optimized builds are to be the default, however, someone needs to
 either hunt down and fix all the wrong attribute_null decorations, or
 apply a patch similar in spirit to the one I proposed in

  [PATCH] Re: [perl #50684] String Failures with -O2 (GCC 4.1.3, 32-bit x86
 Linux)

 Otherwise core dumps will ensue.

Agreed; I'll look into this over the next few days.

-- c


M2 Bytecode format

2008-04-17 Thread Bob Rogers
   From: Mark Glines [EMAIL PROTECTED]
   Date: Thu, 17 Apr 2008 07:59:03 -0700

   . . .

   Should this PMC implement the pdump functionality (src/packdump.c)
   as well as packfile.c/packout.c?

I find pdump somewhat useful.

   Speaking of pdump, it seems to be mentioned in various places,
   mostly documentation and scripts, but it does not actually seem to be
   buildable. Judging from the documentation, there used to be a make
   pdump, but not any more. What's up with that?

See config/gen/makefiles/root.in line 929.  This works for me (GNU/Linux
i586) in r26999.

-- Bob Rogers
   http://rgrjr.dyndns.org/


[perl #52818] readline detection failing (linux x86_64)

2008-04-17 Thread James Keenan via RT
On Thu Apr 17 10:51:10 2008, ambs wrote:
 A solution was implemented at revision 27020.
 They might be cases where this doesn't work. (hope not)


This is what I got on Linux at r27021:

Determining if your platform supports readline...cc  -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-D_GNU_SOURCE -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED 
-DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN 
-DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED 
-DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16
-fvisibility=hidden -maccumulate-outgoing-args -W -Wall
-Waggregate-return -Wbad-function-cast -Wc++-compat -Wcast-align
-Wcast-qual -Wchar-subscripts -Wcomment -Wdeclaration-after-statement
-Wdisabled-optimization -Wendif-labels -Wextra -Wformat
-Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport
-Winit-self -Winline -Winvalid-pch -Wmain -Wmissing-braces
-Wmissing-declarations -Wmissing-field-initializers
-Wno-missing-format-attribute -Wmissing-include-dirs
-Wmissing-prototypes -Wnested-externs -Wnonnull -Wpacked -Wparentheses
-Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow
-Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch
-Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused
-Wvariadic-macros -Wwrite-strings  -I./include -c test.c
cc  -L/usr/local/lib -Wl,-E test.o  -o test  -lnsl -ldl -lm -lcrypt
-lutil -lpthread -lrt -lreadline
/usr/bin/ld: cannot find -lreadline
collect2: ld returned 1 exit status
cc  -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -DHASATTRIBUTE_CONST 
-DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL
 -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED 
-DHASATTRIBUTE_WARN_UNUSED_RESULT  -falign-functions=16
-fvisibility=hidden -maccumulate-outgoing-args -W -Wall
-Waggregate-return -Wbad-function-cast -Wc++-compat -Wcast-align
-Wcast-qual -Wchar-subscripts -Wcomment -Wdeclaration-after-statement
-Wdisabled-optimization -Wendif-labels -Wextra -Wformat
-Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k
-Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wimport
-Winit-self -Winline -Winvalid-pch -Wmain -Wmissing-braces
-Wmissing-declarations -Wmissing-field-initializers
-Wno-missing-format-attribute -Wmissing-include-dirs
-Wmissing-prototypes -Wnested-externs -Wnonnull -Wpacked -Wparentheses
-Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow
-Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch
-Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused
-Wvariadic-macros -Wwrite-strings  -I./include -c test.c
cc  -L/usr/local/lib -Wl,-E test.o  -o test  -lnsl -ldl -lm -lcrypt
-lutil -lpthread -lrt -lreadline -lncurses
/usr/bin/ld: cannot find -lreadline
collect2: ld returned 1 exit status
 (no) ...no.
Setting Configuration Data:
(
verbose = undef,
);

But whenever I say 'sudo apt-get install libreadline5', I'm told the
package is up-to-date.

Configure.pl continues to correctly detect readline on my Mac OS X 10.4,
where (IIRC) I installed it via Fink.


kid51


Re: [perl #52988] [PATCH] OpenGL binding, part 1

2008-04-17 Thread Geoffrey Broadwell
On Thu, 2008-04-17 at 08:33 -0700, Mark Glines via RT wrote:
 On Thu, 17 Apr 2008 08:16:23 -0700
 Geoffrey Broadwell [EMAIL PROTECTED] wrote:
3. Parse the define *values*, and toss any that don't look right.
  
  I'm thinking #3, since it's probably best to have that safety check
  anyway, and it's probably the easiest.  I'll work on that one.
 
 Sounds good to me.  Clearly those values weren't meant to actually be
 used anywhere.

OK, try the attached version of the patch.  The only thing different
than the old patch is a few lines in the code that parses the header
defines.  Now only integer hex constants and integer or floating point
decimal constants are allowed.  (Constants defined to be the same as
other constants still work.)  Any other value will be ignored, with an
optional message indicating the value that could not be parsed, if
--verbose is on.


-'f

=== CREDITS
==
--- CREDITS	(revision 4780)
+++ CREDITS	(local)
@@ -247,6 +247,7 @@
 D: Fix typo in PARROT_BIGENDIAN case
 
 N: Geoff Broadwell
+D: OpenGL binding
 D: examples fixes
 
 N: Gerard Goossen
=== MANIFEST
==
--- MANIFEST	(revision 4780)
+++ MANIFEST	(local)
@@ -266,6 +266,8 @@
 config/auto/memalign/test_c2.in []
 config/auto/msvc.pm []
 config/auto/msvc/test_c.in  []
+config/auto/opengl.pm   []
+config/auto/opengl/opengl.in[]
 config/auto/ops.pm  []
 config/auto/pack.pm []
 config/auto/perldoc.pm  []
@@ -317,6 +319,7 @@
 config/gen/makefiles/pirc.in[]
 config/gen/makefiles/root.in[]
 config/gen/makefiles/tge.in []
+config/gen/opengl.pm[]
 config/gen/parrot_include.pm[]
 config/gen/platform.pm  []
 config/gen/platform/aix/asm.s   []
@@ -653,6 +656,7 @@
 examples/nci/ls.pir [main]doc
 examples/nci/sdl_blue_rectangle.pir [main]doc
 examples/nci/win32api.pir   [main]doc
+examples/opengl/triangle.pir[main]doc
 examples/pasm/cat.pasm  [main]doc
 examples/pasm/fact.pasm [main]doc
 examples/pasm/hello.pasm[main]doc
@@ -2595,6 +2599,8 @@
 runtime/parrot/library/JSON.pir [library]
 runtime/parrot/library/MIME/Base64.pir  [library]
 runtime/parrot/library/Math/Random/mt19937ar.pir[library]
+runtime/parrot/library/NCI/call_toolkit_init.pir[library]
+runtime/parrot/library/OpenGL.pir   [library]
 runtime/parrot/library/PCT/README   [library]
 runtime/parrot/library/PGE/Dumper.pir   [library]
 runtime/parrot/library/PGE/Glob.pir [library]
@@ -3468,6 +3474,7 @@
 t/steps/auto_msvc-02.t  []
 t/steps/auto_msvc-03.t  []
 t/steps/auto_msvc-04.t  []
+t/steps/auto_opengl-01.t[]
 t/steps/auto_ops-01.t   []
 t/steps/auto_pack-01.t  []
 t/steps/auto_perldoc-01.t   []
@@ -3504,6 +3511,7 @@
 t/steps/gen_core_pmcs-01.t  []
 t/steps/gen_languages-01.t  []
 t/steps/gen_makefiles-01.t  []
+t/steps/gen_opengl-01.t []
 t/steps/gen_parrot_include-01.t []
 t/steps/gen_platform-01.t   []
 t/steps/init_defaults-01.t  []
=== MANIFEST.generated
==
--- MANIFEST.generated	(revision 4780)
+++ MANIFEST.generated	(local)
@@ -129,6 +129,10 @@
 runtime/parrot/dynext/gdbmhash.dll[library]
 runtime/parrot/dynext/gdbmhash.dylib  [library]
 runtime/parrot/dynext/gdbmhash.so [library]
+runtime/parrot/dynext/libglutcb.bundle[library]
+runtime/parrot/dynext/libglutcb.dll   [library]
+runtime/parrot/dynext/libglutcb.dylib [library]
+runtime/parrot/dynext/libglutcb.so[library]
 runtime/parrot/dynext/libnci_test.bundle  [library]
 

[perl #52988] [PATCH] OpenGL binding, part 1

2008-04-17 Thread Mark Glines via RT
On Thu Apr 17 21:14:44 2008, geoff wrote:
 OK, try the attached version of the patch.

Works For Me.  So now lets see how much it breaks for everyone else.  :)

Applied in r27022, with the following modifications:

* Removed trailing whitespace to pass codingstd test.
* Rearranged config/gen/opengl.pm a bit, so that the POD snippets occur
in the same order as it will occur in the output, to pass perlcritic.t
and pod.t.

Mark