Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pmc2c requires major refactoring. #658

Closed
bacek opened this issue May 8, 2009 · 6 comments
Closed

Pmc2c requires major refactoring. #658

bacek opened this issue May 8, 2009 · 6 comments

Comments

@bacek
Copy link
Member

bacek commented May 8, 2009

After working on #631 Pmc2c has changed and requires some refactorings. For example

  • PMC/RO.pm isn't used heavily anymore.
  • Handling of %extra_vt in PMCEmitter.pm can be simplified.
  • Code for support "old" style MMD should be removed.
  • etc.

Originally http://trac.parrot.org/parrot/ticket/650

@jkeenan
Copy link
Contributor

jkeenan commented Jan 30, 2010

Replying to bacek:

* PMC/RO.pm isn't used heavily anymore.

Here's where that file is mentioned in our source code.

fns . | xargs grep -nE 'PMC(/|::)RO'
./lib/Parrot/Pmc2c/PMC/default.pm:50:    my $ro =
    Parrot::Pmc2c::PMC::RO->new($self);
./lib/Parrot/Pmc2c/PMC/RO.pm:23:package Parrot::Pmc2c::PMC::RO;
./lib/Parrot/Pmc2c/PMC/RO.pm:68:
            @{ ref($self) . '::ISA' } = "Parrot::Pmc2c::PMC::RO";
./lib/Parrot/Pmc2c/PMCEmitter.pm:32:use Parrot::Pmc2c::PMC::RO ();
./lib/Parrot/Pmc2c/PMCEmitter.pm:218:
    $self->ro( Parrot::Pmc2c::PMC::RO->new($self) )
./lib/Parrot/Pmc2c/Method.pm:205:    lib/Parrot/Pmc2c/PMC/RO.pm
./ports/cygwin/README:846: /usr/lib/parrot/1.0.0/tools/lib/Parrot/Pmc2c/PMC/RO.pm
./ports/cygwin/README:1232:
    /usr/share/doc/parrot/1.0.0/html/lib/Parrot/Pmc2c/PMC/RO.pm.html
./config/auto/pmc.pm:69:    lib/Parrot/Pmc2c/PMC/RO.pm
./MANIFEST:1161:lib/Parrot/Pmc2c/PMC/RO.pm      [devel]lib

./lib/Parrot/Pmc2c/PMC/RO.pm is also the subject of TT #1240.

@jkeenan
Copy link
Contributor

jkeenan commented Mar 27, 2011

Replying to bacek:

* Handling of %extra_vt in PMCEmitter.pm can be simplified.

PMCEmitter.pm no longer exists. This is what I found when grepping:

$ ack extra_vt *
lib/Parrot/Pmc2c/PMC.pm
1051:    my %extra_vt;
1052:    $extra_vt{ro} = $self->{ro} if $self->{ro};
1126:    for my $k ( keys %extra_vt ) {
1470:    my $get_extra_vtable = '';
1473:        $get_extra_vtable .= "    vt = Parrot_default_ro_get_vtable(interp);\n";
1476:        $get_extra_vtable .= "    vt = Parrot_${first_parent}_ro_get_vtable(interp);\n";
1480:        $get_extra_vtable .= "    Parrot_${parent_name}_ro_update_vtable(vt);\n";
1499:    $get_extra_vtable .= "    Parrot_${classname}_ro_update_vtable(vt);\n";
1507:$get_extra_vtable

kid51

@jkeenan
Copy link
Contributor

jkeenan commented Mar 27, 2011

Replying to bacek:

After working on #631 Pmc2c has changed and requires some refactorings. For example

* Code for support "old" style MMD should be removed.

bacek, can you elaborate on that?

Thanks.

kid51

@bacek
Copy link
Member Author

bacek commented Mar 28, 2011

Old "mmd" stuff was removed in d0f90dd. Additional vtables handling is lta though.

-- Bacek

@Whiteknight
Copy link
Contributor

@bacek: Is there anything we need to do for this ticket? Can we close it, and maybe open new tickets for specific issues?

@bacek
Copy link
Member Author

bacek commented May 9, 2012

@Whiteknight I think we can close it. Hopefully all this PMC nonsense will be killed by 6model.

@rurban rurban closed this as completed Nov 3, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants