Re: Re: class interface of roles

2006-10-08 Thread Matt Fowles

Jonathan~

On 10/7/06, Jonathan Lang [EMAIL PROTECTED] wrote:

TSa wrote:
 Dispatch depends on a partial ordering of roles.

Could someone please give me an example to illustrate what is meant by
partial ordering here?


Sets demonstrate partial ordering.  Let  denote the subset relation ship.

If A  B and B  C, then A  C for any A, B, and C.
However, it is not necessarily the case that A  B, or B  A, or B ==
A for any particular A and B.

Thus transitivity is preserved, but there is not a guarantee of
comparability between elements.

http://en.wikipedia.org/wiki/Partial_ordering

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


$a.foo() moved?

2006-04-06 Thread Matt Fowles
All~

I just noticed something claiming that C$a. foo() is actually
C$a.foo() (a method call on C$a) and that C$a .foo() is actually
C$a $_.foo() (likely a syntax error).

When did this change?  Why did this change?

Also, I liked it better when C$a .foo() was a method call on C$a.

Thanks,
Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: $a.foo() moved?

2006-04-06 Thread Matt Fowles
Larry~

On 4/6/06, Larry Wall [EMAIL PROTECTED] wrote:
 On Thu, Apr 06, 2006 at 01:58:55PM -0400, Matt Fowles wrote:
 : All~
 :
 : I just noticed something claiming that C$a. foo() is actually
 : C$a.foo() (a method call on C$a) and that C$a .foo() is actually
 : C$a $_.foo() (likely a syntax error).
 :
 : When did this change?  Why did this change?

 It changed at the last hackathon, but is still being debated, mostly
 on #perl6.  The current S02 early dot rule is likely being abandoned,
 but we don't know for what yet.  The reason is that term/operator
 lexer state is interacting badly with inconsistent retroactive
 whitespace cancellation.

 : Also, I liked it better when C$a .foo() was a method call on C$a.

 Sure, that one might be obvious, but quick, tell me what these mean:

 say .bar
 say .()
 say .1
 when .bar
 when .()
 when .1
 foo .bar
 foo .()
 foo .1
 .foo .bar
 .foo .()
 .foo .1

 I'd rather have a rule you don't have to think about so hard.  To me
 that implies something simple that let's you put whitespace *into*
 a postfix without violating the postfixes don't take preceding
 whitespace rule.

That makes a good deal of sense.  I don't know what I would like more,
so I guess that I will wait till a more firm consensus is reached.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: overloading the variable declaration process

2006-02-08 Thread Matt Fowles
Stevan~

On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote:

  After all Foo is just a specific instance of the class Class.

 Shhh... class objects don't exist ... I was never here,... I will I
 count to three and when I snap my fingers you will awaken and will
 have forgotten all about class Class.

 1 ... 2 ... 3 ... *snap*

... What!?!?  Where was I?  Oh, yeah.  As I was saying, I think we
just take C++'s object system exactly.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: overloading the variable declaration process

2006-02-07 Thread Matt Fowles
Larry~

On 2/7/06, Larry Wall [EMAIL PROTECTED] wrote:

 Indeed, and the modeling point of view is that $pipe is *also* just
 a representation of the Pipe.  Neither Pipe nor $pipe is the thing
 itself.  Most computer programs are about Something Else, so computer
 languages should be optimized for talking about other things rather
 than talking about themselves.  The answer to

 Pipe.can(Smoke)
 $pipe.can(Smoke)

 should be the same, not different.  On the other hand,

 ^Pipe.can(Smoke)

 is a different matter, insofar as you're asking a question about a Class
 object rather than a Pipe object.  And now you get your Platonism back.
 You just have to be explicit about it.

I see the value of ^Pipe and $pipe as seperate objects which can be
manipulated programmatically.  What I don't really understand is what
exactly Pipe is and where it would be useful.

They way you have described Pipe feels a little muddy to me and I am
unsure about its purpose and semantics.  Is it just an object I ask
`.can()` or does it have some deeper usefulness?

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: overloading the variable declaration process

2006-02-07 Thread Matt Fowles
Stevan~

I am going to assume that you intended to reply to perl 6 language,
and thus will include your post in its entirety in my response.

