Perl 6 Summary: 2006-02-13 through 2006-02-28

[email protected] (Audrey Tang) Sun, 9 Jul 2006 17:55:26 -0400
Newsgroups perl.perl6.announce
Message-ID <[email protected]>
(Proxying for Ann Barcomb, our new summarizer. :-))

The Perl 6 summary for the weeks of 2006-02-13 through 2006-02-28
   Summary updates
     Starting with this update, Ann Barcomb will be writing the Perl 6
     summaries. Her plan is to release new issues on Sundays, initially
     dealing with the backlog at a rate of one month per week, and  
eventually
     returning to posting a summary of the previous week on a weekly  
basis.

     The proposed schedule is:

     * July 9th: February (from 13th)
     * July 16th: March
     * July 23th: April
     * July 30th: May
     * August 6th: June
     * August 13th: July
     * August 20th: August (till 19th)
     * August 27th: Resume normal schedule

   Compiler (perl6-compiler)
    Making Pugs aware of Parrot
     Peter Schwenn requested a concrete example settings to make Pugs  
aware
     of Parrot. Beau Cox replied with step-by-step instructions.

     <http://xrl.us/oxoa>

    Difficulty installing Pugs on Cygwin
     Syed Uzair Aqeel reported a Cygwin problem with finding package  
plugins
     when creating a makefile. Audrey made a suggestion.

     <http://xrl.us/oxob>

    Installation failure of Pugs revisions 9188 and 9204
     Beau Cox reported that the 9188 revision of Pugs failed to pass  
smoke
     tests and install, and that the problem persisted with Pugs 9204  
even
     after a reinstall of ghc and Haskell. Beau wrote a makefile  
patch, which
     also worked for chromatic, who had experienced the same problem.

     <http://xrl.us/oxoc>

   Internals (parrot-porters)
    Reading data from STDIN
     Earlier, it was asked how to read data from STDIN for a PASM
     application. Dan Sugalski replied.

     <http://xrl.us/oxoe>

    Questions on embedding Parrot
     chromatic had some questions on embedding Parrot. Alin Iacob  
responded
     with a reference to a post by Brent Dax, which addressed some of
     chromatic's questions.

     <http://xrl.us/oxof>

    Reason behind argument choice for "{get,set}_<type>_keyed_intvtable"
     Leopold Toetsch wanted to know if there was a reason get/set
     keyed_intvtable methods take "INTVAL*" instead of "INTVAL". It was
     suggested that some functions need more than one keyed item, and  
