develooper Front page | perl.perl5.porters | Postings from May 2010

Re: package block syntax

Thread Previous | Thread Next
From:
Zefram
Date:
May 1, 2010 09:59
Subject:
Re: package block syntax
Message ID:
20100501165941.GA9668@lake.fysh.org
Attached patch is an updated version of my "package Foo { }"
implementation.  This fixes the SEGV in parser error recovery and adds
more tests.  No one has objected to the new syntax, and a few people
have expressed approval, so I think this can be applied.

This message provides a single patch incorporating both the original
implementation and these new changes, for ease of testing.  For
application to blead it might be preferred to apply the three patches
separately.  Whoever wants to apply it can negotiate with me about the
best form in which to supply the patches.  My git log has this:

commit 19dcffbd38634cd58401fcab66da7dcbc8fcca05
Author: Zefram <zefram@fysh.org>
Date:   Sat May 1 17:51:21 2010 +0100

    additional tests for package block syntax
    
    Test that __PACKAGE__ propagates into string eval correctly.  Test that
    __LINE__ is correct.  Test that goto into and out of package blocks
    works correctly.

commit bdf8b2094a086d18ae0d3970228a650e4e1b4783
Author: Zefram <zefram@fysh.org>
Date:   Sat May 1 17:30:26 2010 +0100

    fix SEGV with eval("package Foo {")
    
    OPs relating to the package name and version were subject to double
    freeing during error recovery from an incomplete package block.  Fixed by
    using the op_latefree mechanism to shift the op free time.

commit 4f4789ec446d15b1b5dafe18919f024523b6f613
Author: Zefram <zefram@fysh.org>
Date:   Mon Apr 19 20:37:25 2010 +0100

    support "package Foo { ... }"
    
    Package block syntax limits the scope of the package declaration to the
    attached block.  It's cleaner than requiring the declaration to come
    inside the block.

-zefram

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About