On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote:
 On 2/7/06, Matt Fowles [EMAIL PROTECTED] wrote:
  Larry~
 
  On 2/7/06, Larry Wall [EMAIL PROTECTED] wrote:
  
   Indeed, and the modeling point of view is that $pipe is *also* just
   a representation of the Pipe.  Neither Pipe nor $pipe is the thing
   itself.  Most computer programs are about Something Else, so computer
   languages should be optimized for talking about other things rather
   than talking about themselves.  The answer to
  
   Pipe.can(Smoke)
   $pipe.can(Smoke)
  
   should be the same, not different.  On the other hand,
  
   ^Pipe.can(Smoke)
  
   is a different matter, insofar as you're asking a question about a Class
   object rather than a Pipe object.  And now you get your Platonism back.
   You just have to be explicit about it.
 
  I see the value of ^Pipe and $pipe as seperate objects which can be
  manipulated programmatically.  What I don't really understand is what
  exactly Pipe is and where it would be useful.
 
  They way you have described Pipe feels a little muddy to me and I am
  unsure about its purpose and semantics.  Is it just an object I ask
  `.can()` or does it have some deeper usefulness?

 Well since ^Pipe will really just be the same value as Pipe.meta, then
 you can do many things with it (if I get my metamodel wishes that is).
  Now, in keeping with the examples of useful things for people other
 than programmers and computers spirit of this discussion, here is one
 possible approach to using metaclasses in a constructive way.

 Okay, so lets assume you own a tobacco shop, and you have modeled a
 Pipe hierarchy to represent all the pipes you sell. Your base classes
 might look something like this:

 class Pipe {
 has $stem;
 has $bowl;
 }

 class Pipe::Bowl {
has $composed_of;
has $color;
has $size;
 }

 class Pipe::Stem {
has $composed_of;
has $color;
has $length;
has $filter = bool::false;
 }

 You would then model the different pipes you sell;

 class MagrittePipe {
 has $stem = Pipe::Stem.new(
  :composed_ofebony,
  :colorblack,
  :lengthshort
  );
 has $bowl = Pipe::Bowl.new(
  :composed_ofmahogany,
  :colorbrown,
  :sizemedium
  );
 }

 Now, you might say, why not make the MagrittePipe an instance of Pipe,
 and give the Pipe class a few more attributes, like a name. Well, if
 you did that then you couldn't subclass it of course.

 class MagrittePipe::SpecialEngravedAnniversayEdition {
  is MagrittePipe;
  does Engraved[$engraving_text = Ceci n'est pas une pipe];
  does SpecialEdition[$typeAnniversay];
 }

 Now, what does all this have to do with metamodel?

 Well, using introspection, it becomes very simple to discover various
 qualities about your inventory, enough to probably even autogenerate
 the HTML pages for your online-web store (powered by Perl 6 of
 course). And lets not forget the uber-cool Perl 6 Object Database
 which you are using to store your real-time inventory in (all
 metamodel powered of course). And of course if you want, you can use
 the DistributedObjectProxy metaclass which will automatically make
 your objects distributed so that your door-to-door Pipe saleforce can
 update your inventory in real time from their cellphones. And your RD
 department can use the built-in (but as yet unspeced) logic
 programming features of Perl 6 to mine your customer information from
 your (previously mentioend) object database and genetically grow
 new, more desireable Pipe products (which is easy to do since your
 metaclasses are programatically composable (and no I don't mean eval
 $code)).

 Of course, I am just dreaming here, but  maybe I am not! Most of
 this is already possible using CLOS (see the Franz's AllegroCL 8.0
 it's bad*ss IMO), so why can't we have it?

 Anyway, I hope that doesn't make your head hurt too much Matt ;)

Now that everyone is on the same page, I will go about responding

 class Pipe {
 has $stem;
 has $bowl;
 }

 class Pipe::Bowl {
has $composed_of;
has $color;
has $size;
 }

 class Pipe::Stem {
has $composed_of;
has $color;
has $length;
has $filter = bool::false;
 }

so far I am mostly with you, except one question.  Does has $filter =
bool::false; just provide a default?


 You would then model the different pipes you sell;

 class MagrittePipe {
 has $stem = Pipe::Stem.new(
  :composed_ofebony,
  :colorblack,
  :lengthshort
  );
 has $bowl = Pipe::Bowl.new

Perl 6 Summary for 2006-01-24 though 2006-02-07

2006-02-07 Thread Matt Fowles
 parrot leads to problems with
dynamic extensions. Nick Glencross tracked it down to a dependency issue
with dynamic pmcs.

http://xrl.us/jwtu

   Restricted clear_eh
Recently Bob Rogers suggested restricting the scope of which exception
handlers can be cleared by a clear_eh opcode. Leo implemented the
request and applied Bob's tests.

http://xrl.us/jwtv

   *_config.o Issues
Florian Ragwitz posted a few options on how to clean up the  *_config.o
 issues that seem to come up. Warnock applies (lightly as he posted on
Monday).

http://xrl.us/jwtw

   bc Needs Python
Jerry Gay noticed that languages/bc would fail most of its tests without
python. It should probably probe for that.

http://xrl.us/jwtx

   GraphViz of Parrot
Allison Randal posted a pdf of the parrot repository generated by
GraphViz. It is pathological enough that acrobat does not really like
the file. I am told that xpdf deals OK.

http://xrl.us/jwty

   Tcl Globals Failure
Will Coleda noticed that r11431 is suddenly failing a few Tcl tests.

http://xrl.us/jwtz

   Param Count Checks
Leo tried enabling param count checks to see what would fail. The answer
appears to be much. This led to discussion of how to enable and disable
checks on both arguments and returns.

http://xrl.us/jwt2

   Method Look up in Dynamic PMCs
François Perrad wondered why his Lua PMCs were failing to find their new
methods. Leo explained that the necessary methodhash in them was not yet
implemented and gave him a workaround.

http://xrl.us/jwt3

  Perl 6 Language
   as if
Jonathan Lang, Stevan Little, and Rob Kinyon has a discussion about some
sort of type casting or coercion in Perl 6. The conversation sorted of
petered out undecidedly.

http://xrl.us/jwt4

   ff operator
Larry renamed the flip flop operator to  ff . People rejoiced loudly.

http://xrl.us/jwt5

   New T-Shirt
Juerd posted his one line perl 5 to perl 6 conversion T-Shirt to cafe
press. I know at least one summarizer who would not object to having one
show up at his door...

http://xrl.us/jwt6

   Protype Based MMD
Stevan Little posted a link to a nifty paper on Prototype Based MMD.
There is also a short version for the attention impaired. (I read that
one; it is neat.)

http://xrl.us/jwt7

   S06 Questions
Dakkar had a few questions about S06. Larry had a few answers.

http://xrl.us/jwt8

   Named Unicode Characters
larry announced that one could put named Unicode code points into
strings like this \c[LATIN CAPITAL LETTER A, COMBINING RING ABOVE].

http://xrl.us/jwt9

   Perl 6 can goto hell;
Larry announced the addition of a goto statement.

http://xrl.us/jwua

   Something Between State and My
Dave Whipp wondered if he could have a variable that was unique to each
non-recursive invocation of a function. Luke Palmer suggested that env
variables already did this, but Larry pointed out a few nuances there.

http://xrl.us/jwub

   Universal Roles
Yuval Kogman wants a really powerful sort of automatic application of
roles, I think. Warnock applies.

http://xrl.us/jwuc

   Macros
Herbert Snorrason wants more specifics on macros in Perl 6. Larry gave
him some.

http://xrl.us/jwud

   Synopsis Typos
Yiyi Hu and Andrew Savige found a few typos in a few synopses. Larry
graciously fixed them.

http://xrl.us/jwue

   Automatic Instantiation
Darren Duncan wondered if Perl 6 had a way to provide a default value
for uninstantiated variables of a particular type. The led to Larry
going into a little more detail on protype objects, and Matt Fowles
pushing for even more detail.

http://xrl.us/jwuf

   Perl 6 Development Process
Yuval Kogman posted a loose plan for for improving Perl 6's development
momentum. This is a contentious issue, and I will not try to summarize
it directly. Read the link, it is the last one of the summary.

http://xrl.us/jwug

  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]

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


Re: overloading the variable declaration process

2006-02-07 Thread Matt Fowles
Stevan~

On 2/7/06, Stevan Little [EMAIL PROTECTED] wrote:

 Well, to be totally honest, I think only Larry truely understands
 their usage, but to the best of my understanding they are intented to
 serve a number of roles;

I agree with you about that, which is part of what bothers me.


 (Larry, please correct me if I am wrong here)

 - to allow for introspection of the class.

 After all ^Foo.can() is really just a series of method calls to the
 Foo metaobject. And besides ^Foo.meta.can() is 5 more characters to
 type!!

 - provide an invocant for class methods.

 Larry does not like the class-method/instance-method distinction (in
 fact it seems he doesn't even like the class/instance distinction
 either), and has declared that a class method is really just a
 method of the class which does not access any instance attributes.
 Well, this complicates the type signature of the invocant, and we need
 an invocant that the type-checker can check.

 In Perl 5, classes were just package names which were just strings.
 This will not work in Perl 6 in the presence of a reasonably decent
 type checker, the class needs to be *something*. Now Larry has also
 declared  that he does not like the idea of a class object, I think
 this is because that means that a properly typed method signature for
 a class method would look like this:

 class Foo {
 method foo (Class $class:) {
 say I am a class method, and proud of it;
 }
 }

 According to the signature, this method takes any Class instance as an
 invocant. Well
 thats just not right because it should only accept the Class instance
 which represents the Foo class. But we can't (at least I dont think we
 can) be that specific, at least not easily enough to also allow this
 method to be called by an instance of Foo as well.

 So, the solution,  use prototype instances for class objects. So
 now we can properly type our class method for both Foo and $foo like
 this:

 class Foo {
 method foo (Foo $class:) {
 say I am a class method, and proud of it;
 }
 }

 And whalla, we have a class/instance method ala Perl 5 and it is
 properly type checkable too.

 Of course I might be totally wrong here, but this is my best grasp on
 the subject.

Perl 6 allows dispatch on value (if I am not mistaken).  Thus, just as we have a

sub fact( Int 0 ) { return 0; }
sub fact( Int $n ) { return $n * fact($n-1); }

Why not have class methods take the form

class Foo {
method foo (Class Foo) {
say I am a class method, and proud of it;
}
}

They are still well types (I think), and properly restricts the types
allowed for foo.  After all Foo is just a specific instance of the
class Class.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: overloading the variable declaration process

2006-02-06 Thread Matt Fowles
Larry~

On 2/6/06, Larry Wall [EMAIL PROTECTED] wrote:
 This is mostly motivated by linguistics rather than computer science,
 insofar as types/classes/roles in natural language are normally
 represented by generic objects rather than meta objects.  When I
 ask in English:

 Can a dog bark?

 that's equivalent to asking in Perl 6:

 Dog.can('bark')

Or you might think of it more as a question like Can the ideal of a
dog bark?  the answer to which is of course No, it doesn't exist..

Perhaps, I am just too firmly rooted in old paradigms but I think it
is very important not to conflate the representation of a thing with
the thing.

http://en.wikipedia.org/wiki/Image:MagrittePipe.jpg

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2006-01-10 though 2006-01-24

2006-01-24 Thread Matt Fowles
 Introspection
Will Coleda wants an API for introspecting PMCs from PASM.

http://xrl.us/jpxg

   FrOSCon Call For Papers
Marcus Thiesen announced that the first Free and Open Source Conference
is looking for papers in both English and German.

http://xrl.us/jpxh

   YAML::Parser::Syck
Bernhard Schmalhofer posted a brief look at what has already been done
with adding support of libsyck and left the door open to anyone who
wished to pick up the torch. Warnock applies.

http://xrl.us/jpxi

   Parrot Link Issues
Klaas-Jan Stol had problems linking parrot. Larry managed to track the
problem down to an old libparrot in /usr/local/lib being picked up
prematurely.

http://xrl.us/jpxj

   Parrot_Context Unused Field
Bob Rogers posted a patch which improved the name of an unused field in
Parrot_Context. Leo applied the patch. Matt Fowles wondered why leave
the unused pointer in at all. Leo explained that it was need for
mark_register_stack to work out correctly, although another pointer
could be moved over it to save those 4 bytes (or even 8 on 64 bit
platforms!).

http://xrl.us/jpxk

   gunie.g Question
Chris Dolan was curious why print was an expression and not a statement
in the punie grammar. Andrew Rodland explained that print was an
expression because it return a value (success or failure).

http://xrl.us/jpxm

   genrpt.pl is Obsolete
Bernhard Schmalhofer noticed that tools/dev/genrpt.pl does the same
thing as parrotbug and could thus be removed. Joshua Hoblitt agreed.

http://xrl.us/jpxn

   Parrot::Config Contains Invalid Info
  Jerry Gay noticed that his Parrot::Config was being created with
invalid data.  Joshua Hoblitt offered to clean up one problem and
asked for takers on another.

http://xrl.us/jpxo

   Rename src/classes to src/pmc
Bernhard Schmalhofer proposed and performed, after favorable reception
of his proposal, a migration from directories name src/classes to
src/pmc.

http://xrl.us/jpxp

   Out of Date Comments
Brad Bowman noticed some comments refering to cache.* in pobj.h. He
provided a patch to remove them. Warnock applies.

http://xrl.us/jpxq

compute_dominance_frontiers  Bug
Bob Rogers found a problem in  compute_dominance_frontiers . Curtis
Rawls suggested simply disabling the function as it was merely a
precursor to SSA which was never finished.

http://xrl.us/jpxr

   Closure::mark Segfault
Bob Rogers found a fixed a segfault in Closure::mark. Leo applied the
patch.

http://xrl.us/jpxs

   Parrot CPAN Bundle?
Jerry Gay suggested making a CPAN Bundle (or possibly several) for
Parrot. Chip liked the idea of having one bundle, and thought that
having several sub-bundles would be more effort than it might be worth.

http://xrl.us/jpxt

   Calling Conventions Details
Leo had a few questions about pdd03 (calling conventions). Chip provided
clarifications.

http://xrl.us/jpxu

   PDD11 Bit Rot
Brad Bowman noticed a bit of rot in pdd11 and polished it up. Jerry Gay
applied the patch.

http://xrl.us/jpxv

   Named Argument Passing
Leo proposed a way of passing named arguments in PIR. Response was
favorable, and he implemented it.

http://xrl.us/jpxw -- proposal

http://xrl.us/jpxx -- implementation

   LuaTables of Floats
Klaas-Jan Stol wondered how to use N values as keys. Leo suggested using
Float PMCs and Matt Fowles warned of the danger of using floating point
values where equality checks might be needed.

http://xrl.us/jpxy

   Argument Passing Bug
Bob Rogers found an issue with the :optional to :slurpy state transition
in process_args, so he fixed it. Leo applied the patch.

http://xrl.us/jpxz

   Object Initialization Changes
Bob Rogers noticed some changes the semantics of object initialization.
He sent a patch with more tests, but Warnock applies.

http://xrl.us/jpx2

   Assertion Failure in Life
Tim Bunce found an assertion failure in ncurses_life.pir. Leo fixed
the problem.

http://xrl.us/jpx3

   ncurses files
Tim Bunce found several different ncurses files in
runtime/parrot/library/ and asked which were generated from the
others. Leo explained that ncurses.pasm was generated from
ncurses.declarations, but that ncurses.pir was hand made. He suggested
splitting them into to parts, one for libncurses and another for libform
NCI functions.

http://xrl.us/jpx4

   Cygwin Build Failures
Greg Bacon was having build troubles on Cygwin. After much work, still
no resolution.

http://xrl.us/jpx5

   HP-UX Alignment Issues
Nick Glencross found a failing assertion on HP-UX. Leo suggested
disabling function pointer alignment on this system since it dist not
appear to be working.

http://xrl.us/jpx6

   .const improvements
François Perrad noticed that .const

Re: Class methods vs. Instance methods

2006-01-18 Thread Matt Fowles
Larry~

On 1/18/06, Larry Wall [EMAIL PROTECTED] wrote:

 But I have a strong gut-feeling that over the long term it's going to
 be important to be able to view a given object as either a partially
 instantiated class or a partially undefined object, and for that we have
 to break down the false class/instance dichotomy.  And to the extent
 that the dichotomy *isn't* false, we're trying to sweep classness into
 the .meta object, which is the *real* class object in Perl 6.

Perhaps I am just being short sighted, but I never saw this as a false
dichotomy.  In fact, every time I hear about these partially
instatiated I cringe in horror about the strange halfway lands we
might end up in... Oh no, this method can only be called on an object
that is 3/4 initialized, and you supplied one that is 2/3 initialized
that causes undefined behavior.

Could you provide a concrete example of the advantage of this approach
please?  Failing that can you try and expand on your gut feeling a
bit?

Thanks,
Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2006-01-02 though 2006-01-09

2006-01-11 Thread Matt Fowles
Perl 6 Summary for 2006-01-02 though 2006-01-09
All~

Welcome to another Perl 6 Summary. On a complete tangent, if you are
playing World of Warcraft and see a troll hunter named Krynna, she
rocks. She royally saved me. Be nice to her.

  Perl 6 Compiler
   PIL Containers and Roles
Audrey explained that she and Stevan have been putting in effort to
allow Pugs and PIL to bootstrap Roles and eventually the entire object
model.

http://xrl.us/jiza

   Reference and Assignment Semantics
Audrey posted a brain dump focusing on the issues and implications of
how containers, assignment, and auto dereferencing interact.

http://xrl.us/jizb

   Table of Perl 6 Types
Stevan Little posted a summary of his understanding of Perl 6's core
type hierarchy. Larry replied with a few comments and corrections.

http://xrl.us/jizc

  Parrot
   Configure and Symlinks
Alberto Simoes wondered how the configuration system should handle
symlinks. Warnock applies.

http://xrl.us/jizd

   Removed NCI Types
Dan Sugalski wondered why the T and L parameters have been removed from
NCI and how he should work around their absence. Leo suggested you
ManagedStruct PMCs for it and pointed him to the SDL libraries.

http://xrl.us/jize

mkdir  test can fail
Bob rogers posted a patch fixing an unanchored regular expression in the
mkdir test. Warnock applies.

http://xrl.us/jizf

   Build html should use Pod::Find
Joshua Isom suggested that Pod::Find would make building html less error
prone and more robust to changes the Pod structure. Warnock applies.

http://xrl.us/jizg

   CWD on HP-UX
Nick Glencross posted a fix to os.pmc for HP-UX. Alberto Simões applied
the patch.

http://xrl.us/jizh

   Alignment Issues on HP-UX
Nick Glencross posted a back trace from a test failing on HP_UX. His
initial analysis indicates that it is an alignment issue. Warnock
applies.

http://xrl.us/jizi

   Tcl Todo
Will Coleda posted more todos for Tcl. Like last week, I won't summarize
them all. But I am very happy to see Tcl coming along again. I must say
that I always like watching the test percentages climb.

   Parrot 0.4.1
Leo announced the release of Parrot 0.4.1.

   Sun's Compiler No Like CRLF
Andy Dougherty noticed that Sun's compiler was choking on coroutine.pmc
because it had bad line endings. He fixed it, and Jerry Gay applied the
patch.

http://xrl.us/jizj

   atan2 issues
Joshua Hoblitt committed a possible fix for some atan2 issues occuring
on openbsd, solaris, and cygwin. The fix didn't help cygwin or solaris.
No word on openbsd.

http://xrl.us/jizk

   OS.pmc needs a few methods
Will Coleda created a few todo: OS.pmc needs an lstat method, and
methods to set atime and mtime.

http://xrl.us/jizm

http://xrl.us/jizn

   Vanishing Warnings
Will Coleda noticed that a few warnings disappeared. Leo admitted that
he accidentally applied a fix some time ago.

http://xrl.us/jizo

   Configure.pl and Optimize
Andy Dougherty noticed that Configure.pl --optimize no longer worked
correctly. Joshua Hoblitt took the opportunity to clean up that portion
of Configure.pl.

http://xrl.us/jizp

   Event System Question
Klaas-Jan Stol wondered why events (unlike exceptions) are handled after
a little time instead of immediately. Leo explained that this was due to
the asynchronous nature of an events arrival and the inability to resume
execution after a long jump.

http://xrl.us/jizq

   CFLAGS missed two files
Andy Dougherty noticed that the core_ops source files missed come of the
directory rearrangements. Jerry Gay applied the patch.

http://xrl.us/jizr

   File::Temp Issue
Leo noticed an issue in t/run/options. Jerry tracked it down to an old
version of Perl and the File::Temp module and fixed the problem.

http://xrl.us/jizs

   Simple Namespace Question
Joshua Isom wondered how to separate namespaces for find_global calls.
Leo explain that he should use a list like ['Foo'; 'Bar'].

http://xrl.us/jizt

   Credits
The ever modest Nick Glencross updated his name in the credits file to
be a little more understated. Oddly, no one applied the patch.

http://xrl.us/jizu

   parrot config revisited
Nick Glencross posted a few questions, thoughts, and patches involving
parrot_get_config. Leo agreed with most of it, but had a few comments.

http://xrl.us/jizv

   pkgsrc build
Anders Nor Berle provided a few patches making thing work a little more
smoothly with FreeBSD and pkgsrc. Jerry Gay reviewed the patches and
Florian Ragwitz applied the relevant portions. In fact, 0.4.1 got added
to pkgsrc for the curious.

http://xrl.us/jizw

http://xrl.us/jizx -- 0.4.1 added

   static and shared libparrot
Florian Ragwitz provided a patch that fixed the 

Perl 6 Summary for 2005-12-05 through 2005-12-12

2005-12-12 Thread Matt Fowles
Perl 6 Summary for 2005-12-05 through 2005-12-12
All~

Welcome to another Perl 6 summary. This week, like last, Parrot has
produced the highest volume of emails. Fine by me, Parrot tends to be
easiest to summarize. This summary is brought to you by Snow (the latest
soft toy in the house). I would say you should get one, but apparently
Borders stores everywhere are sold out of them. He is quite soft and a
little mischievous. Maybe he belonged to a samurai once...

  Perl 6 Compiler
   Context Confusion
Mike Li wondered how to make his sample code work in Perl 6. Jonathan
Scott Duff pointed out that the part he was curious about, was correct
already. Score one for Perl 6.

http://xrl.us/i7ch

   Unbracketed Text from Text::bracketed
Allison Randal wanted to be able to access the text within
PGE::Text::bracketed's match object. Patrick made it work, and Allison
happily used it.

http://xrl.us/i7ci

   Security Model
Bryan Burgers wondered how Parrot would support security. Luke Palmer
pointed him to the p6i list and explained that Dan did have a plan for
this that he couldn't recall. I recall something about VMS and having
active and allowable capabilities. It sounded really cool when I read
it.

http://xrl.us/i7cj

  Parrot
   Build Failure
David Dyck managed to make the build fail on his bizarre setup. Leo
fixed it.

http://xrl.us/i7ck

   src/revision.c Dependencies
Leo discovered that src/revision.c is missing some dependencies. He
would love it if someone fixed that.

http://xrl.us/i7cm

   Documenting  .lex  Syntax
Klaas-Jan Stol documented the new syntax for lexicals. Jerry Gay applied
the patch.

http://xrl.us/i7cn

   Multidimensional Arrays
Roger Browne found that he could not make multidimensional array access
work with PMCs. Leo said that should be filed as a TODO.

http://xrl.us/i7co

   Directory Reorganization
Jerry Gay has made good progress spearheading the directory
reorganization of Parrot. Rather than give you a bunch of links to
emails that are essentially the same, I will skip them, but thank you
Jerry.

make test  Error on OS X Tiger
Jason Gessner reported a test failure on OS X Tiger. Warnock applies.

http://xrl.us/i7cp

   C3 MRO Test
C3 MRO (C3 P0's younger brother) recently underwent his factory
acceptance test and will be released into the world. Like his older
brother, he also speaks fluent Tibetan. On an unrelated note, Stevan
Little added some test for the C3 method resolution order used in
Parrot.

http://xrl.us/i7cq

   Global Store Hash
Klaas-Jan Stol wanted to access the global store hash directly. Leo
showed him how.

http://xrl.us/i7cr

   Release Goals
Leo kicked off a brain storming session for what to focus on for the
next release. Brains promptly began storming.

http://xrl.us/i7cs

   Sun4 JIT Fix
Andy Dougherty submitted a big fix to make Sun4's JIT link again. Leo
applied the patch.

http://xrl.us/i7ct

   :flat and :slurpy issues
Bob Rogers was having trouble making Parrot eat linguine because it
would not mix :flat and :slurpy arguments. He also found that the
problem was do to premature optimization (actually a
PREMATURE_OPTIMIZATION define) and submitted a fix and test. Leo thanked
him and applied them.

http://xrl.us/i7cu

   Parrot 0.4.0 Luthor
Leo announced the latest release of Parrot 0.4.0 aka Luthor. There was
much rejoicing, but I was left wondering where Leo comes up with these
release names.

http://xrl.us/i7cv

loadlib  Cleanup
Leo has been hunting some uninitialized memory bugs in Parrot's library
loading code. He has been having a difficult time finding the problem,
and thus is looking into a general code clean up to make the problem
easier to find (or possibly just fix it). Jerry Gay said he would make
it work on windows, but no one volunteered for the main portion of the
work.

http://xrl.us/i7cw

   languages/regex/Makefile is not Generated
Jerry Gay noticed that languages/regex/Makefile really ought to be a
generated file. He opened a TODO for it.

http://xrl.us/i7cx

   Fix Parrot IO Test 23
chromatic the ever uncapitalized proferred a patch for a failing
Parrot_IO test. He seemed to feel that someone else ought to review it
as he was not 100% on it. Warnock applies.

http://xrl.us/i7cy

load_bytecode  Fails Outside of Parrot
Bob Rogers noticed that load bytecode didn't work when not in the Parrot
directory. Leo mistakenly fixed a different problem before he fixed this
one. Sounds like a win/win to me.

http://xrl.us/i7cz

   Tcl Win32 Trouble
Jerry Gay noticed a problem building Tcl on Win32. François Perrad
pointed out an old patch from Nick Glencross which apparently solves the
problem. Warnock 

Re: This week's summary

2005-11-30 Thread Matt Fowles
Piers~

On 11/30/05, The Perl 6 Summarizer [EMAIL PROTECTED] wrote:

 So, I hopped into a taxi (and I use the word hopped advisedly) and
 repaired straightway to King's Cross and thence home to Gateshead, where
 my discomfort was somewhat ameliorated by the distraction of preparing
 this week's summary. I hope to be writing next week's summary as well
 because the week after I'll be moving house and don't quite know when
 I'll have my bandwidth back.

That sounds fine to me.  After next weeks I will start writing weekly
summaries until you send me an email saying you are ready to resume. 
Don't hurry on my account; I know moving is a pain.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: type sigils redux, and new unary ^ operator

2005-11-23 Thread Matt Fowles
Luke~

On 11/23/05, Luke Palmer [EMAIL PROTECTED] wrote:
 On 11/23/05, Rob Kinyon [EMAIL PROTECTED] wrote:
  On 11/22/05, Larry Wall [EMAIL PROTECTED] wrote:
  
   for ^5 { say }  # 0, 1, 2, 3, 4
 
  I read this and I'm trying to figure out why P6 needs a unary operator
  for something that is an additional character written the more legible
  way.

 Huh?  Are you saying that 0..^5 is one more character than ^5?

 In any case, I'm not sure that this unary helps readability, or that I
 like it all that much, but I can say that it's damned useful.  I use
 ranges of the form 0..$n-1 more than any other range, by a very long
 shot.

  To me, ^ indicates XOR, so unary ^ should really be the bit-flip
  of the operand.

 Except in Perl 6, XOR is spelled +^ or ~^, and ^ is Junctive one().
 So it seems that ^$x should be one($x).  But that's an entirely
 useless, trivial junction, so it makes sense to steal the syntax for
 something else.

I think using C ..5  to mean (0, 1, 2, 3, 4) would be a more
sensible option.  Makes sense to me at least.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: type sigils redux, and new unary ^ operator

2005-11-23 Thread Matt Fowles
Larry~

On 11/23/05, Larry Wall [EMAIL PROTECTED] wrote:
 On Wed, Nov 23, 2005 at 11:55:35AM -0500, Matt Fowles wrote:
 : I think using C ..5  to mean (0, 1, 2, 3, 4) would be a more
 : sensible option.  Makes sense to me at least.

 That doesn't derive well from any of:

 ..
 ^..
 ..^
 ^..^

 If the rule is you can omit the 0, then it's ..^5 rather than ..5.

I like C ..^5  better than C ^5  actually.  I was going for the
rule that an omitted LHS was 0 and an omitted RHS was infinity (your
probably cannot omit both).

Regardless, my gut tells me that C ^5  is just a little too short
for what it does.  Also, I find the argument that people will type
[EMAIL PROTECTED] and get confused fairly convincing.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-11-14 through 2005-11-21

2005-11-21 Thread Matt Fowles
Perl 6 Summary for 2005-11-14 through 2005-11-21
All~

Welcome to another Perl 6 Summary. The attentive among you may notice
that this one is on time. I am not sure how that happened, but we will
try and keep it up. On a complete side note, I think there should be a
Perl guild of some sort on World of Warcraft. It should probably be
horde if there is, both because I hate the alliance and because it fits
better.

  Perl 6 Language
As usual for Pugs, most development continued off list.

http://xrl.us/iipt

   Too Lazy?
Luke Palmer posted a problem he was having with pugs. Warnock applies
(which likely means it was made into a test and fixed).

http://xrl.us/iipu

   Assigning to Named Subrules
Jerry Gay had a question about the semantics of assigning to named
subrules in PGE. Patrick explained that it created an array of capture
objects.

http://xrl.us/iipv

   Keyed Access to Match Objects
Jerry Gay was having trouble with keyed access to match objects. After
some discussion he implemented the keyed routine he needed and
threatened to implement a few more.

http://xrl.us/iipw

   PGE Now  compreg s
Patrick announced that PGE was now a better citizen in the parrot world,
using compreg to locate the compiler instead of find_global.

http://xrl.us/iipx

  Parrot
I am going to get an English muffin. More in a moment... much better.
Peanut butter is a wonderful thing. Where was I?

   Character Classes Done
Jerry Gay wondered if the TODO about strings and character classes was
still open. Patrick said it was resolved and should be closed.

http://xrl.us/iipy

   rx_grammar.pl Progress?
Jerry Gay wondered if rx_grammar.pl had seen any work lately. Warnock
applies.

http://xrl.us/iipz

   N Registers No Longer Get Whacked
Leo, thanks to his new calling scheme, closed an RT ticket from Dec
2004.

http://xrl.us/iip2

   Report SVN Revision in parrotbug?
Jerry Gay resurrected an old ticket wondering whether to add a revision
field to RT tickets.

http://xrl.us/iip3

   Making Parrot Potable
Florian Ragwitz was having trouble drinking Parrot so he wants to expend
some effort to make it more potable. Apparently it does not get drunk so
well by many machines in debian's build farms and he would like to fix
it. When he asked how best to do his work (so as not to upset to many),
Chip suggested a local SVK mirror. Hopefully after he is done even more
people will be able to enjoy drinking the Parrot kool-aid.

http://xrl.us/iip4

   pbc_merge Requires LINK_DYNAMIC
Nick Glencross provided a patch fixing pbc_merge on HP-UX. François
Perrad noted that it was also problem on Win32. Jonathan Worthington
explained that he was aware of the problem and that the dependency on
the dynamic libraries would soon be removed.

http://xrl.us/iip5

   Compilable Option
Will Coleda wants a -c option which will only tell you if the code is
compilable for Parrot.

http://xrl.us/iip6

   Clerihewsiwhatsit?
Inspired by Piers's inspiration from his name, Roger Browne wrote a
Clerihew. Piers and Roger scare me.

http://xrl.us/iip7

   Debug Segments
There was much discussion about what sort of interface to expose to HLL
for debug segments. It looks like something good will come out of it
all.

http://xrl.us/iip8

   Amber for Parrot version 0.3.1
Announced, Roger Browne displaying Amber 0.3.1 aroun': this latest
version, magic cookie, is more than just a rookie.

http://xrl.us/iip9

   t/library/streams.t Failing
Patrick is still having trouble with t/library/streams.t. It sounds like
he would appreciate help, but Warnock applies.

http://xrl.us/iiqa

   PGE::glob Issues
Will Coleda spotted a problem with PGE::Glob. Patrick fixed it.

http://xrl.us/iiqb

find_word_boundary  Unneeded
Patrick posted his explanation of why find_word_boundary was an unneeded
opcode. Too that end he posted a patch updating t/op/string_cs.t.
Warnock applies to both thoughts.

http://xrl.us/iiqc

http://xrl.us/iiqd

   Coroutines Trample Scratchpads
Nick Glencross noted that coroutine_3.pasm was trampling some memory.
Leo said that scratchpads were on their way out. Nick wondered if the
ticket should be closed now, or when this is fixed. I vote that we not
close tickets until the problem is gone, but Warnock applies.

http://xrl.us/iiqe

   MD5 Broken
Chip noticed that MD5 was horribly broken recently. He decided that
parrot should avoid it in favor of the SHA-2 family and maybe Whirlpool.
If you are a crypto dork, you have your job cut out for you.

http://xrl.us/iiqf

Joshua Hoblitt joyously closed an RT ticket about removing $(MAKE_C).

http://xrl.us/iiqg

   inconsistent dll linkage
Jerry Gay announce that the last MSVC 7.1 

Re: Is there a way to generate an object without new?

2005-10-27 Thread Matt Fowles
Juerd~

On 10/27/05, Juerd [EMAIL PROTECTED] wrote:
 Yiyi Hu skribis 2005-10-28  3:17 (+0800):
  class A {
  has $.b;
  method show { $.b.say };
  };
  A( b = 5 ).show;`

 This is how some other language construct objects, but not how Perl does
 it. In other words: you should not want this.

How does that logically follow?

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: +$arg changed to :$arg

2005-10-26 Thread Matt Fowles
Larry~

On 10/26/05, Larry Wall [EMAIL PROTECTED] wrote:
 So we'd get:

 :@array[42] 42 = @array[1]

Do you mean C :@array[42] 42 = @array[42] ?

 The last three forms are more arguable than the first three, especially
 since they probably aren't valid formal parameters.  We kind of need
 a subscript modifier instead:

 @array:[42] 42 = @array[1]

Same question.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-10-10 through 2005-10-24

2005-10-25 Thread Matt Fowles
=head1 Perl 6 Summary for 2005-10-10 through 2005-10-18

All~

Welcome to another Perl 6 Summary.  Sadly, this week's summary is not
brought to you by cookies as I already finished them.  Sadder still,
it is also brought to you a week late.  On the plus side, Mike
Doughty's Haughty Melodic is quite good.

=head2 Perl 6 Compilers

This was a shockingly high volume fortnight for p6c with 5 different
threads on it!

=head3 Feather:  A Retrospective

Juerd thought that now would be a good time to evaluate the usefulness
of feather to the community.  Warnock applies, but he probably found
answers off list...

http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/f14d8337b681d4a9/c95fc3fdf6d46f5b#c95fc3fdf6d46f5b
Google Groups : perl.perl6.compiler

=head3 PGE Better, Stronger, Faster

Patrick announced significant internal updates to PGE.  It looks
like things are coming along very nicely.  Yay, Patrick!

http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/10bff9a3100902a5/7135f5627205f9ca#7135f5627205f9ca
Google Groups : perl.perl6.compiler

=head3 PGE Now With Better Balance

Patrick also announced the subrule CPGE::Text::bracketed which is
similar to CText::Balanced from Perl 5.  Now where, did I put my
darn push-down automata.

http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/b52eb566b1b74920/19e4709aa8d2ecd6#19e4709aa8d2ecd6
Google Groups : perl.perl6.compiler

=head3 Object Space Thoughts

Stevan Little posted some of his thoughts about how the meta-model can
be built up from run time primitives.  It is pretty neat.

http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/e97984486b61828b/f34b165f8a919dcf#f34b165f8a919dcf
Google Groups : perl.perl6.compiler

=head3 Parrot PMCs within Pugs

Christian Renz wondered how to get at Parrot's PMCs from Pugs. 
Autrijus admitted that that feature was not currently available, but
offered a commit bit and suggested that adding tests would be a good
start.

http://groups.google.com/group/perl.perl6.compiler/browse_frm/thread/2f09e7c0503ea02f/d200cbd33f975d1d#d200cbd33f975d1d
Google Groups : perl.perl6.compiler

=head2 Parrot

=head3 README.win32

Michael Cartmel fixed a few spelling errors in README.win32.  Joshua
Hoblitt applied the patch.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/38ef8ca32b5fab74/f5fdce20a19d50a9#f5fdce20a19d50a9
Google Groups : perl.perl6.internals

=head3 parrot-config.imc Documentation

Roger Browne offered a patch fixing documentation in
parrot-config.imc.  Warnock applies.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/2d86e5015608cb9e/43969cc2f25a0f7b#43969cc2f25a0f7b
Google Groups : perl.perl6.internals

=head3 Train Parrot to Flex

In the RT clean up, an old ticket has resurfaced.  Parrot needs to be
updated to use flex 2.5.31, which is incompatible with 2.5.4.  Patches
welcome.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/8dc8adf441fa6805/f24be3c94a3dfba7#f24be3c94a3dfba7
Google Groups : perl.perl6.internals

=head3 Dynamism Defeats Static Analysis

Patrick and I had a brief back and forth about detecting PGE
recursion.  The short answer is that it is possible in the static
case, but not in the face of changing rules.  Stupid halting problem,
where did I put my PDA.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/b08ed4ac97e3090c/d934e5866bdc9a43#d934e5866bdc9a43
Google Groups : perl.perl6.internals

=head3 void function return

Will Coleda is tired of special casing void functions and wants C() =
function() to be legal in PIR.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/c7e54dc1d2b887a9/74dcbe2b279de204#74dcbe2b279de204
Google Groups : perl.perl6.internals

=head3 Bison = 1.75c

Joshua Hoblitt noticed that the newer Bisons have slightly different
error messages than older ones.  He felt that we should either
standardize on the newer bison or explicitly declare error messages. 
No official ruling on which...

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/79e9151802ec9185/c9d1a7dd3236d16b#c9d1a7dd3236d16b
Google Groups : perl.perl6.internals

=head3 __set_pmc_keyed_*

Patrick needed a way to distinguish C__set_pmc_keyed_int from
C__set_pmc_keyed.  Leo gave it to him.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/e8f0cf140b05669a/9a125b4a7524b9f2#9a125b4a7524b9f2
Google Groups : perl.perl6.internals

=head3 HLL type mappings

Roger Browne wondered how he could set HLL type mappings from PIR. 
Leo said it was not yet implemented or speced.  Roger suggested adding
a few opcodes.

http://groups.google.com/group/perl.perl6.internals/browse_frm/thread/5f6e488e14b5b859/39be8e39b16b9d71#39be8e39b16b9d71
Google Groups : perl.perl6.internals

=head3 s/\@(directive)/:$1/g

Jonathan Scott Duff submitted a patch which swapped @directives to
:directives everywhere.  Leo applied most of it in several smaller

Re: What the heck is a submethod (good for)

2005-10-13 Thread Matt Fowles
All~

On 10/13/05, Brent 'Dax' Royal-Gordon [EMAIL PROTECTED] wrote:
 Luke Palmer [EMAIL PROTECTED] wrote:
  Okay, I seriously have to see an example of a submethod in use.

 Likewise.  As far as I've seen, submethods are a kludge wedged in for
 cases where you're actually calling all the way up the inheritence
 tree.  Personally, I've always thought a cascade method syntax would
 be better for that:

 post method BUILD($foo, $bar) { ... }
 pre method DESTROY() { ... }

 Cascade methods would be called (before|after) the indicated method in
 a superclass was called.  Their return values would probably be thrown
 away.  I think they might actually be a sort of syntactic sugar for
 inserting `call` in the method body, but that's an implementation
 detail, really...

I have always wondered about the absence of these.  CLOS has them and
they look quite useful.  Was it an intentionaly decision to omit this
type of multi method?

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-09-26 through 2005-10-02

2005-10-04 Thread Matt Fowles
Perl 6 Summary for 2005-09-26 through 2005-10-02
All~

Welcome to another summary, this time a day late because I was in Philly
for Serenity. If you haven't seen Serenity yet you should stop reading
this summary and go see it. The summary will be here when you get back.
I promise.

  Perl 6 Compiler
No postings this week. I blame Piers for scaring them off last week.

  Parrot
   Summary Links
Last weeks load lib thread morphed into a conversation about the life
span of the shortened links that appear in summaries. Piers pointed out
that, although the short links expire, the long links are archived at
perl.org.

http://xrl.us/hvbn

   RT Cleanup
Joshua Hoblitt has been continuing his massive clean up of RT. It makes
me glad of two things: that someone is doing it and that I am not doing
it. I won't post all of the links for these messages, but much work is
getting done.

   debug segments
Jonathan Worthington posted an RFC of his design for debug and source
segments in Parrot's packfiles. People seem to like it generally.
Hopefully the design will be implemented soon.

http://xrl.us/hvbo

   Leo's Context Branch Hits the Mainline
After a few more reviews from Chip, Leo's context branch has been dubbed
ready and has been moved to the mainline. This marks the culmination of
quite a bit of hard work from many people (especially Leo). Nice work
all.

http://xrl.us/hvbp -- bit of review

http://xrl.us/hvbq -- merge

   Amber PMCs
Roger Browne wondered how he should include Amber PMCs. Leo and Will
suggested he put the pmcs into the languages directory similar to the
way Tcl does it.

http://xrl.us/hvbr

   Data::Escape Needs Tests
Jerry Gay added a TODO for tests for Data::Escape. This would be a great
thing for an eager lurker to cut his or her teeth on.

http://xrl.us/hvbs

   Magic Numbers Bad, Magic Strings Good
Last weeks magic thread ended down with the conclusion that Parrot would
use a magic string instead of a magic number.

http://xrl.us/hvbt

   Tests fail on win32
Jerry Gay opened a new RT ticket for some failing tests on Windows.

http://xrl.us/hvbu

   Here Doc in PIR
Will Coleda revived a thread from February about PIR here doc syntax.
Looks like the syntax is ok.

http://xrl.us/hvbv

   Win32 PCRE
François Perrad enabled PCRE on Win32. Jerry Gay applied the patch.

http://xrl.us/hvbw

   PLATFORMS and MinGW
François Perrad updated the PLATFORMS file for MinGW.

http://xrl.us/hvbx

   parrot_config dependency
Nick Glencross provided a patch (for comment only) that eases the
dependency on parrot_config. I am not sure that he got many comments.

http://xrl.us/hvby

   Data::Escape::String Dislikes Unicode
Will noticed that Data::Escape::String doesn't work on Unicode strings.

http://xrl.us/hvbz

   Make Cleanup
Joshua Hoblitt started RT tickets for several things that are part of a
general make system clean up.

http://xrl.us/hvb2

http://xrl.us/hvb3

http://xrl.us/hvb4

   Parrot Leaves Crumbs
Nick Glencross rediscovered the core files that parrot leaves around.
This is a known problem.

http://xrl.us/hvb5

   Parrot Threads
Dave Frost wondered what the plan for Parrot Threading was going to be.
The answer (provided by Leo with more details from Jonathan Worthington)
was OS threads.

http://xrl.us/hvb6

   Once deprecation's lost its fun...
Leo went on a bit of fall cleaning adding things to the deprecated list.
He even threatened to resolve some of them soon.

http://xrl.us/hvb7

http://xrl.us/hvb8

http://xrl.us/hvb9

http://xrl.us/hvca

   Lexical and Variable Sized Register Frames
With the calling conventions having been redone, Leo has plans to move
to system of dynamically sized registers frames with static lexicals
stored directly in them. Chip should produce details soon.

http://xrl.us/hvcb

   Exception Handling Bug
Roger Browne found a bug with exception handlers in the new scheme. Leo
fixed it. I wonder if anyone made a test out of it...

http://xrl.us/hvcc

   Config missing output
Will Coleda noticed that Configure.pl was not outputting a response to a
step on his platform.

http://xrl.us/hvcd

   Parrot 0.3.0 TODO
Robert J Eaglestone wondered what would be a good way of chipping in.
Will Coleda, predictably, tried to turn him towards working for the good
of Tcl.

http://xrl.us/hvce

   Tru64 Issues
Jarkko Hietaniemi appears to have recently come into some time with a
Tru64 machine. He found lots of problems, which he added to RT, so I
won't link them here.

   src/extends.c
chromatic made good on a promise to auto generate src/extends.c
automatically. Leo quibbled over pod, but thought it was good.

http://xrl.us/hvcf

   Calling Vtable 

Re: Look-ahead arguments in for loops

2005-09-30 Thread Matt Fowles
Austin~

On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote:
 Matt Fowles wrote:

 Austin~
 
 On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote:
 
 
 Plus it's hard to talk about backwards. If you say
 
 for @l - ?$prev, $curr, ?$next {...}
 
 what happens when you have two items in the list? I think we're best off 
 using signature rules: optional stuff comes last.
 
 
 
 I disagree, I think that is an easy call
 
 for (1, 2) - ?$prev, $cur, ?$next {
say $prev  - $cur if $prev;
say $cur;
say $cur - $next if $next;
say next;
 }
 
 should print
 
 1
 1 - 2
 next
 1 - 2
 2
 next
 
 
 
 Did you mean:

 next
 1  - 2 # two spaces

 there?

No, my logic is that the loop is run through twice, once with (undef,
1, 2) and once with (1, 2, undef).

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: Look-ahead arguments in for loops

2005-09-29 Thread Matt Fowles
Austin~

On 9/29/05, Austin Hastings [EMAIL PROTECTED] wrote:
 Plus it's hard to talk about backwards. If you say

 for @l - ?$prev, $curr, ?$next {...}

 what happens when you have two items in the list? I think we're best off 
 using signature rules: optional stuff comes last.

I disagree, I think that is an easy call

for (1, 2) - ?$prev, $cur, ?$next {
   say $prev  - $cur if $prev;
   say $cur;
   say $cur - $next if $next;
   say next;
}

should print

1
1 - 2
next
1 - 2
2
next

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: Stringification, numification, and booleanification of pairs

2005-09-22 Thread Matt Fowles
Yuval~

On 9/22/05, Yuval Kogman [EMAIL PROTECTED] wrote:
 On Thu, Sep 22, 2005 at 08:20:42 +1000, Damian Conway wrote:
  Ingo Blechschmidt asked:
 
  my $pair = (a = 42);
  say ~$pair;  # a\t42? a\t42\n? a 42?
 
  Not yet specified but I believe it should be 42 (i.e. stringifies to 
  value).
 
  Note that S02 does specify that pairs *interpolate* to key-tab-val-newline,
  so you can still get a\t42\n by writing $pair instead.

 Can we override circumfix: ?

 Seriously though, this is too much dichotomy between correctness and
 ease of use.

 A pair is not it's value, it is a pair, and should be consistently
 handled as such when e.g. stringifying.

 The reasons for this claim are:

 *   Coercion to a string creates something interpolatable.
 Introducing another type or context or metaphor for string
 handling is counter intuitive and surprising.

 *   We have powerful facilities for interpolation and
 stringification that don't have to be hidden behind operator
 overloading:

 this is my special pair: $pair;
 otherwise: $pair.key - $pair.value;
 my multi prefix:~ (Pair $p) {
 key: $p.key, value: $key.value;
 }
 not like the first interpolation: $pair;
 $pair.as(...);

 These examples are flexible, explicit and stable in their
 behavior. They are good enough as they are and don't need to be
 improved by adding flexibility in something that is almost a
 special case.

 *   This adds complexity without much benefit. It heaps up the core
 with a special case that people will have to look out for later,
 and it hinders the usability of higher order functions by making
 it harder for them to accept the stringiciation operator, for
 instance.

 This lessens Perl 6 stability and cleanliness into something
 resembling Perl 5 with more builtin data types and operations

Well said!  I completely agree that string interpolation should be
handled exactly the same as stringification.  I would like C (foo is
$foo of course) eq (foo is  ~ $foo ~  of course)  at all times.

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: \(...)?

2005-09-21 Thread Matt Fowles
Ingo~

On 9/21/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote:

 foo(1,2,3);  # infix:, *not* called
 foo (1,2,3); # same as
 foo( (1,2,3) );  # infix:, called

Do you mean this to read?

foo(1,2,3);  # infix:, *not* called
foo .(1,2,3);# infix:, *not* called

foo (1,2,3); # infix:, called
foo( (1,2,3) );  # infix:, called

Matt
--
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Re: conditional wrapper blocks

2005-09-20 Thread Matt Fowles
Yuval~

On 9/20/05, Yuval Kogman [EMAIL PROTECTED] wrote:
 Today on #perl6 I complained about the fact that this is always
 inelegant:
 
 if ($condition) { pre }
 
 unconditional midsection;
 
 if ($condition) { post }
  
 I asked for some ideas and together with Aankhen we converged on the
 following syntax:
 
 if ($condition) {
 pre;
 } uncond {
 middle;
 } cond {
 post;
 }
 
 s/uncond/pause regardless.pick/e;
 s/cond/resume again.pick/e;
 
 Some restrictions:
 
 The block structure must always be ternary - for other cases we
 already have enough control flow.
 
 The if is not the same if that can cuddle with else - it's either
 or.
 
 Does anybody have any comments, or synonyms for the control
 structure naming?
 
 BTW, I expect readability to be optimal with 1-2 lines of pre/post,
 and 1-5 lines of middle. Any observations?

I don't really find this that inellegant.  It also seems like
something that is not painful enough to warrant adding new syntax,
especially a syntax that conflicts with if .. else ..

It seems like add complexity for very little win (granted it is not a
lot of added complexity, but perl6 is already an very large language).

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-09-12 through 2005-09-19

2005-09-19 Thread Matt Fowles
Perl 6 Summary for 2005-09-12 through 2005-09-19
All~

Welcome to another Perl 6 Summary, this time brought to you with a
shorter pause (::grumble:: $WORK ::grumble::) and assisted by cookies.

  Perl 6 Compilers
   Circular Preludes for Fun and Confusion
Yuval Kogman posted a really interesting idea of using a circular
prelude to facilitate creation of a new run time. If the prelude defines
everything it can in terms of itself (even circularly if need be), then
a new run time implementer can break the circle wherever is most
convenient for the run time. It looks really cool to me.

http://xrl.us/hn6h

   PxPerl Site Change
Grégoire Péan announced that he was having problems with his old domain
and that PxPerl is now hosted at http://pxperl.com

http://xrl.us/hn6i

  Parrot
   13! == BIG!
James Ghofulpo noticed that the example factorial program included with
Parrot gives incorrect results on 32 bit machines. Will Coleda offered
to clean the old PASM examples into shiny new PIR.

http://xrl.us/hn6j

   Properly Formatted POD
Unlike these summaries, Parrot's docs should be in properly formatted
POD. Joshua Hoblitt provided patches to fix them up and test them.
Bernhard Schmalhofer applied the patches.

http://xrl.us/hn6k

   Bad IMCC Error Message
Joshua Hoblitt opened an RT ticket for the error message imcc outputs
upon seeing a non-existent PMC. No takers yet.

http://xrl.us/hn6m

   Globbing Like Tcl
Amos Robinson opened am RT ticket requesting Tcl Syntax Globbing in PGE.

http://xrl.us/hn6n

   AMD64 Build Error
Joshua Hoblitt posted a build error involving posix_memalign on AMD64.
Warnock applies.

http://xrl.us/hn6o

   TODO: Call for B0rked
chromatic the capless put out a call for specific TODO items that Parrot
needed. Many people provided suggestions.

http://xrl.us/hn6p

   Documentation Keyword Tagging
Joshua Hoblitt opened a ticket requesting keyword tagging (via  ) .

http://xrl.us/hn6q

   leo-ctx5 on Win32
François Perrad solved a few link problems on Win32 for the leo-ctx5
branch. Jonathan Worthington applied it.

http://xrl.us/hn6r

   Support Different Compilers
Andy Dougherty provided a patch making it easier to compile parrot with
a different options then Perl 5. Bernhard Schmalhofer tentatively
applied it, but despite his fears nobody hollered.

http://xrl.us/hn6s

   Tcl Leo's Context
My that sounds dirty Regardless Leo and Will Coleda, with much help
from assorted others) managed to get all of the Tcl tests passing in the
leo-ctx5 branch.

http://xrl.us/hn6t

   4 Down 7204 to Go
Andy Dougherty posted a patch which eliminates 4 of Parrot 7208 compiler
warnings on SPARC. Warnock applies.

http://xrl.us/hn6u

   Circular Finalization Returns From the Dead
Nicholas Clark wondered how Parrot would handle PMC loops with
finalizers. Leo and I provided some ideas. Nothing is officially specced
yet.

http://xrl.us/hn6v

   make cleaner
Joshua Hoblitt provided a patch which makes make clean cleaner. Warnock
applies.

http://xrl.us/hn6w

   Pack Packfiles, Fix Fixups
Jonathan Worthington split the fixup and unpack functionality of
Packfiles so that he could later create a pbc_merge. Later he did that.

http://xrl.us/hn6x -- earlier

http://xrl.us/hn6y -- later

   Taking Exception to Leo's Tcl
Some days my head is just in the gutter. Will Coleda update Tcl to use
exceptions for TCL_RETURN, which apparently simplifies things.

http://xrl.us/hn6z

   Tcl on Windows
Jerry Gay noticed that Tcl was not building on Windows. Will Coleda
suspected that it got fixed; he was right.

http://xrl.us/hn62

   Implementing Splice
Nicholas Dronen decided to try and implement splice in *PMCArrays, after
suggestions from Leo and Jonathan Worthington. I have found these Arrays
to be good starting points in the past. Good luck, Nick.

http://xrl.us/hn63

   Optimize MinGW
François Perrad provided a patch making  Configure.pl --optimize  and
 Configure.pl --optimize=flags  work on MinGW. Jonathan Worthington
applied it.

http://xrl.us/hn64

  Perl 6 Language
   Object Model Pictures
Stevan Little posted the latest pictures of his MetaModel. Nathan Gray
thanked him and put out a quiet request for a diagram about roles.

http://xrl.us/hn65

   Coersive Context
Juerd posted his thoughts about using types as context specifiers and
coercers. Reaction seemed interested but limited.

http://xrl.us/hn66

   Perl 6 and Undefined Behavior
Nicholas Clark asked if Perl 6 was going to have any undefined behavior
or guarantee any sequence points. Larry does not want to have any
undefined behavior, but thinks that the reference implementations quirks
might be the definer for certain things. He did point 

Who is @Larry?

2005-08-25 Thread Matt Fowles
All~

I have a simple question.  Who comprises @Larry?  I am fairly sure
that I know a few people in it, but I am highly doubtful that I know
all of them.

Thanks,
Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-08-15 through 2005-08-22

2005-08-22 Thread Matt Fowles
Perl 6 Summary for 2005-08-15 through 2005-08-22
All~

Welcome to another monday summary, which hopefully provides some
evidence that mondays can get better. It always feels like writing
summaries is an uphill battle, perhaps I should switch to writing about
Perl 6 Language first and Perl 6 Compilers last. Then it will be
downhill... Maybe next time.

  Perl 6 Compilers
   More Random Pictures
Autrijus posted links to two more images he had created. This time the
images were not about pugs, but were just kind of cute. He also provided
an explanation of one when prompted.

http://xrl.us/g8bw

   Methods as Functions
Yiyi Hu noticed that a method of one argument could not be used as
function. Autrijus offered Yiyi a commit bit, but also kindly posted the
resolution to Perl 6 Language. Thanks Autrijus!

http://xrl.us/g8bx

   Methods on Code Blocks
Yiyi Hu discovered that  { a b c }.paris  would cause pugs to spin out
of control. Luke Palmer fixed it. Hopefully one of the two of them added
a test...

http://xrl.us/g8by

   Autrijus's Secret Sauce
Kris Bosland asked a few question I have been wondering about Autrijus
new graphics. Autrijus kindly provided the answers.

http://xrl.us/g8bz

   Documentation Attack
Kevin Tew has decided the best way for him to delurk is to update
documentation for Pugs. chromatic and Dudley Flanders both provided
support, information, and suggestions for him.

http://xrl.us/g8b2

   Neko VM
Nicolas Cannasse announed his release of a high level multi language VM
and wondered what others thought of creating a Perl 6 to to Neko
compiler. Autrijus and Leo provided a few corrections and comments.

http://xrl.us/g8b3

  Parrot
   The FAQ, She is GONE!
Amias Channer noticed that the faq on parrotcode.org was gone. While he
was warnocked, the faq appears to be back.

http://xrl.us/g8b4

   Platform Specific C Files
Stephen Hill wanted to know where to put a platform specific C file to
provide missing functionality. Leo provided a few friendly pointers.

http://xrl.us/g8b5

   TclArray.get
Amos Robinson provided an implementation of get for TclArray. Will
greatfully applied the patch.

http://xrl.us/g8b6

   ICU Being Passed Up
Adrian Lambeck wondered if icu was being passed up by Configure.pl.
Warnock applied. So Adrian took matter into his own hands by providing a
possible solution. Jerry Gay offered to take ownership of the problem if
no ICU enabled soul picked it up. No progress reports since then
though...

http://xrl.us/g8b7

http://xrl.us/g8b8

   Java on Parrot
Tim Bunce asked some preliminary questions about Java on Parrot. I
provide preliminary answers, and Nattfodd and Autrijus posted links to
related work. The important question of what it should be called
remained unraised. I vote for Jot.

http://xrl.us/g8b9

   gdbmhash.t Failures
Tim Bunce noticed that gdbmhash.t was failing with an unhelpful error
message. Andy Dougherty provided a patch that made the error message
slightly more helpful. Jerry Gay applied it.

http://xrl.us/g8ca

   BEGIN Blocks
Leo posted some thoughts and information about BEGIN blocks in Perl 6
and the @IMMEDIATE pragma in PIR, it involved creating constant PMCs and
freezing them into the bytecode. Then he made it work.

http://xrl.us/g8cb -- thoughts

http://xrl.us/g8cc -- actions

   Amber for Parrot
Citing chatter overheard on its intelligence networks Parrot raised the
terror alert to Amber, or maybe Roger Browne released version 0.2.3 of
his Eiffel-like scripting language, Amber. I can never keep track of
these things.

http://xrl.us/g8cd

   Tcl parray
Amos Robinson offered to provide an implementation of Tcl's parray
inluding tests. Will wanted to apply it, but the attachment did not come
through.

http://xrl.us/g8ce

   Parrot vs Neko
Nicolas Cannasse wondered why Parrot performed so poorly on the fib
benchmark. Leo explained that this benchmark stressed a currently
unoptimized portion of parrot (function calls). He also provided a few
pointers on which benchmarks parrot did well on.

http://xrl.us/g8cf

   Using PMCs from C
Klaas-Jan Stol's Lua compiler uses only PMCs. Thus he wanted to know how
to access these PMCs from NCI functions. Leo provided an answer, but
also suggest he looked at the new calling conventions which would do
auto-conversion in both directions.

http://xrl.us/g8cg

   PMC for Reference Counting
Nicholas Clark posted a relatively full analysis of how the DODs
registration system could be generalized for further reuse. He also
asked for ideas about names. I think the whole thing looks good and that
AddrRegistry is a good name. Perhaps that has too many vowels...
AddrRgstry and sometimes AddrRgstr 

Perl 6 Summary for 2005-08-02 through 2005-08-10

2005-08-10 Thread Matt Fowles
Perl 6 Summary for 2005-08-02 through 2005-08-10
All~

Welcome to another summary, brought to you by chinese food. The
attentive among you will notice that this summary is a day late, because
I did not feel like doing it yesterday. If only I could do that at
work...

  Perl 6 Compilers
   Pugs Argument Processing
Vadim Konovalov submitted a patch to pugs affecting @*ARGS processing.
Maybe it got applied, maybe not, Warnock applies.

http://xrl.us/g3op

   Type Inferencing
Autrijus wants to type push perl 6's type inferencing as far as it can
go (and maybe a little beyond). To this end he has been soliciting input
from all comers. It looks like he has put a lot of thought and research
into it. One day I expect to be thanking Autrijus for important (if
likely difficult to understand) compiler errors and warnings..

http://xrl.us/g3oq

   WWW::Kontent Release
Brent 'Dax' Royal-Gordon announced the release of WWW::Kontent 0.01: a
flexible web content management system written in Perl 6 and executable
with Pugs. It looks nifty to me... Maybe we need to fight Ruby on Rails
with Perl 6 on Pylons or something. That doesn't quite have the right
ring to it... there has to be something catch there somewhere.

http://xrl.us/g3or

   Array Interpolation
Phil Crow wondered why his arrays were not being interpolated in pugs.
Ingo Blechschmidt and Patrick explained that @foo does not
interpolate, but @foo[] does. I sense a frequently asked question
here...

http://xrl.us/g3os

   Pugs 6.2.9 Released
Autrijus announced the release of Pugs 6.2.9. It is full of nifty new
feaures including the ability to lay on hands!

http://xrl.us/g3ot

   Whitespace Before Parens
Andrew Shitov wondered why whitespace between function name and parens
was no longer allowed. Autrijus explained that it allows  print (1+2)*3
 to print 9 instead of 3. As someone who just last week explained the
pecularity of ruby printing 3 in the above situation to a complete
novice, I welcome the change.

http://xrl.us/g3ou

   Contain Model Pictures
Autrijus posted a few pretty pictures explaining the compiler and
container models. While the compiler model was readily understandable to
me, the container one wasn't. Fortunately, when prompted Autrijus
provided a great explanation to accompany the diagram.

http://xrl.us/g3ov -- thread

http://xrl.us/g3ow -- containers

http://xrl.us/g3ox -- compilation

   PxPerl 5.8.7-4
Upon discovering that Pugs released a new version, Grégoire Péan
released a new version of PxPerl that includes the new Pugs. I (and many
others) thank Grégoire for lowering the entry bar for Perl 6 hacking on
windows.

http://xrl.us/g3oy

   Hosting Lexical Declarations
Declaring lexicals mid block confuses things, expecially declaring them
mid statement as in  $x = $x + my $x if $x; . Autrijus proposed
hoisting declarations of lexicals to the top of the block.
Unfortunately, this can make CALLER:: do funny things. Thus, he suggests
outlawing it. Larry agreed.

http://xrl.us/g3oz

  Parrot
   export LD_LIBRARY_PATH
Bdonlan noticed that parrot's test suite was not setting LD_LIBRARY_PATH
which makes tests fail. Leo pointed out that most users manually set
their LD_LIBRARY_PATH as parrot often needs this, but he agreed that the
tests should do it just in case.

http://xrl.us/g3o2

   Improved Argument Processing for ops2c.pl
Tom submitted a patch which improves the command line argument
processing powers of ops2c.pl. Warnock applies.

http://xrl.us/g3o3

   ANSI Escape Codes in Parrot
Klaas-Jan Stol was having trouble putting special characters like ANSI
clear screen and ¥ into strings. Nick pointed out that he need to be
careful with encodings and escapes. In parrot \O is an octal escape,
in Lua it is apparently not.

http://xrl.us/g3o4

   Parrot 0.2.3
Leo announced the release of Parrot 0.2.3 Serenity, which reminds me,
Firefly is coming back soon!! I can't wait! Oddly google seems to have
swallowed his release notice but not his warnings...

http://xrl.us/g3o5

   Strange Filename Based Bug
Michal Wallace found a bug that would disappear if the file was renamed.
Leo, with the help of valgrind, provided Michal with a pointer. Michal
used that to find a likely culprit and provide a patch, which Leo then
refined.

http://xrl.us/g3o6

   GDBM Hash on MinGW
François Perrad provided a patch fixing gdbmhash on MinGW. Bernhard
Schmalhofer applied it.

http://xrl.us/g3o7

   PyString Link Problem
François Perrad also fixed a link problem with pystring.o. Jonathan
Worthington applied that patch.

http://xrl.us/g3o8

   Filling a Large Data Structure
Amir Karger wanted to know how to fill a large data structure in PIR
other than 

Re: Elimination of Item|Pair and Any|Junction

2005-07-27 Thread Matt Fowles
Larry~

On 7/27/05, Larry Wall [EMAIL PROTECTED] wrote:
 On Wed, Jul 27, 2005 at 08:01:25PM +0800, Autrijus Tang wrote:
 : On Fri, Jul 22, 2005 at 03:40:34PM -0700, Larry Wall wrote:
 :  I dunno.  I'm inclined to say that it should default to Item|Pair, and
 :  let people say Any explicitly if they really want to suppress 
 autothreading.
 :  Otherwise conditionals and switches are going to behave oddly in the
 :  presence of accidental junctions.
 :
 : Okay.  However, in that view, I suspect many builtins will be defined on
 : Item|Pair, for example perl, clone, id, as well as various coercion
 : builtins.  Considering that builtins are Code objects but not Routines,
 : maybe they, too, should default to Item|Pair -- except the ones that
 : operates on junctions, of course.
 :
 : This leads me to think that maybe users don't really need to write down
 : the two junctive types, under the hierarchy below:
 :
 : - Object
 :   - Any
 :   - Item
 :   - ...pretty much everything
 :   - Pair
 :   - Junction
 : - num, int, str...
 :
 : Since junctions are still boxed objects, having the Object type to
 : effectively mean Any|Junction seems natural (everything is an object).
 :
 : Also, since Any unifies Item and Pair, the rule for implicit types of
 : argument becomes:
 :
 : sub ($x) { }# Item $x
 : - $x { } # Any $x- i.e. Item|Pair but not Junction
 : { $^x }   # Any $x- i.e. Item|Pair but not Junction
 :
 : Does this sound sane?
 
 Yes.  The only thing I don't like about it is that any() isn't an Any.
 Maybe we should rename Any to Atom.  Then maybe swap Item with Atom,
 since in colloquial English you can say that pair of people are
 an item.  That would give us:
 
 - Object
 - Item
 - Atom
 - ...pretty much everything
 - Pair
 - Junction
 - num, int, str...
 
 which nicely distinguishes Item from Junction.  On the other hand,
 I actually kinda dislike the word Atom for common use (too much
 exposure to Lisp, I guess), so maybe we just want
 
 - Object
 - Mumble
 - Item
 - ...pretty much everything
 - Pair
 - Junction
 - num, int, str...
 
 where Mumble is something like Atom/NonJunction/Unit/Scalar/[your ad here].

While we are talking about words... I dislike having Object encompass
Juction.  I get the feeling that some people will write functions that
take Objects and not expect Junctions to slip in.  I suppose that
could be one of those hurdles that developers just have to jump, but
it doesn't feel like it should be.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-07-19 through 2005-07-26

2005-07-26 Thread Matt Fowles
 plugged a few leaks caused by string_to_cstring.
Leo applied the patch.

http://xrl.us/gv67

   Deleting Globals/Lexicals
Matt Diephouse noted that there was no way to delete globals or
lexicals. Leo posted one (untested) way to do it.

http://xrl.us/gv68

   Generating Win32 Executables
Jonathan Worthington laid some ground work for generating executables on
windows. Leo applied the patch.

http://xrl.us/gv69

   Library Loading on Win32
Jonathan Worthington beefed up the library searching logic in Parrot to
be a little more Windowsy. Leo applied the patch.

http://xrl.us/gv7a

   PBC Merge Utility
Leo posted a request for a utility that could merge several pbc files
into one.

http://xrl.us/gv7b

   Calling Super Methods
Matt Diephouse noticed that there was no way to call the method from a
super class. Leo pointed out a way to do it by accessing the slots of
the parent directly.

http://xrl.us/gv7c

   Cmd Buffer Reallocation
Greg Bacon fixed a bug in the reallocation of the cmd buffer on Win32.
Jonathan Worthington applied the patch.

http://xrl.us/gv7d

   Data::Dump(PGE)
Will Coleda added a TODO for making PGE's match objects compatible with
Data::Dumper.

http://xrl.us/gv7e

   does Hash
Will Coleda wants Data::Dumper to check if an object does Hash or Array
and dump it thusly if no default dump is implemented.

http://xrl.us/gv7f

   rx.ops's future
Will Coleda wondered what the future of the rx ops. Brent 'Dax'
Royal-Gordon, who wrote them, recons they are not long for this work. He
reckonned that the intstacks and the bitmap handling code might be worth
saving.

http://xrl.us/gv7g

   Debugger - List breakpoints
Will Coleda noticed that the debugger was not quite compatible with
perl's. Leo replied that the debuggers whole command loop was a mess
that required a turn of the crank.

http://xrl.us/gv7h

   \u escape issues
Will Coleda opened a ticket for some unicode escape issues. Leo asked
for a test case.

http://xrl.us/gv7i

   string - int conversions
Matt Diephouse noticed that there was no opcode Octal and Hex
conversions. Leo suggested adding one of the form  set Ix, Sy, Ibase #
Ibase = 2..36 .

http://xrl.us/gv7j

   Make  make languages  Failures Nonfatal
Bernhard Schmalhofer suggested that  make languages  should not give
up after the first failure, but should instead build the remaining
languages.

http://xrl.us/gv7k

   Dynclasses on Windows
Nick Glencross and Jonathan Worthington discussed how to make dynclasses
build on windows.

http://xrl.us/gv7m

   Resizable*Array Allocation
Matt Fowles submitted a patch making all the various Resizeable*Array
pmcs share their allocation strategy. Bernhard Schmalhofer applied the
patch.

http://xrl.us/gv7n

   MMD Roundup - Take 2
Nicholas Clark attempted to dewarnock a suggested change by Leo.
Unfortunately, his thoughts on the matter were this is really a call
for the designer to make, isn't it?. Leo suggested starting a WARNOCKED
file for these things. Will countered that adding it to the DESIGN
section in docs/ROADMAP, so Chip needs only look in one place.

http://xrl.us/gv7o

   Parrot Failures on OS X
Nicholas Clark forwards some failures on OS X to the Parrot list (from
the Ponie one).

http://xrl.us/gv7p

   Parrot Needs stderr
Nicholas Clark noticed that running parrot with a closed stderr, makes
parrot unhappy.

http://xrl.us/gv7q

   GMC
Alexandre Buisse and many others have been talking about his Generation
Mark and Compact Garbage Collector. Plans are rapidly taking shape.

http://xrl.us/gv7r

  Perl 6 Language
   User Defined Context Behavior
Ingo Blechschmidt wanted to know how to make is own custom class that
would act specially in list context. Thomas Sandlaß suggested
overloading infix:=. Sadly, his answer doesn't seem to have made it
to google groups.

http://xrl.us/gv7s

   Hash Creation with Duplicate Keys
Ingo Blechschmidt noticed that in Perl 5 hash definitions the right most
duplicate one, whereas the left most wins in Perl 6. He was wondering if
this was a bug or not. Luke explained that it was that way for named
variable bindings. Larry figured it should be that way ONLY for named
variable binding. If Pugs has not done it yet, some brave soul could
probably add tests and find it implemented before they had finished
committing.

http://xrl.us/gv7t

   Tail Calls, Methods, and Currying
Brent 'Dax' Royal-Gordon wondered about Tail calls, noting that the
current method  $obj.can('meth').goto($obj, [EMAIL PROTECTED]);  was 
kinda ugly.
Larry mused that  return g()  should go ahead and tail call. If the
code does not want a tailcall there then it should avoid it manually.

http://xrl.us

Perl 6 Summary for 2005-07-05 through 2005-07-12

2005-07-12 Thread Matt Fowles
Perl 6 Summary for 2005-07-05 through 2005-07-12
All~

Welcome to another summary from the frog house. A house so green it can
be seen from outerspace (according to google earth).

  Perl 6 Compiler
   Building Pugs Workaround
Sam Vilain posted a useful work around to the error error: field
`_crypt_struct' has incomplete type which occurs on some systems.
Fortunately, Salvador Ortiz Garcia found a fix.

http://xrl.us/gqjy

http://xrl.us/gqjz

   Pugs, Pirate. Pirate, Pugs.
Autrijus began plotting with the Pirate folks. Thoughts include unifying
PIL and PAST or possibly retargeting PIL to PAST. Perhaps the result
should be a more nautical dog... maybe schipperke.

http://xrl.us/gqj2

   Implicit Invocants and Pain
Larry (as will be summarized later) ruled that  ./method  was gone. he
further ruled that  .method  would pitch fits at either compile or run
time if  $_ =:= $?SELF  was false. Autrijus found this quite difficult
to implement. Talk continues, my instincts tell me that this too will
pass, although Larry assures us that it is absolutely permanent for at
least a week.

http://xrl.us/gqj3

  Parrot
   Key Question
Klass-Jan Stol found that using a assigning a floating point value to a
key and then using it make parrot segfault. Warnock applies.

http://xrl.us/gqj4

   Parrot Copyrights
Allison Randal hinted that The Perl Foundation has almost finished
hammering out some legal stuff and there will soon be sweeping changes
throughout the repository addressing copyright issues.

http://xrl.us/gqj5

   Character Classes in Globs
Will Coleda noted that Tcl would pass more tests if PGE supported
characters classes in globs. Patrick, unable to resist the siren call of
passing tests, implemented it.

http://xrl.us/gqj6

   Amber for Parrot
Roger Browne announced that he had succeed in extracting viable DNA from
a Parrot encased in amber since the Jurasic age. Either that or he
release Amber version 0.2.2... not sure which.

http://xrl.us/gqj7

   Leo's Branch
Leo has created a branch in SVN (branches/leo-ctx5) of his work
implementing the new calling conventions. This led to some discussion of
how to deal with optional arguments.

http://xrl.us/gqj8

http://xrl.us/gqj9

   Leo's Branch Meets mod_parrot
Jeff Horwitz posted some observations and troubles he was having with
Leo's branch of new calling conventions. Leo warned that the branch was
still young, but would gladly take test cases.

http://xrl.us/gqka

   Leo's Branch Meets PGE
After the initial discussion of optional parameter, Patrick updated the
leo_ctx5 branch of PGE to the new calling conventions. All tests pass.

http://xrl.us/gqkb

   Get onto the Bus
Matt Diephouse found a Bus Error when running
languages/tcl/examples/bench.tcl. Warnock applies.

http://xrl.us/gqkc

   MinGW Patch Resurrection
François Perrad resurected a patch from mid June with a set of action
items. Warnock applies.

http://xrl.us/gqkd

   Scared Parrots Like Scheme
Joh Lenz posted an announcement that he had an alpha version of Chicken
(a Scheme to C compiler) backending to Parrot. Leo provided answers to
some of his questions.

http://xrl.us/gqke

   Bytecode vs PMCs
Matt Diephouse posted a list of questions about the place of PMCs. Some
of the core tradeoffs include: maintability, portability, optimization,
duplicate implementations, and security.

http://xrl.us/gqkf

   make svnclean
Leo pointed out that make svnclean got removed, but that he found it
useful. Chip suggested that it be renamed make svnclobber, as it does
more than just clean.

http://xrl.us/gqkg

   pmc2c.pl Bug
Nicholas Clark found a bug in the shortcut to avoid writing a pmc dump
file. Warnock applies.

http://xrl.us/gqkh

   Define cache
Nicholas Clark suggested that it was probably not wise to #define
cache. So they removed it.

http://xrl.us/gqki

   Parrots Getting Smarter
Leo pointed out that at least one parrot understood the concept of zero,
putting it some distance ahead of romans when it comes to math. Once the
Parrots start to grow opposable thumbs, I will welcome our new Parrot
overlords.

http://xrl.us/gqkj

   Leo's Branch Meets Exceptions
Leo posted two suggestions for how the new calling conventions could
interact with Exceptions. Autrijus liked the one that unifies exception
handlers with the rest of calls and returns.

http://xrl.us/gqkk

   Control Flow Graph Bugs
Curtis Rawls noted what he thought might be a bug in the
compute_dominators function. Leo confirmed that it was likely a bug.
Later he posted a note saying he was working on a new implementation for
some of the CFG algorithms. He asked for a hand, but Warnock applied.
Actually, I think I have 

Re: method calls on $self

2005-07-11 Thread Matt Fowles
Larry~

On 7/11/05, Larry Wall [EMAIL PROTECTED] wrote:
 On Mon, Jul 11, 2005 at 11:14:18AM +0200, Michele Dondi wrote:
 : Hmmm... I am one of those who likes ./ more, instead. I mean, I _really_
 : like it! Thus, how about making '/' less meaningless, i.e. more
 : meaningful, in more general situations?!?
 
 Um, do you have a specific proposal?  Like maybe / can be applied as a
 metaoperator to any binary operator to make it into a unary operator
 with the left side implicitly $?SELF, or some such?  Hmm...
 
 if ==/ 3# if $?SELF == 3
 
 could even extend it to postfix ops:
 
 ++/;# $?SELF++
 
 However, it has several problems.  First, . isn't really a binary
 operator, but the prefix of a postfix operator.  Second, the / is
 potentially ambiguous with a following pattern unless we require
 space before termish /.  Third, the / is psychologically in the wrong
 place to stand in for something in front.  Or to turn these on their
 head, we've just made three good arguments for something like:
 
 if o == 3
 
 and
 
 o++;
 
 I'm afraid that, while ./ is cute and visually distinctive, I find
 I'm getting tired of its idiosyncracies.  You shouldn't go out and
 marry someone just because they're cute and visually distinctive.
 Hooray for long engagements, and occasional disengagements.

Yay!  I guess I will take this moment to resuggest @^ as a list of
invocants and $^ =:= @^[0].  I like how the ^ kinda points you the
right way, also visually distinctive and doesn't get in the way of
$_...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-Stan Kelly-Bootle, The Devil's DP Dictionary


Perl 6 Summary for 2005-06-21 through 2005-06-28

2005-06-28 Thread Matt Fowles
Perl 6 Summary for 2005-06-21 through 2005-06-28
All~

Long time no see... err, write... uh, read... um... this. Yeah, long
time no this. As Piers hinted, two weeks ago I moved. Moving sucks. For
those of you who care, I am still in Cambridge, for those of you who
care more, I think you misunderstand the summarizer/summary reader
relationship. Essentially it revolves around summaries, and the summary
of my move is Cambridge to Cambridge.

As Piers noted last week, this is a low volume high action week. In no
small part do to the hack-a-thons. Last week's was in Austria, this
week's is near Toronto. Perhaps some nice soul who was actually at these
hack-a-thons will summarize it when it is over.

  Perl 6 Compiler
Patrick announced that PGE now supports grammars and more built-in
rules. He even offered to field requests for built-in rules (although he
would prefer patches).

http://xrl.us/gkev

   Caller's Context
Gerd Pokorra wanted to know how to determine if his sub is called in
void context. He conjectured that want might fill his wants. No response
yet.

http://xrl.us/gkew

   Self Hosting Goals
Millsa Erlas explained that one good reason for Perl6 to be self hosting
is that it would allow the people who love it most (Perl hackers) to
hack on it. The theory being that low level languages like C
unnecessarily narrow the field of contributors (especially those that
only know perl). Some concerns were expressed over confusion about the
language Ponie should be written in. No one disputes this... C.

http://xrl.us/gkex

  Parrot
   Indexing Hashtables
Klaas-Jan Stol asked for a clue bat with respect to indexing hash tables
in PIR. Joshua Juran and Leo each took a swing.

http://xrl.us/gkey

   Parrot Loses with Fedora Core 4
Patrick reported that Fedora Core 4 and Parrot don't get along well. Leo
suggested a possible solution. No response from Patrick.

http://xrl.us/gkez

   Default Method Resolution Order
Roger Browne wondered what the default MRO order was. Leo provided the
answer: left-to-right, depth-first, discard all but the last occurrence
of duplicates, divine intervention.

http://xrl.us/gke2

   Win32 Tests Failing
Craig the Last-Nameless-One posted a list of failing tests and problems
on Windows. Leo provided a few answers.

http://xrl.us/gke3

   Method Inheritance Needs Perl Loving
Leo announced a perl job for the interested: method inheritance in the
PMC compiler. This naturally led to discussion of numerical hierarchies.
I was a little disappointed the quaternions got mentioned, but
Hamiltonian and Surreal Numbers were left out. Honestly, where are our
priorities.

http://xrl.us/gke4

   Tracing and Debugging Pain
Matt Diephouse posted a general description of the problems he was
having with tracing, debugging, and GC. Warnock might apply in a day or
two.

http://xrl.us/gke5

   Segmented Context and Register Memory
Chip posted a partial reply to Leo's context and register overhaul
patch. Andy Dougherty responded to some of Chip's finer points. If you
are interested in the nuances of C's pointer pain, this thread makes an
interesting read.

http://xrl.us/gke6

   Improving Parrot's Test Framework
chromatic wants to improve parrots test framework by stealing ideas from
Test::Class. He wants to know if anyone else is interested in this.

http://xrl.us/gke7

   setattribute Fails with Multi-level Inheritance
Roger Browne opened a ticket describing an error with setattribute when
several layers of inheritance are used.

http://xrl.us/gke8

   Register Allocation Bug
Leo opened a ticket for a problem with improper control flow tracking.
Bill Coffman wondered whether the new register design had been
implemented yet.

http://xrl.us/gke9

   Pass by Value PMCs
Klaas-Jan Stol mused that the new calling conventions could be leveraged
to allow passing PMCs by value.

http://xrl.us/gkfa

   Parrot Fall Down Go Boom
Matt Fowles reported a segfaulting parrot that passes its tests. Sadly,
no one solved his problem in the 4 hours between his posting it and
writing the summary.

http://xrl.us/gkfb

  Perl 6 Language
   You Know That, But You Go On
As Piers noted, arguments about  ./method  vs  .method  continue.
Like Piers, I don't like ./. I guess I was the only person who did
like $^ as the invocant. Ah well, I guess I will just go on
summarizing...

http://xrl.us/gkfc

   Binding Functions
Piers wanted to use a Ruby idiom involving rebinding functions. Damian
told him that he could, but also pointed him to  wrap .

http://xrl.us/gkfd

   OO Questions
BÁRTHÁZI András posted a question about method calls in Perl 6. Juerd
and Piers provided answers.

http://xrl.us/gkfe

   Autoload

Re: return() in pointy blocks

2005-06-07 Thread Matt Fowles
Ingo~

On 6/7/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote:
 Hi,
 
   sub foo (Code $code) {
 my $return_to_caller = - $ret { return $ret };
 
 $code($return_to_caller);
 return 23;
   }
 
   sub bar (Code $return) { $return(42) }
 
   say foo bar; # 42 or 23?
 
 I think it should output 42, as the return() in the pointy
 block $return_to_caller affects foo, not the pointy block.
 To leave a pointy block, one would have to use leave(), right?

I don't like this because the function bar is getting oddly
prematurely halted.  If bar had read

sub bar(Code $moo) {
$moo(13);
save_the_world();
}

it would not have gotten to save the world.  One might argue that $moo
could throw an exception, but bar has a way to catch that.

It seems to me that what you are asking for has the potential to cause
some vary large unexpected jumps down the stack.  That said, I would
want the pointy subs in for loops to ask this way, so maybe this is
just one of those things that one has to be ware of.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: return() in pointy blocks

2005-06-07 Thread Matt Fowles
All~

On 6/7/05, Luke Palmer [EMAIL PROTECTED] wrote:
 On 6/7/05, Matt Fowles [EMAIL PROTECTED] wrote:
  On 6/7/05, Ingo Blechschmidt [EMAIL PROTECTED] wrote:
   Hi,
  
 sub foo (Code $code) {
   my $return_to_caller = - $ret { return $ret };
  
   $code($return_to_caller);
   return 23;
 }
  
 sub bar (Code $return) { $return(42) }
  
 say foo bar; # 42 or 23?
  
   I think it should output 42, as the return() in the pointy
   block $return_to_caller affects foo, not the pointy block.
   To leave a pointy block, one would have to use leave(), right?
 
  I don't like this because the function bar is getting oddly
  prematurely halted.
 
 Then let's put it this way:
 
sub foo () {
for 0..10 {
when 6 { return 42 }
}
return 26;
}
 
 And if that didn't do it, then let's write it equivalently as:
 
sub foo () {
map(- $_ { return 42 }, 0..10);
return 26;
}
 
 Do you see why the return binds to the sub rather than the pointy now?
 
 Also, we're going to be avoiding the return continuation problem with:
 
sub foo() {
return - { return 42 };
}
 
my $code = foo();
say Boo!;
$code();
 
 Says not:
 
Boo
Boo
Boo
...
 
 But:
 
Boo
Can't return from subroutine that already returned at eval line 2.

You are right.  I yield... It just made by brain hurt, now that it is
somewhat fortified with caffeine I see.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


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

2005-05-31 Thread Matt Fowles
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.

http://xrl.us/f95k

   Pugs link issues on Debian Sid
BÁRTHÁZI András 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.

http://xrl.us/f95m

   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.

http://xrl.us/f95n

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

http://xrl.us/f95o

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

http://xrl.us/f95p

   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.

http://xrl.us/f95q

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

http://xrl.us/f95s

   Pugs makefile issue
Grégoire Péan 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.

http://xrl.us/f95t

   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 .

http://xrl.us/f95u

   PxPerl 5.8.6.2 with Pugs 6.2.5 and Parrot 0.2.0
Grégoire Péan 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.

http://xrl.us/f95v

   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.

http://xrl.us/f95w

   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.

http://xrl.us/f95x

   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.

http://xrl.us/f95y

  Parrot
   thr_windows.h with MinGW
François Perrad provided a patch fixing two compilation problems in
thr_windows.h. Warnock applies.

http://xrl.us/f95z

   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...

http://xrl.us/f952

   Problems with Perl 5.6.1
François 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.

http://xrl.us/f953

   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.

http://xrl.us/f954

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

http://xrl.us/f955

   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.

http://xrl.us/f956

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

http://xrl.us/f957

   

reduce metaoperator on an empty list

2005-05-18 Thread Matt Fowles
All~

What does the reduce metaoperator do with an empty list?

my @a;
[+] @a; # 0? exception?
[*] @a; # 1? exception?
[] @a; # false?
[||] @a; # false?
[] @a; # true?

Also if it magically supplies some correct like the above, how does it
know what that value is?

Thanks,
Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2005-05-03 through 2005-05-17

2005-05-18 Thread Matt Fowles
Perl 6 Summary for 2005-05-03 through 2005-05-17
All~

Welcome ot another fortnight's summary. Wouldn't it just figure that I
can't think of anything sufficiently non-sequiterish to amuse myself.
Perhaps I need a running gag like Leon Brocard or chromatic's
cummingseque capitalization Maybe I should start one and not tell
you. That could be fun.

Sorry for spelling errors, gmails spell checker is busted for the moment.

  Perl 6 Compiler
   pugs commit emails
If you have ever been foolish enough to want to get an email for every
commit in Pugs, Sam Vilain created a way to help you sip from the
firehose. Have fun.

http://xrl.us/f5q7

   given when nested
Luke Palmer had a question about how nested when statements in a given
block should act. His intuition disagreed with Pugs, but most others
supported Pugs.

http://xrl.us/f5q8

   I don't need to walk around in circles
Autrijus has made Pugs into a registered compiler for Parrot. Since Pugs
already allowed you to embed parrot code (well pir anyway) directly into
perl 6, this allows you to embed the perl 6 in your pir in your perl 6.
Now the possibilities are endless, at least until you blow your mental
stack. Those of you with tail call optimization in your mental stack may
simply go into an infinite loop if you prefer.

http://xrl.us/f5q9

   xor on lists
Trewth Seeker expressed his opinion about the proper definition of xor
quite strongly. Unfortunately, his opinion is at odds with established
mathematics, as Mark Biggar pointed out to him.

http://xrl.us/f5ra

   PGE features update
Patrick provided an update on the state of the Perl Grammar Engine. It
has many nifty new features.

http://xrl.us/f5rb

   Pugs on Cygwin
Rob Kinyon and Gaal Yahas worked to improve Pugs support for Cygwin.
Unfortunately the thread winds down with an unanswered question,
fortunately Stevan clued me in on IRC that things are working just yet.

http://xrl.us/f5rc

   Pugs gets some objects and some rules
Autrijus announced that Pugs now has basic support for Objects and
Rules. Sometimes he scares me. Usually he just makes me really want to
learn haskell though.

http://xrl.us/f5rd

   regression test
Miroslav Silovic provided a regression test for hyper ops. Some people
just don't appreciate the fun of regressing.

http://xrl.us/f5re

   basic test for classes
Stevan Little provided a patch for a simple object test. Autrijus
applied it. Odd, cause I am pretty sure that Stevan has the commit
bit...

http://xrl.us/f5rf

   torturing PGE
Juerd provided a link to a big rule that could segfault PGE. Kind
reminds me of a homework assignment I had to create a regular expression
which matched all strings of numbers that did not contain any repeated
digits. Easy in perl, but hard in math. I think the resultant regex was
somewhere around 17 MB.

http://xrl.us/f5rg

   Pugs 6.2.3 with Live CD
Autrijus released Pugs 6.2.3 which contains 10% more awesome then Pugs
6.2.2. You should check it out on the live CD that Ingo Blechschmidt
released.

http://xrl.us/f5rh -- release anouncement

http://xrl.us/f5ri -- live CD

   PXPerl meets Pugs
Grégoire Péan announced that he has added Pugs binaries to his windows
distribution of Perl. Pretty cool. Autrijus innocently asked him to take
on the slightly larger task of producing binaries of Parrot too, so that
Pugs could be at its more powerful.

http://xrl.us/f5rj

  Parrot
Wow did you see how I mentioned Parrot before going into. That was like
an awesome transition. My high school english teachers would be so
proud...

   character classes
Patrick wants character class opcodes of the form find first and find
first not. Leo pointed him to some hysterical raisins who might help.

http://xrl.us/f5rk

   PGE on MinGW
François Perrad fixed a problem with building PGE on MinGW. Patrick
applied the patch.

http://xrl.us/f5rm

   PIO_fdopen return value
Luke Palmer both intoduced me to the wonderfully cute phrase untodid
and provided a patch making PIO_fdopen return NULL when give bad flags.
Leo applied the patch, but Melvin Smith warned that this might be a bad
idea. Silence after that.

http://xrl.us/f5rn

   embedding initialization
Jeff Horwitz was having trouble embedding PIR into C. Leo provided some
pointers. Jeff was happy.

http://xrl.us/f5ro

   Test::Builder updates
Previously, Michael G Schwern announced an update to Test::Builder.
chromatic asked if it was worth the upgrade. Michael replied probably,
but I don't think anyone has acted on it.

http://xrl.us/f5rp

   miniparrot
Robert Spier created a miniparrot at Bernhard Schmalhofer request. This
miniparrot does not replace our make system, but it does make our
  

Re: ^method ?

2005-05-16 Thread Matt Fowles
All~

I feel like people have lost track of one of the initial arguments for
having C .method == $?SELF.method .  Currently, all of

$.foo
@.foo
%.foo

and their ilk operate on the current invocant, $?SELF.  This leads
naturally toward .foo also refering to $?SELF.  But as we all know
the  is optional on function calls...

This symmetry and regularity seems like a powerful thing to me and I
would not want to lose it...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


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

2005-05-11 Thread Matt Fowles
All~

On 5/11/05, Luke Palmer [EMAIL PROTECTED] wrote:
 On 5/11/05, Autrijus Tang [EMAIL PROTECTED] wrote:
  In a somewhat related topic:
 
  pugs (1,(2,3),4)[2]
  4
 
  Because the invocant to .[] assumes a Singular context.
 
 Right, but the *inside* of the invocant is still a list, so it's in
 list context.  I think that line should return 3.

I am confused as to why exactly this is the case.  Are you saying that
nested lists like this flatten?  That would certainly catch me off
guard.  Would you mind explaining that to me a little more?

Thanks,
Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Clarification of behavior for .isa() on built-in types

2005-05-07 Thread Matt Fowles
Stevan~

On 5/7/05, Stevan Little [EMAIL PROTECTED] wrote:
 But can it also be a Junction? :
 $fido.isa(Dog | Cat)# true if $fido.isa(Dog) or $fido.isa(Cat)
 $fido.isa(Dog  Beagle) # true if $fide.isa(Dog) and $fido.isa(Beagle)
 
 If it can be a Junction, it makes me wonder if maybe what is happening
 behind the scenes is not some variant of the smart-match (~~). In
 that case, then would something like this DWIM (ignoring the
 questionable sanity of actually doing it for a momemnt)

This can be accomplished by simply using the autothreading semantics
of junctions.  The isa() call will be made repeatedly with the
different arguments and then the junction will know how to combine
that into a single boolean result.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2004-04-26 through 2005-05-03

2005-05-03 Thread Matt Fowles
Perl 6 Summary for 2004-04-26 through 2005-05-03
All~

Welcome to another weeks summary. This week I shall endeavor not to
accidentally delete my summary or destroy the world. So here we go with
p6c.

  Perl 6 Compilers
   implicit $_ on for loops
Kiran Kumar found a bug in pugs involving  for  loops which use $_ but
don't iterate over it. Aaron Sherman and Luke Palmer confirmed the bug.
No word as to its final status, but given the rate of development of
pugs...

http://xrl.us/fyof

   Pugs Darcs trouble
Glenn Ehrlich noticed that pugs's darcs repository wasn't getting
updated. Sam Vilain explained that occasionally a daemon needed to be
kicked.

http://xrl.us/fyog

   Memory Game v0.2
BÁRTHÁZI András announced the release of the latest version of Memory.
He also put out a call for 85x75 pixel photos for the next version.

http://xrl.us/fyoh

   Haddock for Pugs
Stuart Cook decided that the easiest way for him to understand Pugs
internals was to provide better documentation. To that end he started
working with haddock to automatically generate cross linked
documentation for pugs. He even met with some success.

http://xrl.us/fyoi

/haskell.org/haddock/ in http:

is export  trait
Garrett Rooney wondered why the  is export  trait appeared to do
nothing in Pugs. Stevan Little explained that it was just a place holder
which, while it parses, does nothing semantically yet.

http://xrl.us/fyoj

   Pugs 6.2.2
Autrijus proudly announced the release of Pugs 6.2.2. It features a
great many changes. High on that list is a great number of speed ups and
thread safe, dead lock free internal storage.

http://xrl.us/fyok

   Pugs on Cygwin
Rob Kinyon noticed that Pugs was having trouble on Cygwin. He has made
some headway rectifying the situation, although work remains.

http://xrl.us/fyom

   Pugs TODO model
Stevan has put some more thought into the TODO model for Pugs. His
latest suggestion, annotating todo tests with a flag indicating why they
are not passing, seems a little less hackish then the last one and
received general support.

http://xrl.us/fyon

   Parrot hiding inside Pugs
Autrijus wanted to embed the newly released PGE. PGE is written in PIR
which runs on Parrot. So, Autrijus decided to embed Parrot into Pugs. He
also posted an interesting link to JHC as a possible bootstrap solution.

http://xrl.us/fyoo

/repetae.net/john/computer/jhc/jhc.html in http:

   new PGE released
Maybe I should have mentioned this first... Patrick R. Michaud released
a new version of the Parrot Grammar Engine. It is written entirely in
PIR and generates PIR code. It has many features but not enough tests...
cough hint /cough

http://xrl.us/fyop

  Parrot
   Monthly Release?
Jared Rhine wondered the monthly releases included April. Chip announced
that April's release would be slushier then most, but would start on the
fourth.

http://xrl.us/fyoq

http://xrl.us/fyor

   t/op/debuginfo.t failure
François Perrad noticed a failure in with debuginfo. Leo pointed out
that it was an issue of flushing output handles. Francois provided a
patch (well actually two). Warnock applies to the second.

http://xrl.us/fyos

   ParTcl Happy?
Will Coleda thought that ParTcl's GC bugs were finally fixed. Leo burst
his bubble. Apparently these GC bugs can disappear and reappear
according to sun spot activity.

http://xrl.us/fyot

   segfault in load_bytecode
Nick Glencross submitted a patch fixing a segfault in load_bytecode.
Jens pointed out that it should use real_exception instead of
internal_exception. chromatic offered to write the test. No official
committed message though...

http://xrl.us/fyou

   large PackFile tinker
Leo implemented a change in the interpreter PackFile structure which has
been under discussion for a long time. Unfortunately, it has the
potential to break a lot of JIT stuff. Tests and fixes would be greatly
appreciated.

http://xrl.us/fyov

   PMC inheritance issue
Nicholas Clark was having some trouble with his Perl5 PMCs. Later he
posted a mea culpa email, but Leo provided some useful pointers
anyway.

http://xrl.us/fyow

   RT cleanup
Bernhard Schmalhofer cleaned out an old ticket from RT.

http://xrl.us/fyox

   RFC assign Px, Py
Some time ago, Leo requested comments on the semantics of assign. Brent
'Dax' Royal-Gordon tried to de-Warnock the thread with his support. He
also suggested a clone operator.

http://xrl.us/fyoy

   NULL in real_exception
Nicholas Clark was getting bitten by a NULL pointer deref in
real_exception. Leo pointed him toward the correct approach.

http://xrl.us/fyoz

   unary operator overhaul
Having finished overhauling the infix operators, Leo set to work

Re: Open and pipe

2005-05-02 Thread Matt Fowles
All~

On 5/2/05, Uri Guttman [EMAIL PROTECTED] wrote:
  LW == Larry Wall [EMAIL PROTECTED] writes:
 
   LW  multi sub opensocket (
   LW   Str +$mode = 'rw',
   LW   Str +$encoding = 'auto',
   LW   Str [EMAIL PROTECTED]) returns IO;
 
 and how will that support async (non-blocking) connects? or listen
 sockets? i assume this is sorta the replacement for IO::Socket which is
 a pure key/value api (except for the shortcut single arg host:port
 which is nice to also support). for async you need to provide a callback
 in the signature (beyond all the other socket args), an optional timeout
 (with its own callback). the callbacks could be defaulted to subs in the
 current module/namespace but the coder may also want an OO callback
 which needs an object and method. another little optional argument is a
 private data field. sure an object callback could handle on a per object
 basis. but what if one object wanted to manage multiple async socket
 connections? each one needs to be identified in the callbacks which is
 what the private data is for. it is passed as an arg to the callback
 sub/method.

Currying obviates the need for everything but a sub callback.  If you
want a callback to a method, curry the object.  If you want private
data, curry the data.  After you are done currying you will have a
simple sub to pass in as the callback, the peasants rejoice, and
libraries will have a simpler interface.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Open and pipe

2005-05-02 Thread Matt Fowles
All~

On 5/3/05, Uri Guttman [EMAIL PROTECTED] wrote:
  MF == Matt Fowles [EMAIL PROTECTED] writes:
 
   MF All~
   MF On 5/2/05, Uri Guttman [EMAIL PROTECTED] wrote:
 LW == Larry Wall [EMAIL PROTECTED] writes:
   
   LW multi sub opensocket (
   LW Str +$mode = 'rw',
   LW Str +$encoding = 'auto',
   LW Str [EMAIL PROTECTED]) returns IO;
   
and how will that support async (non-blocking) connects? or listen
sockets? i assume this is sorta the replacement for IO::Socket which is
a pure key/value api (except for the shortcut single arg host:port
which is nice to also support). for async you need to provide a callback
in the signature (beyond all the other socket args), an optional timeout
(with its own callback). the callbacks could be defaulted to subs in the
current module/namespace but the coder may also want an OO callback
which needs an object and method. another little optional argument is a
private data field. sure an object callback could handle on a per object
basis. but what if one object wanted to manage multiple async socket
connections? each one needs to be identified in the callbacks which is
what the private data is for. it is passed as an arg to the callback
sub/method.
 
   MF Currying obviates the need for everything but a sub callback.  If you
   MF want a callback to a method, curry the object.  If you want private
   MF data, curry the data.  After you are done currying you will have a
   MF simple sub to pass in as the callback, the peasants rejoice, and
   MF libraries will have a simpler interface.
 
 i like the concept but how would that work without actually creating
 closures? to convert a sub call to a method on an object is code, not
 just presetting args (which is what i gather currying is). now just
 using a closure would work but i am not in favor of allocating them just
 for this when other optional args can do the job. even with the full
 interface as i want it, you can use closures as your callbacks and keep
 it shorter. i just don't see the win of more code vs more args.

Curried functions are most likely implemented as closures internally. 
But perl6 has C .assuming  which does most of the ugly syntactic
work of creating the closure for us.  As for the cost of allocating
the closure, I tend not to worry about that till I know it is a
problem.  Most callbacks are created once and called many times, so
the allocation costs are not a great concern.

On the other hand, I view a simpler interface to a library as a big
win.  Yes, optional arguments could be added which allow for such
things, but then the library has to document and manage all of these
arguments, and the library user has to learn them all.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2005-04-12 through 2005-04-19

2005-04-19 Thread Matt Fowles
Perl 6 Summary for 2005-04-12 through 2005-04-19
All~

Sadly, a slip of the mouse cause me to delete a partially completed
summary, so I am going to push ahead on the rewrite without a witty
intro. Feel free to make one up for yourself involving stuffed animals,
musicians, and dinner.

  Perl 6 Compilers
   Pugs 6.2.0
Autrijus release Pugs 6.2.0 marking the first major milestone for Pugs.
This includes most of the control flow primitives of Perl 6 and is a
testament to the solid work that all of the lambdacamels have been
putting in.

http://xrl.us/ftoo

   CGI.pm and multi byte characters
BÁRTHÁZI András was having trouble encoding and decoding multi byte
characters in CGI.pm. This led to a general discussion of how to escape
such characters in URLs as well as when to call  chr .

http://xrl.us/ftop -- discussion

http://xrl.us/ftoq -- more discussion

   auto currying?
Matthew D Swank wondered if he really needed an extra set of parens to
simultaneously call a function generator and its generated function.
Autrijus told him that yes he did as Perl 6 is not quite Haskell yet.

http://xrl.us/ftor

   case insensitive P5 regex
BÁRTHÁZI András wanted to use the :i switch on P5 regexes. Autrijus
implemented it, but Larry noticed that this introduced a flag ordering
dependency. As a result the new way to supply flags to a perl 5 regex is
 rx:P5imsxg/.../ .

http://xrl.us/ftos

   Cookbook Ettiquette
Marcus Adair wondered if there were rules of etiquette he should obey
when writing examples for the Perl 6 Cookbook. In particular, should
examples run and be only one file. Ovid suggested that one file was a
good idea, but was open to contrary arguments.

http://xrl.us/ftot

   Austrian Parrot/Pugs Hackathon
Thomas Klausner announced that on June 9-10 in Vienna Austria there
would be a Hackathon featuring the collective might of Autrijus, Chip,
Leo, and more. When that much brain power gets together only two things
can happen: much hacking and much drinking.

http://xrl.us/ftou

   encoding illegal byte sequences in strings
BÁRTHÁZI András wanted to know if he could encode an illegal byte
sequence in a string. Much discussion ensued, but Larry promised that it
would be possible.

http://xrl.us/ftov

   Test::TAP
Yuval Kogman announced the release of two new modules to CPAN which
provid Pugs smoke html.

http://xrl.us/ftow -- announcement

http://xrl.us/ftox -- smoke em if you got em

   quoting constructs
Roie Marianer noticed that pugs was missing some quoting constructs and
implemented them. This led to discussion of interoplation and corners
cases. As usual Larry provided both answers and questions. Roie produced
a patch which Autrijus applied.

http://xrl.us/ftoy -- discussion

http://xrl.us/ftoz -- useful pugs hacking pointer

http://xrl.us/fto2 -- the patch

   Code Block as Argument
Stevan Little found some bugs with passing a code block to a function in
pugs. Warnock applies.

http://xrl.us/fto3

   Push, Pop, Shift, and Unshift on Infinite Lists
Stevan Little has been playing with push, pop, shift, and unshift on
infinite lists. He thinks he has found a bug, although maybe he just
hasn't let it run long enough... Larry provided answers as to the
correct semantics.

http://xrl.us/fto4 -- shift unshift

http://xrl.us/fto5 -- push pop

   'cd' issue in Makefile
Jonathan Worthington noticed a Win32 issue in the Makefile. He can point
to the offending line in the autogenerated makefile, but that is not
where it should be fixed. Warnock applies.

http://xrl.us/fto6

   hyperoperator tests
David Christensen provided a patch for hyperoperators. Unfortunately,
character set transcodings ate his patch.

http://xrl.us/fto7

   shift oddity
Stevan Little noticed that shift did not act like pop. Larry noted that
the example were not semantically valid, but even so Pugs should not
freeze.

http://xrl.us/fto8

   Pugs SEGV
Aaron Sherman managed to make Pugs segfault. Autrijus thinks it might
already be fixed.

http://xrl.us/fto9

  Parrot
   Dynamic Perl 2
William Coleda provide the second of his patched to move Perl*PMC out of
the core. Leo applied it.

http://xrl.us/ftpa

   SVN revision in bug reports
jreiks (Jens?) reported a difficult to reproduce bug. This caused Leo to
pine for having the SVN revision in the bug report. Brent 'Dax'
Royal-Gordon commented that this was a good idea. Jens Rieks offered to
implement it.

http://xrl.us/ftpb

   Win32 SDL
Jerry Gay tried to get SDL working on Windows. There was some give and
take, but in the end he got his wish.

http://xrl.us/ftpc

   -l/path/to/icu
Andy Dougherty provided a patch making Configure.pl provide a link flag
to ICU 

Perl 6 Summary for 2005-03-22 through 2005-04-05

2005-04-05 Thread Matt Fowles
  Perl 6 Language
   ceil and floor
Ingo Blechschmidt wondered if ceil and floor would be in the core.
Warnock applies... Although Unicode operators would let me define
circumfix \lfloor \rfloor (although I only know how to make those
symbols in tex...). Hmmm... using tex to right Perl 6 code...
interesting idea... at least then I could figure out how to make all the
special symbols. Maybe someone should make a package for that.

http://xrl.us/foe7

   s/// object?
Stevan Little wanted to know if s/// could return some sort of magic
object that could be poked or prodded. Larry explain, no.

http://xrl.us/foe8

   markup like features
Michele Dondi asked if perl 6 would have markup like features in it.
Luke Palmer asked for a more full explanation of what was meant. Warnock
applies.

http://xrl.us/foe9

   the many moods of  does 
Thomas Sandlaß wondered if S14 would actually be written or if tie/bless
were eaten by does, enumerating the many powers of does. Larry explained
that does will probably have mutated bless and then explained the
contexts under which does does each of its powers.

http://xrl.us/fofa

   the many moods of  does 
To follow up his question about does, Thomas Sandlaß wondered about is
(specifically whether it stubbed or initialized its variable). Larry
explained that is would probably initiliaze its variable and explained
how one could use  is Ref  to stub but not initiliaze something.

http://xrl.us/fofb

   perl5 - perl6 converter
Adam Kennedy dropped a line to the list about PPI 0.903, which could
form a good base for a Perl 5 to Perl 6 convert. Larry explained that he
was actually using PPD (the actual Perl parser) to construct such a
tool. He also explained his approach on how he was going to do it.
Actually it is a really cool approach for those of you who like elegant
design approaches, you should check it out. I'll give you a hint, it
starts by writing a glorified version of cat.

http://xrl.us/fofc

   p5 library compatibility?
Andrew Savige wondered if p6 would maintain the interface for most p5
libraries. chromatic almost died of fright from the suggestion. Juerd
suggested a deprecated namespace for such things. Larry gave him a ponie
instead. Later Larry thought that perhaps a special namespace for those
libraries that could be automatically converted might be appropriate.

http://xrl.us/fofd

http://xrl.us/foff -- later

   importing constants and header files
Song10 wondered if there was an easy way to import constants from a
module and not have to specify their full scope in the includers file.
Larry explained that p6 would have policy modules which would allow
this. He then began to let his mind explore the possibility of allowing
these modules to return a string to evaluate in the user's scope. Then
he realized how nasty textual inclusion was in C and C++, and figured
that a hygenic policy would be better.

http://xrl.us/fofg

   giving lists more operators
Juerd constructed a table of string, integer, and list operators. He
noticed that list had blank spots where string and integer both had
things. He then suggested quite a few more operators to fill these
blanks... This morphed into a discussion of code complexity and reading
code.

http://xrl.us/fofh -- operators

http://xrl.us/fofi -- complexity

   string pain
Chip wondered what exactly set  str  apart from Str and the impact
this had on Unicode support. Larry and Rod Adams explained that  str 
specified a raw bytes view of strings and required explicit casts
between different Unicode levels.

http://xrl.us/fofj

   xx on CodeRefs
Luke Palmer wondered if the xx operator could be overloaded to
repeatedly run a coderef and slap the results together. Other liked it,
but no word from on high.

http://xrl.us/fofk

   running pugs
Adam Preble had some strange problems with Pugs's make install target.
Warnock applies.

http://xrl.us/fofm

   maniplulation many dimensional hashes
Zhuang Li wanted to know how to manipulated hashes of unkown dimension.
Luke Palmer provided the answer.

http://xrl.us/fofn

   Semantics of Currying
Yuval Kogman has been implementing currying in PUGS. As such, he has
found some of the corner cases that have not been well specified. Thus
he, Larry, Luke Palmer, and Thomas Sandlaß delve into these mysteries.

http://xrl.us/fofo

   multi paradigmatic perl 6
Someone named Eddie posted a fairly long message to p6l on the google
groups interface suggesting that Perl 6 support delegation and other
programming paradigms. Sadly, no one told him that it already does both
of those things, because nobody got his email. Google groups does not
send messages back to the list.

http://xrl.us/fofp


Re: use less in perl6?

2005-03-30 Thread Matt Fowles
Aaaron~


On Wed, 30 Mar 2005 08:48:55 -0500, Aaron Sherman [EMAIL PROTECTED] wrote:
 On Wed, 2005-03-30 at 10:20 +0200, Yuval Kogman wrote:
  Perl 6 has some more interesting capabilities for lexical scoped
  hinting of tradeoff preferences. For example:
 
use less precision; # the default nums created in this scope are
# lower precision floats
 
use less cpu; # many places this can have a desired effect
use less memory; # especially in the underlying impls of
# structures
 
use less stuff; # might have a meaning for a library
 
 Hmmm.. I wonder what this would do:
 
 use less syntax;
 
 ;-)

Back out the entire p6 grammar and put in lisp's instead...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2005-03-07 through 2005-03-22

2005-03-22 Thread Matt Fowles
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.

http://xrl.us/fiip

   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.

http://xrl.us/fiiq

   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 ) { ... } .

