This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit http://www.perl6.org/

Perl 6 Summary for 2005-05-24 through 2005-05-31

All~

Welcome to another Perl 6 summary, brought to you by Aliya's new friends, Masha Nannifer and Philippe, and my own secret running joke. Without further ado, I bring you Perl 6 Compiler.

Perl 6 Compiler

method chaining

Alex Gutteridge discovered that he couldn't chain attribute access like $bowl.fish.eyes.say; in Pugs. Later he provided his example in test form (in case anyone wanted to add it). Maybe they were added to the test suite, maybe not: Warnock applies.

groups-beta.google.com#e8f9ca07d7b1dc6f

Pugs link issues on Debian Sid

B\xC1RTH\xC1ZI Andr\xE1s was having trouble making Pugs work on Debian Sid with perl 5 support. Autrijus provided helpful pointers. I assume from his final silence that the final pointer worked.

groups-beta.google.com#bdc3f08faf125f5f

Pugs.AST.* compilation

Samuel Bronson wanted to speed up the compilation of Pugs.AST.* modules by turning off optimizations. Autrijus told him that this was a core module that needed it speed, and optimizations would stay.

groups-beta.google.com#13d6ee45390ecb00

Pugs.Types export list

Samuel Bronson added an export list to Pugs.Types. Autrijus happily applied it and send him a commit bit.

groups-beta.google.com#29fa93e63a1859e8

export withArgs from Main

Samuel Bronson added an export to Main. Samuel Bronson happily applied it himself this time.

groups-beta.google.com#89c3a26a58d0566a

out-of-date hs-plugins

Vadim was having trouble compiling Pugs with Parrot support. Autrijus helped him fix his problem, and there was much rejoicing.

groups-beta.google.com#dfb2bf1285cb5d68

chomp problem

Jens Rieks found a problem with chomp and submitted a test. Warnock applies.

groups-beta.google.com#b457fd0e6bac2224

Pugs makefile issue

Gr\xE9goire P\xE9an noticed that pugs was creating a useless Pugs.exe.bat. Autrijus asked if he would be willing to investigate a patch. He responded that he would put it in his queue.

groups-beta.google.com#11806b69b57c9a53

loop or do

Gerd Pokorra wondered why do { ... } was in Pugs reasoning that loop { ... } while was the correct thing. Luke Palmer explained that do { ... } was part of the with or without a postfix while .

groups-beta.google.com#80f020826b1ec28b

PxPerl 5.8.6.2 with Pugs 6.2.5 and Parrot 0.2.0

Gr\xE9goire P\xE9an announced that the release of PxPerl 5.8.6.2 which includes Pugs 6.2.5 and Parrot 0.2.0. This means that windows folk can test Pugs and Parrot without having to fight with compilers.

groups-beta.google.com#0ec9118d0a5df14e

BUILD errors

Carl Franks was confused by that handling of a named argument to a constructor. He asked for confirmation but none was provided. Perhaps this poor summary save him.

groups-beta.google.com#e8d11297c80c534b

whitespace and function calls

David D Zuhn didn't know that whitespace between and function call and its parentheses was forbidden. Carl told him that and about the .() variant which allows whitespace.

groups-beta.google.com#e229eeb82b638977

Pug's make cean issues LONG commands

Carl Franks noticed that make clean issued a command so long that it broke his nmake. Fortunately he had a really old nmake and updating fixed the problem.

groups-beta.google.com#1db579766f53aa86

Parrot

thr_windows.h with MinGW

Fran\xE7ois Perrad provided a patch fixing two compilation problems in thr_windows.h. Warnock applies.

groups-beta.google.com#67a7f34afdf97217

Parrot Slides?

Adam Preble posted a request for slides and notes on Parrot and Perl 6 for a presentation he was working on. Many people provided links in various languages. I usually steal from Dan's presentations when I need something like this...

groups-beta.google.com#e40c457dca60a311

Problems with Perl 5.6.1

Fran\xE7ois Perrad had a problem building Parrot with MinGW and Perl 5.6.1. The problem was related to windows and its binary vs text distinction. This problem will also crop up if you ever try to seek on files in windows. Not that I have ever lost several days debugging that problem.

groups-beta.google.com#0a9baaa67250616b

ordered hash thoughts

