Author: fperrad
Date: Fri Aug 15 07:04:45 2008
New Revision: 30251
Added:
trunk/languages/lua/src/lib/_helpers.pir
- copied unchanged from r30250,
/branches/opengl4lua/languages/lua/src/lib/_helpers.pir
trunk/languages/lua/src/lib/gl.lua
- copied unchanged from r30250,
/branches/opengl4lua/languages/lua/src/lib/gl.lua
trunk/languages/lua/src/lib/gl_binding.pir
- copied unchanged from r30250,
/branches/opengl4lua/languages/lua/src/lib/gl_binding.pir
Removed:
trunk/languages/lua/src/lib/gl.pir
Modified:
trunk/MANIFEST
trunk/MANIFEST.SKIP
trunk/languages/lua/config/makefiles/root.in
trunk/languages/lua/demo/triangle.lua
trunk/languages/lua/src/lib/ (props changed)
trunk/languages/lua/src/lib/luaaux.pir
trunk/languages/lua/src/lib/luapackage.pir
trunk/languages/lua/src/pmc/luatable.pmc
trunk/languages/lua/t/gl.t
Log:
[Lua] merge branch opengl4lua
Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST (original)
+++ trunk/MANIFEST Fri Aug 15 07:04:45 2008
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Mon Aug 11 22:57:10 2008 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Fri Aug 15 13:35:39 2008 UT
#
# See tools/dev/install_files.pl for documentation on the
# format of this file.
@@ -1624,11 +1624,13 @@
languages/lua/src/build/translator.pl [lua]
languages/lua/src/dumplex.tg [lua]
languages/lua/src/grammar51.pir [lua]
+languages/lua/src/lib/_helpers.pir [lua]
languages/lua/src/lib/alarm.pir [lua]
languages/lua/src/lib/base64.pir [lua]
languages/lua/src/lib/bc.pir [lua]
languages/lua/src/lib/bitlib.pir [lua]
-languages/lua/src/lib/gl.pir [lua]
+languages/lua/src/lib/gl.lua [lua]
+languages/lua/src/lib/gl_binding.pir [lua]
languages/lua/src/lib/glut.pir [lua]
languages/lua/src/lib/lfs.pir [lua]
languages/lua/src/lib/luaaux.pir [lua]
@@ -2008,6 +2010,7 @@
languages/perl6/t/pmc/mutable.t [perl6]
languages/perl6/t/pmc/mutablevar.t [perl6]
languages/perl6/t/pmc/perl6multisub-basic.t [perl6]
+languages/perl6/t/pmc/perl6multisub-dispatch-arity.t [perl6]
languages/perl6/t/spectest_regression.data [perl6]
languages/perl6/tools/autounfudge.pl [perl6]
languages/perl6/tools/fudge_purity_inspector.pl [perl6]
Modified: trunk/MANIFEST.SKIP
==============================================================================
--- trunk/MANIFEST.SKIP (original)
+++ trunk/MANIFEST.SKIP Fri Aug 15 07:04:45 2008
@@ -1,6 +1,6 @@
# ex: set ro:
# $Id$
-# generated by tools/dev/mk_manifest_and_skip.pl Sat Aug 9 17:29:40 2008 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Fri Aug 15 13:35:39 2008 UT
#
# This file should contain a transcript of the svn:ignore properties
# of the directories in the Parrot subversion repository. (Needed for
@@ -868,6 +868,8 @@
# generated from svn:ignore of 'languages/lua/src/lib/'
^languages/lua/src/lib/.*\.pbc$
^languages/lua/src/lib/.*\.pbc/
+^languages/lua/src/lib/gl\.pir$
+^languages/lua/src/lib/gl\.pir/
^languages/lua/src/lib/luabytecode_gen\.pir$
^languages/lua/src/lib/luabytecode_gen\.pir/
^languages/lua/src/lib/sha1\.pir$
Modified: trunk/languages/lua/config/makefiles/root.in
==============================================================================
--- trunk/languages/lua/config/makefiles/root.in (original)
+++ trunk/languages/lua/config/makefiles/root.in Fri Aug 15 07:04:45 2008
@@ -89,7 +89,9 @@
src/lua51_gen.pir \
src/PASTGrammar_gen.pir \
src/POSTGrammar_gen.pir \
- $(LIBPATH)/luabytecode_gen.pir
+ $(LIBPATH)/luabytecode_gen.pir \
+ $(LIBPATH)/gl.pir \
+ $(LIBPATH)/sha1.pir
GEN_PBC = \
lua.pbc
@@ -98,11 +100,13 @@
$(PMCDIR)/lua_group$(LOAD_EXT) \
$(LIB_PBCS) \
$(LIBPATH)/luaperl.pbc \
+ $(LIBPATH)/_helpers.pbc \
$(LIBPATH)/alarm.pbc \
$(LIBPATH)/base64.pbc \
$(LIBPATH)/bc.pbc \
$(LIBPATH)/bitlib.pbc \
$(LIBPATH)/gl.pbc \
+ $(LIBPATH)/gl_binding.pbc \
$(LIBPATH)/glut.pbc \
$(LIBPATH)/lfs.pbc \
$(LIBPATH)/md5.pbc \
@@ -186,6 +190,9 @@
$(LIBPATH)/luabytecode.pbc: $(LIBPATH)/luabytecode.pir
$(LIBPATH)/luabytecode_gen.pir
-$(PARROT) --output=$(LIBPATH)/luabytecode.pbc
$(LIBPATH)/luabytecode.pir
+$(LIBPATH)/_helpers.pbc: $(LIBPATH)/_helpers.pir
+ $(PARROT) --output=$(LIBPATH)/_helpers.pbc $(LIBPATH)/_helpers.pir
+
$(LIBPATH)/alarm.pbc: $(LIBPATH)/alarm.pir
-$(PARROT) --output=$(LIBPATH)/alarm.pbc $(LIBPATH)/alarm.pir
@@ -198,9 +205,15 @@
$(LIBPATH)/bitlib.pbc: $(LIBPATH)/bitlib.pir
-$(PARROT) --output=$(LIBPATH)/bitlib.pbc $(LIBPATH)/bitlib.pir
+$(LIBPATH)/gl.pir: $(LIBPATH)/gl.lua lua.pbc
+ -$(PARROT) luap.pir --target=pir $(LIBPATH)/gl.lua > $(LIBPATH)/gl.pir
+
$(LIBPATH)/gl.pbc: $(LIBPATH)/gl.pir
-$(PARROT) --output=$(LIBPATH)/gl.pbc $(LIBPATH)/gl.pir
+$(LIBPATH)/gl_binding.pbc: $(LIBPATH)/gl_binding.pir
+ -$(PARROT) --output=$(LIBPATH)/gl_binding.pbc $(LIBPATH)/gl_binding.pir
+
$(LIBPATH)/glut.pbc: $(LIBPATH)/glut.pir
-$(PARROT) --output=$(LIBPATH)/glut.pbc $(LIBPATH)/glut.pir
Modified: trunk/languages/lua/demo/triangle.lua
==============================================================================
--- trunk/languages/lua/demo/triangle.lua (original)
+++ trunk/languages/lua/demo/triangle.lua Fri Aug 15 07:04:45 2008
@@ -3,7 +3,7 @@
triangle.lua - Initialize GLUT and render a simple OpenGL animation
- $ ./parrot languages/lua/lua.pbc languages/lua/demo/triangle.lua
+ $ ./parrot --no-gc languages/lua/lua.pbc languages/lua/demo/triangle.lua
]]
@@ -29,13 +29,13 @@
prev_time = now
if rotating and dt ~= 0 then
gl.Rotate(360*dt, 0, 1, 0)
- glut.PostRedisplay()
+ glut.PostRedisplay()
end
end
function Keyboard (key)
if key == 27 or key == 81 or key == 113 then
- glut.DestroyWindow(glut_window)
+ glut.DestroyWindow(glut_window)
end
rotating = not rotating
end
@@ -50,4 +50,3 @@
glut.KeyboardFunc('Keyboard')
glut.MainLoop()
-
Modified: trunk/languages/lua/src/lib/luaaux.pir
==============================================================================
--- trunk/languages/lua/src/lib/luaaux.pir (original)
+++ trunk/languages/lua/src/lib/luaaux.pir Fri Aug 15 07:04:45 2008
@@ -418,7 +418,9 @@
if null val goto L1
res = isa val, 'LuaBoolean'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -437,7 +439,9 @@
if res goto L1
res = isa val, 'LuaFunction'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -454,7 +458,9 @@
if null val goto L1
res = isa val, 'LuaNil'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -475,7 +481,9 @@
$P0 = val.'tonumber'()
res = isa $P0, 'LuaNumber'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -495,7 +503,9 @@
if res goto L1
res = isa val, 'LuaNumber'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -512,7 +522,9 @@
if null val goto L1
res = isa val, 'LuaTable'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
@@ -529,7 +541,9 @@
if null val goto L1
res = isa val, 'LuaUserdata'
L1:
- .return (res)
+ new $P0, 'LuaBoolean'
+ set $P0, res
+ .return ($P0)
.end
Modified: trunk/languages/lua/src/lib/luapackage.pir
==============================================================================
--- trunk/languages/lua/src/lib/luapackage.pir (original)
+++ trunk/languages/lua/src/lib/luapackage.pir Fri Aug 15 07:04:45 2008
@@ -65,7 +65,7 @@
inc $P2
_loaders[$P2] = loader_PBCroot
- setpath(_package, 'path', 'LUA_PATH', './?.lua')
+ setpath(_package, 'path', 'LUA_PATH',
'./?.lua;languages/lua/src/lib/?.lua')
setpath(_package, 'pbcpath', 'LUA_PBCPATH',
'./?.pbc;./?.pir;languages/lua/src/lib/?.pbc')
.local pmc _lua__REGISTRY
Modified: trunk/languages/lua/src/pmc/luatable.pmc
==============================================================================
--- trunk/languages/lua/src/pmc/luatable.pmc (original)
+++ trunk/languages/lua/src/pmc/luatable.pmc Fri Aug 15 07:04:45 2008
@@ -563,6 +563,22 @@
/*
+=item C<void set_pmc_keyed_str(STRING *key, PMC *value)>
+
+Need by NameSpace.export_to().
+
+=cut
+
+*/
+ VTABLE void set_pmc_keyed_str(STRING *key, PMC *value) {
+ PMC * pmc_key = pmc_new(INTERP, dynpmc_LuaString);
+ VTABLE_set_string_native(INTERP, pmc_key, string_copy(INTERP, key));
+ value = VTABLE_clone(interp, value);
+ *lua_set(INTERP, PMC_hash(SELF), pmc_key) = value;
+ }
+
+/*
+
=item C<INTVAL elements()>
Returns the number of elements in the table.
Modified: trunk/languages/lua/t/gl.t
==============================================================================
--- trunk/languages/lua/t/gl.t (original)
+++ trunk/languages/lua/t/gl.t Fri Aug 15 07:04:45 2008
@@ -36,7 +36,7 @@
plan skip_all => "OpenGL needed";
}
else {
- plan tests => 1;
+ plan tests => 4;
}
language_output_is( 'lua', << 'CODE', << 'OUTPUT', 'require' );
@@ -47,6 +47,30 @@
OpenGL
OUTPUT
+language_output_like( 'lua', << 'CODE', << 'OUTPUT', 'bad type' );
+require 'gl'
+gl.Begin(nil)
+CODE
+/^[^:]+: [^:]+:\d+: incorrect argument to function 'gl.Begin'\nstack
traceback:\n/
+OUTPUT
+
+language_output_like( 'lua', << 'CODE', << 'OUTPUT', 'bad value' );
+require 'gl'
+gl.Begin('BAD_VALUE')
+CODE
+/^[^:]+: [^:]+:\d+: incorrect string argument to function 'gl.Begin'\nstack
traceback:\n/
+OUTPUT
+
+language_output_is( 'lua', << 'CODE', << 'OUTPUT', 'Begin/End' );
+require 'gl'
+gl.Begin('TRIANGLES')
+gl.End()
+print "OpenGL"
+CODE
+OpenGL
+OUTPUT
+
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4