http://xrl.us/fiir

   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.

http://xrl.us/fiis

   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.

http://xrl.us/fiit

   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.

http://xrl.us/fiiu

   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.

http://xrl.us/fiiv

   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...

http://xrl.us/fiiw -- critique request

http://xrl.us/fiiy -- 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.

http://xrl.us/fiiz

   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...

http://xrl.us/fii2

   :fooo != :foo('o'); :fooo == :foo{'o'}
Juerd wondered what the implications of a mapping to ('a') were. Larry
replied that it did not map in that manner.

http://xrl.us/fii3

   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.

http://xrl.us/fii4

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

http://xrl.us/fii5

   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. 

http://xrl.us/fii6

   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.

http://xrl.us/fii7 -- discussion

http://xrl.us/fii8 -- 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.

http://xrl.us/fii9

   SEND + MORE = JUNCTIONS
Sam Vilain fixed up 

Perl 6 Summary for 2005-02-22 though 2005-03-07

2005-03-07 Thread Matt Fowles
Perl 6 Summary for 2005-02-22 though 2005-03-07
All~

Welcome to yet another fortnight summary. Once again brought to you by
chocolate chips. This does have the distinction of being the first
summary written on a mac. So if I break into random swear words, just
bear with me.

  Off list development
In more related news, It has been pointed out to me that development
goes on off list on places like IRC. I briefly contemplated, quitting my
job and tracking such things full time, but then I decided that it would
be better if I just accepted brief submissions for the summary. Thus I
will be adding a fourth section to the summaries based on contributions.
If you would like to make a contribution, email me with a brief summary.
Please include the name by which you would like to be attributed (sadly
the process I use is likely to mangle any unicode characters). Please
make all links full, I will shorten them. Thanks

  Perl 6 Language
   not()
It turns out that not() (with no arguments) made perl 5 core dump for
a while, and it took us five years to figure that out. In perl 6 it will
be a list op and calling it with no arguments will return a null list or
an undef depending on context.

http://xrl.us/fdb9

   junctions and threading
I had hoped that last week the concerns about threading would have been
addressed. I was mistaken. A new crop of concerns surfaced and died down
fairly quickly (as the chief proponent, Damien, was away).

http://xrl.us/fdca

   serializing to various languages
Somehow the discussion of junctions morphed into a discussion of sets,
which morphed back into junctions, which morphed into a discussion of
serialization to different languages. Interesting stuff, but I wouldn't
hold me breath for it...

http://xrl.us/fdcb

   Performance Analysis and Benchmarks
Adam Preble posted an offer to develop some benchmarks for perl 6.
Unfortunately, I think he posted it to google groups. Also, he probably
should have posted it to p6c or p6i as the language folk tend to wave
their hands and say magic occurs but correctness is preserved when it
comes to optimization.

http://xrl.us/fdcc

   send + more = junctions
Autrijus posted an example using junctions, instead of parents, to solve
the classic

SEND MORE + = MONEY

problem. Markus Laire asked for a clarification, and Rod Adams pointed
out that he felt that it would not work as the interdependence of the
es was not captured. This does lead to the question of how one should
right prolog like code (including unification and backtracking) in Perl
6. No answers were offered.

http://xrl.us/fdcd

   Pairs as lvalues
Ingo Blechschmidt wondered what the behavior of pairs as lvalues would
be. The answer is that you would get an error for attempting to modify a
constant.

http://xrl.us/fdce

   Perl 6
Roberto Bisotto wanted to know where he could download perl 6 to start
playing with it. We embarrassedly told him that a full implementation
was not yet available, but pugs was gaining ground quickly.

http://xrl.us/fdcf

   hash keys
Autrijus wanted to know if hash keys were still just strings or if they
could be more. The answer is that by default they would be strings, but
they could be declared as having a different  shape . This led to a
discussion of hashing techniques such as the .bits, .canonicalize, or
.hash methods.

http://xrl.us/fdcg

   Dynamically scoped dynamic scopes
Dave Whipp wanted to make dynamically scoped dynamic scopes. My head
hurt, but apparently Larry's didn't as he replied piece of cake, the
syntax [and implementation] are left as an exercise to for the would be
module author.

http://xrl.us/fdch

   Parameters to rules
Rod Adams asked how he could specify arguments to rules so they could be
more function like. Larry explained that there were several syntaxes
each of which would coerce its arguments in slightly different ways. He
then mused that perhaps there were too many, I agree there are too many.

http://xrl.us/fdci

   compile time signature checking
Ahbijit Mahabal wondered how type checking would work for cases where it
was not easy to determine the types at compile time. The answer:
checking will be defered to runtime. In the end it seems that Perl 6
will blur the line between runtime and compile time heavily. Perhaps it
will provide nifty support for staged programming, meta-perl6 here we
come...

http://xrl.us/fdcj

   %*CONFIG and %?CONFIG
Brian Ingerson asked about the CONFIG hash and what sort of secondary
sigil it would have. Larry explained that $?CONFIG held to config for
the machine compiling the program and $*CONFIG held the config for the
machine running the program. Then he made some noice about parsing,

Perl 6 Summary for 2005-02-08 through 2005-02-22

2005-02-22 Thread Matt Fowles
Perl 6 Summary for 2005-02-08 through 2005-02-22
All~

Welcome to yet another fortnight summary. Lately p6l has been out
stripping p6i in volume. While this used to be the norm, lately it has
become a rare occurrence. Strange... Anyway, this summary would be
brought to you buy cookies, but I ate them all. So instead this summary
is brought to you by the remaining chocolate chips. In other news,
Autrijus Tang has just officially been promoted to first name only
status in the summaries based on both his stellar work with Pugs and his
highly identifiable name. He now joins the ranks of Larry, Dan, Madonna,
and Leo.

  Perl 6 Language
   do { } while?
David Storrs wanted to know what the best way to say  do { }
while($foo);  was. Larry told him that  s/do/loop/  would suffice.

http://xrl.us/e77k

   nest as a primitive looping operation
Timothy Nelson gets credit for resurrecting the oldest thread I have
seen brought back recently. Over two years ago, he mentioned a powerful
looping structure that allowed for recursion. Now he has found a use for
it.

http://xrl.us/e77m

   Loop Entry
Joe Gottman wanted to execute a closure every time a loop was entered,
not upon every iteration. He thought ENTER happened only once ever, but
it turns out that it will do what he wants.

http://xrl.us/e77n

   pop %hash
Rod Adams wants to be able to pop a key value pair our of a hash. Others
wondered what it would be used for. Someone mentioned an OrderedHash...

http://xrl.us/e77o

   higher order operators
Timothy Nelson wanted to have meta-operators. Larry gave him the full
unicode character set with which to define them. Tim was happy.

http://xrl.us/e77p

   none and nor delimiter
Thomas Sandlaß suggests using  \  as a none junction delimiter. He
then extended this idea to provide a logical nor,  \\ . Autrijus
suggested  !  for none. There was some argument about whether nor
deserved such huffmanization. Also, I think that the difference between
 //  and  \\  would continually escape me. I have enough troubles
writing code to deal with windows filesystems.

http://xrl.us/e77q

   Kudos to Autrijus
Damian proudly welcomed Autrijus to the ranks of the last-nameless-ones.
He also lauded his amazing work at forcing a lazy language to pull a
lazier one. I think we all agree.

http://xrl.us/e77r

   containers vs object references
Rod Adams wondered whether there was a litmus test that could determine
if something deserved its own sigil. The answer appears to be mostly
history. Larry suggested a simplistic way to create new sigils, although
it would not provide interoplation. I think a blessed method for
defining new sigils which do interpolate and provide some sort of type
constraint and context would be really nifty. Also I want a million
dollars in small, non-consecutive, unmarked bills. If you have either of
these please mail it to me.

http://xrl.us/e77s

   printing true
Autrijus wondered about true and fasle. Are they just 1 and 0? #t and
#f? Larry answered bool::true and bool::false, but true and false would
suffice when there was no ambiguity.

http://xrl.us/e77t

   quoted = LHS
Juerd wondered if  =  auto-quoted its left hand side. Yes.

http://xrl.us/e77u

   @ x 75 ~ $zap =?= (@ x 75) ~ $zap
Juerd mistakenly thought that ~ bound tighter than x. Only unary ~ binds
that tightly, so he is safe.

http://xrl.us/e77v

   getting the key|value of a pair
Steve Peters wondered how he could get the key or value from a pair. It
turns out that the .key and .value method will do what he wants until
some twisted soul overrides them...

http://xrl.us/e77w

   Junctiuons and Autothreading
By far the longest topic this week was junctions. Some people worry that
their autothreaded behavior will cause plagues to ravage the earth and
novices programmers to go blind. Others feel that without it Perl6 will
be a language suitable only to pond scum and cobol programmers. While
one side believes that autothreading repition of sid effects will crash
any database that interacts with Perl6, the other side believes that
requiring extra pragmas to unlock their full power will prevent
junctions from curing cancer. Either way someone is going to be unhappy.
It looked like the pendulum was swinging towards autothreading, but its
chief proponenet will be away next week, so who knows if it can survive
undefended. My favorite suggestion in all of this was to make Perl6 a
pure functional language and introduce monads.

http://xrl.us/e77x

http://xrl.us/e77y

http://xrl.us/e77z

http://xrl.us/e772

   nullary vs nonslurpy
Autrijus found it distressing that to get his quicksort to sort quickly
he had to make an empty signature slurpy. Larry 

Re: Junction Values

2005-02-20 Thread Matt Fowles
Damian~


On Mon, 21 Feb 2005 08:29:40 +1100, Damian Conway [EMAIL PROTECTED] wrote:
 Nicholas Clark wrote:
 
  On Sun, Feb 20, 2005 at 07:41:16PM +1100, Damian Conway wrote:
 
  Given this:
 
 
  my $x = set(1..3);
  my $y = set(1,3,5,7,9);
  my $n = 2;
 
  $x | $y  # set(1,2,3,5,7,9)
  $x  $y  # set(1,3)
  $x - $y  # set(2)
  !$x  # set(none(2));-)
 
 
  I don't understand this last line, even given the context of the preceding
  three. Why is it none of 2, rather than none of something else?
 
 ESTUPIDDAMIAN.
 
 Should, of course be:
 
 !$x  # set(none(1..3));-)
 
 Damian
 
 PS: This is also a demonstration of the awesome power of junctions: that we
  can specify the complement of a set without knowing its universal set!

Or one more thing to drive the mathematicians into a rage...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Junctive puzzles.

2005-02-09 Thread Matt Fowles
All~


On Wed, 09 Feb 2005 22:48:00 +, Matthew Walton
[EMAIL PROTECTED] wrote:
 Matt Fowles wrote:
  All~
 
  On Tue, 08 Feb 2005 17:51:24 +0100, Miroslav Silovic [EMAIL PROTECTED] 
  wrote:
 
 [EMAIL PROTECTED] wrote:
 
 
 Well, we see the same kind of thing with standard interval arithmetic:
 
(-1, 1) * (-1, 1) = (-1, 1)
(-1, 1) ** 2 = [0, 1)
 
 The reason that junctions behave this way is because they don't
 collapse.  You'll note the same semantics don't arise in
 Quantum::Entanglement (when you set the try to be true option).
 
 But you can force a collapse like this:
 
my $x = 4  $j;
if $j  2 { say never executed }
 
 
 
 By which I mean:
 
my $x = 4  $j;
if $x  2 { say never executed }
 
 
 
 
 Uh, I'm not sure this does what I think you wanted to say it does. ;) $x
 is a boolean, unless  returns a magical object... in which case, the
 magical part of $x ought to be a reference to the original $j, no?
 
 
 I'm wonding if we should allow a method that returns a junction that is
 allowed to collapse the original:
 
if 4  $j.collapse and $j.collapse  2 {
say never executed;
}
 
 But that's probably not a good idea, just by looking at the
 implementation complexity of Quantum::Entanglement.  People will just
 have to learn that junctions don't obey ordering laws.
 
 
 
 Well, I suspect that junctions will have to be references and just
 collapse every time. Observe:
 
 my $x = any(1, 2, 3, 4, 5);
 print SHOULD NOT RUN if (is_prime($x)  is_even($x)  $x  2);
 
 This only works if $x collapses. Same for matching junctioned strings:
 
 my $a = any (a b c);
 print Boo! if $a ~ /a/ and $a ~ /b/ and $a ~ /c/;
 
 (perhaps I meant to use ~~, I don't quite remember :) )
 
 Either way, autocollapsing juntions is a Good Thing IMHO, and the only
 remaining confusion (to go back to my initial post) is that the only
 case that doesn't work is when you instance a junction twice as a pair
 of same literals:
 
 print SUCCESS, unfortunately if (is_prime(any(1, 2, 3, 4, 5)) 
 is_even(any(1, 2, 3, 4, 5))  any(1, 2, 3, 4, 5)  2);
 
 Hope I'm making sense. Been a hard day at work. ;)
 
 
  What if junctions collapsed into junctions of the valid options under
  some circumstances, so
 
  my $x = any(1,2,3,4,5,6,7);
  if(is_prime($x) # $x = any(2,3,5,7)
  and is_even($x) # $x = any(2)
  and $x  2) # $x = any()
 
 This is Just Wrong, IMO. How confusing is it going to be to find that
 calling is_prime($x) modifies the value of $x despite it being a very
 simple test operation which appears to have no side effects?
 
 As far as I can see it, in the example, it's perfectly logical for
 is_prime($x), is_even($x) and $x  2 to all be true, because an any()
 junction was used. If an all() junction was used it would be quite a
 different matter of course, but I would see is_prime() called on an
 any() junction as returning true the moment it finds a value inside that
 junction which is prime. It doesn't need to change $x at all.
 
 In a way, you're sort of asking 'has $x got something that has the
 characteristics of a prime number?' and of course, $x has - several of
 them, in fact (but the count is not important).

Soemtimes, although frequently I will check for preconditions at the
begining of a function. After I finished checking for them, I expect
to be able to do stuff assuming them without anyworry of exceptions or
anything else.  In these cases I am using conditionals to filter
input, which I imagine is a fairly common case...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Junctive puzzles.

2005-02-08 Thread Matt Fowles
All~

On Tue, 08 Feb 2005 17:51:24 +0100, Miroslav Silovic [EMAIL PROTECTED] wrote:
 [EMAIL PROTECTED] wrote:
 
 Well, we see the same kind of thing with standard interval arithmetic:
 
 (-1, 1) * (-1, 1) = (-1, 1)
 (-1, 1) ** 2 = [0, 1)
 
 The reason that junctions behave this way is because they don't
 collapse.  You'll note the same semantics don't arise in
 Quantum::Entanglement (when you set the try to be true option).
 
 But you can force a collapse like this:
 
 my $x = 4  $j;
 if $j  2 { say never executed }
 
 
 
 By which I mean:
 
 my $x = 4  $j;
 if $x  2 { say never executed }
 
 
 
 Uh, I'm not sure this does what I think you wanted to say it does. ;) $x
 is a boolean, unless  returns a magical object... in which case, the
 magical part of $x ought to be a reference to the original $j, no?
 
 I'm wonding if we should allow a method that returns a junction that is
 allowed to collapse the original:
 
 if 4  $j.collapse and $j.collapse  2 {
 say never executed;
 }
 
 But that's probably not a good idea, just by looking at the
 implementation complexity of Quantum::Entanglement.  People will just
 have to learn that junctions don't obey ordering laws.
 
 
 Well, I suspect that junctions will have to be references and just
 collapse every time. Observe:
 
 my $x = any(1, 2, 3, 4, 5);
 print SHOULD NOT RUN if (is_prime($x)  is_even($x)  $x  2);
 
 This only works if $x collapses. Same for matching junctioned strings:
 
 my $a = any (a b c);
 print Boo! if $a ~ /a/ and $a ~ /b/ and $a ~ /c/;
 
 (perhaps I meant to use ~~, I don't quite remember :) )
 
 Either way, autocollapsing juntions is a Good Thing IMHO, and the only
 remaining confusion (to go back to my initial post) is that the only
 case that doesn't work is when you instance a junction twice as a pair
 of same literals:
 
 print SUCCESS, unfortunately if (is_prime(any(1, 2, 3, 4, 5)) 
 is_even(any(1, 2, 3, 4, 5))  any(1, 2, 3, 4, 5)  2);
 
 Hope I'm making sense. Been a hard day at work. ;)

What if junctions collapsed into junctions of the valid options under
some circumstances, so

my $x = any(1,2,3,4,5,6,7);
if(is_prime($x) # $x = any(2,3,5,7)
and is_even($x) # $x = any(2)
and $x  2) # $x = any()

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: [rbw3@cse.nau.edu: Re: Junctive puzzles.]

2005-02-08 Thread Matt Fowles
Brock~


On Tue, 8 Feb 2005 12:08:45 -0700, Brock [EMAIL PROTECTED] wrote:
 
 Hm. I take that back... it was a silly comment to make and not very
 mathematically sound. Sorry.
 
 --Brock
 
 - Forwarded message from Brock [EMAIL PROTECTED] -
 
   (a  b  c)   == (a  b) and (b  c) and (a  c)
 

I disagree, I think that that is both mathematically sounds and
perfectly logical.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2005-01-31 through 2004-02-8

2005-02-08 Thread Matt Fowles
Perl 6 Summary for 2005-01-31 through 2004-02-8
All~

Welcome to yet another summary in which I will undoubtedly confuse to
homophones. Probably more than a few this week as I am a little tired.
But perhaps the alien on my window or the vampire on my monitor will
help straighten it all out.

  Perl 6 Language
   autothreading generalization
Luke Palmer's thread about auto-threading seems to have wound down
without much resolution, or at the very least without a syntax that I
like.

http://xrl.us/e26z

   Featherweight Perl6
Autrijus Tang introduced Featherweight Perl6, a side-effect-free subset
of Perl6. FP6 is the first step on a journey for Pugs to conquer the
world.

http://xrl.us/e262

   Value Types vs Implementation Types
Autrijus Tang in his work on FP6 became confused by types. He asked some
questions about Types on perl 6 language and was apparently told to go
to perl 6 compilers. From perl 6 compilers, he was told he should really
be on perl 6 language. Sorry for the run around, the proper place for
questions about language semantics is perl 6 language as he originally
posted. Eventually all of that was settled and he even got his question
answered.

http://xrl.us/e263 -- original post

http://xrl.us/e264 -- retry with less compiler speak

   Logic Programming in Perl 6
Ovid asked what logic programming in perl 6 would look like. No answer
yet, but I suppose I can pick the low hanging fruit: as a limiting case
you could always back out the entire perl 6 grammar and insert that of
prolog.

http://xrl.us/e265

   the leaning tower of numbers
Autrijus Tang asked what sort of number tower Perl6 had. He was planning
(and implemented) that of Scheme until he gets an answer.

http://xrl.us/e266

   some quick questions
Autrijus Tang asked a few questions about operators in specific
contexts. He got a few answers, although I don't think he got them all.

http://xrl.us/e267

   getopt::signature
Juerd wants to be able to give his script a general signature which
magically parses command line arguments. Many people thought it was a
cool idea that should be provided as a module rather than in the core.
This led to talk about creating a signature object which could be passed
to this module so that it doesn't need macros. Sounds good to me.

http://xrl.us/e268

   S03 inconsistency
Juerd found a knit to pick. No comment about whether to pick the first
or second option though...

http://xrl.us/e269

   regex precedence
Nicholas Clark wondered about adding a little operator precedence to
regexes so that people could avoid a few common problems. Sounds like a
good idea to me...

http://xrl.us/e27a

   pipe dreams
Juerd wondered if he could mix = and == in a sane way. The answer
appears to be no. Once you bring in == you should stick with it.

http://xrl.us/e27b

   4  $x  2 == true?!?
Autrijus Tang wondered how junctions and chained comparators worked. He
found that under certain semantics, one can receive very troubling
answers. Larry agreed with Autrijus that the unintuitive semantics
should be avoided.

http://xrl.us/e27c

  Perl 6 Compilers
   Pugs 6.0.0
Autrijus Tang released Pugs 6.0.0. It has many cool features and was
created in only 6 days. A testament to the power of Haskel or the
caffeine intake of Autrijus. (Although to be fair he skipped more
version numbers then Java did in its jump to 5.0...)

http://xrl.us/e27d -- anouncement

http://autrijus.org/pugs/ -- pugs website
http://use.perl.org/~autrijus/journal/ -- implementation journal

  Parrot
   gdbmhash warning
Bernhard Schmalhofer fix a problem where gdbmhash could make configure
produce a warning. Leo applied it.

http://xrl.us/e27e

   PyNCI
Sam and Leo worked out the correct way to create NCI methods for Python.
Leo ended by proposing a table to assist Parrot based on the current
language, no answer to that idea...

http://xrl.us/e27f

   makefile cleanup
Bernhard Schmalhofer cleaned up some of the makefiles and configure
system. Leo applied the patch.

http://xrl.us/e27g

   ParrotIOLayer* const or not
François Perrad provided a patch making the ParrotIOLayer* const in the
API. Leo applied it, but Melvin warned that while this may be safe now,
the API intended to allow mutability. I think for the moment it is still
in though...

http://xrl.us/e27h

   Win32 Parrot
Ron Blaschke helped Parrot back onto its feet in the windows world.

http://xrl.us/e27i

http://xrl.us/e27j

http://xrl.us/e27k

http://xrl.us/e27m

http://xrl.us/e27n

http://xrl.us/e27o

http://xrl.us/e27p -- latest results

   Parrot_load_bytecode failure?
Ian Joyce wondered what would happen if Parrot_load_bytecode failed. The
answer: 

Re: FP6: Types

2005-02-03 Thread Matt Fowles
Autrijus~

Actually, I think that p6l is the correct place for this discussion. 
My logic is that you are asking about specific facets of the language,
not helping the perl 6 compiler or parrot.

Matt


On Fri, 4 Feb 2005 01:28:42 +0800, Autrijus Tang [EMAIL PROTECTED] wrote:
 On Thu, Feb 03, 2005 at 06:18:33PM +0100, Sthane Payrard wrote:
  perl6-compiler@perl.org seems a good forum to me for your endeavor
  because you write a compiler for a subset of Perl6.
 
 Okay.  If that is the desired forum, tomorrow I'll switch my questions
 to p6c and unsubscribe from p6l.  Sorry for bothering the people
 involved. :-)
 
  You are speaking of types, do you intend to explore type inference?
 
 Yes, eventually.
 
  The problem is more complex than with statically typed language, but
  somewhat simplified by the choice of a purely functional subset of Perl6.
 
 Which is why I started with such a subset...
 
 Thanks,
 /Autrijus/
 
 
 


-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


This weeks summary

2005-01-26 Thread Matt Fowles
All~

I have been struggling with my internet for the past 4 days, so this
weeks summary will be part of a double feature fortnight's summary
next week.  Figured that I would provide advanced notice though...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Proposed vtable changes WRT method lookup

2005-01-20 Thread Matt Fowles
Leo~

On Thu, 20 Jan 2005 10:01:42 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote:
 Matt Fowles [EMAIL PROTECTED] wrote:
  Leo~
 
  On Wed, 19 Jan 2005 16:26:07 +0100, Leopold Toetsch [EMAIL PROTECTED] 
  wrote:
  [ cc'ed p6l ]
 
  Matt Fowles wrote:
   Leo~
  
   On Wed, 19 Jan 2005 10:02:26 +0100, Leopold Toetsch [EMAIL PROTECTED] 
   wrote:
  
  But where does that PerlMMD PMC come from? Does the Perl6 compiler
  generate one somewhere?
 
   It is generated by the compiler.  During compilation all of the
   different MMD functions will necessarily be parsed and compiled, when
   the first MMD function is compiled the compiler wil add a MMD PMC to
   the appropriate table.  Each time a specialized version is compiled it
   will be added to the already created MMD PMC.
 
  Interesting. Where is this information coming from? Where can I read
  more about that?
 
  The general idea that I am explain here has its root in the CLOS MMD
  system.  To define a set of MMD methods one calls (defgeneric foo (a b
  c) ...) to add a particular implementation one calls (defmethod foo
  ((Cat a) (Monkey b) c) ...).
 
 I smell some namespace pollution here. The namspace, where you ought to
 place the generic foo MMD PMC, could already contain a non-multi
 subroutine of that name. Second: S12 states that multi-dispatch can
 degenerate to single dispatch on plain methods, which seems to imply
 that the full MMD can't be handled by your proposed MMD PMC.

That is a problem for the HLL.  Just as there could also be an
existing variable foo, the question of namespace conflicts is one that
must be handled by the HLL.

Single dispatch can be viewed as degenerates MMD still.  When a HLL
sees method declarations, it creates an generic for each method and
specializes it for each class in the heirarchy that implements the
method.

 
  ... But the crux of my idea is the following
  breakdown of responsibility
 
 Yep. That's the reason for splitting the functionality of find_method,
 which currently does it all.
 
  The problem I see with that is calling a MMD function with arguments
  from two different class systems.
 
 That'll be more fun, yes. But as long as the classes have a common
 ancestor, a matching MMD function could exist.
 
  ... It would make more sense to me to
  separate the dispatch system and the object system.
 
 Yes. But as Cdispatch is (will be) a vtable you can always plug in the
 desired dispatch system in your metaclass.

My question is what happens in your scheme if you have to variables
with different metaclasses.  Do we just use the left most class's
metaclass?  Is there some odd interaction?  The advantage to my
proposal is that only the MMD's dispatcher deals is involved with the
actual method selection, a metaclass is only responsible for creating
the mro list used by the dispatcher.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Re: Proposed vtable changes WRT method lookup

2005-01-19 Thread Matt Fowles
Leo~


On Wed, 19 Jan 2005 16:26:07 +0100, Leopold Toetsch [EMAIL PROTECTED] wrote:
 [ cc'ed p6l ]
 
 Matt Fowles wrote:
  Leo~
 
  On Wed, 19 Jan 2005 10:02:26 +0100, Leopold Toetsch [EMAIL PROTECTED] 
  wrote:
 
 But where does that PerlMMD PMC come from? Does the Perl6 compiler
 generate one somewhere?
 
  It is generated by the compiler.  During compilation all of the
  different MMD functions will necessarily be parsed and compiled, when
  the first MMD function is compiled the compiler wil add a MMD PMC to
  the appropriate table.  Each time a specialized version is compiled it
  will be added to the already created MMD PMC.
 
 Interesting. Where is this information coming from? Where can I read
 more about that?

The general idea that I am explain here has its root in the CLOS MMD
system.  To define a set of MMD methods one calls (defgeneric foo (a b
c) ...) to add a particular implementation one calls (defmethod foo
((Cat a) (Monkey b) c) ...).  But the crux of my idea is the following
breakdown of responsibility

First meta-class provides class resolution list for a particular class
heirarchy (mro).  This will work because the metaclass is known at
class construction time and will thus know the full object heirachy
for the class, objects that dynamically change their parents will go
through their meta-class to do this.

Second meta-methods provide the dispatch to specific multimethods
based on the class resolution list (and possibly value of) their
arguments.

This allows different languages to provide different class resolution
lists, while still enforcing a single dispatch metric for each
function, but possibly different dispatch metrics for different
functions with the same arguments.


 Finding the correct MMD function is always the same algorithm. Having
 that functionality in one place (the metaclass) is cleaner IMHO.
 
  No.  It is not always the same algorithm.  Perl 6 uses manhattan
  distance.
 
 Yes. I meant inside one class (HLL) system.

The problem I see with that is calling a MMD function with arguments
from two different class systems.  It would make more sense to me to
separate the dispatch system and the object system.  The essential
motivations for this is you avoid interaction of different dispatch
systems (which could be quite confusing).

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2005-01-11 through 2005-01-18

2005-01-18 Thread Matt Fowles
Perl 6 Summary for 2005-01-11 through 2005-01-18
Welcome to yet another Perl Summary brought to you by music and pizza
(although the pizza is late in arriving). Like many summaries before it,
we start with an attempt at non sequitur and Perl 6 Language.

  Perl 6 Language
   idiomatic Perl 6
Stéphane Payrard expressed a desire for more Perl 6 sample code. Luke
Palmer issued the following, possibly foolish, response: post some
\how do I\s to the list, and I'll reply with code. Austin Hastings
posed a couple, not response yet...

http://xrl.us/er2z

   generalized tainting
Yuval Kogman posted an interesting musing about contagious properties
(if you get your value from someone with a contagious property, you get
the property too). No responses, but it sounds interesting...

http://xrl.us/er22

   stick/pick
Richard H. suggested a new pair of functions stick/pick which would have
modifiers such that push, pop, shift, unshift, and splice could all be
calls to stick or pick with appropriate modifiers. Unfortunately, I
think he posted it to the google groups interface, as it is there but
not on the list :-(

http://xrl.us/er23

   Perl 6 IDE again.
Matisse Enzer re-raised the question of the feasibility of an IDE for
Perl 6. Unfortunately it was re-raised on google groups (I think).

http://xrl.us/er24

   1x6 vs 6
The dimension slice issues continue to grind with new suggestions from
David Green and Craig DeForest.

http://xrl.us/er25

   life span of loop counters
Joe Gottman wants an easy way to restrict the lifespan of his loop
counter to his loop. Some folk (myself included) did not like the answer
of wrap it in a scope. Some others (myself excluded) thought the answer
don't use loop, use for was a bit of a cop-out.

http://xrl.us/er26

   forany  forall
Jonathan Lang wondered how to check if a condition is true for any
element of an array or for all elements. The answer are the aptly named
junction creaters any() and all().

http://xrl.us/er27

  Perl 6 Compiler
Already reached p6c and no pizza :-( Ah well, it was a light week.

  Parrot Internals
Already p6i and no pizza :-(. Although it was close, after I wrote the
head2 my door buzzed. It was just a neighbor who got locked out, but
that would have been impressive timing.

   blib in 25 seconds
Peter Christopher asked for a 25 second summary of the ./blib directory.
Apparently this is harder than Hamlet in 30 seconds, as one of the two
has been done.

http://xrl.us/er28

   searching archives
Peter Christopher wanted to know if there was a way he could search the
mailing list archives. Steve Fink pointed him to groups.google.com and
the ever popular discussion topic aardvarks.

http://xrl.us/er29

   dynclasses with external dependencies
Bernhard Schmalhofer wondered if there was a reasonable way to check for
external dependencies for dynamic PMCs that does not involve the core
Parrot configure step. Later he supplied a patch with his GDBMHash pmc,
which motivated the question. Leo applied it and hinted at a mythical
multi-stage configure

http://xrl.us/er3a -- question

http://xrl.us/er3b -- patch

   s/interpreter/INTERP/g
Bernhard Schmalhofer provided a patch making the above clean up all
over. Leo and Sam applied different parts of it.

http://xrl.us/er3c

   black-ops parrot
Robert Spier posted a link to the new listing for Parrot on CIA.
Nicholas Clark dove for cover assuming he was going to be disappeared.

http://cia.navi.cx/stats/project/parrot -- CIA http://xrl.us/er3d --
actual post

   PDD problems on the website
Dave Brondsema noticed that PDDs 4-6 were not finding their way to the
website properly. Will Coleda fired off a patch.

http://xrl.us/er3e

   cleaning old tickets
Will Coleda, in his never ending role as RT janitor, closed out a few
obsolete tickets. Thanks Will.

http://xrl.us/er3f -- stone-age exceptions

http://xrl.us/er3g -- assemble.pl

http://xrl.us/er3h -- languages/imcc

   Scope and Timely Destruction
Leopold Toetsch raised the recurring issue of timely destruction. It
turns out that timely destruction is hard. Various people made various
suggestions. Let me state one thing clearly as if I don't, Dan doubtless
will: Parrot will NOT use reference counting of any kind. There are a
great many reasons for this some of which Luke Palmer explained.

http://xrl.us/er3i

   ParrotIO* should have been PMC*
Peter Christopher provided a patch fixing a pointer declaration bug. Leo
applied it.

http://xrl.us/er3j

   questions for the compiler FAQ
Some time ago, a compiler faq was started. It was to contain answers to
questions that people posted to the list. Will Coleda posted 2 such
questions, but got Warnocked.


Perl 6 Summary for 2004-01-03 through 2004-01-11

2005-01-11 Thread Matt Fowles
Perl 6 Summary for 2004-01-03 through 2004-01-11
Welcome to another Perl 6 summary. In this summary, we will explore such
thrilling issues as multi-dimensional slices of Chinese food. After all,
the amount of sauce any piece of Chinese food can absorb is proportional
to its surface area, which is a direct function of the number of
dimensions in which it is sliced (provided that we ignore degenerate
cases like fractal cuts of Peking duck).

  Perl 6 Language
   1x6 vs 6
Craig DeForest wondered how to disambiguate a 1x6 2D array slice from a
6 element 1D array slice. He suggested a syntax inspired by PDL. Larry
admitted to not having examined this particular issue and stated that he
was open to suggestions. Some suggestions arrived.

http://xrl.us/eout

   code as comment
Stéphane Payrard wanted to know if there is an easy way to alias
arguments to a function. Thus allowing a longer version for readability
when calling the function and a short version inside the function. Larry
suggested $s is namedsubject, which I like. The thread then devolved
into punning in French.

http://xrl.us/eouu -- main thread on p6l

http://xrl.us/eouv -- initial post on p6c

  Perl 6 Compiler
   Pascal - Pcode - Parrot - Profit
Sven Schubert asked about the feasibility of putting Pascal on Parrot.
He noted that with the infrastructure mentioned in Perl 6 and Parrot
Essentials the problem would not be too bad. Apparently Essentials
makes a few promises that we have yet to live up to. But we are working
towards it. In the mean time, Stéphane Payrard suggested a way for him
to kill to bird with one stone: Pcode.

http://xrl.us/eouw -- Pcode suggestion

http://xrl.us/eoux -- initial post

   Grammar improvements
Luke Blanshard submitted some rules for Perl6::Grammar. Luke Palmer
committed a slight variantion of his work, and the hacking commences...

http://xrl.us/eouy

  Parrot
   pop_pad
Peter Christopher wondered why pop_pad had not been implemented last
week. This week Leo implemented it and asked for tests.

http://xrl.us/eouz

   Resizable arrays
Simon Glover asked why ResizablePMCArray was so different from all of it
Resizable*Array bretheren. The answer is the Leo improved it. This
brings up an obvious task for someone looking for a reasonably friendly
chunk of Parrot to work on. Rationalizing the implementation of the
various Resizable*Arrays would probably be a good task for a novice
looking to dig into something. Perhaps one who is on winter break...

http://xrl.us/eou2

   Parrot 0.1.1 nci troubles
Ian Joyce noticed that parrot 0.1.1 was having some trouble with nci.t.
Leo admitted that this was the case, but it is fixed in CVS.

http://xrl.us/eou3

   test or benchmark
Nicholas Clark wondered if resizablestringarray.t was actually a
benchmark, because it had a big number which was really hurting his poor
machine. Simon Glover admitted to the copy paste error.

http://xrl.us/eou4

   x86 solaris 2.5.1 and 2.7
Andy Bach and Nicholas Clark worked towards getting parrot happier on
the aforementioned architecture. This thread seemed to peter out when
Nicholas asked how do we run a callback unconditionally after
gccversion is known, independent of its value?.

http://xrl.us/eou5

   VTABLE_call_method
Leo and Sam had a disagreement about whether a call_method vtable would
make sense. I think that we are waiting for higher intervention...

http://xrl.us/eou6

   updated perlhist.txt
Will Coleda applied Bernhard's patch updating perlhist.txt and
streams.t.

http://xrl.us/eou7

   Warnock Warnocked
Will Coleda applied the long Warnocked update to Warnock's contact
information with only a trace of irony.

http://xrl.us/eou8

   gcov of perlarray.pmc reaches 100%
Simon Glover got perlarray.pmc to have full test coverage. Nifty. Some
brave soul (possibly fitting an earlier description) should try this
with the Fixed*Arrays...

http://xrl.us/eou9

   Parrot under Solaris 9
Nicholas Clark, Andy Doughery, and Christian Aperghis-Tramoni all tried
to convince Parrot to work on Solaris. They are brave souls.

http://xrl.us/eova

   parrot-config updates
Peter Christopher asked questions about the parrot-config.imc. He also
provided an initial solution.

http://xrl.us/eovb -- questions

http://xrl.us/eovc -- solutions

   Key Question
Simon Glover noticed some bad behavior with respect to Key PMCs. Leo and
Sam both admitted that it was bad and that some work needed to be done.

http://xrl.us/eovd

   Parrot PDL
Bernhard Schmalhofer posted a pointer to PDL. Luke Palmer pondered
Piddles as Parrot PMCs. Craig DeForest proposed a path passing through
PDL's PP and pausing at Parrot. (Parenthetically, perhaps the
preponderance of Ps in 

Perl 6 Summary for 2004-12-20 through 2005-01-03

2005-01-03 Thread Matt Fowles
Perl 6 Summary for 2004-12-20 through 2005-01-03
All~

Welcome to a New Year of Perl 6 Summaries. I have been doing bi-weekly
summaries over the holiday season, but I plan on returning to weekly
ones now. Hopefully World of Warcraft won't prevent me, we shall see,
but if anyone starts a perl guild drop me a line ;-)

  Perl 6 Language
   Perl IDE
matisse wondered if an IDE for Perl would be possible given its dynamic
nature. The conses arrived at last time was that an IDE that worked for
nice code would be possible, but a fully general one would be
extremely difficult and quite possibly impossible.

http://xrl.us/ekks

   Premature Optimization
jona... has a rant about low level data types and premature
optimizations. So google tells me, but I can't find it in my gmail
account... Perhaps he posted directly to google continuation enhanced
arcs. I wish people would not do that

http://xrl.us/ekkt

   strictness of fully qualified globals
Alexey Trofimenko wanted to know if Perl 6 would have a way to catch
mistakes like $OtherPackage::NmaeWithTypo when using strict. The thread
seemed to wander off without answering his question... Although it did
note that perhaps  OtherPackage::$NmaeWithTypo  would make more sense.

http://xrl.us/ekku

  Perl 6 Compiler
   using ASCII 0 as a terminating character
Nicholas Clark pointed out that Perl 5 allows '\0' to be used as a
quoting character for  q{} . He felt that this was useful and should
be kept in Perl 6. Patrick agreed.

http://xrl.us/ekkv

  Parrot
   P5 was the new P2
Last time, I reported that Sam and Leo wanted to pass P5 in P2 as well.
Sam reported later that he was no longer confident in this idea. I guess
I should de-nudge Dan

http://xrl.us/ekkw

   warning in pybuiltin.pmc
Simon Glover submitted a patch to fix it, but Warnock applies.

http://xrl.us/ekkx

   POD cleanup
chromatic applied his previously threatened patch with a polite thanks
to himself.

http://xrl.us/ekky

   reading past EOF in PIR
Matt Diephouse noted that the error from reading past the EOF in PIR was
not really informative. Patches welcome.

http://xrl.us/ekkz

   Missing examples in PDD16
Simon Glover noticed a section in PDD16 that just stops midsentence. He
suggested that it be either finished or the section removed. No
answer...

http://xrl.us/ekk2

   MMD and VTABLE_find
Leo and Sam continued their discussion of how to implement MMD. The
conversations stopped, but I am not sure that it progressed. Perhaps
some guidance would be helpful...

http://xrl.us/ekk3

   PyCon discussions
A.M. Kuchling noted that PyCon is scheduled for March 23-25 in DC. Many
folk will be there including the authors of IronPython and Jython. The
deadline for submissions was the Dec 31, but that does not mean that
people cannot attend, learn a whole bunch, and take over the world.

http://xrl.us/ekk4

   Dynclasses Broken build
Will noted that dynclasses/*py* broke the build. Sam fixed it with
alacrity.

http://xrl.us/ekk5

   mod_parrot
Adrian Lambeck provided a patch to get mod_parrot working with
parrot-0.1.1. Nicholas Clark applied it.

http://xrl.us/ekk6

   missing make test dependencies
Will Coleda noted some problems with running make test with first
running make. Sam fixed them, but could not close the RT tickets...

http://xrl.us/ekk7

   split on RegExp
Will Colleda gave Patrick a friend nudge about split. Patrick noted the
nudge.

http://xrl.us/ekk8

   --no-lines and --help for ops2*.pl
Bernhard Schmalhofer added support for the above mentioned flags to
ops2c.pl and ops2pm.pl. Leo applied it.

http://xrl.us/ekk9

   StringArray--
Prompted by a question from Simon Glover, Leo deprecated StringArray.

http://xrl.us/ekma

   ponie on x86 solaris
Andy Bach noticed some problems with ponie on x86 solaris. Leo and
Nicholas Clark helped him get the failing ponie slightly farther before
failing.

http://xrl.us/ekmb

   Win32 dynclass issues
Jonathan Worthington bravely set out to fix dynclass pains in Win32.
With the help of Leo and Nicholas Clark, he is making progress.

http://xrl.us/ekmc

   Undef != Undef
Simon Glover noted that this oddity was causing unexpected results. This
led to some scrutiny of the Fixed vs Resizable arrays. The conses is
that the core PMCs need their exact semantics specified and then
implemented. As oposed to the current approach of letting the
implementation be the specification...

http://xrl.us/ekmd -- Undef != Undef

http://xrl.us/ekme -- Hash PMC needs it too

http://xrl.us/ekmf -- more ResizablePMCArray problems.

http://xrl.us/ekmg -- garbage values in Fixed*Arrays

   deleting keys from an OrderedHash
Simon Glover noticed that it 

Perl 6 Summary for 2004-11-29 through 2004-12-06

2004-12-06 Thread Matt Fowles
Perl 6 Summary for 2004-11-29 through 2004-12-06
All~

Last week I asked for help identifying the source of a quotation. One
friendly soul suggested Alan J. Perlis, but could not find an actual
attribution. It did lead me to find a very applicable (and in my mind
funny) quote from Perlis, which I will now inflict upon you all, before
your regularly scheduled summary:

When someone says I want a programming language in which I need only
say what I wish done, give him a lollipop. -Alan J. Perlis

  Perl 6 Language
   qq:i
Jim Cromie wondered if there could be a qq:i which sometimes
interpolates and sometimes doesn't depending on whether the variable had
been previously defined. There was some discussion which led to the
conclusion that this was just asking for strange bugs.

http://xrl.us/d95h

   getters and setters
John Siracusa wanted to know if Perl 6 would allow one to expose a
member variable to the outside world, but then later intercept
assignments to it without actually having to switch to using getters and
setters in all of the code that uses the variable. The answer: yes, yes
you can.

http://xrl.us/d95i

   « foo 
Richard Proctor asked if he could do list of words». Juerd pointed out
that this had already been asked. Which brings us to the fine point, ask
not Larry for he will tell you both yes and no. Although in this case I
think he said, probably...

http://xrl.us/d95j

   flipflop operator
Juerd wondered about the fate of the flipflop. Larry explained that
while it had lost the election it was still going to work hard for you
in the Senate. Err, that's not quite right, he said that It's leaving
syntactically but not semantically., but the new syntax has not been
specified...

http://xrl.us/d95k

   temp $var
Alexey Trofimenko wanted to know whether  temp  would preserve or
destroy its old value. Larry is leaning towards the Perl 5 semantics of
destroying, I think.

http://xrl.us/d95m

   state vs my
Alexey Trofimenko wondered how much advice about optimizing Ruby also
applied to perl. Unfortunately, he also misunderstood the  state 
specifier. The topic then quickly veered into what exactly  state 
does.

http://xrl.us/d95n

   specifying a hash's key type
Abhijit Mahabal wanted to know if he could specify a hash's key type.
The answer is yes, but the exact syntax seems to be worth a discussion.
Luke Palmer, in his Mathematician's rage, attempted to shoot down any
usage of Domain and Range, as they really should be Domain and Codomain.

http://xrl.us/d95o

http://en.wikipedia.org/wiki/Range_%28mathematics%29 -- wikipedia:
range Range (mathematics) - Wikipedia, the free encyclopedia

   container methods
Ashley Winters wants to have syntax for calling a method on the
container object rather than the containee. Luke Palmer agreed that this
was problematic. Larry appears to be in no hurry to add more operators
for this one, yet.

http://xrl.us/d95p

   slight discrepancy between synopses
Stéphane Payrard pointed out a small issue in some synopses. Larry
replied oops.

http://xrl.us/d95q

   arrays, lists, iterators, functions, coroutines, syntax
Many people suggested many things about the best thing to replace the
now missingop. I think Larry is leaning towards adding a undare
 =  op, which would do cool things. I don't thing anything is final
yet.

http://xrl.us/d95r -- iterators as functions

http://xrl.us/d95s -- unary  =  talk

   Push/Pop/Pull/Monkey
Many folk voiced their dislike of shift and unshift. I must agree with
them, but they also suggested a great many alternatives, including
pull/put, get/unget, and even getting rid of Push/Pop. I must say that I
really dislike that last idea, fortunately I am no alone. Currently we
are waiting for inspiration to strike.

http://xrl.us/d95t

   Topicalization
It was noticed that  for  might override one's topic at undesired
times. Larry rumminated about ways to solve this.

http://xrl.us/d95u

   Required Whitespace
Rod Adams does not like inconsistent whitespace rules. Larry explained
why the existing rules really were consistent.

http://xrl.us/d95v

  Perl 6 Compilers
The lack of traffic on p6c has given me another space to abuse. You
should listen to Soul Coughing. If you would like to join in the fun
of abusing p6c, you should submit tests. Nothing is more abusive then
stress testing ;-)

  Parrot
   Tuning and Monitoring
Matt S asked how much support for tuning and monitoring. This week I
exercise the awesome powers of the summarizer and invoke the mighty
Warnock's Dilemnia.

http://xrl.us/d95w

   imcc.globals--
Leo removed some imcc globals. Nice work.

http://xrl.us/d95x

   ensure directories exist first

Re: Angle quotes and pointy brackets

2004-11-30 Thread Matt Fowles
Austin~


On Tue, 30 Nov 2004 18:15:54 -0500, Austin Hastings
[EMAIL PROTECTED] wrote:
 Austin Hastings wrote:
 
  Larry Wall wrote:
 
 And now, Piers is cackling madly at Matt: welcome to perl6-hightraffic!
 
 :-)

Even if he wasn't cackling, I admit to feeling it.  I don't even use
the qx/qq/qw stuff in perl5.  I always got by with .

Although I must admit to liking python's C r...  meaning
absolutely raw string (useful for avoiding double escape problems with
their regular expressions).  Left me thinking it was short for regex
and not raw for a little while...

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???


Perl 6 Summary for 2004-11-22 through 2004-11-29

2004-11-29 Thread Matt Fowles
Perl 6 Summary for 2004-11-22 through 2004-11-29
All~

Rather than try to do something witty about the strange music I am
listening to, or the stuffed animals who are assisting me. I will start
this summary off with an entirely self-serving request. abuseA while
ago I saw the quote Computer Science is merely the post-Turing Decline
of Formal Systems Theory. without an attribution. I have tried to find
an attribution for it, but have been unable to find one. If any of you
know it, that information would be appreciated./abuse With that out of
the way, I bring you

  Perl 6 Language
   Deep Operators
Last week, Matthew Walton wondered about Deep Operators and if they
would work as he expected. As I tentatively predicted, the answer came
back and was yes. Then the thread got side tracked with context and
Perl vs perl vs PERL concerns.

http://xrl.us/d6wj

   gather to separate bins
Dave Whipp wanted to know if he could use gather/take with multiple
bins. Michele Dondi suggested using adverbs for it. Rod Adams pointed
out that as gather is inherently lazy the two binned approach could
cause strange results (like churning for a while filling one bin trying
to get an element for the other). Of course, not being able to do it
would mean possibly having to compute an expensive generate function
more than necessary, unless it is memoized...

http://xrl.us/d6wk

   « in here-docs
Thomas Seiler has decided to test my copy-paste-fu by starting a discuss
on characters that don't appear on my keyboard. His question was if «END
could start a here-doc. The answer appears to be no.

http://xrl.us/d6wm -- here-doc

   « != 
The above thread led to a discussion of the various quoting operators,
and the differences between «» and . This led to much discussion on
the finer points of qw, qx, and qq (among others). Juerd suggested
scrapping qx and qw in favor of qq:x and qq:w, which Larry liked. Rod
Adams suggested scrapping END in favor of qq:h/END/, which I like.

http://xrl.us/d6wn

   unifying namespaces
Alexey Trofimenko wondered about unifying the $, @, and % namespaces.
Larry told him that this ship sailed long ago and that it was not
changing.

http://xrl.us/d6wo

   Lexing/Parsing Perl6 without executing code
Adam Kennedy wants to be able to syntax color (and possible perform
basic programatic manipulations of perl6 code). Anyone who has used a
good IDE like Visual Studio, Eclipse, or IntelliJ probably understands
where he is coming from. He does not, however, want to execute arbitrary
code in the process of doing this. Much discussion ensued, but it does
not look like he will be able to do this. Quite the tragedy, but perl is
simply too dynamic to be docilly lexed like static languages.

http://xrl.us/d6wp

  Perl6 Compiler
   Nice Work
Nick Glencross has the honor of the only message on p6c this week. But
his sentiment is shared by all. Nice work, Patrick.

http://xrl.us/d6wq

  Parrot Internals
   Parrot_compreg.sig
Bernhard Schmalhofer noticed that Parrot_compreg had a different
signature then documented, so he submitted a patch to fix it. Leo
applied it.

http://xrl.us/d6wr

   opcode numbering
Leo added a TODO ticker for opcode numbering.

http://xrl.us/d6ws

   tests pass, but create core files
I reported that on my machine all of the tests claim to pass, but core
files appear in the parrot directory. Dan confirmed my suspicion that
this was a real problem. I tried to supply helpful information like
backtrace, but Warnock applies.

http://xrl.us/d6wt -- initial message

http://xrl.us/d6wu -- squeeky wheel gets the kick?

   pcc cleanup
Leo removed the recently deprecated P0, P1, P2 usage. Relatively few
tests break as a result.

http://xrl.us/d6wv

   Namespace-sub invocation
Luke Palmer wanted to know if there was syntax for calling subs from a
particular namespace. Leo provided the answer, call it as a method on
the namespace PMC.

http://xrl.us/d6ww

   Reserved Words Annoy
Luke Palmer wondered if he could define a .sub new to get around
reserved word problems. Leo added the support, but warned him not to use
spaces or such.

http://xrl.us/d6wx

   Lexicals, Continuations, Register Allocation, and ascii art
This thread (and the ones that preceded it) have made me wish that gmail
and google groups had a fixed width font option. Sadly, this summary
will probably not get me it, as it did not get me p6c either :-( Ah
well. The problems associated with lexicals and continuations churned.
There was a plea for guidance from Dan. Hopefully he will guide us
shortly.

http://xrl.us/d6wy -- one thread about it

http://xrl.us/d6wz - and another (with plea)

   old Parrot question
Bloves had a question about 

Perl 6 Summary for 2004-11-08 through 2004-11-15

2004-11-15 Thread Matt Fowles
Perl 6 Summary for 2004-11-08 through 2004-11-15
All~

Welcome to yet another Monday summary. This would have been a Sunday
summary, but Avernum (from Spiderweb Software) forcibly prevented it. As
usual, we will start out with Perl 6 Language.

  Perl 6 Language
   modules and exports
Aaron Sherman wanted to know some specifics about exporting things from
modules. In particular, he did not want to have to retype a whole bunch
of things. Larry gave an answer indicating that some of what Aaron wants
should occur, but some things are difficult for good reason.

http://xrl.us/dy47

   AUTOCLASS(DEF)? hooks
Rod Adams wanted to know if he could get AUTOCLASS and AUTOCLASSDEF
hooks. Larry told him that he probably could. Rod also wanted module
name aliasing. Larry told him that he could. Rod wanted to have module
names with arbitrary strings. Larry told him that he could. Rod wanted
to be able to load multiple version of the same module. Larry told him
that he could. The summarizer wanted each question of different focus to
be in a different message. Hopefully, Larry will tell him that they
should...

http://xrl.us/dy48

   matching the nth occurrences
Sudarshan Gaikaiwari wanted to know how to match the 2nd last last
occurrence in Perl6 rules. I think the message might have been posted
directly to google groups, as I did not get it in my email and nobody
replied. The example given matches the 2nd occurrence. As I am not sure
what is meant by 2nd last, I will answer the question I do know.
m:2nd/foo/ will match the second occurrence of foo. The nth occurrence
can be accessed similarly.

http://xrl.us/dy49

  Perl6 Compilers
Once again it is a race to see whether someone posts a comment to or
google picks up Perl6 Compilers first.

  Parrot
Welcome to the week of the continuation. If continuations make your head
hurt overly, I advise taking a few Advil's before continuing. If
continuations are the way you naturally think, I would advise you to
stop playing with LISP compilers.

   string pinning
Bernhard Schmalhofer wanted to pass the same C-string into to different
external functions so that the first could do things to it that the
second required. However, the solution that he found kept eating his
string after the first invocation. Dan and Leo came to the conclusion
that the 'd' parameter for NCI was the correct thing to use in this
situation.

http://xrl.us/dy5a

   GC invocation
Last week Leo posted a radical idea about GC invocation, and I decided
not to invoke Warnock's Dilemma too soon. This week, I invoke it.

http://xrl.us/dy5b

   perl vs /usr/bin/perl
Gerd Pokorra requested that #! perl be changed to #! /usr/bin/perl.
Although Warnock applied, I think that this will likely not happen as
perl in not necessarily installed in user bin and people might want to
change which perl is invoked by changing there path.

http://xrl.us/dy5c

   Command line support for various compilers
Will Coleda added a TODO item so that parrot can take various compiler
arguments on the command line. What are you waiting for?

http://xrl.us/dy5d

   Register Stomping
Matt Diephouse was having troubles with his newly updated forth
compiler. The verdict seems to be that he has uncovered a bug. To quote
Matt, *sigh*.

http://xrl.us/dy5e

   Calling Continuations, Basic Blocks, and Register Allocation
Either Leo or Jeff Clites (I don't recall who) started what is probably
the largest thread for this week, whose focus is register allocation and
continuation troubles. Apparently the presence of continuations can
unduly extend the life time of registers (as can try-catch things, but
they seem less important. The suggested sollutions all have some
shortcomings, although it appears that only using lexicals is winning.

http://xrl.us/dy5f

http://xrl.us/dy5g

   basic compilation example
Jeff Clites wondered how something like (a + b) would compile. The
answer is that intermediate PMC should be initialized to Undef which
will morph as appropriate.

http://xrl.us/dy5h

   eval changes
Leo updated the implementation of eval to make it even cooler or
possibly just clean it up and fix some bugs I forget.

http://xrl.us/dy5i

   Basic operations for MMD
Dan asked for volunteers to speck out the basic vtable and MMD functions
for CLS (common language something-or-other). Sam Ruby said he would be
willing to take a stabe at it in a few weeks. One week has gone by, and
Sam grows ever closer to stabbing things.

http://xrl.us/dy5j

   no limit on imcc identifier length
Will Coleda noted that there was no limit on the length of imcc
identifiers. Here come the eval buffer overflow attacks...

http://xrl.us/dy5k

   Duplicate local labels 

Perl 6 Summary for 2004-11-01 through 2004-11-08

2004-11-08 Thread Matt Fowles
Perl 6 Summary for 2004-11-01 through 2004-11-08
All~

Welcome to yet another summary, brought to you (once again) with the aid
of the musical stylings of Dar Williams and Soul Coughing and a small
stuffed elephant name Aliya. And, without further ado, I give you Perl 6
Language (whose traffic has picked up a little)...

  Perl 6 Language
   What was that anonymous thing?
Juerd wondered what things could be named and what anonymous. Larry
provided the answer: Subtypes, Enums, Lists (Lazy and Eager), Grammars,
and Packages, but then threatened to attack Juerd with hot grits.

http://xrl.us/dvi2

   updated Apocalypses and Synopses
Larry proved links to the current versions of the various Apocalypses
and Synopses. Unfortunately he forgot to start a new thread with his
message...

http://xrl.us/dvi3

http://www.wall.org/~larry/apo -- apocalypses
http://www.wall.org/~larry/syn -- synopses

   suggested warning for overriding operators
Aaron Sherman wanted to receive a warning for defining things like
multi sub *infix:+(...) {...}. But Larry reasoned the anyone who'd use
the * there does not care for warnings.

http://xrl.us/dvi4

  Perl 6 Compiler
Last week, I bemoaned my lack of google (and thus links). But a couple
kind souls pointed out that I could get links straight from the horses
mouth: nntp.perl.org. All I can say is, ::shrug:: Who knew that there
was an internet outside of google?. Fortunately, I do not have to admit
to its existence as there were no message this week.

  Parrot Internals
   she-bangs for none!!
Last week James deBoer offered a patch to remove all of the shebang
lines from config/*.pl (after his initial patch to add them to all of
them was turned away). Warnock applies.

http://xrl.us/dvi5

   Solaris 9 troubles
Christian Aperghis-Tramoni has some trouble whil trying to install on
Solaris 9. Warnock applies.

   more vtables
Leo wanted to add a finalize vtable entry (in addition to destroy, which
is apparently use for free memory and not active resources). Jeff
commented on the difficulties implicit in finalizing stuff, and the
thread ran out of gas.

http://xrl.us/dvi6

   build dynclasses by default
Last week, Leo was stalling to here about success and failures before
adding them to the default build. Brent 'Dax' Royal-Gordon and Sam Ruby
both chimed in with success. And so they did.

http://xrl.us/dvi7

http://xrl.us/dvi8

   register frame recycling
Leo added in some basic continuation recycling. Dan didn't like that it
required the user to clone return continuations into full ones. Leo
agreed, but felt that a returncc function would be needed first. I
wondered why we needed this recycling and couldn't just let the DOD/GC
do it for us. The answer: speed.

http://xrl.us/dvi9

   upcase binary strings
Dan wondered what should happen if you tried to play with the case of a
binary encoded string. The concensus seems to be either throw an
exception or nothing, depending on settings.

http://xrl.us/dvja

   setref poorly named
Sam Ruby was initially confused by the strange behavior of setref. Leo
told him that it was intended to set a reference inside a reference type
and noted that classes needs a clean up. With the advent of dynclasses,
this sounds like a job for some adventurous lurker...

http://xrl.us/dvjb

   tracebacks pmc vs ops
Leo wondered if we should have a PMC that could access the entire call
chain and do whatever evil it wanted. Dan conjectured that this sort of
thing was evil enough that ops might be well advised. Leo initially put
some methods into the continuation to do this, but later though about
putting them into the interpreter instead. I like the interp idea.

http://xrl.us/dvjc

   parrot -t memory leaks
Last week our fearless leader notice some not insignificant memory leaks
with parrot -t. This week our fearless pumpking fixed them.

http://xrl.us/dvjd

   Performance graphs
Matt Diephouse (assisted by Joshua Gatcomb) provided a pointer to a page
of periodic parrot performances, provided as pretty pictures. Please
provide possible improvement pointers.

http://xrl.us/dvje

http://xrl.us/dvjf

http://xrl.us/dvjg

   uniline yield() and return()
Stéphane Payrard (whose name google objects to strenuously) resent his
patch for uniline yield and return in PIR. Leo applied the patch.

http://xrl.us/dvjh

   mod_parrot 0.1
Jeff Horwitz released mod_parrot 0.1. Pretty nifty.

http://xrl.us/dvji

http://xrl.us/dvjj

   IO auto-flush troubles
Christian Aperghis-Tramoni wondered how to make stdout not buffer away
his prompt. The answer (provided by Mary Pauley and Luke Palmer) require
using pioctl and strange magic numbers.

http://xrl.us/dvjk

   

Perl 6 Summary for 2004-10-23 through 2004-11-01

2004-11-01 Thread Matt Fowles
Perl 6 Summary for 2004-10-23 through 2004-11-01
All~

Welcome to another summary, this one being slightly delayed by
Halloween. Before I start off with perl6-language, let me remind all
American readers to vote tomorrow. Non-American readers should also
vote, but it seems unlikely that your day of voting is tomorrow. So
without further ado,

  Perl 6 Language
   assorted questions
Rich Morin wanted to know two things. One, can he hook into function
calls and just about everything else for his evil purposes. Two, can he
get floating point values which automagically track their rounding
errors. Austin Hastings pointed out that two would probably best be
implemented as an opaque object whose value is a junction. Luke Palmer
demonstrated an evil way to embed whatever hooks he wanted by adding an
extra layer to the grammar. Somehow, I worry that shooting myself in the
foot with this would take most of my body off...

http://xrl.us/drsq

   Perl6 backwards compatibility
 U. Ruirarchzatrea expressed a desire for perfect backwards
compatibility to perl5 and a ponie too.  Matthew Walton, Brent 'Dax'
Royal-Gordon, and Luke Palmer all told him that he could have a ponie,
but it would not be perfect.

http://xrl.us/drsr

  Perl 6 Compiler
Sadly google still does not mirror p6c. Does anyone know someone who can
be poked/prodded/pleaded with about this? End result: no links for you!

   Status check?
Ovid popped in to see if he could find more detailed status info about
the progress of p6c. Patrick Michaud provided a slightly unsatisfying
answer of not much longer, and Luke Palmer provided a slightly more
detailed answer which can be summarized as not much longer.

  Parrot Internals
   siva, the multifacetted pmc
Stephane Payrard asked about some problems he had encountered creating
the magical all in one Siva PMC. Leo provided a helpful prod towards
LVALUE_CAST. The other problems may or may not related to the mandrake
cooker. Hopefully someone will tell us.

http://xrl.us/drss

   JITted functions calling external functions
Leo reported that, thanks to Jeff, one can now call into Parrot
functions from JIT. Yay!

http://xrl.us/drst

   make testexec
Currently make testexec will create and run a trivial hello world
program for the exec core. Leo would like it to run the full test suite
instead. This is a big thing, but would probably win you many friends
and influence people.

http://xrl.us/drsu

   Calling Conventions and Indirect Register Access
Leo provided several warning that he was going to make some big changes
that would break any code that did not follow the calling conventions.
He went to implement and commit a whole lot of stuff. I was impressed,
and Dan later wondered if it was all done or not (as he wants to make
some big changes soon). Apparently it is for the most part.

http://xrl.us/drsv

http://xrl.us/drsw

http://xrl.us/drsx

http://xrl.us/drsy

http://xrl.us/drsz

http://xrl.us/drs2

   Stalk Walking Bug
Nicholas Clark, with Leo's help, found a bug in the stalk walking code.
Apparrently, our mask for valid pointers was a little over zealous.
Nicholas checked in a quick fix. Steve Fink has a few suggestions.

http://xrl.us/drs3

   Register Allocation
Bill Coffman is continuing his amazing work with register allocation. He
has been making strong progress, and his new code is fast approaching
production ready. Unfortunately for Dan, it still has a few rough points
and a small memory leak preventing it from being used on Dan's evil
code. Leo has been helping him along the entire time, and I predict that
all of Bill's work will find its way into Parrot before the next
summary.

http://xrl.us/drs4

http://xrl.us/drs5

   libjit
Robert Spier pointed out the fairly nifty libjit. Unfortunately,
according to Leo, the current jit is far enough along that it would be
too much work to switch. I tend to believe him.

http://xrl.us/drs6

-- libjit

http://xrl.us/drs7

   Looking for a hardware donation
H.Merijn Brand reminded Leo that he hadn't been contacted yet about some
Diana menthol alcohol. I was confused, but apparently Leo wasn't...

http://xrl.us/drs8

   pmc/inode analogy
Stéphane Payrard wanted to know if his analogy between pmcs and
filesystems was correct. Leo felt that it was mostly right and attempted
to explain value/variable split. Dan corrected Leo and went a little
further. What I have taken away from this is do not think of it in
terms of high ;evel language operators, instead think of it in terms of
C. You get pointers and values (and you can point to a value).
Somethings do shallow copies (i.e. pointer copies) others do deep.

http://xrl.us/drs9

   pmc_type
Nicholas Clark wanted to 

Perl 6 Summary for 2004-10-18 through 2004-10-23

2004-10-23 Thread Matt Fowles
Perl 6 Summary for 2004-10-18 through 2004-10-23
All~

Last week I received a request to summarize perl6-language before
internals. Frankly, it seems like a reasonable idea. Perl6-internals has
always been first as long as I can remember. So perhaps, it is time to
switch it up. Thus I give you

  Perl6 Language
   Packrat Parsing
Thomas Sandlass posted a link to an article on Packrat Parsing. It looks
like a promising technique for small programs, all though its memory
requirements may be a bit heavy for large programs. Mr. Sandlass appears
to have been Warnocked, but there are several explanations. First he
posted from google, there has been trouble in the past about such things
getting through. Second, he posted to Perl6 Language instead of Perl6
Compiler.

http://xrl.us/dndb

  Perl6 Compiler
   Perl6 Compiler list troubles
In the last summary, I mentioned that Perl6 Compiler has not yet found
its way to google groups. Leo seems to have had trouble subscribing to
it also... Perhaps this bears investigation?

  Parrot
   Unununium
Dan and Steve Fink told Jacques Mony that a port to Unununium would
probably require substantial changes to configure.

http://xrl.us/dndc

   grsecurity interfering with the parrot JIT/build
Apparently our current scheme of mem_alloc_executable and
mem_free_executable is not quite enough to make grsecurity happy. Work
is ongoing...

http://xrl.us/dndd

   signal.t failure
Will Coleda had problems with signal.t failing while his machine was
under load. Leo pointed out that this is known behavior. Jeff Clites was
a little confused/disappointed that his earlier patches to help solve
this problem had not sufficed.

http://xrl.us/dnde

   New naming for parrot_interp
 Brent 'Dax' Royal-Gordon warned everyone that he was committing a
gianormous change which would effect any pending patches.  From the
lack of chaos on the list, I would say that his warning worked.

http://xrl.us/dndf

   Parrot Forth
Michel Pelletier and Matt Diephouse discussed some of the finer points
of Forth implementations and optimizations.

http://xrl.us/dndg

   Win32 update
Ron Blaschke gave a quick update on his progress with VC7.1 on Win32.
Looks good and keep on chugging Ron.

   Downloading Parrot
Jerry Wiltz asked if help in downloading Parrot (he was starting from
scratch (no Perl or C compiler)) on a WinXP box. Fred the
LastNamelessOne provided a plethora of useful links.

http://xrl.us/dndh

   The Return of Register Stacks
Miroslav Silovic posted a summary of a design change that he and Leo
were considering. I asked for more details as to how it was different
then something we had moved away from much earlier. Leo provided a quite
nice and thorough explanation. Thanks. Dan observed that this recurring
thread happened nearly yearly, but that the cycle was not quite 12
months. Dan also observed that the timing to coincide with his being
sick was fortuitous. Leo and Dan went back and forth for a while
discussing the implementation and implications of it. I believe that the
end result is that we will have indirect access to registers, we will
not need to have saveall/restoreall pairs around function calls, and Dan
should eventually get better, but not until this is fully thrashed out.

http://xrl.us/dndi

http://xrl.us/dndj

http://xrl.us/dndk

http://xrl.us/dndm

http://xrl.us/dndn

   JIT rework
As a side effect of indirect access to registers the JIT needs to be
rejiggered to account for this. Leo and Jeff Clites went back and forth
working on this with what sounds like good progress being made.

http://xrl.us/dndo

http://xrl.us/dndp

http://xrl.us/dndq

   Win32 pernum test fix
Ron Blaschke fixed a test failing because of -0.0. Leo applied the
patch.

http://xrl.us/dndr

   x86-64 problems fix
Brian Wheeler submitted a patch to fix x86-64. Leo couldn't apply it.
Brian resubmitted. It got mangled on the way. Brian reresubmitted. Leo
applied it. Thanks for perservering Brian!

http://xrl.us/dnds

   External dependencies
Robert Spier suggested several options on how to simplify the problem of
Parrot and external dependencies. Sadly, Warnock applies.

http://xrl.us/dndt

   mod_parrot
Jeff Horwitz is making amazing progress with his cybernetically enhanced
parrot. Oh wait, I mean embedding parrot in to apache. It all looks
really cool and he has been able to use his experience to provide
valuable crituques to us all.

http://xrl.us/dndu

http://xrl.us/dndv

   Python, Parrot, and scoping
Sam Ruby has been trying to make sense of Python's scoping in the
context of Parrot. Leo, Dan, and Allen Short all rushed to his aid.

http://xrl.us/dndw

   Resizable*Array implementation
Bernhard 

Perl 6 Summary for 2004-10-01 through 2004-10-17

2004-10-17 Thread Matt Fowles
All~

Welcome to my first summary.  Since I am relatively new at this game,
I will just steal Piers's approach and start with Perl6 internals. 
But before that let me warn you that my ability to make strange
characters with accents is not great, thus please do not be offended
if I don't include them in your name.  If you want them to appear in
the future, a quick email about how to make them appear using a US
qwerty keyboard and Mozilla should suffice.

Also, groups.google.com does not seem to have picked up perl6.compiler
yet, so iw ould be s

With that legal disclaimer out of the way onward to 

== Perl6-Internals

= Configure problems and Improvements

Leo noticed that Configure doesn't rebuild things correctly.  Takers
welcome.  Nicholas Clark added a --prefix option for the make install
target.

http://xrl.us/divy
http://xrl.us/divz
http://xrl.us/div2


= Non-core module dependency

Joshua Gatcomb  accidentally introduced a dependency on
Config::IniFiles.  Since it is implemented in pure perl he offered to
add it to the repository.  Warnock applies.

http://xrl.us/div3


= OpenBSD troubles

Jens Rieks found and fixeda coredump on OpenBSD.  Thanks, Jens.

http://xrl.us/div4


= Threads on Cygwin

Joshua Gatcomb discovered some trouble with threads on Cygwin.  It
seems that there are problems with both the thread implementation, and
the tests not be generous enough if accepting out of order input. 
Still unresolved, I think.

http://xrl.us/div5


= Parrot IO is not quite threadsafe

Nicholas Clark discovered a double free in the IO system.  While his
problem was solved by Jens, the underlying problem still remains.

http://xrl.us/div6


= make install portability issues

Nicholas Clark asked why the install taget was not portable.  Steve
Fink responded that it was a quick hack at the time and made it
better.

http://xrl.us/div7


= Namespaces

The namespace thread continues to churn.  It is slowly making
progress, but I beleive there is a fair amount of people talking past
eachother going on.  Perhaps Dan could step in and provide one final
state of the namespaces?

http://xrl.us/div8
http://xrl.us/div9

http://xrl.us/diwa


= Parrot Abstract Syntax Tree aka PAST

Sam Ruby decided to pick up the Python on Parrot ball.  To that end he
enquired as to what PAST is.  Leo provided answers and help.  Will
asked for more help.  Leo once again provided.

http://xrl.us/diwb
http://xrl.us/diwc


= JIT for non-branching compare opcodes.

Stephane Peiry provided a patch to JIT some more opcodes.  Leo
applied.  Stephane then provided a patch with tests.  Jens applied
that one.

http://xrl.us/diwd
http://xrl.us/diwe


= Comparing Pythons

Sam Ruby posted a link comparing various pythons and there conformance
to a test suite.

http://xrl.us/diwf
Sam Ruby: Comparing Pythons


= Metaclasses?

Dan admitted confusion as to what exactly metaclasses are/do.  Papers
and explanations were provided by Aaron Sherman, Michael Walter, and
Sam Ruby.

http://xrl.us/diwg
http://xrl.us/diwh
http://xrl.us/diwi


= Plain Old Hash

William Coleda wondered if Parrot had a basic hash implementation (not
a PerlHas).  Dan said D'oh! and asked for takers.  Will Coleda added
a TODO.

http://xrl.us/diwj


= Parakeet 0.3

Michael Pelletier's language Parakeet has hit 0.3 and been added to
CVS.  Everybody should play with it.

http://xrl.us/diwk


= make install thoughts

Leo conjectured about creating a parrot_config.c which would encode
all of parrot's configuration.  Then parrot would know its own config.
 Jens suggested letting miniparrot generate it; Leo agreed.

http://xrl.us/diwm


= more piethon

Dan's register spilling problems give him free time.  He used it to
work on piethon a little.

http://xrl.us/diwn


= Priviledge implementation

Felix Gallo posted some questions/thoughts with respect to
priveledges.  While Leo addressed Felix's question about the location
of source files (and provided a nice plug for vim).  The others all
remain Warnocked.

http://xrl.us/diwo


= make in languages/TCL

Matthew Zimmerman  supplied a patch to fix TCL's make.  William Coleda
modified and applied it.

http://xrl.us/diwp


= MANIFEST fixup.

Andy Dougherty provided a patch to remove some old files from the
manifest.  Steve Fink applied it.

http://xrl.us/diwq


= Parrot 0.1.1 Poicephalus

There was a little talk about names.  Then a little talk about getting
it posted to perl.org.  In the end the 0.1.1 release did happen and
even made it to /.  Thank you to everyone who contributed.

http://xrl.us/diwr


= Data::Dumper TODO

Will Coleda added a TODO for Data::Dumper.  Apparently it cannot dump
FixedPMCArrays.  Will conjectures that there are probably other new
PMCs it cannot handle either.  Patches welcome.

http://xrl.us/diws


= Emacs, XEmacs, and pir-mode

Jerome Quelin kicked off a thread that resulted in emacs getting
better pir-mode support.  Thanks to all involved, but I will continue
to use vim ;-)

http://xrl.us/diwt


= A %= B

Dan 

Re: So long, and thanks for all the fish!

2004-10-15 Thread Matt Fowles
All~

I am willing to try and take on this responsibility.  I have been
reading p6i for several years now and always appreciated the summary,
so what better way to give back.

Any advice/scripts that Piers (or anyone else) can provide me would be
appreciated.

Matt
-- 
Computer Science is merely the post-Turing Decline of Formal Systems Theory.
-???

On Fri, 15 Oct 2004 10:05:21 +0200, Leopold Toetsch [EMAIL PROTECTED] wrote:
 The Perl 6 Summarizer [EMAIL PROTECTED] wrote:
  I tried, I really did, but I'm afraid that I must raise the white flag
 
  ..- Dan, Leo and the
  rest of the p6i team have done fantastic work
 
 Thanks for the flowers and of course for all your precise summaries.
 
  ... But if any of you are thinking I could do
  that! then don't let me stop you -- there's an awful lot goes on on the
  lists, and there's a lot of interested people who don't have the time to
  keep up with them. A regular summary helps the interested but busy
  people get a grasp of how the Perl 6 project is getting on, and that can
  only be a good thing.
 
 Yep, so please, interested folks, sharpen your pencil ...
 
  --
  Piers Cawley -- Former Perl 6 Summarizer
 
 Thanks again, and maybe ex-former any tine,
 leo