Leo posted his thoughts on a modification to ordered hash as adding a new element by index breaks the string hashing part of it. Dan suggested that the ordered hash just pitch exceptions in the bad cases as it was designed to be lightweight and fast.

groups-beta.google.com#24a935c5c2c71aa8

subrules tests

Dino Morelli provided a patch adding tests for subrules to PGE. Warnock applies.

groups-beta.google.com#759e9ee7e172f6ad

python on parrot

Bloves inquired as to the state of python on parrot. The phrasing of the question itself provided some confusion. Michal Wallace provided a link to pirate, hoping it would help.

groups-beta.google.com#23a59ac23ea8606d

Resizable*Array defeats list.c

Slowly but steadily my {Fixed,Resizable}<type>Array PMCs are defeating the less consistent array implementations. Leo offered the job of slaying list.c to any interested partied. Jerry Gay expressed interest.

groups-beta.google.com#855d8042ec831341

encodings on 'char constants'

Bob Rogers wants to be able to supply an ecoding for his character constants that use ' . He also wanted to find the integer that corresponds to a character. Leo explained how he could do the former and that ord was is used for the latter.

groups-beta.google.com#b4da146647db3e6c

Broken Links

Fayland Lam pointed out that the links from the last summary were a little broken. Hopefully this summary will be better.

groups-beta.google.com#05c4703b1d5e89b4

refcounts and DOD

Michal Wallace wondered how best to make python's refcounts work for embeding it in Parrot. Nicholas Clark pointed out that Parrot_[un]register_pmc would work. Dan noted that if the python library was going to be made a parrot extension they could be noops as Parrot's DOD would do necessary work.

groups-beta.google.com#c791d65ce745c731

BigInt fixes

Kevin Tew added somes tests and fixes to BigInt.pmc. Leo applied the patch.

groups-beta.google.com#d5f8daa08f078f3c

MinGW and GMP

Fran\xE7ois Perrad provided a patch fixing GMP for MinGW. Leo provided a slight correction which Fran\xE7ois incorporated. Leo then applied the patch.

groups-beta.google.com#b9c59f2722a5f595

index failures

Roger Browne found a failure in the index opcode. Leo fixed it.

groups-beta.google.com#6a6dd5a236cf22eb

MinGW and GDBM

Fran\xE7ois Perrad provided a patch fixing GDBMfor MinGW. Leo applied the patch.

groups-beta.google.com#fe4b4af306994134

mod operation fails with negative integers

Roger Browne noticed that moding with or by negative integers could produce negative such as 3 mod -3 = -3 . Leo fixed them to provide 0. I have that fact about C. Not that I have ever lost several days debugging that problem either.

groups-beta.google.com#a2ed829260b2d8dc

tracing and debuging

Leo noted that debuging parrot has gotten more difficult as the number of abstractions has increased. Is your compiler, imcc, your PMC, or parrot broken? Maybe two or three of them? To facilitate debugging leo suggested a debug_break opcode and a Debugger PMC. It sounds nifty. He also added support for lexically scoped trace and debug flags.

groups-beta.google.com#5d73d39d325ac0df

groups-beta.google.com#7454a1a8c6c049f2

adding Unicode, Hex, and Octal escapes

Will Coleda added more complete escape sequence support to Tcl. Matt Diephouse integrated the patch into his latest version.

groups-beta.google.com#f85ac2dda841e70f

State of ParTcl

Will Coleda proudly noted that as of r8193 ParTcl was passing all tests even with gc-debug. Much praise goes to Matt Diephouse for his cleanup of the tclparser.

groups-beta.google.com#ad2ff9ee718948b2

strength reduction optimization

Curtis Rawls provided a flurry of patches improving parrot's strength reduction optimization. Leo applied the patches.

groups-beta.google.com#0c782ec5ad4c954e

groups-beta.google.com#7d0a8c1e93910ec4

groups-beta.google.com#2b10093bead08c4a

TODO: readline support

Leo put out a request for adding readline support to parrot.

groups-beta.google.com#97de5fb125248fdc

get_mmd_dispatch_type fix

Vladimir Lipsky provided a patch which fixes a bug in mmd.c. Leo applied it.

groups-beta.google.com#d00c8b88bcfbd51b

unitialized variable

Vladimir Lipsky fixed an unitialized variable. Leo applied the patch.

groups-beta.google.com#40d686bdf7e7eee9

improved loadlib handling

Bob Rogers improved the handling of absolute paths by loadlib. Leo applied the patch.

groups-beta.google.com#0a09d861dccc0018

dod sweep fix

Vladimir Lipsky prevented the NULL PMC_EXT from being added to the pmc ext pool during a dod sweep. Leo applied the patch.

groups-beta.google.com#17b19f2de2b3ecd2

packfile double destroy

Vladimir Lipsky fixed a problem with double destruction of nested packfiles. Leo applied the patch.

groups-beta.google.com#2cd1145fa93e777d

Tcl autoconverts List <-> String

Tcl can autoconvert between lists and strings. Will Coleda wondered how to implement this behavior to best support language interoperability. Suggestions were offered, no real agreement on the best solution though.

groups-beta.google.com#d531fecfb9c449a5

TODO classification

chromatic, inspired by Pugs, added TODO classification to Parrot::Test. He threatened to apply the patch if there were no objections... none yet.

groups-beta.google.com#64d83aa594a8438b

HLL group support

Leo added support for loading high level language PMC groups dynamically using the .HLL directive. This will load the lib dynamically and change the return type of some ops to reflect the HLL's preferences. It is nifty.

groups-beta.google.com#a3e9619005dbeba1

groups-beta.google.com#515f93d5267e3f4a

Pistol Wielding Parrot

Leo put out a request for PIR versions of the Computer Language Shootout tests shootout.alioth.debian.org This will provide a means of gauging Parrot's performance against other languages. Kinda nifty.

groups-beta.google.com#acea6702a7bdbeb4

nmake v1.5 issues

Nigel Sandever was also having trouble with overly long lines and nmake. Upgrading nmake fixed his problem too.

groups-beta.google.com#8255877b03808230

optimizer producing bad code

Nick Glencross noticed that the optimizer was producing some bad code. Leo fixed one of the problems, but missed the other.

groups-beta.google.com#8a84a8e385b74ec1

Keys design

Dan posted an explanation of his original design for keys.

groups-beta.google.com#a3ac293d1aaace86

Loop improvements

Curtis Rawls provided a patch to improve the loop struct in imcc optimizer. Leo applied it and asked if he would take a whack at reducing the resource consumption of Bill Coffman's register allocation patch. Dan and Bob Rogers both expressed interested in speeding up the compiler.

groups-beta.google.com#91db59b1a73aee04

Perl 6 Language

hash slices

Carl Franks thought he was having trouble with hash slices. Actually he was having trouble with the s/->/./ in his perl5 conversion. groups-beta.google.com#04e18f0b56fb64b3

Perl6 and refactoring support

Piers Cawley resurected Matisse Enzer's thread about IDE's and tools for Perl 6. He observed that Perl 6 might provide a great deal of support for such things. Deborah Pickett noted that it might not be theoretically possible to parse Perl 6 safely. Luke Palmer felt that it would not be possible given BEGIN blocks and the like.

groups-beta.google.com#0409dbac1ab2d41a

$*OS but OS::unix

Rob Kinyon suggested that $*OS be a class which mixes in the correct OS::class. Then MMD could be force to do the heavy lifting. I like this idea.

groups-beta.google.com#2eb118f67d19a368

reduction junctions and cribbage scoring

Rob Kinyon wanted to uses junctions and reductions to score cribbage hands. Unfortunately, He was using junctions as a set. This led to discussions of the correct implementation and of a Set module that should be included in Perl 6. I want such a set module to have a powerset function which returns the powerset of a particular set (preferably lazily instantiated). Also, my cribbage scoring algorithm is better: (1) lay down hand (2) announce score (3) peg.

groups-beta.google.com#5eaac5d52de792d6

syntax for using perl5

Autrijus added support to Pugs for using Perl 5 modules. This led him to wonder what the correct syntax for this actually was. Many suggestions, but no decisions, arrived.

groups-beta.google.com#79007e1d5ba75d38

MMD and SMD interaction

Yuval Kogman wondered how MMD and SMD would interact. Warnock applies.

making perl 6 grammars generative

aufrank wondered if perl 6 grammars could be made generative. I would say that this does not belong in the core simply because of its niche application; however, if I were to do this I would start by using the Perl6 grammar grammar and modify the way the parse tree is used. Sadly, aufrank posted to google groups so nobody else expressed opinions.

groups-beta.google.com#db8a961b884b69ae

Links and References

Thomas Sandla\xDF suggested a Link class to fill the role of auto-dereferencing variables that Luke was calling "transparent" references.

groups-beta.google.com#bd268cbd6f0eb52a

use syntax

Rob Kinyon wondered how exactly ranges of versions and multi language interoperability would work in Perl 6. Rod Adams provided a few answers.

groups-beta.google.com#7e2fe8ee49ea4132

Anonymous classes

Simon Cozens announced that he was having a lot of fun converting Maypole to Perl 6, then he asked how make anonymous subclasses which inherit from other classes and add new methods. Ingo Blechschmidt provided the answers.

groups-beta.google.com#fedb6c6b85ae2f0c

introspectable code objects

Ingo Blechschmidt thought it would be nifty if code objects were fully introspectable. Luke thought that it would too, but felt that being able to access them at the statement level might be problematic. I think most of what Ingo would want this for can be accomplished by macros which parse normally (or modify a block), but then munge the resulting match object approriately.

groups-beta.google.com#0a739544e951e569

signatures as first class types

Yuval Kogman hoped that signatures would be available as first class types in Perl 6. Ingo Blechschmidt agreed, and Sam Vilain pointed to the start of a such a translation.

groups-beta.google.com#fad6bfc4f1650717

new and MMD

Carl Franks wanted to create a specialized on argument new using MMD. Damian told him that his technique was a way to do it, and that BUILDALL would still be called by bless.

groups-beta.google.com#4e33e251e46fa668

code ownership and debugability

Yuval Kogman posted his thoughts on code owner ship and debugability in the age of frameworks and generated code.

groups-beta.google.com#c0a0aa45d2cf43cd

strongly typed containers

Yuval Kogman was wondering how to make a container class which can be strongly typed (similar to C++ templates). Sam Villain provided a pointer to earlier threads and mentionded Haskell's Generic Algebraic Data Types.

groups-beta.google.com#5377eb7fe6083922

constants and optimizations

Ingo Blechschmidt wondered how to create constants so that the optimizer would be able to do as much as possible. Damian suggested that macros would be one solution. This makes me wondered if there is a way to declare a function so that a macro version for constants is also created automatically. That would be nifty.

groups-beta.google.com#55b6d56db611c9c6

Date Time formatting

Nathan Gray wondered what sort of Date/Time Formating Perl 6 would support. Rob Kinyon suggested porting DateTime. This certainly sounds like something that belongs in a module.

groups-beta.google.com#065dacbad0d9ddcd

and pow, I got illuminated

After much discussion, the thread I started about reductions on empty lists has been weighed in on by @Larry. Damian feels that it should fail as finding an approrpriate identity operator is no simple task. Some how a discussion of modulus and division slipped in too.

groups-beta.google.com#130fd7a73ed5bb7d

sub call vs MMD

Luke Palmer wanted a sanity check on sub calls vs MMD. Larry provided an answer but did not weigh in on his sanity.

groups-beta.google.com#ecc8fdcafb41ff92

(1,(2,3),4)[2]

People continue to be very devided about (1,(2,3),4)[2] and @x = [1,2,3] . There are strong opinions on both sides about arrayrefs in array and scalar context. I appear to be allied with the losing side. Hopefully things will change.

groups-beta.google.com#d434d39327b75214

unicode cheat sheet

Rob Kinyon posted a request for a unicode cheet sheet so he could make his own nifty symbols. Gaal Yahas and Sam Vilain provided pointers.

groups-beta.google.com#710cc944649b901a

comprehensive list of rules tokens

Jeff Pinyan wants a comprehensive list of perl 6 rule tokens so he can create a Perl 5 module to parse them. Much discussion ensued.

groups-beta.google.com#2335c47b32fa6af6

Default invocant of methods

Ingo Blechschmidt wondered if a methods Class would be allowed as a default invocant or only instances of it. Somehow this led Larry to musing about Class a a role than people can mixin instead of inherit from. He confuses me.

groups-beta.google.com#cb997504f9511ada

The usual footer

To post to any of these mailing lists please subscribe by sending email to <[email protected]>, <[email protected]>, or <[email protected]>. If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback to [email protected]

donate.perl-foundation.org -- The Perl Foundation dev.perl.org -- Perl 6 Development site planet.parrotcode.org -- Parrot Blog aggregator