This week on the Perl 6 mailing lists
": This mornings up date proposed
"Now the da rn spam fi1ters are chang.ng my spelling to look like sp*m. Yeah, that's the 4icket... :)"
-- Larry Wall, in 'Enhancing array indices'
Language
[svn:perl6-synopsis] r13540 - doc/trunk/design/syn
A commit from Larry Wall reorganized S03. This led Nicholas Clark to
comment that the sequencing operator is not defined. He had a few other
notes about the commit. John Macdonald responded to Nicholas's question "Is
it defined that $a + $b
evaluates the arguments in any particular order?"
by stating that in C, it is deliberately left undefined to allow the code
generator more flexibility. Aaron Crane also spoke up, further explaining
how C functions.
[svn:perl6-synopsis] r13543 - doc/trunk/design/syn
In this commit, Larry Wall clarified gather
and take
. Gaal Yahas
wanted to know what it means for take
to be evaluated in void context.
He included some example code and asked what the result would be.
[svn:perl6-synopsis] r13545 - doc/trunk/design/syn
Larry Wall applied some clarifications which were suggested by Gaal Yahas.
Gaal, however, had some more questions. This concerned gather
in S04.
These were addressed in Larry's next commit.
Larry Wall replied to a comment by TSa in another thread, wherein
TSa wondered if ++
and --
coerce Nums to Ints. Larry stated that
since a Str remains a Str in a similar situation, the Num should also
retain its type. One exception that he could see would be that incrementing
an Undef would create an Int.
In thread 'Int-to-Num autocoercion', Larry expanded on how coercions are handled in functions. He said that Num to Int autocoercion is an explicit exception which is expected by Perl 5 programmers, and Str to Num (and the inverse) are also done automatically at times. Larry further explained that there had been numerous discussions on the subject, and the general feeling is that exotic types should not autocoerce unless a multi has been declared to handle the situation.
TSa made a reference to the long-running
'Numeric Semantics'
to discuss how auto-coercion would work with floor
. Darren Duncan
replied that a floor
would return an Int by definition, so that it
would in fact be a way of explicitly converting.
[svn:perl6-synopsis] r13549 - doc/trunk/design/syn
Larry Wall made a commit which disabled negative subscript 'dwimmery' for
shaped arrays, which can now take +
and -
operators. He then wondered
if a multidimensional Whatever (**)
would mean the same thing in "whatever"
dimensions.
David Green noted that the subject of ordinals had come up some time ago, and quoted a message from Larry dating back to 2004. He added his thoughts to the subject as well.
Blair Sutton felt that Perl 6 should stick with 0 as the first element of a list to avoid alienating programmers from most other languages. He thought that it could be adjusted by a user-defined Parrot grammar for those who didn't like the traditional starting value, although he had personally never required that feature.
Smylers was of
the opinion that a pragma is overkill, and a global variable would be
sufficient. Jonathan Scott Duff responded that a pragma would be useful
to Pascal or Fortran programmers, and therefore it would be handy to have
a pragma. Rafael Garcia-Suarez added that $[
is a pragma in Perl 5.
[svn:perl6-synopsis] r13550 - doc/trunk/design/syn
Larry Wall made a commit concerning *+
versus *-
in subscripts.
TSa replied that the distinction between the cases would be that they
dispatch to different functions: *
to postcircumfix
, *+
to
infix:<+>
and *-
to infix:<->
. TSa asked some questions based
upon this observation.
Larry responded that he did not want Whatever to package the array.
He felt that in TSa's example, it would be necessary to dispatch to
Whatever and let the Whatever code extract relevant information relating
to *
. TSa requested further information.
Jonathan Lang wondered if it would be possible to get a single-character
symbol which could be used in an array index to refer to its shape, for
example something like @x[*.head]
. Larry Wall replied that a recent
suggestion was to use a syntax like @x[*+0]
. There was further
discussion on syntax possibilities, with Jonathan, Darren Duncan and
TSa joining the thread. Darren proposed getting rid of negative
subscripts and using only terms like @foo[*.head]
, which he felt
had the advantage of being more consistent (for shaped and unshaped
arrays), and easier to learn.
[svn:perl6-synopsis] r13555 - doc/trunk/design/syn
Although he admitted that the month of Nob is cute, Larry Wall nevertheless changed S01's last modified date to Nov. In a followup commit, Larry changed the date to Jan.
[svn:perl6-synopsis] r13564 - doc/trunk/design/syn
Larry Wall made a commit to allow colon pair syntax for a method-like
sort of filetest. Smylers liked the changes, but was concerned about
filename.TEST
because there are only so many permutations of the word
available for testing frameworks. Larry listed a host of other possible
names, and was leaning toward STATUS
.
Parrot Porters
[perl #41364] [PATCH] Fixed object vtable method overrides in PIR
Alek Storm submitted a patch as ticket [perl #41364]. The
patch allows object vtable method overrides for a number routines,
such as find_method
and get_attr
. He also wondered if the
double-underscore method of overriding could be deprecated now
that there is the :vtable flag. Patrick R. Michaud responded
that the deprecation cannot take place until ticket
[perl #40626] is resolved.
[PATCH] PDD22 spec notes and ParrotIO tests
Jerry Gay mentioned that he had written tests for the ParrotIO object, which he included as a patch. He also had some questions about PDD 22. Allison Randal answered the questions.
Aldo Calpini wrote of an interest in porting Parrot to the PocketPC. CeGCC is a Windows port of gcc which produces ARM executable code. The first attempt at porting went well. A report of the procedure was included in the post.
[perl #41371] [TODO] review parrot roles & responsibilies doc before next release
In ticket [perl #41371], Jerry Gay noted that in r16834 he had
committed docs/roles_responsibilities.pod
. He asked project members
to review it before the 0.4.9 release.
[perl #41373] Need test for Clone of HLL info
Will Coleda created ticket [perl #41373] to request a test to replace the ones marked 'todo' which relied on Perl 5 PMCs.
[perl #41374] test MMD with non-perl PMCs
Ticket [perl #41374], initiated by Will Coleda, requested tests for MMD which don't rely on Perl PMCs.
Klaas-Jan Stol remarked that he was trying to set up a test harness for
PIR. It appeared that the module PIR.pm
was not used, and he was
unable to find documents on how to set it up. He offered to patch the
compiler FAQ once someone explains it to him.
Will Coleda explained that the problem was with the name of the language,
with 'PIR' being reserved for internal testing. Therefore either
lib/Parrot/Test.pm
would require modification, or the language should
be renamed, for instance to 'PIR_PGE'. With Will's advice Klaas-Jan
was able to get it working.
[PATCH] Updates for languages/PIR
Klaas-Jan Stol submitted a patch to improve PIR. It includes a test suite, and corrections to several other files. Later, in '[PATCH] languages/PIR tests', and '[PATCH] languages/PIR more testing and fixing', he posted additional tests and corrections. Later there was also '[PATCH] PIR updates', which was applied as r16892.
What Skills Do We Need to Finish Parrot?
James E Keenan asked some questions with the intention of determining what part of Parrot he should focus on and try to encourage others to look at. He asked what code remains to be written before an alpha release can be made, and what skills are needed to produce that code.
Allison Randal replied that the systems needing the most work are: IO, Events, Threads, Compiler tools interface, Object support, and Exceptions. She felt people with C skills are useful, as are people with general experience in dynamic languages.
James then asked what the learning curve is for PIR. chromatic answered that the 'Parrot Essentials' book is still useful, although it is missing some of the more advanced features. He thought that it might be worth asking O'Reilly if the tutorial section could be expanded into public documentation, as there's currently no tutorial on PIR.
[perl #41380] [PATCH]: docs/roles_responsibilities.pod: Minor grammatical corrections
James Keenan submitted a patch to the roles and responsibilities file. It corrected punctuation errors and was applied as r16850. The patch was ticket [perl #41380].
Klaas-Jan Stol wondered if PASM registers are still needed, except for backwards compatibility, now that there are PIR registers. Leopold Toetsch replied that PASM registers are physically allocated in the Parrot virtual machine, whereas PIR registers are virtual registers. Both types are needed.
[perl #41386] MANIFEST must die.
Will Coleda created ticket [perl #41386] to express his opinion
that MANIFEST
should not be part of the repository. He pointed
out that the purpose of this file is to make sure that the general
release isn't missing any files, something you already know to be
true when you are working with a repository. He suggested creating
it when the release is generated.
Allison Randal disagreed. She believes that the purpose of a MANIFEST
is to tell you which files should be included in a distribution. She
thought MANIFEST.skip
, on the other hand, could be generated from
the svn:ignore
keyword before the distribution is created.
[perl #41387] perlcritic.t picking up non-perl files
In ticket [perl #41387], Paul Cochrane reported that the new
Parrot::Distribution
module was finding some files which weren't
actually Perl language files. This was later resolved by chromatic
in r17069.
[perl #41388] Parrot::Distribution doesn't exclude all external perl modules
In ticket [perl #41388], Paul Cochrane reported that the new
Parrot::Distribution
module is not exempting external Perl modules
such as Pod::Simple from its coding standards check.
chromatic included a quick Perl program which writes a C program which makes a self-contained executable for a Parrot program. He thought that it was fairly cross-platform compatible, although there could be an issue with big-endian processors.
chromatic reported a failure with the buildtools tests following a make
realclean
and a Configure. James E Keenan responded that he's experienced
it infrequently and thinks that it is a poorly-designed test rather than
a real failure. There was a brief discussion on how to improve the
test, with James suggesting that perhaps someone who was involved
with the original development of pmc2c.pl
could explain what is
happening in the DO_A_DUMP
loop.
Klaas-Jan Stol gave a brief history of how IMCC started, noting that it was eventually merged with Parrot as its parser, and since that time there have been several additions. He wondered if it is still the case that every PIR construct also has a PASM form, and if every PIR construct can be directly translated to PASM. Allison Randal replied that that was the ideal situation, but in practice many tests are written in PIR, so there may not be complete coverage for the PASM syntax versions.
[PATCH] Update copyright for Parrot --version
A patch by Klaas-Jan Stol contains a correction to make parrot --version
give a copyright range of '2001-2007' instead of '2001-2006'.
Copyright chang script and test
Klaas-Jan Stol submitted a script which checks all files for the last changed date and updates the copyright notice in the file. The second is a test which finds files which have out-of-date copyright notices. chromatic replied that he had a couple of ideas for the script and would take a look at them soon.
Users
Gabriele Renzi wanted to know why take
inside of a gather structure
returns undef instead of a return value. Carl Mäsak
had been wondering the same thing. Larry Wall couldn't remember
why it hadn't been added to the specification, and put it in S04.
Acknowledgements
This summary was prepared using Mail::Summary::Tools, available on CPAN.
If you appreciate Perl, consider contributing to the Perl Foundation to help support the development of Perl.
Thank you to everyone who has pointed out mistakes and offered suggestions for improving this series. Comments on this summary can be sent to Ann Barcomb, kudra@domaintje.com.
Distribution
This summary can be found in the following places:
See Also