[svn:parrot] r39502 - in branches/pmc_pct: . compilers/pmcc compilers/pmcc/src compilers/pmcc/src/emitter compilers/pmcc/src/emitter/pmc compilers/pmcc/t compilers/pmcc/tools config/gen/makefiles
cotto at svn.parrot.org
cotto at svn.parrot.org
Thu Jun 11 03:04:46 UTC 2009
Author: cotto
Date: Thu Jun 11 03:04:42 2009
New Revision: 39502
URL: https://trac.parrot.org/parrot/changeset/39502
Log:
[pmcc] finish switching pmcc to use the new vtable dump, delete/update relevant files
Deleted:
branches/pmc_pct/compilers/pmcc/src/vtable_info.pir
branches/pmc_pct/compilers/pmcc/src/vtable_info.pm
branches/pmc_pct/compilers/pmcc/t/04-vtable-info.t
branches/pmc_pct/compilers/pmcc/tools/
Modified:
branches/pmc_pct/MANIFEST
branches/pmc_pct/compilers/pmcc/pmcc.pir
branches/pmc_pct/compilers/pmcc/src/emitter.pm
branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm
branches/pmc_pct/compilers/pmcc/src/emitter/pmc/default.pm
branches/pmc_pct/compilers/pmcc/t/07-default.t
branches/pmc_pct/compilers/pmcc/t/common.pir
branches/pmc_pct/config/gen/makefiles/pmcc.in
Modified: branches/pmc_pct/MANIFEST
==============================================================================
--- branches/pmc_pct/MANIFEST Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/MANIFEST Thu Jun 11 03:04:42 2009 (r39502)
@@ -1,7 +1,7 @@
# ex: set ro:
# $Id$
#
-# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 4 02:33:25 2009 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Thu Jun 11 02:16:03 2009 UT
#
# See below for documentation on the format of this file.
#
@@ -192,7 +192,7 @@
compilers/pirc/t/subflags.t [test]
compilers/pmcc/DOTPLAN.pod [pmcc]
compilers/pmcc/README.pod []doc
-compilers/pmcc/TODO [pmcc]
+compilers/pmcc/TODO.pod [pmcc]
compilers/pmcc/pmcc.pir [pmcc]
compilers/pmcc/src/builtins.pir [pmcc]
compilers/pmcc/src/emitter.pm [pmcc]
@@ -205,15 +205,13 @@
compilers/pmcc/src/nodes.pir [pmcc]
compilers/pmcc/src/parser/actions.pm [pmcc]
compilers/pmcc/src/parser/grammar.pg [pmcc]
-compilers/pmcc/src/vtable_info.pir [pmcc]
-compilers/pmcc/src/vtable_info.pm [pmcc]
compilers/pmcc/t/01-parse.t [test]
compilers/pmcc/t/02-parse-all-pmcs.t [test]
compilers/pmcc/t/03-past.t [test]
-compilers/pmcc/t/04-vtable-info.t [test]
compilers/pmcc/t/05-header.t [test]
compilers/pmcc/t/06-body.t [test]
compilers/pmcc/t/07-default.t [test]
+compilers/pmcc/t/08-multi.t [test]
compilers/pmcc/t/common.pir [test]
compilers/pmcc/t/data/child.pmc [test]
compilers/pmcc/t/data/class.pmc [test]
@@ -244,10 +242,10 @@
compilers/pmcc/t/data/class24.pmc [test]
compilers/pmcc/t/data/class25.pmc [test]
compilers/pmcc/t/data/class26.pmc [test]
+compilers/pmcc/t/data/class27.pmc [test]
compilers/pmcc/t/data/default.pmc [test]
compilers/pmcc/t/data/parent.pmc [test]
compilers/pmcc/t/harness [test]
-compilers/pmcc/tools/vtable_pm.pl [pmcc]
compilers/tge/README []doc
compilers/tge/TGE.pir [tge]
compilers/tge/TGE/Compiler.pir [tge]
@@ -259,7 +257,12 @@
compilers/vtdumper/src/function.pir [vtdumper]
compilers/vtdumper/src/parser/actions.pm [vtdumper]
compilers/vtdumper/src/parser/grammar.pg [vtdumper]
-compilers/vtdumper/t/vtable.tbl [test]
+compilers/vtdumper/t/01-functions.t [test]
+compilers/vtdumper/t/02-sections.t [test]
+compilers/vtdumper/t/03-attributes.t [test]
+compilers/vtdumper/t/04-vtable_tbl.t [test]
+compilers/vtdumper/t/common.pir [test]
+compilers/vtdumper/t/harness [test]
compilers/vtdumper/vtdumper.pir [vtdumper]
config/auto/alignptrs.pm []
config/auto/alignptrs/test_c.in []
Modified: branches/pmc_pct/compilers/pmcc/pmcc.pir
==============================================================================
--- branches/pmc_pct/compilers/pmcc/pmcc.pir Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/pmcc.pir Thu Jun 11 03:04:42 2009 (r39502)
@@ -167,7 +167,6 @@
.end
.include 'src/nodes.pir'
-.include 'src/vtable_info.pir'
.include '../vtdumper/src/function.pir'
.include 'src/emitter/pmc.pir'
.include 'src/emitter/c.pir'
@@ -177,7 +176,6 @@
.include 'src/emitter/gen_c.pir'
.include 'src/emitter/pmc/default.pir'
.include 'src/emitter/pmc/gen_default.pir'
-.include 'src/gen_vtable_info.pir'
.include 'src/parser/gen_grammar.pir'
.include 'src/parser/gen_actions.pir'
.include 'src/builtins.pir'
Modified: branches/pmc_pct/compilers/pmcc/src/emitter.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/emitter.pm Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/src/emitter.pm Thu Jun 11 03:04:42 2009 (r39502)
@@ -40,7 +40,7 @@
# Generate header.
dont_edit($filename)
# PMC functions
- ~ $pmc_emitter.generate_c_code()
+ ~ $pmc_emitter.generate_c_code($past)
# C code
~ c_code_coda();
Modified: branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm Thu Jun 11 03:04:42 2009 (r39502)
@@ -323,7 +323,7 @@
#
#=cut
-method generate_c_code() {
+method generate_c_code($past) {
self.pre_method_gen();
my $res :=
self.past<c_header> ~ "\n\n"
Modified: branches/pmc_pct/compilers/pmcc/src/emitter/pmc/default.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/emitter/pmc/default.pm Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/src/emitter/pmc/default.pm Thu Jun 11 03:04:42 2009 (r39502)
@@ -17,19 +17,19 @@
=cut
method pre_method_gen() {
- my @vtables := PMC::VTableInfo::vtable_list();
+ my @vtables := self.vtable_info;
my %vtables := self.vtables;
for @vtables {
- if !exists(%vtables, $_.name) {
+ if !exists(%vtables, $_<name>) {
my $entry := PAST::Block.new(
- :name($_.name),
- :returns($_.returns),
+ :name($_<name>),
+ :returns($_<returns>),
);
# FIXME Ugly hack
$entry<parameters> := PAST::Op.new(
PAST::Val.new(
- :name($_<parameters>)
+ :name($_<parameter_list>)
)
);
@@ -38,7 +38,7 @@
:pasttype('inline'),
:inline(
' {
- cant_do_method(interp, pmc, "' ~ $_.name ~ '");
+ cant_do_method(interp, pmc, "' ~ $_<name> ~ '");
}
'),
)
@@ -85,7 +85,6 @@
my @vtables := self.vtable_info;
my @tmp;
for @vtables {
-# say("vtable " ~ $_.name ~ ' ' ~ $past<vtables>{$_.name});
@tmp.push('Parrot_default_' ~ $_<name>);
}
@res.push(join(",\n ", @tmp));
Deleted: branches/pmc_pct/compilers/pmcc/src/vtable_info.pir
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/vtable_info.pir Thu Jun 11 03:04:42 2009 (r39501)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,143 +0,0 @@
-# Copyright (C) 2009, Parrot Foundation.
-# $Id$
-
-=head1 C<PMC::VTableInfo>
-
-Holds information about single VTable method.
-
-=cut
-
-.namespace ['PMC';'VTableInfo']
-
-.sub '' :load :init
- .local pmc p6meta
-
- p6meta = new 'P6metaclass'
-
- p6meta.'new_class'('PMC::VTableInfo', 'parent' => 'Capture')
-
-.end
-
-=item new([attr1=>val1, attr2=>val2, ...])
-
-Create a new VTable of initialized with the given
-attributes. Returns the newly created node.
-
-=cut
-
-.sub 'new' :method
- .param pmc adverbs :slurpy :named
-
- .local pmc res
- $P0 = self.'HOW'()
- $P0 = getattribute $P0, 'parrotclass'
- res = new $P0
-
- res.'init'(adverbs :flat :named)
-
- .return (res)
-.end
-
-=item init([attr1=>val1, attr2=>val2, ... ])
-
-Initializes VTableInfo
-
-=cut
-
-.sub 'init' :method
- .param pmc adverbs :slurpy :named
-
- .local pmc iter
-
- iter = new 'Iterator', adverbs
- adverbs_loop:
- unless iter goto adverbs_end
- $S0 = shift iter
- $P0 = iter[$S0]
- $P1 = find_method self, $S0
- self.$P1($P0)
- goto adverbs_loop
- adverbs_end:
- end:
- .return (self)
-.end
-
-
-=item name
-
-Get/Set name.
-
-=cut
-
-.sub 'name' :method
- .param string name :optional
- .param int has_name :opt_flag
- .tailcall self.'attr'('name', name, has_name)
-.end
-
-=item returns
-
-Get/Set ret_type of method.
-
-=cut
-
-.sub 'returns' :method
- .param string type :optional
- .param int has_type :opt_flag
- .tailcall self.'attr'('returns', type, has_type)
-.end
-
-=item parameters
-
-Get/Set "C" parameters.
-
-=cut
-
-.sub 'parameters' :method
- .param string parameters :optional
- .param int has_parameters :opt_flag
- .tailcall self.'attr'('parameters', parameters, has_parameters)
-.end
-
-=item is_write
-
-Get/set that vtable method updates PMC.
-
-=cut
-
-.sub 'is_write' :method
- .param int is_write :optional
- .param int has_is_write :opt_flag
- .tailcall self.'attr'('is_write', is_write, has_is_write)
-.end
-
-=item attr(STR attrname, PMC value, INT has_value)
-
-Helper method for accessors. If C<has_value> is true then set
-the invocant's value of C<attrname> to C<value>. Returns the
-(resulting) value of C<attrname> in the invocant.
-
-=cut
-
-.sub 'attr' :method
- .param string attrname
- .param pmc value
- .param int has_value
- if has_value goto setattr
- value = self[attrname]
- unless null value goto value_done
- value = new 'Undef'
- value_done:
- .return (value)
- setattr:
- self[attrname] = value
- .return (value)
-.end
-
-
-
-# Local Variables:
-# mode: pir
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Deleted: branches/pmc_pct/compilers/pmcc/src/vtable_info.pm
==============================================================================
--- branches/pmc_pct/compilers/pmcc/src/vtable_info.pm Thu Jun 11 03:04:42 2009 (r39501)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,1748 +0,0 @@
-# $Id$
-#
-# DO NOT EDIT THIS FILE. Generated from src/vtable.pl by
-# compilers/pmc/tool/vtable_pm.pl
-#
-# In future this file will be replaced by full featured PCT parser for
-# src/vtable.tbl
-#
-
-class PMC::VTableInfo;
-
-# Ordered list of VTable methods
-our @?VTABLES := build_vtable_list();
-our %?VTABLES := build_vtable_hash();
-
-sub build_vtable_list() {
- my @res;
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('absolute'),
- :parameters('PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('add'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('add_attribute'),
- :parameters('STRING* name, PMC* type'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('add_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('add_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('add_method'),
- :parameters('STRING* method_name, PMC* sub_pmc'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('add_parent'),
- :parameters('PMC* parent'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('add_role'),
- :parameters('PMC* role'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('add_vtable_override'),
- :parameters('STRING* vtable_name, PMC* sub_pmc'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('assign_pmc'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('assign_string_native'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_and'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_and_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_ands'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_ands_str'),
- :parameters('STRING* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_lsr'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_lsr_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_not'),
- :parameters('PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_nots'),
- :parameters('PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_or'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_or_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_ors'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_ors_str'),
- :parameters('STRING* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_shl'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_shl_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_shr'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_shr_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_xor'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_xor_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_xors'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('bitwise_xors_str'),
- :parameters('STRING* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('can'),
- :parameters('STRING* method'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('clone'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('clone_pmc'),
- :parameters('PMC* args'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('cmp'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('cmp_num'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('cmp_pmc'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('cmp_string'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('concatenate'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('concatenate_str'),
- :parameters('STRING* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('decrement'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('defined'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('defined_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('defined_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('defined_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('delete_keyed'),
- :parameters('PMC* key'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('delete_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('delete_keyed_str'),
- :parameters('STRING* key'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('delprop'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('destroy'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('divide'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('divide_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('divide_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('does'),
- :parameters('STRING* role'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('does_pmc'),
- :parameters('PMC* role'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('elements'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('exists_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('exists_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('exists_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('find_method'),
- :parameters('STRING* method_name'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('floor_divide'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('floor_divide_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('floor_divide_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('freeze'),
- :parameters('visit_info* info'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_attr_keyed'),
- :parameters('PMC* key, STRING* idx'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_attr_str'),
- :parameters('STRING* idx'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_bignum'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('get_bool'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_class'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('get_integer'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('get_integer_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('get_integer_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('get_integer_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_iter'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_namespace'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('get_number'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('get_number_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('get_number_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('get_number_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_pmc'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_pmc_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_pmc_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('get_pmc_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void*'),
- :name('get_pointer'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void*'),
- :name('get_pointer_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void*'),
- :name('get_pointer_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void*'),
- :name('get_pointer_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('get_repr'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('get_string'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('get_string_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('get_string_keyed_int'),
- :parameters('INTVAL key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('get_string_keyed_str'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('getprop'),
- :parameters('STRING* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('getprops'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_absolute'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_add'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_add_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_add_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_and'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_and_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_ands'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_ands_str'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_lsr'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_lsr_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_not'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_nots'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_or'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_or_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_ors'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_ors_str'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_shl'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_shl_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_shr'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_shr_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_xor'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_xor_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_xors'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_bitwise_xors_str'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_concatenate'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_concatenate_str'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_divide'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_divide_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_divide_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_floor_divide'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_floor_divide_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_floor_divide_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_logical_not'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_modulus'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_modulus_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_modulus_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_multiply'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_multiply_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_multiply_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_neg'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_pow'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_pow_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_pow_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_repeat'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_repeat_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_subtract'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_subtract_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('i_subtract_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('increment'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('init'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('init_pmc'),
- :parameters('PMC* initializer'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('inspect'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('inspect_str'),
- :parameters('STRING* what'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('instantiate'),
- :parameters('PMC* sig'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('instantiate_str'),
- :parameters('STRING* rep, INTVAL flags'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('opcode_t*'),
- :name('invoke'),
- :parameters('void* next'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('is_equal'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('is_equal_num'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('is_equal_string'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('is_same'),
- :parameters('PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('isa'),
- :parameters('STRING* _class'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('isa_pmc'),
- :parameters('PMC* _class'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('logical_and'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('logical_not'),
- :parameters('PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('logical_or'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('logical_xor'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('mark'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('modulus'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('modulus_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('modulus_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('morph'),
- :parameters('PMC* type'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('multiply'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('multiply_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('multiply_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('name'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('neg'),
- :parameters('PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('nextkey_keyed'),
- :parameters('PMC* key, INTVAL what'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('nextkey_keyed_int'),
- :parameters('INTVAL key, INTVAL what'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('nextkey_keyed_str'),
- :parameters('STRING* key, INTVAL what'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('pop_float'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('pop_integer'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('pop_pmc'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('pop_string'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('pow'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('pow_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('pow_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('push_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('push_integer'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('push_pmc'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('push_string'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('remove_attribute'),
- :parameters('STRING* name'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('remove_method'),
- :parameters('STRING* method_name'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('remove_parent'),
- :parameters('PMC* parent'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('remove_role'),
- :parameters('PMC* role'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('remove_vtable_override'),
- :parameters('STRING* vtable_name'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('repeat'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('repeat_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_attr_keyed'),
- :parameters('PMC* key, STRING* idx, PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_attr_str'),
- :parameters('STRING* idx, PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_bignum_int'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_bignum_num'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_bignum_str'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_bool'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_integer_keyed'),
- :parameters('PMC* key, INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_integer_keyed_int'),
- :parameters('INTVAL key, INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_integer_keyed_str'),
- :parameters('STRING* key, INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_integer_native'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_integer_same'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_number_keyed'),
- :parameters('PMC* key, FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_number_keyed_int'),
- :parameters('INTVAL key, FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_number_keyed_str'),
- :parameters('STRING* key, FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_number_native'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_number_same'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pmc'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pmc_keyed'),
- :parameters('PMC* key, PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pmc_keyed_int'),
- :parameters('INTVAL key, PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pmc_keyed_str'),
- :parameters('STRING* key, PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pointer'),
- :parameters('void* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pointer_keyed'),
- :parameters('PMC* key, void* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pointer_keyed_int'),
- :parameters('INTVAL key, void* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_pointer_keyed_str'),
- :parameters('STRING* key, void* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_string_keyed'),
- :parameters('PMC* key, STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_string_keyed_int'),
- :parameters('INTVAL key, STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_string_keyed_str'),
- :parameters('STRING* key, STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_string_native'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('set_string_same'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('setprop'),
- :parameters('STRING* key, PMC* value'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('share'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('share_ro'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('FLOATVAL'),
- :name('shift_float'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('shift_integer'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('shift_pmc'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('shift_string'),
- :parameters(''),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('slice'),
- :parameters('PMC* key, INTVAL flag'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('splice'),
- :parameters('PMC* value, INTVAL offset, INTVAL count'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('substr'),
- :parameters('INTVAL offset, INTVAL length, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('STRING*'),
- :name('substr_str'),
- :parameters('INTVAL offset, INTVAL length'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('subtract'),
- :parameters('PMC* value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('subtract_float'),
- :parameters('FLOATVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('PMC*'),
- :name('subtract_int'),
- :parameters('INTVAL value, PMC* dest'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('thaw'),
- :parameters('visit_info* info'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('thawfinish'),
- :parameters('visit_info* info'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('type'),
- :parameters(''),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('INTVAL'),
- :name('type_keyed'),
- :parameters('PMC* key'),
- :is_write(0)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('unshift_float'),
- :parameters('FLOATVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('unshift_integer'),
- :parameters('INTVAL value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('unshift_pmc'),
- :parameters('PMC* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('unshift_string'),
- :parameters('STRING* value'),
- :is_write(1)
- ));
-
- @res.push(PMC::VTableInfo.new(
- :returns('void'),
- :name('visit'),
- :parameters('visit_info* info'),
- :is_write(0)
- ));
-
-
- @res;
-}
-
-# Generate hash from list
-sub build_vtable_hash() {
- my %res;
- our @?VTABLES;
- for (@?VTABLES) {
- my $name := $_.name;
- %res{$name} := $_;
- }
- %res;
-}
-
-sub vtable_list() {
- our @?VTABLES;
- @?VTABLES;
-}
-
-sub vtable_hash() {
- our %?VTABLES;
- %?VTABLES;
-}
-
-# Local Variables:
-# mode: perl6
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:
Deleted: branches/pmc_pct/compilers/pmcc/t/04-vtable-info.t
==============================================================================
--- branches/pmc_pct/compilers/pmcc/t/04-vtable-info.t Thu Jun 11 03:04:42 2009 (r39501)
+++ /dev/null 00:00:00 1970 (deleted)
@@ -1,33 +0,0 @@
-#! ../../parrot
-
-# Test that vtables initialised properly.
-
-.sub 'main' :main
- .include 'test_more.pir'
- load_bytecode 'pmcc.pbc'
-
- plan(2)
-
- $P0 = get_hll_global ["PMC"; "VTableInfo"], 'vtable_list'
- $P1 = $P0()
-
- $I0 = elements $P1
- ok($I0, "We've got some vtables in list")
-
- $P0 = get_hll_global ["PMC"; "VTableInfo"], 'vtable_hash'
- $P1 = $P0()
-
- $I0 = elements $P1
- say $I0
- ok($I0, "We've got some vtables in hash")
-.end
-
-
-# Don't forget to update plan!
-
-# Local Variables:
-# mode: cperl
-# cperl-indent-level: 4
-# fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4 ft=pir:
Modified: branches/pmc_pct/compilers/pmcc/t/07-default.t
==============================================================================
--- branches/pmc_pct/compilers/pmcc/t/07-default.t Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/t/07-default.t Thu Jun 11 03:04:42 2009 (r39502)
@@ -21,7 +21,7 @@
like(generated, "'Parrot_default_get_vtable'", "Parrot_default_get_vtable generated")
#this should be generated, even though it's not explicitly defined in default.pmc
- like(generated, "'Parrot_default_set_number_keyed_int'", "Parrot_default_get_vtable generated")
+ like(generated, "'Parrot_default_set_number_keyed'", "Parrot_default_set_number_keyed_int generated")
.end
# Don't forget to update plan!
Modified: branches/pmc_pct/compilers/pmcc/t/common.pir
==============================================================================
--- branches/pmc_pct/compilers/pmcc/t/common.pir Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/compilers/pmcc/t/common.pir Thu Jun 11 03:04:42 2009 (r39502)
@@ -30,12 +30,21 @@
.param string source
.param string target
- .local pmc compiler, emitter, capture
+ .local pmc compiler, emitter, capture, vtdump
+ .local string vtdump_str, vtdump_filename
+
+ vtdump_filename = '../../vtable.frozen'
+ $P0 = new ['FileHandle']
+ vtdump_str = $P0.'readall'(vtdump_filename)
+ vtdump = thaw vtdump_str
+
compiler = compreg 'PMC'
capture = compiler.'compile'(source, 'target'=> target)
emitter = new ['PMC'; 'Emitter']
emitter.'set_filename'(name)
+ emitter.'set_vtable_info'(vtdump)
+
.return (emitter, capture)
.end
Modified: branches/pmc_pct/config/gen/makefiles/pmcc.in
==============================================================================
--- branches/pmc_pct/config/gen/makefiles/pmcc.in Wed Jun 10 22:53:35 2009 (r39501)
+++ branches/pmc_pct/config/gen/makefiles/pmcc.in Thu Jun 11 03:04:42 2009 (r39502)
@@ -17,7 +17,6 @@
SOURCES := \
pmcc.pir \
src/nodes.pir \
- src/vtable_info.pir \
src/emitter/pmc.pir \
src/emitter/gen_pmc.pir \
src/emitter/c.pir \
@@ -27,7 +26,6 @@
src/parser/gen_grammar.pir \
src/parser/gen_actions.pir \
src/gen_emitter.pir \
- src/gen_vtable_info.pir \
src/builtins.pir
# the default target
@@ -61,10 +59,6 @@
$(PARROT) $(PARROT_ARGS) $(NQP) --output=src/gen_emitter.pir \
--target=pir src/emitter.pm
-src/gen_vtable_info.pir: $(NQP) $(PCT) src/vtable_info.pm
- $(PARROT) $(PARROT_ARGS) $(NQP) --output=src/gen_vtable_info.pir \
- --target=pir src/vtable_info.pm
-
# This is a listing of all targets, that are meant to be called by users
help:
@@ -95,7 +89,6 @@
CLEANUPS := \
pmc.pbc \
src/gen_emitter.pir \
- src/gen_vtable_info.pir \
src/parser/gen_grammar.pir \
src/parser/gen_actions.pir \
src/emitter/gen_pmc.pir \
More information about the parrot-commits
mailing list