the
     remaining follow the same pattern for symmetry.

     <http://xrl.us/oxog>

    imcc segfault
     Jürgen Bömmels reported an imcc segfault, which Leopold Toetsch
     answered questions and resolved the ticket (#20839). Others also  
made
     suggestions.

     <http://xrl.us/oxv8> <http://xrl.us/oxv9>

    cgp_jit
     Leopold Toetsch wrote about the changes in this patch, which  
introduced
     the 1000th opcode.

     <http://xrl.us/oxwa>

    Overlapping decisions in Perl 6 and Parrot
     Dan Sugalski initiated a discussion on recent Perl 6 topics --  
such as
     string re-usability and the vtable split -- which would impact  
Parrot.
     Leopold Toetsch and others replied.

     <http://xrl.us/oxwb>

    Segfault in substr_s_ic_ic_sc op
     Gregor noted that he did not expect a segfault here, and  
proposed some
     alternatives. Simon Glover replied that he thought it was correct
     behavior.

     <http://xrl.us/oxwc>

    Strings and header reuse
     Dan Sugalski expressed a desire to have documentation and  
thought on the
     subject of strings and header reuse.

     <http://xrl.us/oxwd>

    Access XML parser within Parrot
     Tupshin Harper asked if it was possible to get access to an XML  
parser
     from within Parrot. The answer was no, but several people offered
     suggestions.

     <http://xrl.us/oxwe>

    PXS
     The previous topic led to Tupshin Harper looking at PXS and  
encountering
     some difficulties. Several people suspected that PXS was out of  
sync
     with the rest of Parrot or obsolete, and Brent Dax added  
comments to a
     few files expressing these concerns.

     <http://xrl.us/oxwf>

     Later, Leopold Toetsch listed some opcodes he believed were  
obsolete.

     <http://xrl.us/oxwg>

    Parrot language examples dated
     The topic of bit rot was brought up by Tupshin Harper, who noted  
that
     many of the language examples in Parrot no longer work properly.  
Leopold
     Toetsch agreed with some of the assessments.

     <http://xrl.us/oxwh>

    imcc calling conventions
     Leopold Toetsch posted POD describing the existing stack calling
     convention and proposing a syntax for Parrot's NCI calling  
convention.
     Several people responded to this thread.

     <http://xrl.us/oxwi>

    Parrot's speed for primes
     Tupshin Harper used the primes.pasm example and converted it to  
both C
     and Perl 5, and found that Parrot's performance was must better  
than
     Perl's or Python's. There was interest in the results, and the  
code was
     posted.

     <http://xrl.us/oxwj>

    Using imcc as JIT optimizer
     Leopold Toetsch made a proposal and asked for comments, and  
received
     many.

     <http://xrl.us/oxwk>

    "Configure.pl --cgoto=0" doesn't work
     Nicholas Clark reported this bug. Simon Glover offered a patch,  
which
     was applied. Following a question from Leopold Toetsch, Nicholas  
made an
     argument for ensuring that the configure system is flexible  
enough to
     allow arbitrary combinations of cores, which Leopold agreed with.

     <http://xrl.us/oxwm>

    Replacing zero-arg invoke with one-arg
     Steve Fink asked if anyone would object to him eliminating the  
zero-arg
     invoke op in favor of a one-arg invoke. Leopold Toetsch noted it  
had
     been proposed before. Dan Sugalski requested that the zero-arg  
be kept
     and the one-arg added as long as there was explicit documentation.

     <http://xrl.us/oxwn>

    stabs support
     Steve Fink tried stabs for the JIT and was impressed, but noted a
     problem when stepping over a keyed op. Leopold Toetsch thought  
it looked
     like a gdb error. Steve added some debugging information to the
     documentation.

     <http://xrl.us/oxwo>

    Helpful emacs & gud/perldb debugging tool
     Steve Fink offered a tool he'd been using for some time.

     <http://xrl.us/oxwp>

    Non-inline text in Parrot assembly
     Tupshin Harper asked if there are any plans to have Parrot assembly
     support a distinct ".string" assembly section. Leopold Toetsch and
     Gregor replied.

     <http://xrl.us/oxwq>

    IMCC's bsr handling
     Steve Fink reported that IMCC doesn't handle bsr with non- 
constant args.
     A couple of ways of addressing this were discussed, and Leopold  
Toetsch
     created a partial fix.

     <http://xrl.us/oxwr>

    Objects, methods, attributes, properties, and other related  
frobnitzes
     Dan Sugalski wanted to be clear on some points before he started to
     work. There was a discussion, primarily on method redefinition.

     <http://xrl.us/oxws>

    Access to partial registers
     Tupshin Harper asked if it is possible to read and write from a  
part of
     a register in PASM. Several people replied that it wasn't, and  
Tupshin
     clarified his requirements.

     <http://xrl.us/oxwt>

    Datatype of PMC, pre-built Windows binaries of Parrot
     David asked how to determine the datatype of a PMC and if pre-built
     Windows binaries of Parrot are available. He received a number of
     answers to the first question.

     <http://xrl.us/oxwu>

    String plan
     Dan Sugalski posted a plan for reworking strings.

     <http://xrl.us/oxwv>

    Patch for jit.c to stop compiler warnings
     Steve Peters tried to send a patch, but Nicholas Clark didn't  
receive
     it.

     <http://xrl.us/oxww>

    Problem creating new PMC type
     Klaas-Jan Stol ran in to difficulties when he tried to create a  
new PMC
     type. Leopold Toetsch offered advice.

     <http://xrl.us/oxwx>

    Required build infrastructure stuff
     Dan Sugalski posted a few things which are needed in the build
     infrastructure.

     <http://xrl.us/oxwy>

    Targeting Parrot tutorial
     Simon Wistow inquired on the current state of the tutorial, and  
offered
     an article he thought might be useful. Gopal V wasn't certain  
TreeCC was
     needed, and linked to an article he liked.

     <http://xrl.us/oxwz>

    Patch to fix compiler warnings in smallobject.c
     Steve Peters proposed a patch to fix warnings, but Leopold Toetsch
     preferred explicit casts to get rid of warnings.

     <http://xrl.us/oxw2>

    Using imcc as JIT optimizer
     Leopold Toetsch posted conclusions on the experiment.

     <http://xrl.us/oxw3>

    Patches applied
     Several patches were applied:

     * bf compiler from Leon Brocard
         <http://xrl.us/oxw4>

     * macro expansion in imcc by Jürgen Bömmels, following a lengthy
     discussion
         <http://xrl.us/oxw5>

     * Macros in imcc from Jürgen Bömmels
         <http://xrl.us/oxw6>

     * Initialization of various function pointers in packfile.c from  
"NULL"
     to "NULLfunc" by Simon Glover
         <http://xrl.us/oxw7>

     * life.pasm modification by Leon Brocard
         <http://xrl.us/oxw8>

     * Art Haas posted a patch for examples/mops/mops.py, but there  
was no
     confirmation that the patch was applied.
         <http://xrl.us/oxw9>

     * formatting fix for docs/dev/rx.dev by Cal Henderson
         <http://xrl.us/oxxa>

   Language (perl6-language)
    Typo Alert: Synopsis 5
     Amos Robinson found a typo and Luke Palmer promptly corrected it.

     <http://xrl.us/oxxb>

    Implementation of :w in regexes and other regex questions
     David Romano asked some questions on extending the Rules domain  
specific
     language, the semantics of whitespace skipping, and negated  
matching
     semantics. Luke Palmer replied and explained that the extensions  
were
     not yet specified, and recommend possible solutions to the other  
two
     questions. Discussion ensued.

     <http://xrl.us/oxxc>

    Overloading the variable declaration process
     Darren Duncan wondered if he could get default values in variables
     instead of undef, in order to avoid calling the constructor, by  
simply
     annotating the type of the variable. Audrey Tang explained that a
     similar construct is available. This was followed by a  
discussion on the
     subject of class prototypes as default values for typed  
variables, as
     well as philosophical issues.

     <http://xrl.us/oxxd>

    Instance attributes collision
     Yiyi Hu asked what happens when different sigil attributes with  
the same
     name are declared in a single class. Various participants  
debated the
     merits of errors versus warnings.

     <http://xrl.us/oxxe>

    "CODE {...}" mentioning variables without interpolation
     Brad Bowman asked about the semantics of quasiquoting and variable
     interpolation for Perl 6's Macro language. Larry Wall explained the
     semantics of AST binding, the caller's scope, interpolating ASTs  
into
     the macro, and the "COMPILING::" variable prefix. This was  
followed by a
     comment on Brad's signature about intelligence and good sense.

     <http://xrl.us/oxxf>

    Selective String Interpolation
     Brad Bowman wanted to know if string interpolation and escaping  
could be
     optimized for creating strings of Perl code that selectively
     interpolate. Ideally he would be able to declare which variables  
are
     interpolated. He also mentioned closure interpolation and how it  
does
     not work well when quoting strings of code. Many people provided  
ideas,
     covering Lisp and Ruby, backslashes, and custom quote operators.

     <http://xrl.us/oxxg>

    Some newbie questions about Synopsis 5
     H. Stelling asked about Rule capture numbering, aliasing  
semantics, and
     nested subpattern details. Patrick R. Michaud clarified and the  
capture
     numbering scheme was discussed.

     <http://xrl.us/oxxh>

    Named Subroutine return values
     Joe Gottman wanted to know if subroutine declarations without an
     explicit declaration type ("my", "our") can be annotated with a  
return
     value type. Damian Conway replied that the "returns" trait can used
     regardless of the declaration syntax. Luke Palmer and Larry Wall
     discussed the exact semantics of "our Type sub foo", "-->" and  
"returns"
     style return type declarations.

     <http://xrl.us/oxxi>

    S02: Reserved namespace ops
     TSa asked what reservations the design team had about the  
various uses
     of the reserved syntax for type subscripting. Larry Wall  
reserved his
     right to silence, adding that he thought that "is reserved"  
means "we
     don't have the foggiest idea what we'll do with this, but we have a
     suspicion that if we let people use this particular thing right  
now,
     we'll regret it someday." The official status of the various  
items in
     the notes/ directory was clarified -- they are considered to be
     unofficial.

     <http://xrl.us/oxxj>

    Synopsis 29 patch
     Larry Wall posted a patch for Synopsis 29, recognizing it as  
official.
     Ruud H.G. van Tol followed up with questions about a round  
function, and
     pi/atan/atan2.

     <http://xrl.us/oxxk>

    Synopsis 29 and Complex numbers
     Jonathan Lang noted that Synopsis 29 deals with complex numbers  
when
     describing the sqrt function, but omitted others. He proceeded  
to list
     the functions which require special handling of complex numbers.  
Several
     people commented.

     <http://xrl.us/oxxm>

   Acknowledgments
     chromatic recruited me at YAPC::NA 2006, and Jesse Vincent  
proposed this
     task. Audrey Tang helped me to get started and reviewed this  
summary,
     and Yuval Kogman assisted with the Language section.

     If you appreciate Perl, consider contributing to the Perl  
Foundation to
     help support the development of Perl.

     <http://donate.perlfoundation.org/>

     Comments on the summary can be sent to "[email protected]".

   See also
     * Perl Foundation activities
         <http://blog.perlfoundation.org/>

     * Perl 6 Development
         <http://dev.perl.org/perl6>