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-03-07 through 2005-03-22

All~

Welcome to yet another fortnights summary. I believe this is the highest volume I have ever seen the three lists at simultaneously. Hopefully they will keep it up, because good work is being done. To aid in the epic endeavour of summarizing all this, I have had to add some new Jazz to my playlist. We will see how it works out. If it doesn't work well, blame Seton.

Perl 6 Language

the actual name of &?SUB

David Storrs wanted to know how he could get the name of &?SUB. Larry told him that $?SUBNAME would be the most reliable way to get the short name.

groups-beta.google.com#2bc5895525215f2f

Unlimited Argument Patterns

Luke Palmer has tasted the forbidden fruit of Haskell and now he wants more of it in Perl 6. In particular he wants even more powerful pattern matching of arguments for MMD. Rod Adams speculated that Larry had decided Perl 6 would not be ML... In the end no real consensus, but don't hold your breath seems to be the feeling.

groups-beta.google.com#4dd34d9d0ae95e5e

Limited Argument Patterns

Wolverian was a little unsure of what exactly sub foo(0) {...} meant. Larry explained that it was just sugar for sub foo ( $bar of Int where { $_ == 0 } $bar ) { ... } .

groups-beta.google.com#6338e5bb22c89ba6

List Constructors

Wolverian made a list of list constructors, asking what each did. Larry explained: For the most part, the same thing as perl 5, a few would produce a warning.

groups-beta.google.com#c39068c3b61f780e

Decorating Primitives

The question arose of how decorating objects with roles interacted with low level types. Larry came to the conclusion that it was OK, unless you wanted to decorate a single element in a primitive array.

groups-beta.google.com#80ca81ed0f831948

splat operator in assignment

Juerd was unsure how splats and list assignment interacted. The answer is that list assignment is exactly the same as Perl 5 to allow for extending return list.

groups-beta.google.com#e9f77f4a2edd9551

Logic Programming

Rod Adams pointed out that much of logic programming could be implemented using the rules engine. Unfortunately, the syntax gets a little hairy and cumbersome. Larry said that this particular goal might be something that is not addressed immediately in 6.0, but possibly differed instead. Ovid rumbled about porting a Warren Abstract Machine to Parrot... I would like it.

groups-beta.google.com#ccf0a7f26d229344

Locale-KeyedText

Darren Duncan finished up the first non-core Perl 6 module. Being properly hubristic, he asked for a critique. His questions touched on subjects including subtypes, module loading, and strictness...

groups-beta.google.com#3f03a9a2ace1a375 -- critique request

groups-beta.google.com#a4a53ed54d48d7f4 -- misc questions

bar $f =?= $f.bar

Rod Adams wondered what would happen if he had both a sub and a method name bar. What would $f.bar and bar $f do? Jonathan Scott Duff explained that $f.bar would call the method while bar $f would call the sub.

groups-beta.google.com#736a522e91cb0870

MMD object

Rod Adams wants a single object to represent all of the possible multi methods associated with a particular short name. It seems that Rod dranks some of the lisp cool-aid (although in this case, I agree). He explained how this allowed the dispatch scheme to be changed on a multi by multi basis and also allowed for nice introspection. This led to a discussion of how this would work with lexically installed multi methods, and if this would trip people up. No real consensus seemed to appear...

groups-beta.google.com#5891f6a40d031af2

:foo<o> != :foo('o'); :foo<o> == :foo{'o'}

Juerd wondered what the implications of <a> mapping to ('a') were. Larry replied that it did not map in that manner.

groups-beta.google.com#99893d787d04f496

lazy loading of object

Yuval Kogman wondered how he could get his objects to load lazily. Larry told him that delegation would probably be the best bet.

groups-beta.google.com#459494c94afe7681

throwing from higher up the call stack

Thomas Yandell wants a way to throw from further down the call stack. Sadly he was warnocked.

groups-beta.google.com#33e471f95f198b67

sprintf

Juerd wants an sprintf like function f/FORMAT/EXPR/ . Larry seems to think that EXPR.as(FORMAT) will suffice, especially if as is a list op.

groups-beta.google.com#8c7be753bf0ee372

S29, builtin function

Rod Adams has been hard at work creating a list of build in functions. He has a version up at "/www.rodadams.net/Perl/S29.html" in http:. This led to good discussions about what things had alternate forms and what did not.

groups-beta.google.com#02c5bfc9ab3bae9e -- discussion

groups-beta.google.com#3274abd0d8b8ed5c -- more discussion

python to eliminate reduce()

Aristotle Pagaltzis posted a link explaining why reduce will be eliminated in Python 3000. This led to a brief discussion of various design philosophies.

groups-beta.google.com#a6526b909001d7b8

SEND + MORE = JUNCTIONS

Sam Vilain fixed up the SEND + MORE example to work correctly with junctions. Unfortunately, the hoop through which he had to jump are pretty horrendous. Larry mumbled that the option of autothreading all conditionals might work, but would send to many lynch mobs after him. I for one like both Twin Peaks and that idea...

groups-beta.google.com#387d5076256105db

for with a function reference

Rod Adams wanted to know how for would behave with various types of functions or codeblocks. Luke Palmer provided answers.

groups-beta.google.com#cd015186c0b67a77

adding interfaces to arguments

Thomas Sandla\xDF wondered when arguments to function would be decorated with roles from the function signature if they didn't exist. Larry conjectured about allowing different views on objects versus mixing in various roles. This led people to talk about covariant typing. An array of ints will always return you a number and an array of numbers will always accept an int. But an array of ints will not necessarily accept a number and an array of numbers will not necessarily return an int. Thus changing your view can be valid when writing and not when reading or vice versa.

groups-beta.google.com#9433d70b82708e82

pugs too lazy

Miroslav Silovic noticed that closing a file handle in pugs did not force all the thunks associated with the file. While this was a bug in pugs, it led to conversation about whether = should be lazy or eager. Larry thinks that it will be safer to start eager and become lazy then vice versa.

groups-beta.google.com#f59347f0f2fb4b3f

Exists and Delete as functions

Rod Adams wondered how he would define the signatur of Exists and Delete as they do not evaluate the subscripted variables in their arguments. Larry explained that they are now methods on the hash and you would have to do a little macro magic to get it to work the old way.

groups-beta.google.com#7886d251717dcbcf

remove(reset())

Steve Peters pointed out that reset() was not almost useless and has been "vaguely deprecated" for a while. Larry declared it dead.

groups-beta.google.com#e86555009e886e36

lists in string context

Juerd put out a plea for list in string context not to automatically provide spaces between elements. Larry pointed out various ways to join on the empty string, which I think is his way of saying too bad...

groups-beta.google.com#49ce257ba619e231

popping a multidimensional array

Rod Adams wondered what it meant to pop a multidimensional array. Larry aggreed that it should pop off entire dimensions. Does this mean that popping such an array in a loop will pop dimensions until there is only one left, at which point it will switch to popping elements?

groups-beta.google.com#7352b8e80a4bec26

index out of bounds

Markus Laire wondered what index("Hello", "", 999) would return. Larry explained that it is not as simple as he thinks cause strings use magic indices that do unicode stuff, but it would probably throw an exception.

groups-beta.google.com#edfd61c7066429f0

GUI paradigm

Michele Dondi wants Perl 6 to support a GUI paradigm better then most languages currently do. He is not quite sure how, but he is sure that it would be cool. I agree that it would be cool.

groups-beta.google.com#52337570505cb3f5

hiding from ones callee

Autrijus wants to call a function but make it appear as if his caller did it. Larry suggested that wrap/call would be appropriate.

groups-beta.google.com#05cbce0b1ca98174

quotemeta

Rod Adams voted for axing quotemeta. People seemed to agree that it should go, but what should be left in its place? Larry suggested an argument to as.

groups-beta.google.com#fd6dc65151a03ae9

zip function signature

Rod Adams was having difficulty determining the function signature for &zip. This led to a discussion of when is rw was implied, but not an answer to his question.

groups-beta.google.com#4da615a5a91eaf2b

Symbol table interactions

Gall Yahas wondered how ::() would react to undefined variables. Larry explained that it might be either lega or illegal as an lvalue depending on whether or not the scope had finished being compiled and that it would be undefined as an rvalue.

groups-beta.google.com#8713b16d403879e5

propogating called context

Yuval Kogman wants to call a sub with the same context he was called in so that he can munge the result(s). Warnock applies.

groups-beta.google.com#f3c5cdf9ab6c7a5c

true(0)

Juerd suggested that "true" ought to be renamed as it was really counterintuitive. Much discussion ensued about alternatives. Larry hemmed for a bit, but decided to stick with true in the end

groups-beta.google.com#d658af04afb41def

Junction Questoins

Stevan Little wondered if the junctions in pugs were behaving correctly. Luke Palmer assured him that they were for the examples he posted.

groups-beta.google.com#0b6c7014b4be8ff4

POD vs kwid : round 1. FIGHT!

Aaron Sherman posted a rought draft of a better POD. This led to many people passionately discussing the merits and demerits of POD and kwid. Fortunately as the summarizer endowed with the power of double speaking, I can definitively say that the conclusion was that everybody prefers both kwid over pod and vim over emacs.

groups-beta.google.com#5531a708a6b8a333

importing constants from another module

Song10 wanted to know how to import constants from anothermodule into his without having to specify scope everywhere. Warnock applied.

groups-beta.google.com#b876a174c00da4b8

returning references vs copies

Darren Duncan wants to protect his classes from their malicious enemies who would use his references against him. Thus he wants to know if his accessor methods return references or copies. Larry explained that they would probably return lazy copies, to provide the requist protection, except when used inside that class.

groups-beta.google.com#53d856b79ec5aabd

precedence of where

Chip Salzenberg wondered if where or | had higher precedence. Larry replied that where was part of a magic group of declarational keywords that did some weird stuff.

groups-beta.google.com#e30509cf16667057

strings and pain

Rod Adams wants to change strings to deal with unicode differently. Larry thinks his idea forces the programmer into the machines mindset too much.

groups-beta.google.com#caef6fe695f484cd

caller's slurpy array

Rod Adams wants access to his caller's slurpy array and suggests that it be @_. Larry agreed.

groups-beta.google.com#6cae07180e484d20

lvalue slices

Matt Diephouse wants to assign to an array slice but doesn't know if he can. He can.

groups-beta.google.com#250915713d504ccf

.method; $self.method; $_.method

As originally specified .method means $_.method . This sets is appart from $.foo, @.foo, %.foo which all refer to $self . Much discussion ensued. I think the pendulum is slowly swinging toward switch the meanting of .method to refer to $self.method .

groups-beta.google.com#9083077118873dd3

Duff's Device

Gaal Yahas lamented his lack of ability to use Duff's Device in Perl 6. Larry made noises that it might not be impossible, but would still not be a good idea.

groups-beta.google.com#90c1b8d03c869e59

the fate of study

Rod Adams wondered what would happen to study. Since I never did it in high school or college, I doubt I will begin now. Other seems to think it would be easier to leave it as a no op in case we want to do it eventually.

groups-beta.google.com#bed755ec9ba75c14

some ado about nothing

Rod Adams wants a no-op function and suggested nothing. There was some discussion about whether 1 should work. I am surprised that no one suggested study....

groups-beta.google.com#8d1aef1de9edad01

chr and ord

Rod Adams thought that perhaps chr and ord should be restricted to operating at the code point level. Larry was less sure.

groups-beta.google.com#776d142ee2edcb2f

Perl 6 Compilers

Last week I tried to link many of the patches to pugs. I now think that was a mistake for two reasons. (1) there are a great many and (2) many more occur off list and are thus missed. Therefore, I will not go provide links for specific patches unless they pass my arbitrary test of as important as my pizza.

Pugs 6.0.12

Autrijus release pugs 6.0.11 and 6.0.12. The features are plentiful and awesome. For a more complete list (which is long) as well as daily blow-by-blow of the PUGS development (which is fast) check out Autrijus's journal "/use.perl.org/~autrijus/journal/" in http:.

groups-beta.google.com#296f1effec2f7ece - 6.0.11

groups-beta.google.com#7701be9639425bc3 -- 6.0.12

helping PUGS

Matthew Campbell wondered how best to help pugs. Autrijus Tang gave him a helpful knudge.

groups-beta.google.com#39f0bee1765b05ba

p6ify Algorithm::Dependency

Adam Kennedy asked for a volunteer to translate Algorithm::Dependency to perl 6. Darren Duncan did it and fast too.

groups-beta.google.com#b51d37ddbcbc4b48

help PUGS

Anthony Kilna knew that one of the best ways to help PUGS was to write tests but didn't know if there was a database of tests that needed to be written or were written. Stevan Little pointed him to the in progress attempt to build just such a database and said that would be a good place to help.

groups-beta.google.com#db780fa372437a16

sand traps abound when golfing in p6

Andrew Savige (aka mad golfer) has been working at porting a "small" program to perl 6. He wrote up his experiences at "/www.perlmonks.org/?node_id=440685" in http:.

groups-beta.google.com#a6efb74699ea57fa

numification of strings

There was some discussion of how to numify a string. Some wanted smart parsing, others wanted simple parsing. For a while simple was winning. I am not sure if it one in the end though...

groups-beta.google.com#eb81ac0b17fd1bd8

SQL::Routine

Darren Duncan announced his intent to port SQL::Routine to Perl 6 shortly. You might be able to hold your breath.

groups-beta.google.com#f7786d53603fc773

Pug's Bugs vs Blue's Clues

Stevan Little compiled a list of bugs for pugs. By the time you read this, many will probably have been fixed.

groups-beta.google.com#a47f1de3c76b11af

Parrot

I will start this part with a very large anouncement. Dan has decided to step down as Parrot's Chief Architect. Chip Salzenberg (who just earned first name only status) has taken up the burning parrot, err torch. To forestall questions/outrage/grumbling, Dan explained that Leo did not get the position because he did not want it. I know that I personally have learned a lot from Dan and Squaks of the Parrot (including how to turn crystal sugar into bakers sugar), and want to think him a great deal for the work he put into Parrot. This means the responsibility of returning the pie to Guido now falls on Chip's shoulders.

make install parrot headers

Lambeck noticed that make install does not install parrot's header files. It probably should; so he filed a bug.

groups-beta.google.com#14e48637be806485

atan2 needs -xlibmieee on Sun

Andy Dougherty provided a patch adding appropriate hints to the solaris build. Leo applied it.

groups-beta.google.com#2f7420ec96a32121

Burning Parrot

Leo put out a request to have the parrot tinderboxen revived. Steve Peters suggested that it could be integrated with the current perl smoke reporting process. Peter Sinnot put up a server on a spare machine in the mean time.

groups-beta.google.com#48b36b3efb9fe952

ncurses_life

Uwe Voelker reported a bug in ncurses_life. Leo fixed it and put out a plea for someone to update it. Matt Diephouse updated it.

groups-beta.google.com#0c3d76d031ac94de

refactor of t/pmc/pmc.t needed

Leo suggested that an interested party would be able to factor the Perl* tests out of pmc.t and into perl.t. Steven Schubiger offered to try.

groups-beta.google.com#eeb2c77b3ca37aeb

groups-beta.google.com#b73023e931faf731

string tasks

Leo posted a set of tasks looking for takers with respect to string stuff. Steven Schubiger stepped up to some and Aldo Calpini another.

groups-beta.google.com#07b7ae78e013dbcf -- initial request

groups-beta.google.com#9465b678d81a6bfd -- Aldo's Offer

thr-primes.imc

Bernhard Schmalhofer updated thr-primes.imc to not use Perl* pmcs, which uncovered a bug in Undef.pmc. Leo fixed it.

groups-beta.google.com#2b8d1ab0976fa155

aggregate clone vtable

Leo noticed that some aggregates do deep copies while others do shallow. All should do shallow. Takers welcome.

groups-beta.google.com#111693f3a2d7c6fa

**Arrays TODO

Fixed*Arrays should have a limited form of splice available to them. Also, the Resizable*Arrays should have their allocation schemes adapted to that of the ResizeablePMCArray and *BooleanArray should store just bits. Bernhard Schmalhofer offered to take on the *BooleanArrays.

groups-beta.google.com#5b5311c4fc191ef0 -- the request

groups-beta.google.com#fb27be1eb9fa8112 -- the offer

anonymous subclasses

Simon Glober discovered that anonymous subclasses were not working in December. Now Leo fixed it.

groups-beta.google.com#f05daf33ba86a454

Perl 6 compiler in Perl 6

Millsa Erlas hoped that writing a Perl 6 compiler in Perl 6 was still a priority. Markus Laire pointerd her to pugs. She seemed happy.

groups-beta.google.com#e2b62a27a803370a

object internals

Leo has been steadily hacking away at the object internals. There is now a get_mro opcode.

groups-beta.google.com#db497f0efde11445

dynclasses failure in gcc 3.3.3

Leo commited a work around to a gc problem with dynamic library loading. Eventually the real solution will need to be implemented.

groups-beta.google.com#f9079cdebbfb3651

The many faces of Win32

It turns out that one can have several different flavors of windows builds with MinGW (not to mention cygwin or msvc). This causes pain.

groups-beta.google.com#9d77af5c1c99a840 -- mingw

groups-beta.google.com#45b485d60499377c -- pain

groups-beta.google.com#2af4665d9f0509a6 -- the many moods of MinGW

 

TODO: clean parrot's A*I

Jarkko Hietaniemi posted a TODO for cleaning up both Parrot's API and ABI. Leo agreed that it would be very nice.

groups-beta.google.com#f7f0ae2f3d71f5c3

calling PIR from a PMC

William Coleda wanted to know how to call PIR code from a PMC. Jeff Horwitz pointed him to the Parrot_call_sub_* API.

groups-beta.google.com#5d04a0e33841544d

 

PAST compiler problems

Bernhard Schmalhofer has a program that he can make work in imc, but not from PAST. It turns out that we don't yet have a way to pass options to the compile opcode. We need that.

groups-beta.google.com#d87dcd5b13f79c33

makefile cleanup

Bernhard Schmalhofer offered to clean some old imcc targets out of the makefile. Leo told him to go for it.

groups-beta.google.com#82d308ca303342fb

MRO broke TCL

Will Coleda was sad that Leo kept breaking TCL. Leo suggested that he add the tcl tests to the base make test. Also, there is some funniness going on since test fail for Leo and not Will.

groups-beta.google.com#347b5254037f240d

TODO add multiple return values to Parrot_call_sub

Matt Diephouse posted a todo for adding the ability to access multiple return values from C.

groups-beta.google.com#3aedf5963bbf574a

MANIFEST failures

Bob Rogers was getting MANIFEST failures. It turns out that he forgot to use the "-dP" switch with CVS. We have all done it.

groups-beta.google.com#b11b606daea1abb6

pasm -> imc

Bernhard Schmalhofer commited a few TODO tests for generating and running PASM from pir. Jens Rieks pointed out that this does not work and is only a debugging aid. Although I don't see anything wrong with wanting to get it working...

groups-beta.google.com#e15c16162f92a6ca

segfault on splice

Nick Glencross found a segfault when splicing an IntList. Jens Rieks provided a patch that allowed parrot to die earlier and cleaner. Leo fixed the problem.

groups-beta.google.com#bd72ed3b4004ce9c

Documenting the MinGW build

Fran\xE7ois Perrad provided a patch updating documentation for building with MinGW. Warnock applies.

groups-beta.google.com#dcdeb12bb567f52e

segfaulting md5sums

Nick Glencross decided to check up on his md5sum library. It still compiles, but it segfaults. Leo found and fixed the GC bug.

groups-beta.google.com#e90e4226ded8159f

Parrot_Exec_OS_Command

Fran\xE7ois Perrad noticed that MinGW was very particular about how one execs OS commands. He wondered if this should be fixed at the configure layer or the Parrot_Exec_OS_Command layer. Dan explained that it was not intended to be language independant, and that a language independent version should go in a library.

groups-beta.google.com#e4496796bc505458

Namespaces in PIR

Leo posted a call for comments on PIR namespaces. Dan suggested a small addition.

groups-beta.google.com#2c1e5c08e857421d

builtins

Leo committed a change moving builtins to a class namespace and provided convenient access to them from PIR.

groups-beta.google.com#0768c592db76d962

MMD: multi sub syntax

Leo put out a call to develope a syntax for multi subs in PIR. Many options were suggested.

groups-beta.google.com#7e90050886739a28

returning a variable number of arguments

Bob Rogers updated PIR code to allow a variable number of arguments to be returned. Leo applied it.

groups-beta.google.com#b9cf876745f5e8c8

The usual footer

Posting via the google groups interface does not work. 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