Re: Perl Summarizing

2006-04-28 Thread The Perl 6 Summarizer
Matt Fowles [EMAIL PROTECTED] writes:
 In the hopes of inspiring someone to take my place, I would like to
 encourage any interested party to just start summarizing and thus
 become the official perl 6 summarizer.

Strongly seconded!

 NB - I do not assume to speak for Piers in this, so interested parties
 may want to coordinate with him.

Nope, no need to coordinate. Go to it with a will.

-- 
Piers Cawley [EMAIL PROTECTED]
http://www.bofh.org.uk/


This weeks summary, part 2

2006-02-18 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2006-02-12
Did I say Thursday night? What was I thinking? Blame Nikon for finally
delivering my D200; or just blame me for being a lazy git who spent
Thursday night recovering from the drive home from Liverpool and Friday
playing with a new toy and chatting to interesting people in the atrium
at SageGateshead.

So, here's part two of the summary, in which I summarize ancient history
in perl6-language.

This week in perl6-language
  Overloading the variable declaration process
Darren Duncan asked that Perl 6 provide a way for a class/role/metaclass
to declare that all variables declared to be of that type are
automatically/implicitly set to a particular value at declaration time.
Larry's response was fascinating as he talked about what I find myself
thinking of a continuum of definedness, where, instead of worrying if a
variable is defined, the language/programmer/whatever only cares whether
it is defined enough. The syntax for asking such questions isn't really
defined enough yet.

Then it all got slightly philosophical with talk of the ideal of a dog
(when I think the questioner really wanted to talk about the ideal dog),
Platonism and Aristotelianism. And the metamodel.

And there was hypnotism.

http://xrl.us/j36z

  Macros?
Last week, Brad Bowman asked a bunch of questions about the workings of
Perl 6 macros. This week, Larry offered answers.

http://xrl.us/j362

  A proposition for streamlining Perl 6 development
Yuval Kogman had some ideas about how to make Perl 6 development go
faster. Igor! More tuits!

Some people disagreed with him. Some agreed. I am staying well out of
this one (at least in the summaries; I have opinions and I don't trust
them, or myself, enough to be able to write a properly impartial summary
of the discussions).

http://xrl.us/j363

  Tokenizer hints, supporting delimited identifiers or symbols
Darren Duncan had another wish for Perl 6: a simple and terse way for
Perl 6 identifiers or symbols to be able to be composed of any
characters whatsoever... whoa! Deja vu!

Ah yes, I already did this one in part one. Move right along the
summary, nothing to see here.

http://xrl.us/j364

  The definition of say
Simple question: how do you implement say?

The answer isn't quite as simple as you might think. Actually, that's
not true, the answer is simple, but the question has hidden depths.

Go read Robin Houston's question and its responses if you don't believe
me.

http://xrl.us/j365

  Smart match table
Robin Houston had some questions/observations about the smart match
table in synopsis 4. This is the table that describes how the smart
match (~~) operator does its comparisons. It turns out that the table
in the synopsis implies non-commutative behaviour, which came as
something of a surprise. I'm surprised this thread petered out so
quickly without any real resolution; it seems rather important to me.

http://xrl.us/j366

Acknowledgements, apologies and everything else
So, does the serial format work? Apart from the problem of not actually
getting on with part two when I should have done, it works remarkably
well for me. Writing the summary in one big chunk can be somewhat
daunting, especially if my brain gets fried by the first two lists.
Feedback is good.

  Help Chip
http://geeksunite.org/ -- Chip still needs help.

  The usual coda
If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.

http://donate.perlfoundation.org/ -- The Perl Foundation

The Perl Foundation Blog is an excellent source of news about the Perl
Foundation's activities.

http://blog.perlfoundation.org/

Planet Perl Six is a handy news aggregator of several Perl 6 related
sources.

http://planet6.perl.org/

http://dev.perl.org/perl6/ -- Perl 6 Development site

Check out my website, it's lovely.

http://www.bofh.org.uk/

-- 
Piers Cawley [EMAIL PROTECTED]
http://www.bofh.org.uk/


This week's summary. Part 1

2006-02-14 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2006-02-12
Welcome to part one of this week's summary. Owning to chronic problems
with deadlines I've only got time to summarize perl6-compiler and
perl6-internals tonight; I'll do perl6-language when I get back from
$paying_job on Thursday night.

You shall just have to contain your excitement 'til then.

This week in perl6-compiler
  Tokenizer hints, supporting delimited identifiers or symbols
Darren Duncan said that he'd like for there to be a simple and terse way
for Perl 6 identifiers or symbols to be able to composed of any
characters whatsoever (even whitespace). After all, it's allowed in lots
of other languages (including, although Darren didn't mention it, Perl 5
-- consider ${var with spaces} = 'foo' if you don't believe me.
Lexical vars are a wee bit trickier).

I turns out that, as Larry said $::You can already do that!;, which
is nice. It turns out there's quite a few ways of doing it and Larry
discussed them all.

http://xrl.us/j2bf

Meanwhile, in perl6-internals
  Parameter count checks
One of the tricky things about having PIR level parameter count checks
is coming up with a good syntax for it; in particular, Chip wanted an
easy way of expressing common things like void calls. It turns out out
that Common Lisp is one of the trickier languages to deal with here
since it allows for multiple values returned from a function, but
ignores every return apart from the first unless you specifically ask
for them. Which can be nice, but is weird.

I'm not sure we have a syntax for it yet, I'm sure one will be
forthcoming eventually.

http://xrl.us/j2bg

  Add methods in dynpmc
François Perrad had some trouble adding methods to Lua PMCs and asked
for help. Leo provided it and all was gorgeousness again.

http://xrl.us/j2bh

  {null,parrot,installable}_config.o
Florian Ragwitz is the Debian maintainer of the pugs and parrot packages
and he has problems getting the latest pugs to link with Parrot, mostly
because of the way parrot stores information about where things are
installed. He made a few suggestions for resolving the issue. I'm not
sure Leo's answer was much use to him.

http://xrl.us/j2bi

  Heureka - from the -Ofun department
Leo announced that Parrot is now running the Ackermann benchmark faster
than C. It turns out that tail recursion elimination is a really good
thing to have. It also turns out that we only get the really blistering
speed on x86 and ppc architectures, because those are the architectures
with a working JIT core. Things aren't quite so rosy on SPARC, for
instance.

Still. Wow!

http://xrl.us/j2bj

  :non_volatile is now :unique_reg
Jonathan Worthington checked his :non_volatile patch back in, but with
the new :unique_reg name. Which is nice.

http://xrl.us/j2bk

  Sub introspection: filename and line
Jerry Gay had some questions to ask about walking the Parrot call chain
and getting at file and line info. It turns out that the Sub PMC doesn't
have the methods he needs. Johnathan Worthington corrected what he'd
said on IRC about how to walk the call chain, pointing out that, instead
of walking subs, you need to walk contexts, but that contexts aren't
actually PMCs because we don't have weak references yet.

Apparently, we will have weak references eventually, at which point
we'll be able to have context PMCs, which can be used for introspecting
on the call chain.

Me? I don't quite understand what's the difference between these
'contexts' of which Jonathan speaks and return continuations. But I'm
odd like that.

http://xrl.us/j2bm

  Q. Namespaces and classes
Leo wasn't entirely sure of what semantics are needed by namespace PMCs.
He talked around the issues and asked if he was going along sane lines.
I can't tell if Jonathan thought Leo was sane or not, but Leo seemed to
find the response useful.

http://xrl.us/j2bn

  Quis custodiet ipsos custodes?
Misspelling Juvenal slightly, Jerry Gay observed that there are no tests
for Parrot::Test and made a plea for this to be remedied. You're on your
own with the Latin.

http://xrl.us/j2bo

  PIC/JIT update
Leo announced that the PPC JIT core can now compile subs on the fly,
just like the x86 core. But only for integer code apparently.

http://xrl.us/j2bp

  Integer divide overflow
Leo observed an overflow issue with integer division and asked for
comments. Jonathan Worthington suggested going to the pub. It won't fix
the problem, but we'll feel better about it. We definitely seem to be
in Don't do that then. territory.

http://xrl.us/j2bq

  Find a multi-method/multi-sub by name and signature
Jonathan Worthington's work on a .NET translator 'ambles on'. He's
working on mapping .NET's static 

Um... this week's summary

2006-01-18 Thread The Perl 6 Summarizer
Unless Matt takes pity on me, and writes a summary at disgustingly
high speed, there won't be a summary this week. Assorted things got in
the way on Monday or Tuesday, and I'm now at my consulting gig 'til
the end of the week with no time for summarizing.

I'm really, really sorry.
-- 
Piers Cawley [EMAIL PROTECTED]
http://www.bofh.org.uk/


This week's summary

2006-01-03 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2006-01-01
Another year, another summary. You might think I'm going to summarize
the events of the whole year, but it turns out that chromatic's already
done it. So in the spirit of laziness, I'll just point you at his year
end summary.

http://xrl.us/jfai

Sadly for us all, he doesn't go into enough detail on the events of the
last week for me to go straight into the coda. I shall have to talk to
him about next year.

This week sees a big non-technical change in the Pugs camp, lots of
roadmapping and implementation in the Parrot camp, and a more and more
concrete feel of what the language is going to look like in the
perl6-language camp.

Pretty much business as usual really.

This week in perl6-compiler
  Runtime typecasting
Autrijus Tang is now Audrey Tang. Read her explanation on her blog.
Speaking personally I'm delighted that she's found the courage to make
the change and wish her the best of luck and happiness in her new/true
identity.

http://xrl.us/je9a

  Pugs on Cygwin
There was a fair amount of discussion on getting pugs and parrot running
in the Cygwin environment this week. Last time I looked, things were
working again.

http://xrl.us/jfaj

  This week's Pugs developments
Audrey's taken to summarizing pugs developments on her blog and to
posting digests of these posts on the list. She wrote about PIL and
Rules this week.

http://xrl.us/jfak -- Pugs-PIL developments

http://xrl.us/jfam -- Pugs-Rule developments

http://xrl.us/jfan -- Pugs-Rule: Grammar support

Meanwhile, in perl6-internals
  Threading PDD?
Patrick Michaud suggested, after a question from Klaas-Jan Stol, that it
might be a good idea to create a placeholder Threading PDD (Parrot
Design Document) noting that threading hasn't been specced yet and that
a draft would be welcomed. Warnock applies.

http://xrl.us/jfao

  Pugs is the official Perl 6?
Or am I putting words into Luke's mouth? Read, then decide.

http://xrl.us/jfap

  .imc or .pir? There can only be one
As part of the great Parrot reorganization, Chip declared that the IMC
vs PIR ambiguity had to be resolved. As he put it:

IMC vs. PIR

Two names enter

One name leaves

The name that left was PIR, any files you find with .imc extensions
should be cruelly laughed at while you kick sand in their faces.

http://xrl.us/jfaq

  Dynamic binding patch
Bob Rogers offered up a patch to implement dynamic binding of globals
for the list's consideration. Leo thought the patch was mostly sound,
but that the whole dynamic binding thing needed more thought and
infrastructure. Which is probably a broad hint to Chip and possibly
@Larry (said hint hasn't been taken yet though, well, not in public).

http://xrl.us/jfar

  Smoke testing
Leo pointed everyone at the Perl Image Testing Architecture, which has
possibly the coolest acronym of any Perl project in recent years. He
thought it would be useful to use for additional Parrot platform testing
as well.

http://xrl.us/jfas

http://ali.as/pita/

  Lots and lots of TODOs
I'm not going to enumerate them here, but Will Coleda, Matt Diephouse
and others have been adding loads of TODO entries to the Parrot
bugtracker. Which is nice.

  IMCC optimizer instruction duplication and opcode write/reads
Amos Robinson wanted to know how to go about duplicating instructions
and wondered about the correct semantics of in/out/inout arguments. Leo
came through with the answers.

http://xrl.us/jfat

Meanwhile in perl6-language
  Iterating over complex structures
Rob Kinyon applied the 'What does Ruby do?' pattern to the problem of
iterating over complex structures. Mostly it looks good, but I'm hoping
that someone else considers applying the 'What does Smalltalk do?'
pattern as well. Subject to tuit supply, I might even do that myself.

http://xrl.us/jfau

  Match objects
Who is Match, and to what does he object?

Sorry. Couldn't resist.

Patrick and Luke discussed the behaviour of match objects.

  (Array) introspection
Ilmari Vacklin wondered about how to introspect on the structure of
arrays and other data structures. Warnock applies.

http://xrl.us/jfav

  Array/list transformations
Rob Kinyon pointed out the difficulties of dealing with binding array
slices and other such goodies. Larry thought it wasn't really that
difficult (from the point of view of the perl programmer, things might
be different for the implementers)

http://xrl.us/jfaw

  Relationship between slurpy parameters
Austin Frank wondered about the different uses of prefix:* in
parameter lists and elsewhere. Stuart Cook had answers. Piers Cawley
worried about the current behaviour of prefix:* in parameter lists
and about how 

This week's summary

2005-12-19 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2005-12-18
Welcome to another Perl 6 summary. This has been a week of shootouts,
cleanups, relationships and cunning translations. Read on for the
details (or, this being a summary, pointers to the details).

This week in perl6-compiler
2 messages? Sometimes I wonder why I even bother summarizing this list;
I could just paste its contents in their entirety. However:

  Call for a Pumpking: Do you want a Ponie?
Jesse announced that Nicholas Clark was retiring as Ponie's Pumpking
following his departure from Fotango. So we're looking for another
volunteer to take Ponie from its current state to a working Perl 5
runtime fully integrated with Parrot. If you're a C programmer with a
good grasp of the Perl 5 internals and you're interested in taking on
the job, [EMAIL PROTECTED] is eager to hear from you.

http://xrl.us/i9rz

  Pugs, Javascript and Perl 5
Continuing Pugs' tradition of linguistic mashup, Chia-liang Kao
announced that Pugs Javascript backend can now support Perl5.

http://xrl.us/i9r2

Meanwhile, in perl6-internals
  Parrot Shootout
Work continued on implementing and optimizing Parrot's entry for the
Language Shootout.

http://xrl.us/i9r3

http://xrl.us/i9r4

http://xrl.us/i9r5

http://xrl.us/i9r6

http://xrl.us/i9r7

http://xrl.us/i9r8

  Variables, Aliasing and Undefined-ness
Matt Diephouse wondered how he should translate the following in to PIR
code:

  $var   = Foo;
  *alias = *var;
  $alias = undef;
  $alias = Baz;
  print $var, \n;

Audrey Autrijus Tang suggested that allowing multiple LexInfo names to
point to the same underlying register would make this sort of thing (and
several Perl6isms) a good deal easier to implement. Leo pointed out that
it actually had been implemented, though I'm not sure if Luthor includes
this. (Pugs always targets the latest Parrot release).

http://xrl.us/i9r9

  Cleaning up the build process
Joshua Hoblitt went to town on RT posting a breakdown of proposed
refactorings of the Parrot build process

  ParTCL shootout
Will Coleda suggested that it would be useful to set things up to run
the TCL shootout benchmarks on ParTCL. He's not exactly sure that they'd
*work* just yet (or be fast, come to that), but they'd certainly be a
handy test/benchmark suite. After a couple of patches, it seems that
ParTCL can at least run the hello benchmark. Still, a journey of a
1000 miles starts with but a single step and all that.

http://xrl.us/i9sa

  Parrot directory reorganization (phase 2 mark 3)
Jerry Gay's reorganization of the Parrot distribution's directory
structure continued apace. Reorganizing the JIT subdirectory and its
associated config system proved to be something of a sticking place, but
Joshua Hoblitt sorted things out.

http://xrl.us/i9sb

  Bug or feature?
Chip had some thoughts about PIR's macro support and concluded that we
need a robust multi-line quoting convention in order to pass multiple
lines of code to macros. He outlined some suggested syntax. Discussion
ensued, mostly favourable.

http://xrl.us/i9sc

  Building Parrot includes
Leo noted that the files in runtime/parrot/include/*.pasm are created by
configure. He argued that they should really be generated by a Makefile
rule, which would have the advantage of taking note of dependencies.
There followed a certain amount of quibbling with Joshua Hoblitt, but I
don't think anyone disagrees with the gist of the proposal.

http://xrl.us/i9sd

  Library loading - no more duplicates
Leo announce that, as a of r10458, Parrot doesn't load_bytecode from
the same file twice any more. Chip and Nicholas Clark applauded the
change and plotted ways to make it even more effective.

http://xrl.us/i9se

  Fixing japhs
Not content with implementing shootout benchmarks, Joshua Isom has also
fixed a few of Parrot's example japhs.

http://xrl.us/i9sf

  Q: String.get_integer
Leo had some questions about magical conversion between strings and
integers. Patrick and others reckoned that his proposed behaviour was
about right. Personally, I'm not convinced that the basic String PMC
should do any magic conversion, but PerlString definitely should.

http://xrl.us/i9sg

  Parrot Borking
Steve Gunnell had a problems with Parrot throwing segfaults. Leo gave
him some pointers to tracking the issue down and recommended using the
SVN repository and not the CVS mirror.

http://xrl.us/i9sh

Meanwhile, in perl6-language
  Relational data models and Perl 6
Darren Duncan's been doing some thinking about Relational data models
and how to support working with them in Perl 6 and posted the results of
his thought on this to the list. Lots of discussion ensued. There was a
fair amount 

This week's summary

2005-12-08 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-12-04
I heard a rumour on the London.pm mailing list week. Apparently the Perl
6 Summaries are no longer being published. As I'm sure you can imagine,
it came as something of a surprise to me.

This week has been all about Parrot, Leo's got the new lexical scheme,
calling conventions and exception handlers working and made Parrot
stricter about arguments. The end of the week saw the release of
'Luthor', version 0.4.0 of Parrot. Read on for more details...

This week in perl6-compiler
Um... one post in perl6-compiler this week. And that was crossposted to
perl6-language. And because it got posted at the end of the week, none
of the actual discussion occurred this week.

Moving swiftly on...

This week in perl6-internals
Much more going on here as everyone rushed towards the release of Parrot
0.4.0 Luthor at the end of the week.

  Exception handlers and calling conventions
As I predicted last week, Leo's brain dump about exception handling got
discussed this week. It was well liked, and after a small bit of sugar
was sprinkled on to make ParTCL's life a little easier (and possibly
unsprinkled later) all manner of things were well.

http://xrl.us/i5nt

  Subs may not contain dynamic call info, ever
Chip posted a clarification of his comments on what data could and
couldn't be hung off a Sub object at runtime. Let's be reentrant people.

http://xrl.us/i5nu

  PDD20 Tcl
Will Coleda announced that ParTCL is now working with the new lexically
lovely Parrot calling conventions. There was much rejoicing.

http://xrl.us/i5nv

  Test::More and Tests in PIR
Leo showed the love for chromatic's shiny pure parrot implementation of
Test::More. So the patch was applied.

http://xrl.us/i5nw

  Upcoming changes
Leo announced the scratchpad's impending doom and outlined the planned
change for comment. Nobody commented, and the changes went in.

http://xrl.us/i5nx

  Parrot directory reorganization
Quick quiz: where would you expect to find tests in the parrot
distribution? How about generated source files?

Jerry Gay proposed a reorganization to make things a little more lovely.

The consensus seemed to be that a reorg along Jerry's lines wouldn't be
a bad idea, but Chip pointed out that, whatever gets done it should be
done 'cautiously so as to minimize unpleasantness'. So Jerry is
proceeding cautiously, starting with a host of new TODO tickets in RT.

http://xrl.us/i5ny

  Solving = confusion: ':=' for aliasing
There are those of us who are wondering why this one took so long...

Chip proposed that people start to spell aliasing as := and assignment
as =. I think it's a really good idea, but then I don't have a large
amount of PIR code to maintain so what do I know. Some other folks
weren't so sure, but Chip is not to be denied. Discussion then span off
into what language to write the automagical translator in.

I believe this may involve writing it in PIR then converting it to PIL,
which would be converted to Perl 5 using pugs and then Larry's Perl 5 to
Perl 5 project could be used to convert it to XML, which could then be
modified using XSLT and converted back into PIR using some scary voodoo
magic.

Or they could just write it in Perl 5. Prosaic, but possible right now.

http://xrl.us/i5nz

  PDD03 Revisions
Chip announced that he'd put up another revision of PDD03 on Parrot
calling conventions. Most of the changes are simple clarifications and
flag renaming, but he's also proposing a new READONLY flag for
get_params to make it easy to support the default Perl 6 argument
mode. Response was muted, but favourable.

http://xrl.us/i5n2

  PDD03 and Overflow/Underflow
It's been mandated for ages that Parrot should throw an exception when
functions get called with the wrong number of arguments. It's always
been one of those things that will be implemented 'some day'. Well this
week had a someday in it as Leo made parrot do what it's supposed to do.
And broke PGE for a while...

http://xrl.us/i5n3

  PDD20 questions
Jonathan Sillito is a class act. He didn't just ask a bunch of questions
about the new PDD20 on lexical variables, he promised to take the
answers he received and use them to patch PDD20 to make things clearer.
Spurred on by this promise, Chip was unstinting in his answers and
clarifications of them. Which is nice.

http://xrl.us/i5n4

  PIR methods and local variables occupy the same 'namespace'
Allison Randal used Snarks, Boojums and Thingies to demonstrate a
possible problem with the way Parrots local variable and method
namespaces overlap. Leo pointed out that this can sometimes be useful.
So, for the time being, Parrot continues as is in this area. If you go
getting the 

This week's summary

2005-11-30 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-11-27
Another week passes. Another summary is written. Another sentence
remains steadfastly in the passive voice.

This week in perl6-compiler
  Perl 5 tests for PGE::P5Regexp
Jerry Gay announced that he'd checked in a subset of perl 5.9.2's regexp
tests to give PGE something to work on. Right now only 130 of 960 tests
are running, in part because the test harness he's using can't quite
cope with the test file syntax used for the original tests. I'm sure it
won't stay that way or long.

A couple of days later he announced that more tests were being converted
and that there were now 360 passing tests and a further 155 or so TODO
tests.

Well done Jerry.

http://xrl.us/i2be

  PDD 20 and :outer
Leo had some questions about the workings of lexical pads and :outer.
He showed a couple of examples in high level language and wondered if
his parrot conversions were right. Chip thought that Leo shouldn't worry
about implementing the Perl 5 semantics of a named inner subroutine
because the way Perl 5 does it is a bug not a feature. Dave Mitchell
wasn't so sure.

http://xrl.us/i2bf

  DynLexPad
Leo's working on implementing a DynLexPad PMC to provide 'a more dynamic
lexpad' akin to the new deprecated ScratchPad PMC. He outlined his
current plans and asked for comments from HLL authors about what they
needed.

http://xrl.us/i2bg

  Punie to AST
Allison has checked in the code to transform PunieGrammar match objects
into Abstract Syntax Trees (ASTs). Apparently the set of AST node types
she's using isn't quite the same as the Pugs PIL. Hopefully one day
we'll have a common AST format, and all manner of things shall be well.

http://xrl.us/i2bh

Meanwhile, in perl6-internals
  RESPONSIBLE_PARTIES or ENTITIES_AT_FAULT?
Joshua Hoblitt suggested that Jerry Gay should be added to the
RESPONSIBLE_PARTIES file as the person in charge of the test suite.
After a small amount of byplay suggesting the file be renamed, the
nomination was strongly seconded and Jerry's name added to the list.

http://xrl.us/i2bi

  Curses and parrot problems?
Josh Isam has been having problems with using the curses library under
both Darwin and freebsd. He wondered if anyone had any pointers for
fixing things. Leo thought it might be that the parrot ncurses support
was getting a function signature wrong somewhere and suggested Josh
check that.

http://xrl.us/i2bj

  Subs may not contain dynamic call info, ever
Repeat after Chip: Subs don't have callers. Call frames have callers.

After a short discussion with Leo, Chip wrote a short treatise on the
relationships between Subs and Closures, noting that they should only
hold static information.

http://xrl.us/i2bk

  Undefined labels
While working on TODO #37590 (catch illegal bsr at compile time), Leo's
made parrot rather more picky about labels and how they are used.
Essentially, if you weren't doing daft things with labels you're
probably all right. If you were, you should probably check this post.

After Leo checked the fixes in (r10168), several PGE tests started
breaking. Less than 6 hours later, Patrick check version r10176 in and
the tests started passing again. Leo (and I) was impressed.

http://xrl.us/i2bm

http://xrl.us/i2bn

  Exception handlers and calling conventions
Leo posted a brain dump about how to get exception handling to work in
Parrot. In particular he wanted help with syntax (exception handling
semantics aren't exactly rocket science when you've got a continuation
based virtual machine after all). Warnock applied (However, I am
reliably informed that next week's summary will have some responses;
anyone who suggests that that's because this summary is late will be
annoyingly Right).

http://xrl.us/i2bo

  Test::More and tests in PIR
Not content with having a pure PIR implementation of Test::Builder,
chromatic posted his implementation of Test::More in pure parrot.
Admittedly the current version should likely be called
Test::Less::Is::More, but the journey of 1000 cliches starts with a
single step and all that. And that's not all, the fearlessly lowercased
one intends to start work on the big daddy, Parrot::Test with an eye to
doing even more in Parrot. (Which makes a good deal of sense. After all,
the plan is to get Parrot to a point where it can be built without
needing a working perl installation)

http://xrl.us/i2bp

Meanwhile, in perl6-language
  \x{123a 123b 123c}
Juerd had praised Ruud H.G. van Tol's proposal of \x{123a 123b 123c}
as a replacement for \x{123a} \x{123b} \x{123c} in rules. Larry wasn't
so sure. He suggested \x[123a,123b,123c] but still wasn't exactly
happy with it. He also had some thoughts about character class 

This week's summary

2005-11-15 Thread The Perl 6 Summarizer
The Perl 6 Summary for the fortnight ending 2005-11-13
Welcome to another fortnight's worth of summary. We'll get back to a
weekly schedule one of these fine days, you see if we don't.

This fortnight in perl6-compiler
There was a surprisingly large amount of activity on the list, but
again, the place to look for perl6 compiler news is the Planet Perl Six
aggregator.

http://planetsix.perl.org/

  PGE improvements and changes
Patrick announced that he'd checked in some major changes to the PGE
internals. The changes include a shiny new shift-reduce operator
precedence parser which is used to parse the rules themselves. PGE
finally has a p6rule parsing rule which can be used to parse a valid
Perl 6 rule. There are other changes, but those two are the headlines.
Patrick asked for the usual questions, comments, patches and tests.

A couple of days later, he posted a more comprehensive overview of the
new and shiny bits in PGE.

http://xrl.us/ifuy

http://xrl.us/ifuz

  PGE problem with non-greedy quantifiers
Allison fell foul of some changes in the new PGE. This turned out to be
a bug in PGE, so Patrick fixed it.

http://xrl.us/ifu2

  The meaning of \n and \N
Noting that Synopsis 5 says that '\n now matches a logical (platform
independent) newline, not just \012', Patrick asked the list for more
details about what that should mean so he could get on and implement it
in PGE. He offered up a suggested matching rule. Larry thought that the
suggested rule was close enough for jazz.

http://xrl.us/ifu3

  [] and () on rule modifiers
Patrick continues to work on the PGE. This time he asked about the
behaviour of rule modifiers, with particular reference to the :w
modifier. Larry had answers.

http://xrl.us/ifu4

  Parrot 0.3.1 Wart released
Leo announced the release of Parrot 0.3.1 Wart, complete with shiny
new features like variable sized register frames and no more spilling, a
much better PGE (see above) and other goodies. The latest release has
more than 3000 tests, and that's probably still not enough.

http://xrl.us/ifu5

  Octal in p6rules (and strings)
Patrick Continued his voyage of stringy discovery, this time asking
about the black art of specifying glyphs/bytes/whatever using octal
notation. He wondered about his assumption that the correct way to do it
is with \o123 by analogy with using 0o123 to specify a number in
octal. He also wanted confirmation that the \nnn notation had been
dropped. A surprisingly long discussion ensued as Larry did a good deal
of thinking aloud and Patrick got on with implementing the nailed down
bits.

http://xrl.us/ifu6

Meanwhile, in perl6-internals
  SWIGging Parrot
John Lenz is one of the developers a SWIG, which started off as the
Python equivalent to Perl's XS. He had some questions about writing a
SWIG module for parrot and asked if there would be interest in having
SWIG be one of the 'official' ways of doing native calls from Parrot.
Leo thought not, pointing out that Parrot's NCI is fully dynamic and
groovy.

http://xrl.us/ifu7

  NCI using ffcall library
Garrett Goebel joined in the ongoing discussion of using ffcall to
implement the Parrot NCI (Native Call Interface) by pointing back to an
earlier discussion of using libffi to implement the Parrot NCI. Last
time round, Dan had pointed out that, because libffi is an external
library, there still needs to be a supported (if possibly hackish) way
of doing NCI that comes with Parrot, but that configure could probe for
external libraries to use where they are available.

http://xrl.us/ifu8

  Heredocs in function calls
Patrick wondered if there might be a convenient way to support heredoc
parameters in PIR function calls. Nicholas Clark wondered why one would
bother since most PIR code should be generated code.

Later on, Leo implemented them. About the only place they don't work now
is in macro arguments.

http://xrl.us/ifu9

http://xrl.us/ifva

  Simple register allocation
Summarizing a discussion on IRC, Patrick noted that it would be nice if
the PIR compiler had a way to use a very basic register allocation for
.subs that only use a small number of registers. After all, there's
little point in doing a complex analysis of control flow if a sub uses
(say) 5 registers at most. The problem is that this analysis gets harder
as the subs get longer (O(n) on the length of the sub). In the case of
PGE (for instance), the subs can get very long, with lots of control
flow statements, but use a maximum of 10 PMC, 9 int and 4 string
registers for the whole thing.

Warnock applies.

http://xrl.us/ifvb

  Careful with that bsr Eugene
Leo noted that, with the introduction of variable sized register frames,
it is no longer 

This week's summary

2005-11-04 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-10-30
Hmm... Thursday afternoon and I've only just started writing the
summary... What happened to professionalism? What happened to rigid,
albeit self-imposed deadlines?

Um... I've had a cold. The cats ate my homework.

This week in perl6-compiler
It's weird isn't it? Activity on Pugs and the other Perl 6 compiler
tools shows no signs of slowing (especially now conference season is
over), but the volume of mail on the list continues to be tiny. Autrijus
seems to be Erdösing round Europe and writing everything up on use.perl.
I could give you a bunch of links to various other blogs and journals
where various Perl 6 developers are writing up their work, but it's
probably easiest just to point at the Planet Perl Six aggregator. It's
good to see so much of this stuff becoming a little more visible.

http://planetsix.perl.org/

  Meanwhile, in perl6-internals
Discussion of the Parrot JSON serialization code span off into a
discussion of generalized serialization for Parrot data structures.

http://xrl.us/ia4m

  Determining the number of return values expected
Leo and Jonathan Worthington discussed how to find out about the number
and types of return values the caller expects. Jonathan ended up
implementing an experimental op to kick around.

http://xrl.us/ia4n

  Rules for changing APIs
Leo talked about the Parrot policy for changing APIs. In general, it's a
good idea not to have to change a public API, but in practice, it
happens. As Leo said, the general rule is You break it, you fix it, so
the policy is that if any API changes break anything in the Parrot
subversion tree, it's up to whoever changed the API either to fix it or
to work with the the sub project's 'owner' to get it fixed. Projects
that aren't in the tree will need to keep themselves up to date, but if
you didn't document your changes well enough, expect to be fielding
questions for a while after your changes.

http://xrl.us/ia4o

  check_progs is not portable
François Perrad pointed out that the check_progs subroutine used by
Parrot's config system doesn't work on windows. He suggested using the
CPAN module File::Which instead. This turned into a discussion about
whether it would be good to have a Bundle::Parrot set up on CPAN with
all the CPAN modules needed for Parrot to build, or if we should
continue to bring those modules that Parrot needs into the Parrot
distribution so that, once you've downloaded the Parrot tar file you
won't need to scurry off to CPAN for various supporting bits and pieces.

http://xrl.us/ia4p

  The Configure System
Understating the case somewhat, chromatic pointed out that the plugin
system for configuration is grotty. Everyone agreed pretty much, but the
question is whether to do anything about it since the current
configuration is supposed to be a stopgap solution until we get the
proposed miniparrot scheme up and running. Pretty big gap eh?

Hopefully this means we're going to get work started on the miniparrot
approach. Or maybe someone will clean up the stopgap. Neither would be
bad.

http://xrl.us/ia4q

  Yet another C compiler
Leo pointed everyone at the Amsterdam Compiler Kit, which is the default
compiler for Minix and wondered if anyone wanted to experiment with it
to see if it could compile parrot.

http://tack.sourceforge.net/

http://xrl.us/ia4r

  Deprecation warning
Leo announced that the newsub operator is about to be removed. Check
docs/compiler_faq.pod for details of the Right Way of making subs.
Patrick had a few questions so he could track the changes in PGE. Leo
answered them.

http://xrl.us/ia4s

  Compiling parrot with c++
Nick Glencross wondered if it would be a good idea to make it so that
Parrot couple be compiled by a compiler in C++ mode. The answer appeared
to be 'yes'.

http://xrl.us/ia4t

  Documenting new_pad
Jerry Gay asked about the use of the new_pad op, which appears to be
both undocumented and untested. Not good. He posted some apparently
reasonable code that fails. Matt Diephouse reduced it to a simpler
failing case and Leo tracked down the bug. None of which addresses the
lack of documentation of course, but it's a start.

http://xrl.us/ia4u

  All tests successful considered harmful
Jerry Gay pointed out that All tests successful is only a useful
message when you're confident that your test suite has good enough
coverage. Jerry thinks parrot has too few tests. So he's started writing
more and sending in patches. He noted that trying to write tests was a
very good way of discovering areas of Parrot that aren't sufficiently
(at all) specced. He called for others to join him in writing tests and
picking off parrot's low hanging fruit. Go 

This week's summary

2005-10-10 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-10-09
Hello, and welcome to the first Perl 6 Summary to be published on my
website rather than its former home at http://www.perl.com/

This week in perl6-compiler
  PGE error on failing subrules
Allison broke the resounding silence of the last two weeks by posting
about some PGE errors she was seeing. No reply yet.

http://xrl.us/hx2j

  Tests converted from pugs' rules.t to Parrot::Test::PGE
Yuval Kogman announced that he'd written a script to convert pugs's
rules tests into Parrot tests. The resulting test suite still needs some
attention, and he outlined what was needed. No response so far on the
list.

http://xrl.us/hx2k

Meanwhile, in perl6-internals
  Variable registers
Klaas-Jan Stol wondered about how the new lexical scheme was going to
work. In particular, he wanted to know what was happening to
scratchpads. Leo gave a very brief overview of the new scheme, which
uses register frames for static lexicals and more conventional
scratchpads for dynamic lexicals. As I understand it, they'll look
pretty much the same from the PIR writer's point of view. Leo promised a
PDD from Chip in the nearish future which would thrash out the details.

http://xrl.us/hx2m

  Exception handlers and calling conventions
Roger Browne wanted to know if exception handling had changed at the
same time as the calling conventions. He presented some code that
behaved differently depending on the Parrot version. Leo replied that
exceptions still wind up in P5 and Roger had found a bug. So Leo fixed
it.

http://xrl.us/hx2n

  Parrot 0.3.0 TODO
Having successfully got Parrot building on his Cygwin installation,
Robert Eaglestone was casting around for something to do and listed a
few possibilities. Will Coleda replied that he'd quite like to see a
working Parrot equivalent to Perl 5's $0.

http://xrl.us/hx2o

  Parrot 0.3.0 and Tru64
Jarkko Hietaniemi posted a bunch of issues with Parrot on the Tru64
architecture. Leo addressed them. I'm not sure they're all fixed yet
though.

  TCL - Compiling
Will Coleda announced that ParTcl is now a compiler. Some tests are
failing but Will claimed that this is because Jerry Gay was getting
bored with all the tests passing. Jerry was delighted. As Will said
later in the thread, the current iteration is doing the bare minimum
needed to be called a compiler, but of course that will change over
time. Good work Will.

http://xrl.us/hx2p

  BROKEN.pod
Hey, now he's no longer my editor, I don't have to worry about making
sure I don't put his name at the beginning of a sentence! Anyhow,
chromatic posted a first cut at BROKEN.pod, the big list of broken
stuff. There followed some discussion of how this should be organised in
the future, particularly on the RT side. After discussion, it was
decided to keep it as a single file for now, but to aim for generating
it from multiple RT tickets in the future.

http://xrl.us/hx2q

  Stack call directives are deprecated
Using .param, .arg, .return, .result and call to do stack
based calling conventions is now deprecated. Use save, restore,
bsr and ret instead. Or, ideally, use the standard Parrot calling
conventions.

http://xrl.us/hx2r

  Deprecation of rx ops
Brent Royal-Gordon confirmed that he was happy enough to see his
experimental regular expression specific ops removed from Parrot.

They've not been removed yet, but they're certainly deprecated.

http://xrl.us/hx2s

  Software Architecture of Parrot
Klaas-Jan Stol informed us that his Software Architecture professor had
approved his proposal to write a paper on the architecture of Parrot. He
outlined his plans for the paper and hoped that he would be able to
count on people for proof-reading when the time came. Leo thought it was
a marvellous idea (so do I come to that, but I didn't say anything on
the list.)

http://xrl.us/hx2t

  ParTcl command line options, etc
Will Coleda kept us abreast of his progress with ParTcl in this thread,
initially announcing the new -e flag which allowed for writing one
liners. After a certain amount of havering before a final interface
arrived, ParTcl also acquired a --pir flag, which dumps the results of
compilation to a PIR file.

http://xrl.us/hx2u

  BASIC compiler
Will Coleda (does the man never sleep?) announced that the BASIC
compiler is (sort of) working again with Parrot 0.3.0. There are still
problems with the windows display code (the offending code is simply
commented out), but code that doesn't need that appears to be working
now. He noted that BASIC could really use a decent test suite, right now
he was simply working to get programs like eliza2.bas and wumpus.bas
working, which is okay as far as it goes, but he 

Summary rollover date

2005-09-26 Thread The Perl 6 Summarizer
I thought we'd switched to a Monday deadline for the summary and a Sunday night
roll over. I just noticed your last summary ended on a Monday night.

-- 
Piers Cawley [EMAIL PROTECTED]
http://www.bofh.org.uk/


This week's summary

2005-09-26 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-09-25
Hello all. It's another Monday afternoon, which means I'm writing
another summary. There's no cricket to distract me this week, so I'm
letting iTunes Party Shuffle attempt to distract me instead.

This week in perl6-compiler
Nobody said anything on the list this week. I blame IRC.

Meanwhile, in perl6-internals
  About multithreading
Leo pointed everyone at an article about about 'A Fundamental Turn
Toward Concurrency in Software'. Jonathan Worthington liked it.

http://xrl.us/hq4w

  Bug Wrangling
It's possibly a failing of mine as a summary writer, but I've not been
following Parrot's RT traffic. Luckily, Joshua Hoblitt has volunteered
as a Bug Wrangler and he's hoping to increase the signal/noise ratio. To
that end, he'll be pinging people who reported bugs that are older than
3 or 4 months to find out if they're still current or can be closed. It
sounds like a mammoth task in the short term, but it also sounds like a
very useful project that'll get easier once the big house cleaning has
been done.

He hinted that this is the sort of project that *really* benefits from
having more than one volunteer doing the work.

Later in the week, he posted a bunch of IMCC TODOs.

http://xrl.us/hq4x

  Tcl, exceptions in leo-ctx5
Andy Dougherty posted some more details about a bug in ParTcl when
running under Leo's branch. The bug seems to depend on whether there's a
slash in the script path passed to ParTcl. There was no response, but
hopefully work continues on fixing it.

http://xrl.us/hq4y

  [RFC] Debug Segment, HLL Debug segment and Source Segment
Jonathan Worthington posted a discussion of how debugging segments could
work in Parrot in the future. He outlined a suggested unified debug
segment format that should work for both PASM/PIR and high level
language debugging requirements.

Roger Browne applauded Jonathan's efforts and made some further
suggestions.

And then the thread got Warnocked.

http://xrl.us/hq4z

  Magic is useless unless verifiable
Jonathan Worthington posted a discussion about how Parrot bytecode files
should handle their magic number. At present, apparently, Parrot checks
the magic number only after it's tried to work out word size and
bytecode. Which is somewhat bass ackward. After some discussion, Chip
reckoned that the solution would be to have a magic string rather than a
magic number.

http://xrl.us/hq42

  loadlib and libraries with '.' in the name
Ross McFarland found a problem with loadlib. Apparently it won't let
you load a library that has a '.' in the name. It turns out that fixing
things robustly isn't quite as straightforward as it at first appears.
Discussion ensued.

Ross posted a patch to RT.

http://xrl.us/hq43

http://xrl.us/hq44

  Find copied and pasted code
That gentleman of great intelligence, sagacity, wit and annoying
capitalization; the one and only chromatic wondered what running PMD's
copy and paste detector plugin on Parrot's .c files would show. If
anyone has run it yet, they haven't reported on its findings, but it
surely won't be long now.

http://pmd.sf.net/cpd.html

http://xrl.us/hq45

  Amber's Ashes Announced
Roger Browne announced the release of Amber for Parrot version 0.2.3a
(Ashes). According to the announcement, Amber's a Eiffel like scripting
language for Parrot. Joe Bob says Check it out!

http://xamber.org/index.html

http://xrl.us/hq46

Meanwhile, in perl6-language
  \(...)
Oh look, a thread in p6l that's still going more than a fortnight later.
How unusual. This particular instance of the form is nominally about the
behaviour of \($a, $b) but various subthreads have drifted onto
discussions of context in general and meaningful whitespace. So far
there has been no discussion of the return value of
Pin.head.contents.grep - Angel $a {$a.is_dancing} but I'm sure it's
only a matter of time.

http://xrl.us/hq47

  Junctions, patterns and fmap again
Luke continued to discuss Junctions and fmap with Stuart Cook.

http://xrl.us/hq48

  Conditional wrapper blocks
Yuval Kogman discussed the inelegance of code that reads like:

  if $condition { pre }

  unconditional midsection; 

  if $condition { post }

And proposed a possible syntax that could be implemented in a macro. I
confess that I would be taking this thread more seriously if, when I was
writing this summary I had been able to come up with a realistic example
of code that had this problem.

Anyhoo, it sparked a good deal of discussion.

http://xrl.us/hq49

  Object Model Pictures
Stevan Little's ongoing development of the Perl 6 MetaModel continues to
yield pictures. This week he incorporated Roles into the bigger picture.


Summary for the last 3 weeks

2005-09-12 Thread The Perl 6 Summarizer
The Perl 6 Summary from 2005-08-24 to 2005-09-11
It's been a while hasn't it?

We'll start as usual with perl6-compiler

This week in perl6-compiler
  Changed ??:: to ??!! in Pugs
Following discussion of the ternary operator in perl6-language, Benjamin
Smith altered pugs to use the new ??!! syntax.

http://xrl.us/hjb5

Meanwhile in perl6-internals
  Which 'English'?
Joshua Hoblitt posted a patch to intro.pod fixing a few typos and
wondered whether the docs should be in British or American English.
Apparently the Perl 5 style rule is that British authors shouldn't be
required to write American English, and vice versa, but that a
consistent style within a document is preferred. The consensus so far
seems to be Any documentation is good so write what's comfortable for
you.

http://xrl.us/hjb6

  Meanwhile, at the test
Warne just got Trescothick out. 109 for 4

  Python PMCs
Sam Ruby, Leo and Chip had a discussion of how to implement python
semantics for parrot. I'm not sure I followed what was going on, but it
looked like good 'crunchy' stuff.

http://xrl.us/hjb7

  Zcode interpreter release
Amir Karger announced that he'd adopted the Zcode interpreter that Leo
posted in February (having, according to Amir, done the hard parts).
Apparently there's 41 opcodes to do just to get version 3 of the
Z-machine working, and then there's the problem of making Zops into
loadable Parrot ops. He had a few problems with the test suite which got
fixed in discussion.

http://xrl.us/hjb8

  Pirate refactoring report
Michal Wallace posted an update on Pirate (the python to parrot
compiler). He and Curtis Hall have been taking advantage of a Google
Summer of Code grant to refactor the (Curse! Now Flintoff's out. Caught
 bowled Warne for 8) current mess. Their first step was a generic
transformation module which has apparently made life easier for the
compiler module.

They've also produced a plan in code for how they hope they'll have
things working once the refactoring's finished and asked for comments.
So far comments have not been forthcoming.

http://xrl.us/hjb9

http://xrl.us/hjca

  Tcl in the leo-ctx5 branch
Will Coleda's been having a crack at getting ParTcl working with the
leo-ctx5 branch and had a few problems. It turns out that he'd tickled a
bug that Leo described as 'a bit non-trivial'. It took him a while, but
it got fixed eventually (Over 10 days, but he did have the excuse of
being at YAPC::Europe for a chunk of that time).

http://xrl.us/hjcb

  Meanwhile at the Oval
They've gone in for lunch at 127 for 5. Hopefully I'll be able to get
down to some summary writing without being on the edge of my seat for a
while.

  Branch Review
Chip posted a review of the leo-ctx5 branch prior, describing it as A
significant improvement. The body of the review covers user visible
changes and a few niggles with the current state of the branch. Leo
replied with a few questions and explanations.

http://xrl.us/hjcc

  GMC release
Nattfodd announced the 'release' of GMC, the generation garbage
collector he's been working on as part of Google's Summer of Code. It's
not quite bug free yet, but the SoC deadline was the 1st of September,
so that's when it got released. Discussion ensued, hopefully helping to
triangulate bugs.

http://xrl.us/hjcd

  Call for B0rked
Following a discussion with Chip and Leo, chromatic posted a call for
entries in a 'very specific TODO list'. A list of things that should
work, but don't. He contributed a couple himself. Various other
suggestions were offered.

http://xrl.us/hjce

  Optimizer Documentation
Curtis Rawls spent part of his Summer of Code project wishing there was
better documentation of the Parrot optimizer. So he wrote some. Brent
Royal-Gordon converted it to POD format, and Leo asked for someone to
add it to the repository.

http://xrl.us/hjcf

  HLL Namespace Design
Matt Diephouse posted a list of namespace features that he thinks are
necessary to support all the target languages and asked for some
comments. He got several, including one from Larry.

http://xrl.us/hjcg

  Global Destruction
Nicholas Clark had some questions about finalization and destruction in
Parrot. In particular, he asked: Does parrot make any guarantee that
all objects will be rendered down to bare memory before program exit.
Leo answered and the answer was good enough for Ponie. Huzzah.

http://xrl.us/hjch

Meanwhile, at the Oval
Ah... they're back on the pitch... I may be slowing down again...

Meanwhile, in perl6-language
  Demagicalizing Pairs
Discussion of Luke's proposal to demagicalize Pairs continued. It turns
out that it's actually a discussion of how to do named argument
calling...


This week's summary

2005-08-15 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20050814
As you will note from the date in the title, it's been a short week.
We're switching back to a midnight Sunday/Monday rollover in order to
make life easier for the perl.com types. So, if I can avoid being
distracted too much by the second Ashes test we'll try and get the
summary finished on before Monday is out, which should please chromatic.

This week in perl6-compiler
Another low volume week in perl6-compiler; probably because, with the
high speed of pugs development, most of the discussion happens on IRC.

  Container model - pictures and questions
Autrijus fielded some questions about and updated the pictures of the
container model.

http://xrl.us/g5kk

  Why PXPerl?
Robert (No Surname) asked what were the benefits of PXPerl over the
ActiveState distribution. In short, PXPerl comes with Parrot and Pugs,
which ActiveState doesn't. If you set your path appropriately, you can
continue to use the ActiveState Perl and just rely on PXPerl for Parrot
and Pugs.

http://xrl.us/g5km

  Hoisting lexical declarations
Larry answered some of Autrijus's questions about Perl 6's lexical
scoping rules. Apparently what Pugs currently does is close enough to
sane to be going on with.

http://xrl.us/g5kn

  Warnock in Pugsland
Autrijus noted that, in Pugsland, a Warnocked patch usually means that
the person who posted the patch simply got given a committer bit and
didn't mention the fact on the list.

http://xrl.us/g5ko

  MetaModel Notes
Nathan Gray posted some notes and ASCII art about the Metamodel.
Autrijus added pointers to further pictures.

http://xrl.us/g5kp

http://xrl.us/g5kq

http://xrl.us/g5kr

Meanwhile, in perl6-internals
  Updated intro.pod
Jonathan Worthington posted a rewrite of Parrot's intro.pod document,
now with a discussion of PIR. Huzzah!

http://xrl.us/g5ks

  Test::Builder and friends on Parrot
Following prompting from Geoff Young and Jeff Horwitz, chromatic has
implemented Test::Builder and Test::Builder::Tester in pure parrot. For
his next trick, he intends to port Test::More and Parrot::Test.

Tests are good, m'kay?

http://xrl.us/g5kt

  How to add a new opcode?
Gerd Pokorra asked how to add an opcode to Parrot. Klaas-Jan Stol and
Leo gave the answers.

http://xrl.us/g5ku

  Cleaning up the call opcodes
Leo reposted about cleaning up the various function calling opcodes to
take account of the fact that the calling conventions have changed. He
asked for opinions and actually got a couple, which is handy since he
got Warnocked last time.

http://xrl.us/g5kv

  parrot -I
Amir Karger wondered if there was some way of telling Parrot to add
directories to its load path. Leo seemed not to think it was that good
an idea, and proposed using a relative path in a .include directive.

http://xrl.us/g5kw

  Dominance Frontiers
Curtis Rawls continued his work on dominance frontiers to improve
Parrot's optimizer.

http://xrl.us/g5kx

  PGE globber, empty strings
Will Coleda reported that trying to match empty strings with PGE's
glob implementation. It turned out to be a problem with Data::Escape.
Leo fixed it.

http://xrl.us/g5ky

  Deprecated opcodes
Leo posted a list of opcodes that are due for the chop (or alteration)
soon. If you're doing anything with Parrot, it's probably a good idea to
take a look at this. One of those who did was chromatic, who asked if
Leo could give some examples of translating code so as not to use the
old forms.

http://xrl.us/g5kz

Meanwhile, in perl6-language
Hmm... 8 balls to go with one wicket needed. I think I'll pause for a
while...

Damn. Australia have saved the game.

  Translating (or at least parsing) Java interface definitions
Tim Bunce wondered if anyone had done any work on parsing Java interface
declarations and (ideally) translating them to roughly equivalent Perl
6. Apparently Gaal Yahas has done something along these lines (with
Parse::RecDescent for Perl 5) but doesn't own the code. He outlined the
approach he took.

http://xrl.us/g5k2

  Perl 6 Meta Object Protocols and $object.meta.isa(?)
Stevan Little is busy documenting the Perl 6 Meta Model that he's
implemented in Perl 5 and that Autrijus is busy porting to Haskell. He
posted an overview to the list and asked for comment. There then
followed lots of discussion. I think I understood some of it.

http://xrl.us/g5k3

  $object.meta.isa(?) redux
Stevan split the discussion of $object.meta.isa(?) off from the
earlier metamodel thread into a thread of its own and asked for comments
once more. Larry commented that the Apocalypses are primarily intended
to be entertaining rather than factual. Also in this thread, Luke let
slip that there's now a 

This week's summary

2005-07-20 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-07-19
Welcome to another Perl 6 Summary, brought to you by the words
'displacement' and 'activity'. So far today I've caught up with
everything unread in NetNewsWire, my Flickr groups, every other mailing
list I'm subscribed to and completed about 5 Sudoku. And now I'm
dragging out this introduction and I don't know why; I enjoy writing
these things.

This week in perl6-compiler
Another quiet week on the list. However, you only have to watch the svn
commit log and the other stuff on PlanetSix to know that things are
still proceeding apace. Last time I looked it seemed that Stevan Little
was working on bootstrapping the Perl 5 implementation of the Perl 6
MetaModel so that it's implemented in terms of itself.

Rather mindbogglingly, Pugs is now targeting Javascript as well.

The Current Pugs release is 6.2.8

http://xrl.us/gtdv

  Creating threads in BEGIN
Nicholas Clark posted what he described as a 'note to collective self'
wondering about how Perl 6 will cope with people creating threads inside
BEGIN blocks. According to Luke it won't. Larry thought that it might
be okay to create threads at CHECK time, so long as any spawned threads
didn't do any real work later than CHECK time.

http://xrl.us/gtdw

  Perl 6 Modules
Gav... (I presume the ellipsis is important to someone) wondered what he
needed to do to write Perl 6 modules. Nathan Gray pointed him at the
porting howto in the pugs distribution.

http://xrl.us/gtdx

http://xrl.us/gtdy

  Is namespace qualification really required?
Phil Crow came across some weirdness with namespace resolution. It seems
that you have to explicitly qualify function names in signatures.
Autrijus agreed that it was a bug and asked for Phil to write a TODO
test. Discussion ensued -- I think it's fixed in SVN now.

http://xrl.us/gtd2

  Parsing perl 6 grammars
Nathan Gray wondered about the state of Jeff 'Japhy' Pinyan's effort to
implement a Perl 6 rules parser. Japhy said that it's been on hold for a
while, but that he'd started to work on it again, basing it on his
earlier Regexp::Parser module.

http://xrl.us/gtd4

Meanwhile, in perl6-internals
  PMC changes?
Nicholas Clark wondered if the PMC layout is likely to remain stable, or
if there might be changes in relation to the generational garbage
collector. In particular, he wanted to know if the API would remain
stable. Leo thought that there might be changes in the layout, but the
API shouldn't change.

http://xrl.us/gtd5

  ParTcl Accelerator
Will Coleda showed some timings for ParTcl, the Parrot implementation of
Tcl and made a few suggestions about how to get things going faster.
Patrick and Leo mused on the issues involved.

http://xrl.us/gtd6

  Partitioning PMCs
Nicholas Clark had some questions about making PMCs and Ponie play well
together, with particular reference to using SvFLAGS().

http://xrl.us/gtd7

  Embedding/extending interface
Nicholas Clark wondered if chromatic was still waiting for confirmation
that his automated embedding tools were the Right Thing. Apparently,
chromatic is waiting for confirmation, but offered to send his existing
patch, if only to force the discussion.

http://xrl.us/gtd8

  Ponie Questions
Nicholas Clark had a bunch of questions about various subsystems, mostly
in relation to Ponie. Leo came good with answers.

http://xrl.us/gtd9

http://xrl.us/gtea

http://xrl.us/gteb

  Parrot Project Management
I'm not sure if Will Coleda's suffering culture shock about the way
Parrot project management is done, or if we're really not doing it
right. The first rule of Parrot/Perl 6 development is that if you really
want something then the only way to guarantee that it gets done is to do
it yourself. It's certainly worked for me over the years.

http://xrl.us/gted

  Tcl GC issues... solved
Matt Diephouse announced that as of r8617 in svn, the longstanding GC
bug that was occasionally tickled by ParTcl has been fixed. There was no
rejoicing on list, but at least one summarizer was really pleased to
hear it.

http://xrl.us/gtee

  GMC for dummies
Summer of Code intern, Alexandre Buisse, who is working on a new GC
system for Parrot pointed us all at an introduction to the Generational
Mark and Compact scheme that he's working to implement. He and Leo had a
discussion about implications, assumptions and other stuff.

Bob Rogers asked some tricky questions relating to circular structures
and timely destruction. Discussion of this continues.

http://xrl.us/gtef

http://xrl.us/gteg

  Register Allocation fun
There was a flurry of patches from Curtis Rawls who appears to be
working on refactoring and (one hopes) fixing the IMCC register

This week's summary

2005-07-06 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2005-07-05
My, doesn't time fly? Another fortnight gone and another summary to
write. It's a hard life I tell you!

This week in perl6-compiler
  Where's everyone gone?
It seems that most of the Perl 6 compiler development is being discussed
at Hackathons and IRC, and summarized in developers' weblogs. What's a
summarizer to do? For now, I'll point you at Planet Perl 6, which
aggregates a bunch of relevant blogs.

http://xrl.us/gn5n

  PGE now supports grammars, built-in rules
Allison Randal raved about the totally awesome PGE grammar support. I
doubt she's alone in her enthusiasm.

http://xrl.us/gn5o

  Multiple implementations are good, m'kay?
Patrick discussed the idea of a 'final' Perl 6 compiler, pointing out
that it isn't clear that there needs to be a final compiler. So long
as multiple implementations are compatible...

http://xrl.us/gn5p

Meanwhile, in perl6-internals
  New calling conventions
Klaas-Jan Stol asked a bunch of questions about the new calling
conventions and Leo answered them.

http://xrl.us/gn5q

  Parrot Segfaults
What's a tester to do? You find a bug that makes Parrot dump core, so
you write a test to document the bug and make sure it gets fixed. But
the test leaves core files lying about. It goes without saying that
Parrot should never dump core without the active assistance of an NCI
call or some other unsafe call blowing up in its face.

Which makes it a little embarrassing that PIR code generated by Pugs can
cause a parrot segfault, though that appears to have been caused by
mixed up calling convention style in the generated call.

http://xrl.us/gn5r

http://xrl.us/gn5s - Brian Wheeler's segfaulting Pugs script

  Python PMCs
Leo pointed out that the various dynclasses/py*.pmc parrot support PMCs
don't yet support all the semantics that Python needs. He outlined some
outstanding issues announced that, as calling conventions and context
handling were changing he'd be turning off compiling py*.pmc for the
time being.

http://xrl.us/gn5t

  PGE bug
It appears that the upcoming changes in Parrot's context handling tweak
a bug in PGE. The discussion moved onto a discussion of PGE's
implementation strategy, Nicholas Clark was keen to make sure it didn't
repeat some of the Perl 5's regex engine's infelicities. While this
discussion continued, Leo spent half a day with gdb and tracked down the
problem, which turned out to be that a register wasn't getting
initialized in the right place.

http://xrl.us/gn5u

  Left-recursive grammars are bad m'kay?
While experimenting with PGE grammars, Will Coleda managed to write a
left-recursive grammar that blew Parrot's call stack with impressive
ease. Luke apologized for things blowing up so spectacularly, but
pointed out that left-recursive grammars weren't supported, and showed a
rewritten grammar that didn't have the same problem (but which doesn't
appear to match the same expressions).

http://xrl.us/gn5v

  Coroutines
Leo pointed to a summary of coroutines, and noted that we still hadn't
defined the syntax of Parrot coroutines, especially with respect to
argument passing. He discussed it with Matt Fowles and solicited a set
of tests that expressed the semantics they came up with.

http://xrl.us/gn5w

ftp://ftp.inf.puc-rio.br/pub/docs/techreports/04_15_moura.pdf

  ParTcl, Perl6 Grammars
Will Coleda announced that, thanks to Matt Diephouse's work, ParTcl (Tcl
on Parrot) is now able to run part of tcl's cvs-latest test suite. The
tests aren't fully native yet, they're currently driven through a Perl
test harness and only passing 10% of the tests, but hopefully the
situation will improve and ParTcl will end up able to run the tests
completely natively (while passing far more of them). Congratulations on
the work so far though.

http://xrl.us/gn5x

  Python and Parrot
Kevin Tew popped up to say that he too is working on a Python compiler
targetting parrot and wondered how to handle things like Python's self
parameter. Michal Wallace and Leo chipped in with suggestions.

http://xrl.us/gn5y

  Another month, another release
Has it really been a month? Seems so. Parrot walked through the
traditional feature freeze, code freeze before being released on Sunday.
The latest release is called 'Geeksunite', referencing the website that
discusses Chip's problems with his former employer. You should
definitely visit the Geeksunite site -- Chip needs our help.

http://xrl.us/gn5z

http://geeksunite.org/ -- Support your local Pumpking

  lower in default find_name scope
Patrick posted a code fragment whose output surprised him -- it turned
out that looking up lower as a name in the default scope returns an
NCI object. 

This week's summary

2005-06-23 Thread The Perl 6 Summarizer
The Perl 6 summary for the fortnight ending 2005-06-21
Surprise! It's me again. You may be wondering what happened to last
week's summary (I know I was) and where Matt had gone. Well, I'm not
entirely sure where exactly he is now, but last week was moving week for
him.

Those of you reading this on the mailing lists may also be wondering why
this summary is so late. Um... three words: World of Warcraft.

This week in perl6-compiler
As a Summarizer, when you see the 'last fortnight' view of a mailing
list containing 21 messages, several thoughts spring, unbidden, to your
mind: Is my mail broken again? Has everyone given up? Phew, this group
won't take long to do.

It turns out that the answer to both of those questions is No. What
actually happened was that most of the stuff that normally happens in
mail happened at the Austrian Perl Workshop and Leo Tötsch's house, with
a side order of IRC conversation. Oh, and a bunch of spin off threads in
p6l and p6i.

So, in the last fortnight Pugs reached the point where it has a (mostly)
working Parrot back end and BÁRTHAZI Andras wondered if we shouldn't
start a perl6-general mailing list.

http://xrl.us/gia7 - Autrijus's Pugs development journal

http://xrl.us/gia8 - perl6-general anyone?

This week in perl6-internals
140 messages in this one. p6c lulled me into a false sense of security.
Again, you may notice a bewilderingly fast rate of change this summary.
It turns out that they weren't just working on Pugs at Leo's house. Perl
6 Hackathons give great productivity.

  This is not your father's Parrot
There's been some serious work going on under the Parrot hood in the
last two weeks. The calling conventions have been drastically reworked
and now uses 4 new opcodes, set_args, set_returns, get_params and
get_results. At the time of writing, IMCC doesn't give you full
syntactic help with them, but they're easy enough to use explicitly for
the time being and the help is getting there. Check out the PDD for
details.

Also getting rejigged is the continuation/register frame architecture.
Taking advantage of the fact that this is a *virtual* machine, we now
have an unlimited number of registers per register frame. Combine this
with the new calling conventions, in which arguments are passed outside
the register frame and all of a sudden a full continuation becomes a
simple pointer to the register frame and everything gets saved as if by
magic. Which opens up a whole bunch of possibilities. Which has
interesting implications for the register allocator.

http://xrl.us/gia9 -- The new calling conventions

http://use.perl.org/~chip/journal/ -- Chip's design notes

  New Generational GC scheme
Alexandre Buisse posted his outline for a Google Summer of Code project
to implement a shiny new Generational Garbage Collection scheme.
Discussion of tunability and threading issues followed.

http://xrl.us/giba

  Ordered Hashes -- more thoughts
Steve Tolkin helpfully provided a summary of his thoughts about ordered
hashes: An ordered hash that does not support deletes could cause a
user visible bug. At a minimum it should support the special case of
delete that is supported by the Perl each() operator. Dan pointed out
that reusing the ordered hash code for anything other than the lexical
pad it was specifically implemented for was just looking for trouble.

http://xrl.us/gibb

  The thread that I really hoped Matt would be summarizing
AKA Attack of the 50 foot register allocator vs. the undead
continuation monster. Piers Cawley and Chip had something of a
disagreement about interactions between continuations and the register
allocator. After discussion on IRC it became apparent that they were
talking past each other. The new 'the register frame is the
continuation' means that yes, the register allocator definitely can't
rely on being able to reuse registers that persist over function calls,
but that's all right because you can always grab more registers.

http://xrl.us/gibc

  Missing MMD default functions
Remember the missing Multimethod functions I mentioned last time. At the
time Chip hadn't ruled on whether taking them out was the Right Thing or
not. He has since ruled that it was.

This is probably not quite the right place to suggest this, but what the
heck. Maybe in future when user visible changes of this sort are planned
they should spend at least one release period deprecated and throwing
warnings when used.

http://xrl.us/gibd

  PGE, namespaced rules
William Coleda worried that PGE subrules appear to be globally scoped.
It turns out that Patrick worries too, but is currently in the process
of thrashing out how they should be scoped. He outlined his current
thinking.


This week's summary, correctly formatted

2005-06-23 Thread The Perl 6 Summarizer
The Perl 6 summary for the fortnight ending 2005-06-21
Surprise! It's me again. You may be wondering what happened to last
week's summary (I know I was) and where Matt had gone. Well, I'm not
entirely sure where exactly he is now, but last week was moving week for
him.

Those of you reading this on the mailing lists may also be wondering why
this summary is so late. Um... three words: World of Warcraft.

This week in perl6-compiler
As a Summarizer, when you see the 'last fortnight' view of a mailing
list containing 21 messages, several thoughts spring, unbidden, to your
mind: Is my mail broken again? Has everyone given up? Phew, this group
won't take long to do.

It turns out that the answer to both of those questions is No. What
actually happened was that most of the stuff that normally happens in
mail happened at the Austrian Perl Workshop and Leo Tötsch's house, with
a side order of IRC conversation. Oh, and a bunch of spin off threads in
p6l and p6i.

So, in the last fortnight Pugs reached the point where it has a (mostly)
working Parrot back end and BÁRTHAZI Andras wondered if we shouldn't
start a perl6-general mailing list.

http://xrl.us/gicz - Autrijus's Pugs development journal

http://xrl.us/gic2 - perl6-general anyone?

This week in perl6-internals
140 messages in this one. p6c lulled me into a false sense of security.
Again, you may notice a bewilderingly fast rate of change this summary.
It turns out that they weren't just working on Pugs at Leo's house. Perl
6 Hackathons give great productivity.

  This is not your father's Parrot
There's been some serious work going on under the Parrot hood in the
last two weeks. The calling conventions have been drastically reworked
and now uses 4 new opcodes, set_args, set_returns, get_params and
get_results. At the time of writing, IMCC doesn't give you full
syntactic help with them, but they're easy enough to use explicitly for
the time being and the help is getting there. Check out the PDD for
details.

Also getting rejigged is the continuation/register frame architecture.
Taking advantage of the fact that this is a *virtual* machine, we now
have an unlimited number of registers per register frame. Combine this
with the new calling conventions, in which arguments are passed outside
the register frame and all of a sudden a full continuation becomes a
simple pointer to the register frame and everything gets saved as if by
magic. Which opens up a whole bunch of possibilities. Which has
interesting implications for the register allocator.

http://xrl.us/gic3 -- The new calling conventions

http://use.perl.org/~chip/journal/ -- Chip's design notes

  New Generational GC scheme
Alexandre Buisse posted his outline for a Google Summer of Code project
to implement a shiny new Generational Garbage Collection scheme.
Discussion of tunability and threading issues followed.

http://xrl.us/gic4

  Ordered Hashes -- more thoughts
Steve Tolkin helpfully provided a summary of his thoughts about ordered
hashes: An ordered hash that does not support deletes could cause a
user visible bug. At a minimum it should support the special case of
delete that is supported by the Perl each() operator. Dan pointed out
that reusing the ordered hash code for anything other than the lexical
pad it was specifically implemented for was just looking for trouble.

http://xrl.us/gic5

  The thread that I really hoped Matt would be summarizing
AKA Attack of the 50 foot register allocator vs. the undead
continuation monster. Piers Cawley and Chip had something of a
disagreement about interactions between continuations and the register
allocator. After discussion on IRC it became apparent that they were
talking past each other. The new 'the register frame is the
continuation' means that yes, the register allocator definitely can't
rely on being able to reuse registers that persist over function calls,
but that's all right because you can always grab more registers.

http://xrl.us/gic6

  Missing MMD default functions
Remember the missing Multimethod functions I mentioned last time. At the
time Chip hadn't ruled on whether taking them out was the Right Thing or
not. He has since ruled that it was.

This is probably not quite the right place to suggest this, but what the
heck. Maybe in future when user visible changes of this sort are planned
they should spend at least one release period deprecated and throwing
warnings when used.

http://xrl.us/gic7

  PGE, namespaced rules
William Coleda worried that PGE subrules appear to be globally scoped.
It turns out that Patrick worries too, but is currently in the process
of thrashing out how they should be scoped. He outlined his current
thinking.


This week's summary

2005-06-08 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 2005-06-07
Crumbs. I've remembered to write the summary this week. Now if I can
just remember to bill O'Reilly for, err, 2003's summaries. Heck, it's
not like waiting for the dollar to get stronger has paid off.

Ah well, no use crying over spilt milk. On with the show. Maybe, just
maybe, darwinports will work its magic and I'll have a working Haskell
compiler by the time I've finished writing.

This week in perl6-compiler
  Undef issues
I'd probably forgotten this, but Larry pointed out that, in Perl 6 there
would no longer be a function undef() and a value undef. Instead
there'd be a function undefine() and a value undef. But he thought
that we should usually fail() to construct our undefined values.

http://xrl.us/gcxo

This week in perl6-internals
  Keys
I'm not sure I understood what TOGoS was driving at with a suggestion
about keys and properties. Luckily Leo, Dan and Chip all seemed to. The
discussion continued through the week.

http://xrl.us/gcxp

  Loop Improvements
Oh no! It's the register allocator problems again. One of these days I
swear I'm going to swot up on this stuff properly, work out whether it's
really the case that full continuations break any conceivable register
allocator and summarize all the issues for everyone in a nice white
paper/summary.

http://xrl.us/gcxq

  HP-UX build notes
Nick Glencross posted some of his issues with getting parrot up on an
HP-UX machine. After a good deal of discussion and tool chain fettling
he got things building and posted a patch to fix the knowledge which was
promptly applied (r8280 for those of you with the svn chops to know how
to take advantage of that).

http://xrl.us/gcxs

  mod_pugs status
Jeff Horwitz announced that mod_parrot now comes bundled with mod_pugs,
which means that you can now write Apache extensions in Perl 6. I don't
know about you, but my mind is still boggling.

http://xrl.us/gcxt

  Parrot 0.2.1
Parrot spent most of the week in a feature freeze for the release of
Parrot 0.2.1 APW which went ahead as planned on the 4th of June.

http://xrl.us/gcxu

  Parrot on Solaris
Peter Sinnott reported problems with Parrot on Solaris. It turns out
that different implementations of atan behave slightly differently,
which isn't good. I believe the problem remains unresolved.

http://xrl.us/gcxv

  Parrot on Mac OS
Joshua Juran's questions about getting Parrot running on MacOS Classic
were Warnocked.

http://xrl.us/gcxw

  Parrot tests get TODO
Continuing the drive for consistent testing structures everywhere in
Perl land, chromatic applied a patch to Parrot::Test which makes TODO
tests work in a way that Test::Builder understands. Hurrah!

http://xrl.us/gcxx

  Missing MMD default functions
Dan was somewhat bemused to find that the MMD functions' defaults had
disappeared when he did a sync with subversion. He wondered whether this
was deliberate. Turns out that it was. I'm not sure whether Chip's ruled
that it was Right though.

http://xrl.us/gcxy

  Google's Summer of Code 2005
Remember earlier when I talked about IMCC's register allocation? Well
Dheeraj Khumar Arora is looking at working on improving IMCC's
optimizations as part of Google's summer of code 2005. The usual thread
ensued.

http://xrl.us/gcxz

  Building nci/dynclasses on HP-UX
Not content with getting Parrot to build on HP-UX, Nick Glencross next
set his sights on getting nci/dynclasses working on HP-UX. It sounds
like there'll be a patch forthcoming some time next week.

http://xrl.us/gcx2

http://xrl.us/gcx3 -- Nick paints the big HP-UX picture

  Announcing amber for parrot 0.2.1
Roger Browne announced another new language that targets Parrot. It's
called amber, and it borrows a good deal of syntax and semantics from
Eiffel with a large sprinkling of Ruby for good measure.

http://xamber.org/ -- the Amber website

http://xrl.us/gcx4

  A note WRT exception handlers
Leo posted a quick discussion of the correct use of exception handlers
in Parrot. Essentially, the rule is, your exception handler should jump
back to the point just after the exception handler block:

push_eh except_N
  # Code that might fail
clear_eh
resume_N:
...
except_N:
...
goto resume_N

Easy eh?

http://xrl.us/gcx5

Meanwhile in perl6-language
  The reduce metaoperator thread
Remember when I discussed this thread two weeks ago? It's still going
strong.

Larry ended up stating that there will be an optional property
identval on operators which will be set by default on all operators
with obvious identity values. Or it might be called initvalue.

http://xrl.us/gcx6


This week's Perl 6 Summary

2005-05-25 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-05-24
Note to self: It's generally not a good idea to go installing Tiger on
the day you return from holiday. It's especially not a good idea to fail
to check that it didn't completely and utterly radish your Postfix
configuration. And your emacs. And the backing store for your website.
And a bunch of other stuff. It's an especially bad idea not to have
backups of things like your aliases file...

Nor is it a good idea to get preoccupied with all these joys and
completely forget that you're supposed to be writ ting the Perl 6
summary.

Ahem.

I'm very, very sorry.

So, on with the show.

This week in perl6-compiler
  Inline::Pugs
Autrijus announced the availability of Inline::Pugs. If you've ever been
moved to mix up Perls 5 and 6 in one program, your prayers have been
answered. Just grab Pugs and Inline and you're set. Brian Ingerson made
things even more delightfully evil:

 #!perl
 use pugs;
 sub postfix:! { [*] 1..$_ }
 sub sum_factorial { [+] 0..$_! }
 no pugs;
 print sum_factorial(3); # 21

http://xrl.us/f73s

  Experimental Coroutine support
Autrijus announced that Pugs now has an experimental implementation of
coroutines. It's almost certainly not final, but it's good enough for
exploration and feedback purposes.

http://xrl.us/f73t

  Graphing tool for PerlGuts Illustrated
Yuval Kogman asked what tool was used to generate the 'pretty diagrams'
in PerlGuts Illustrated because he wanted to use it for diagrams in a
forthcoming PugsGuts Illustrated. Ingy said that Gisle had hand hacked
postscript based on initial diagrams drawn on graph paper. After some
discussion, the plan seems to be that Yuval will just draw diagrams,
scan them and bung them into the pugs repository. He'll rely on the
LazyWeb to turn them into beautiful scalable graphics.

http://www.lazyweb.org/

http://xrl.us/f73u

  Perl Development Server
Okay everyone, repeat after me: Juerd is a star!

You may ask me why, and I shall tell you.

Juerd and his cosponsors, Twistspace will making a Perl 6 development
server available over the internet to any Perl 6 developers who are
working on 'everything that improves Perl 6 development'. So, if you've
been put off working on Pugs by the hassles of getting Haskell working
on your machine, or if you have the kind of bandwidth that makes svn
updates a painful prospect, worry no longer. Just sign up for a
development account.

There was much rejoicing and suggesting of hostnames. Rather bizarrely,
there was also discussion of the etymology of 'sipuli' (Finnish for
'onion' in case you were wondering).

http://xrl.us/f73v

  Two releases in one day
Autrijus announced the release of Pugs 6.2.4. About half an hour later
he announced the release of Pugs 6.2.5.

http://xrl.us/f73w

  Undef issues
Adrian Taylor thought he'd found some issues with Perl 6's understanding
of undef. It turned out that he'd found some issues with his own
understanding of same.

http://xrl.us/f73x

  Method/attribute chaining
Alex Gutteridge found some weirdness with the chaining of autogenerated
attribute methods (I wonder if the same weirdness occurs with hand
rolled attribute methods). So far it remains unfixed, but given the
speed of Pugs development I doubt it'll stay that way for long.

http://xrl.us/f73y

Meanwhile, in perl6-internals
  Parrot as an extension language
Colin Adams continued to have problems using Parrot as an extension
language for Eiffel. It turns out that interfacing between statically
strongly typed languages and Parrot isn't easy.

http://xrl.us/f73z

  Fixing t/src/manifest.t
Dino Morelli reported problems with t/src/manifest.t and wondered how
some of the failures came about. Jürgen Bömmels thought that the problem
was an overzealous test -- the original version of which simply ensured
that version control and the MANIFEST were in sync. He provided his
suggested version of a less eager, but still svn compatible test.
Further discussion thrashed out the various difference use cases for
manifest checking.

http://xrl.us/f733

  More t/p6rules tests
Dino Morelli posted a bunch of tests for the Perl 6 rules. Well, he did
once he'd done battling his mailer's somewhat bizarre choice of MIME
type for his test files. Remember, if you're about to attach a .t file
to a message you send to the list, make sure your mailer doesn't declare
it to be an application/x-troff file -- text/plain is your fiend.

Patches were applied.

http://xrl.us/f734

  Stressing the hash
Leo asked for some stress and bench mark tests for hashes because he was
in the process of redoing src/hash.c. Bob Rogers provided one.


This week's summary

2005-04-27 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-04-26
It's my turn again. What fun.

What, I hear you all ask, has been going on in the crazy mixed up
world of Perl 6 design and development? Read this summary and,
beginning with perl6-compiler, I shall tell you.

This week in perl6-compiler
  Refactoring Test.pm
Stevan Little had an idea while he was refactoring Test.pm. He wondered
whether to get rid of the various todo_* functions in favour of just
using a t/force_todo file. Which led him to wonder about doing away with
t/force_todo in favour of a force_todo() function. He asked for
opinions before he started making the change (which isn't exactly a
refactoring).

General opinion seemed favourable, though I confess I am perturbed by
the proposed release trick of proclaiming all failures, whether expected
or not, to be TODOs. The current system generates an explicit list of
tests that are failing on 'core' systems. The proposed solution would
seem to make all failures equal, so even unexpected 'platform' failures
wouldn't be caught.

http://xrl.us/fwkn

  Weird thing with say ++$
What do you know, say $i++, ++$i behaves weirdly.

http://xrl.us/fwko

  Pugs 6.2.1 released
Autrijus announced the availability of Pugs 6.2.1 which comes complete
with much shininess.

http://xrl.us/fwkp

This week in perl6-language
  Parrot Common Lisp
Cory Spencer's port of Common Lisp to Parrot was much admired (it's got
some way to go before it's *really* Common Lisp, but it's a cracking
start). Uwe Volker suggested porting emacs to it and was promptly
accused of being Erik Naggum by Lars Balker Rasmussen.

Cory acquired (or is acquiring) a committer bit.

http://xrl.us/fwkq

  State of the Tcl
Will Coleda gave the list a heads up on the state of ParTCL, the Parrot
TCL port. It's still failing some tests, apparently because of GC
issues.

A few days later, these problems went away (we're not quite sure how
though).

http://xrl.us/fwkr

http://xrl.us/fwks

  alarm() and later()
Leo stated that Parrot provides subsecond timer resolution as well as
alarm callbacks and multiple timers. Hurrah!

http://xrl.us/fwkt

  RFC assign Px, Py
Leo posted a discussion of the semantics of assign and set, with a
proposed change to PIR syntax. Warnock applies.

http://xrl.us/fwku

  RFC unary operations
In another RFC, Leo discussed changes to Parrot's unary operators and
proposed other changes.

http://xrl.us/fwkv

  One more MMD -- assignment
Dan noted that he was writing a great deal of code in his set_pmc
vtable methods that looked very MMD-like. He suggested that adding
assignment to the list of MMD functions might be a good idea. Leo
pointed him at his assignment RFC.

http://xrl.us/fwkw

  Fun with morph()
Nicholas Clark wondered about the responsibilities of the morph method
with respect to handling PMC_struct_val. In the subsequent discussion
it became apparent that morph can get complicated. Bob Rogers supplied
a bunch of extra complications and wondered about the feasibility of
making Parrot morph-free. Leo agreed that it seemed feasible and is
probably a good idea. Another subthread made my head hurt -- I can
understand this stuff much better when I'm sat 'round a table with
people and we're kept supplied with drinks, notepaper and, in Leo's
case, industrial quantities of tobacco. (Ah... YAPC::Paris!)

http://xrl.us/fwkx

  Building an incomplete code generator into Parrot
[EMAIL PROTECTED] (that's the only name I have) has started work on
implementing a JIT backend for the AMD64 processor. He asked a few
questions and Leo provided answers.

http://xrl.us/fwky

  Calling Convention Abstraction
This thread continues to rumble on. Leo said that what he wants is for
the HLL folks to create a workable scheme for abstract and extendable
calling conventions that could express all the various HLL specific
semantics of function calling, pointing out that, unless we have this we
can forget interoperability (or at least, easy interop).

http://xrl.us/fwkz

  Alpha development Box
Bob Rogers 'has' an Alpha development box that can be used for open
source projects. He wondered if the Parrot project could make use of it,
and if so what was the best way of doing this. Some discussion occurred
on the list, but I assume (hope) more happened offline.

http://xrl.us/fwk2

Meanwhile, in perl6-language
  Calling junctions of closures
Brad Bowman wondered about calling junctions of closures. He guessed
that the rule is call 'em all and return a similarly structured
junction. but wasn't sure. Thomas Sandlaß wasn't so sure.

My head hurts.

http://xrl.us/fwk3

  { = } autocomposition
Autrijus asked about the following fragment:

%ret 

Summary for the week ending 2005-04-12

2005-04-12 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2005-04-12
Whoa! Deja vu! Where'd Matt go?

Don't worry, Matt's still writing summaries. As you may have noticed,
Matt's been writing summaries every two weeks. And now so am I. Because
we love you, we've decided to arrange things so I write summaries in the
weeks when Matt doesn't. We could do it the other way, but that could be
seen by some as self-defeating. Heck, when I say 'some' I probably mean
'all'.

So, bear with me while I remember how to type all those accented
characters and get back into the swing of writing these things (and of
reading everything in the mailing lists once more -- someone should
write a summary for us summarizers...)

I'll be sticking to my old 'lists in alphabetical order' scheme of
writing summaries. So, let's get going

This week in perl6-compiler
  Array of arrays, hash of hashes, elems, last
Lev Selector asked for confirmation that Pugs didn't support compound
data structures, @ar.elems or @ar.last. Autrijus and others
confirmed that they didn't then, but they do now.

http://xrl.us/fq99

  MakeMaker6 stalls on takeoff
Darren Duncan pointed out that, whilst last week's summary had claimed
he was working on implementing MakeMaker in Perl 6 which is, sadly not
the case. He reckoned he'd possibly look into it again when he had tuits
and Pugs was more complete (supporting objects, for instance).

http://xrl.us/fraa

  Declaration oddness
Roie Marianer pointed out what looks like some weirdness in Pugs'
parsing of lexically scoped subroutines. Warnock applies.

http://xrl.us/frab

  Toronto pugs hackathon
John Macdonald asked for people who wanted to come to the YAPC::NA pugs
hackathon to get in touch with him beforehand as spaces there are
limited. If you're interested, drop him a line.

http://xrl.us/frac

  Pugs slice oddities
Andrew Savige noticed some weirdness in pugs's slicing behaviour. He
posted some example code showing the problem. Autrijus agreed that there
was a problem and explained that he was in the process of rewriting all
the variable types, symbol tables and casting rules to agree with the
Perl 5 model as described in perltie.pod. The rewrite is currently
failing tests, so he posted a patch for people who want to play. On
Sunday, he bit the bullet and committed the entire 2500 line patch which
'touches pretty much all evaluator code'.

http://xrl.us/frad -- Autrijus's patch

http://xrl.us/frae -- Autrijus on the patch

http://xrl.us/fraf

Meanwhile, in perl6-internals
  Tcl, Unicode
William Coleda has been trying to add Unicode support to his TCL
implementation and he fell across issues with missing methods in
charset/unicode.h. Leo waved a magic wand and checked in an
implementation which he fenced about with disclaimers.

http://xrl.us/frag

  The status of Ponie
Nicholas Clark confessed that Ponie had been pretty much stalled for
some time, but sweetened the pill by announcing that it's about to
restart and that he would be able to allocate at least one day a week to
the project. He pointed people at the Ponie roadmap which breaks down
the required tasks between here and a first release, complete with time
estimates. If you're interested in getting Ponie to a ridable state,
this would be a good place to start.

People were pleased.

http://xrl.us/frah -- Ponie intro/roadmap

http://xrl.us/frai

  Monthly release schedule
Chip donned his Fearless Leader hat and announced that, effective,
Parrot would be moving to a monthly release schedule (with an initial
three week 'month' to get things into sync). There was some debate about
whether Solaris/SPARC should be one of the officially required monthly
release platforms (darwin, linux-x86-gcc3.* and win32-ms-cl were Chip's
initial blessed three). This morphed into a discussion of Tinderbox;
apparently there are cool things happening behind the scenes.

http://xrl.us/fraj

  Calling convention abstraction
What do you know? You go away for n months and when you come back people
are *still* talking about calling conventions.

http://xrl.us/fram

  Dynamic Perl, Part 1
William Coleda announced that he was starting work on removing the
core's dependence on Perl* PMCs in favour of using language agnostic
PMCs internally and loading the Perl ones dynamically as required.
Everything but PerlArray was dealt with quickly and names and ways
forward with that tricky case were discussed. It looks like we're going
to have a 'ResizablePMCArray' added to the core once people have the
tuits.

http://xrl.us/fran

  Subversion
Another discussion that wouldn't go away back when I was last writing
summaries has come to a head. Parrot's finally migrating from CVS to
Subversion. By the time 

So long, and thanks for all the fish!

2004-10-14 Thread The Perl 6 Summarizer
I tried, I really did, but I'm afraid that I must raise the white flag
to my teacher training for the next while and give up writing the Perl 6
Summary until at least after Christmas. 

I've had a great time doing this for the last two and a half years, I
hope you've all enjoyed it too. It's been a privilege to see the
progress that's been made with Parrot since I started. Dan, Leo and the
rest of the p6i team have done fantastic work -- it's only when you stop
to think about what Parrot looked like two years ago and then compare it
with the recent release that you get a real sense of how far we've
come. Thanks guys.

Thanks to the language folks, Larry, Allison, Damian, and all the
many and various denizens of perl6-language. Following the list has
been an education. Every time I find myself thinking a proposal is
simply poisonous, along comes Larry in fugu-chef mode to extract the
good stuff that sets your mind a tingling and chuck away the stuff that
would leave you paralyzed and dying on the floor. I don't know how he
does it, but I'm very glad that he can. It's no wonder that p6l felt
like it was spinning its wheels for a while there while Larry was busy
being ill. 

Thanks to O'Reilly for continuing to publish the summaries on perl.com,
and to Robert Spier and Ask for holding their archives on perl.org (and
for all the other work they do for perl.org, including the various RT
installations). The work they did in getting the perl6 lists onto
groups.google.com made the task of working out appropriate URLs for
messages far easier than in the bad old days.

Thanks to everyone who ever sent me feedback; I've mentioned Warnock's
dilemma many times in these summaries, it's always good to be gently
lifted from its horns by a word or two of praise or damnation. While I'm
about it, thanks to Bryan Warnock for first identifying his dilemma and
for writing the original Perl 6 summaries that gave me the idea in the
first place.

Thanks to you all for reading, whether you sent me feedback or not.

I'm not about to stop writing. I'm slowly working through chromatic's
'Write Your Life' project. It's far easier than summarizing; all the
material I need is already in my head, and I can bash out words even
when I don't have net access. I may not have stopped writing the
summaries for good either; I just haven't got computrons to spare for
writing them at the moment. 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.

Sorry things have rather fizzled out; I just didn't realise until I
started quite how demanding this course would be. And I don't just mean
because I've got to wear a suit. 

-- 
Piers Cawley -- Former Perl 6 Summarizer
http://www.bofh.org.uk/



This week's summary

2004-09-26 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-09-24
So, this is my last summary before I start my teaching practice.
Hopefully I've got things set up so writing the summary isn't going to
interfere with that, and vice versa.

This week in perl6-compiler
  State of Rules
Discussion of the state of the Perl 6 compiler (with particular
reference to the rules engine) continued. People were concerned with
making sure that the rules engine that Luke and Patrick are working on
would be flexible enough to cope with different languages in 'closures'.

  Synopsis 5 updated
Ed Peschko asked that there be some way of 'turning the rules engine
inside out' to make something which, given a rule, would generate
strings that could match against it. Actually, this is the second time
Ed asked for this, as Luke reminded him. Luke went on to implement a
generator in hypothetical perl 6, which seemed to please everyone but
Ed.

Rod Adams wins the 'making the summarizer smile wryly' occasional prize.

http://xrl.us/c8ax

Meanwhile, in perl6-internals
  Problems Reimplementing Parrot Forth
Matt Diephouse fell foul of problems with the compile and compreg
opcodes in his efforts to reimplement Parrot Forth in PIR. Steve Fink
made some suggestions for workarounds based on his work on writing a
regular expression compiler.

From further discussion, it seems that, if you're implementing a stack
based language, you'd do well to manage the language's stack yourself
rather than using Parrot's User stack which is interestingly scoped.

http://xrl.us/c8ay

  __init not being magically called
Will Coleda had some problems with a class's __init function not being
called magically. Nobody else could reproduce the problem. After a
certain amount of confusion, Will did make realclean; perl
Configure.pl; make; make test and all was well again.

If you're experiencing a weird problem, it's probably best to do the
rebuild before posting to the list. Or you could fix the build system to
have more accurate dependencies...

http://xrl.us/c8az

  Incremental collector and finalization
Jeff Clites had some questions about how finalizers interact with the
work that Leo's been doing on implementing an incremental garbage
collector for Parrot. Leo had some thoughts, but noted that there's
still a problem with ordered finalization and destruction.

[Your summarizer is really starting to get a feel for why old school GC
types really don't like finalizers...]

http://xrl.us/c8a2

  Python bytecode volunteers
Dan asked for volunteers to finish the task of getting python bytecode
working on Parrot; he reckoned that the work was mostly done, but that
neither he nor Leo have the time to go the last couple of yards.

Come on people, this would definitely be a cool thing to have.

http://xrl.us/c8a3

  mod_parrot 0.0
Jeff Horwitz announced the release of version 0.0 of his mod_parrot
Apache module. It's remarkably powerful for version 0.0

http://xrl.us/c8a4

  The compile op and building compilers
Dan had some thoughts on tidying up the spec for the compreg and
compile operators and asked for comments before he nailed the spec
down. Steve Fink and Leo had comments.

http://xrl.us/c8a5

  Misc. remarks about YAPC::EU
Leo popped up to thank everyone who'd donated to The Perl Foundation and
thus supported the purchase of shiny new Apple Powerbook G4 that he'd
used to run his presentation at YAPC Europe in Belfast.

He went on to outline some of the things he'd done and heard in Belfast,
including the fact that one French teacher is using Parrot for teaching
assembly language.

http://xrl.us/c8a6

  Parrot m4 0.0.8
Bernhard Schmalhofer announced version 0.0.8 of Parrot m4. There's no
new functionality 'just' some structural improvement and tidying.

http://xrl.us/c8a7

  Parrot TCL
Will Coleda posted a progress report on his Parrot TCL implementation
which is progressing gradually towards being a full blown TCL
implementation; he's working towards using special Tcl* PMCs with real
TCL semantics instead of the current scheme which uses Perl PMCs.

http://xrl.us/c8a8

  Namespaces, Part 1
Dan posted the first part of his Namespaces spec. There was, of course,
much discussion. Inevitably, there was another revision, and further
discussion.

http://xrl.us/c8a9

http://xrl.us/c8ba -- The revised version

  Towards a new call scheme
Leo posted an overview of the work he was doing on Parrot's internals to
get a faster calling scheme in place (as discussed endlessly). The usual
perl6-internals discussion and revision process swung into action.

http://xrl.us/c8bb

  Hello everybody
Remember the French teacher that Leo mentioned? Well, the man himself,
Christian Aperghis-Tramoni 

This week's summary

2004-09-22 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-09-17
Another week, another summary, and I'm running late. So:

This week in perl6-compiler
  The current state of the compiler
Discussion of the current state of the nascent perl 6 compiler and how
best to contribute to its development even before code has been released
continued. The best way to contribute right now is Write tests. Don't
worry about what the test harness should look like, simple tables of
rules, test strings and expected matches will be very welcome.

The status discussion also touched on how to handle different languages
in the closures embedded in rules.

  Bootstrapping the grammar
Uri Guttman had some thoughts on bootstrapping Perl 6's grammar. He
hoped that his suggested approach would enable lots of people to work on
the thing at once without necessarily getting in each other's way. Adam
Turoff pointed everyone at a detailed description of how Squeak (a free
Smalltalk) got bootstrapped.

http://xrl.us/c6kp

  Synopsis 5 updated
Larry announced that he has updated Synopsis 5, which covers Grammars,
rules and all that good stuff. It's now only a week out of date instead
of two years and counting.

http://xrl.us/c6kq

http://dev.perl.org/perl6/synopsis/S05.html -- Synopsis 5

This week on perl6-internals
  Namespaces
Discussion of Dan's namespace proposal really got going this week.

http://xrl.us/c6kr

  Buffered IO and Parrot Forth
Matt Diephouse fell foul of a problem with IO buffering when he was
taking a look at Parrot Forth, so he asked the list for help. Leo
supplied the help, so Matt supplied a patch to Parrot Forth which made
it print its prompts correctly when run under modern (CVS) Parrot.

http://xrl.us/c6ks

  Pragma @LOAD is not always honoured
Stéphane Payrard was bemused to discovered that parrot routines declared
with the @LOAD pragma don't get automatically executed if they're in the
main segment. He suggested that the issue be either fixed or documented.

Leo documented it.

http://xrl.us/c6kt

  NCI basics
Charles Somebody tried to crash the monomonikered big leagues by failing
to vouchsafe his surname when he posted a question about getting NCI to
work with wxWindows. For reasons that escape me, the answers (and,
indeed, Charles's surname -- Lowell) appeared in a different thread.

Sadly the answers were more along the lines of Oops, that's a bug that
is, we'll add it to the RT queue. Still better to have it identified
than festering away undiscovered.

http://xrl.us/c6ku

http://xrl.us/c6kv

  Language::Zcode
Who says Perl 6 is the only language that's taking a long time to appear
on Parrot? Amir Karger posted his first annual update on his attempt to
get Parrot to emulate the Z-machine. Hopefully subsequent updates will
be more frequent.

http://xrl.us/c6kw

Meanwhile, in perl6-language
  Ordinals, Hashes and Arrays, oh my!
David Green had some thoughts on Perl 6's compound data structures.
Larry didn't sound convinced.

http://xrl.us/c6kx

  Writing pack, or something like it
Michele Dondi wondered how to write pack-like functions in Perl 6,
where the first argument is a string which specifies the signature of
the rest of the function call. The proposal stumped me, but maybe you
all can make something of it.

http://xrl.us/c6ky

  But is it intuitive?
No it isn't.

http://xrl.us/c6kz

  S5 Grammar compositions
While peacefully reading Synopsis 5 (Rules  Grammars), Dave Whipp
noticed that grammatical inheritance wasn't as flexible as the Role
based compositions that can be used when working with classes. Larry
wondered allowed about having grammar roles, but I don't think they've
been officially mandated yet...

http://xrl.us/c6k2

  Still about subroutines...
Michele Dondi continues to make my head hurt with zir proposals. In part
it's because I've still not worked out whether zie is male or female,
and in part because, well, zir proposals are challenging. In this
particular proposal zie wondered if there would be a way to magically
write recursive anonymous functions without having to introduce a new
symbol of some sort.

Luke and Larry think there will be such a way, but the precise syntax
hasn't been settled just yet.

http://xrl.us/c6k3

  Range quantifier woes
Jonathan Scott Duff wasn't happy with the new range quantifier syntax in
Synopsis 5. He posted a bunch of questions that were nagging at him.
Larry had some good answers (if you're interested in contributing to the
design of Perl 6 you should *really* read Larry's replies).

http://xrl.us/c6k4

Announcements, Apologies, Acknowledgements
And so ends another summary. I hope you liked it. Sorry for the delay if
you're reading this on the mailing list; this 

This week's Summary

2004-09-06 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-09-03
Another week, a free weekend, and still I haven't started writing the
summary until Monday. Still, I don't actually start at college 'til next
week, so that's all right then.

We start with perl6-internals.

  Compile op with return values
The discussion of how to return something from dynamically compiled code
continued with Leo, Dan and Steve Fink all working to clarify and
address the issues.

http://xrl.us/cybq

  Library loading
Dan started the process of nailing down Parrot's dynamic loading API so
that it can be added to the embedding interface. Steve Fink and Aaron
Sherman had suggestions.

http://xrl.us/cybr

  Pathological register allocation scenarios
Gregor N Purdy had asked Dan if his work compiler could be made to spit
out structurally equivalent C code to the Parrot code that was breaking
IMCC. His idea being that we could then see how C compilers dealt with
such nastiness. Dan thought that, whilst this was a good idea, it would
be too much work to implement. Gregor wasn't so sure.

http://xrl.us/cybs

  Dan and Leo demonstrate comic timing. Again.
14:17:09 GMT Dan: PerlHash test 20 is failing? Anyone know what's up so
we can fix it?

15:30:41 GMT Leo: It stopped failing at 15:55 CEST (13:55 GMT)

16:32:29 GMT Dan: D'oh!

We love it when a patch comes together.

http://xrl.us/cybt

  PMC Instantiation
Leo had raised issues with the current scheme for PMC instantiation.
This week Dan came through with some design which got discussed and (I
think) implemented.

http://xrl.us/cybu

  Last bits of the basic math semantics
If you believe Barbie, Math is hard. She's right, up to a point. The
list's spent a couple of weeks now sorting out the design of Parrots
underlying mathematical and numeric systems to make sure that maths
works right (for sufficiently useful values of 'right'). This particular
line of discussion covers rotations and stuff, where you're actually
treating a number as a bit field.

http://xrl.us/cybv

  Cross-compiling parrot
And you thought compiling Parrot on a Win32 box was hard. Robert
Schwebel wants to cross compile Parrot and isn't having a good time. Dan
wasn't surprised because the Parrot build process still gets most of its
information from the local perl installation which will generally be
wrong when you're cross compiling.

Dan noted that part of the problem is that we don't have people on the
team with a need or the experience of doing cross compilation and added
that he'd be thrilled if this were to change. Any patches to make things
better for cross compilers will, of course, be gratefully received.

http://xrl.us/cybw

  Proposal for a new PMC layout and more
Leo's concerned that the current PMC layout isn't the Right Thing, and
laid out a proposal describing some changes he thinks would be
worthwhile. In essence, he argues for removing the requirement for fixed
sized PMC headers and separate variable sized buffers in favour of
unifying buffers and PMCs so that PMCs become variable sized, thus
eliminating some time consuming indirection, and space consuming
overheads.

Nicholas Clark thought the proposal was interesting, but said that,
since the proposed changes would be invisible to the user, he'd be far
happier with a functionally complete implementation of parrot with
stable, useful APIs.

Dan rejected the proposal (both for technical reasons and because he
agreed with Nicholas). I don't think Leo was convinced by the technical
reasons, but the Let's get the interfaces finished! argument clinched
it.

http://xrl.us/cybx

http://xrl.us/cyby -- Dan explains why not.

  Semantics for regexes
Dan appears to have opened an entertaining can of worms when he outlined
his view of the minimum string semantics required to support a regular
expression engine and asked for comments. Boy did he get them. And boy
did they run off in all sorts of strange directions. Interesting
directions mind. Anyway, further down the thread, Dan, Chip Salzenburg
and Patrick Michaud seemed to reach something approximating agreement
about the low level semantics required.

http://xrl.us/cybz

  TODOs and calls for volunteers
Leo came up with a list of things that need fixing/implementing and
asked for volunteers. These include sorting out what happens with the
experimental ops, implementing new_extended for every PMC class and
finishing up BigInt's MMD and vtable functions.

He also had some proposals for how we should get the Integer classes
properly implemented now we know what the semantics will be.

http://xrl.us/cyb2

http://xrl.us/cyb3

http://xrl.us/cyb4

http://xrl.us/cyb5

Meanwhile, in perl6-language
  Roles trying to 

This Week's Summary

2004-09-02 Thread The Perl 6 Summarizer
NB: The links are probably broken at present. Normal service will
hopefully be resumed once Google gets caught up with the perl6 lists.

The Perl 6 Summary for the week ending 2004-08-27
Where does the time go? I blame folk festivals. Once I'm getting busy
with the teacher training I'm going to have weekends free to write the
summaries. And if you'll believe that...

We start with perl6-internals.

  Incremental garbage collection
Discussion of implementing incremental garbage collection continued.

  Calling conventions for unprototyped subroutines
Mattia Barbon asked for some clarification of how the calling
conventions work for unprototyped subroutines in IMCC. Specifically,
whether IMCC was behaving as documented in the Parrot Design Document
(PDD3). Leo reassured him that the TODO entry that had caused his
disquiet was obsolete and that IMCC does the right thing.

http://xrl.us/cw77

  Compile op with return values
Steve Fink asked how to go about returning something from dynamically
compiled code. He, Leo and Dan went over the issues. An unnamed (and as
yet unvolunteered) volunteer will probably write it all up and add it to
the parrot compiler FAQ.

http://xrl.us/cw78

  NCI and callback functions
Stephane Peiry and Leo continued to work on getting NCI callbacks
working with the GTK library. They finally tracked the problem down, but
it looks awfully like Stephane's going to have to reimplement the
gtk_main loop to get everything working. Best of luck Stephane.
ParrotGTK would definitely be a cool thing.

http://xrl.us/cw79

  Planet Parrot
Robert Spier announced the creation of Planet Parrot, an aggregator of
Parrot related blogs. If you have such a blog, Robert would probably be
interested in hearing from you.

http://xrl.us/cw8a

http://planet.parrotcode.org/

  GC/DOD API
Leo and Dan continued to discuss and work on documenting Parrot's memory
management API.

http://xrl.us/cw8b

  NCI GC issues
Dan noticed a problem with garbage collection and NCI PMCs. Leo tracked
the problem down and fixed it.

I love it when a plan comes together.

http://xrl.us/cw8c

  Opinions on base behaviour
Base behaviour is disgusting and should be stamped out I tell you. We
have a moral duty to...

Ah...

Actually, the subject refers to Dan and Leo's desire to nail down the
behaviour of Parrot's basic types. He outlined the issues and asked for
discussion. And that's what he got.

It looks like Parrot's going to have a reasonably complete set of
numeric types which will allow accuracy nerds to avoid reals for as long
as possible. Which will be nice.

http://xrl.us/cw8d

http://xrl.us/cw8e

http://xrl.us/cw8f

http://xrl.us/cw8g

http://xrl.us/cw8h

  Concat, Cows  Basil
Comfortably winning the weirdest subject line of the week award, Sam
Phillips laid out some of the problems he's having implementing a Basil
compiler which targets Parrot. Leo supplied answers.

http://xrl.us/cw8i

  Low level math[s] op behaviour
As well as discussing basic types, Dan opened a discussion of the proper
semantics of Parrot's low level maths (yeah, he spelt it 'math', but I'm
English and I'll spell it correctly) operators. In particular he
proposed variants that throw exceptions if strange things happen.

http://xrl.us/cw8j

  Benchmark stuff
 Joshua Gatcomb posted some patches he'd made to Fparrotbench.pl to
 make it a little less fragile and more useful. A few days later he
 announced a slightly more finished set of patches (Leo had checked his
 original patches in rather sooner than expected). 

http://xrl.us/cw8k

http://xrl.us/cw8m

  Resuscitating a mod_parrot
Dan Sugalski looked upon mod_parrot and saw that it was cool, to the
point of being laid out on a mortuary slab. He thought that the time had
come to try and put some life back into the project, now that Parrot's
so much more capable. He asked for volunteers and Jeff Horwitz seems to
be (the only?) one of 'em.

http://xrl.us/cw8n

  PMC instantiation
Leo posted another of his discussion documents, this time on
instantiating PMCs. No response so far.

http://xrl.us/cw8o

Meanwhile, in perl6-language
  Return with no expression.
In the usual freewheeling perl6-language way, a thread entitled 'return
with no expression' ended up discussion how to disambiguate a :: which
is part of ... ?? ... :: ... expression and :: in its role as module
sigil. (According to Luke it's easy; white space is required).

http://xrl.us/cw8p

  Synopses discussed
Discussion of the draft synopses continued

http://xrl.us/cw8q - Synopsis 2

  POD tables?
Aaron Sherman wondered if Perl 6's incarnation of POD would have support
for tables. Luke wasn't overly keen on Aaron's proposed 

Absence of summary

2004-08-16 Thread The Perl 6 Summarizer
You may have noticed that the mailing lists weren't working for a large
chunk of last week. So I'm taking a break in summarizing this
week. I'll catch up next week.


This week's summary

2004-08-09 Thread The Perl 6 Summarizer
The Perl 6 Summary for the six days ending 2004-08-06
Another short week and the rollover point is now set to Friday nights in
preparation for September when I'll almost certainly not have weeknights
free. (Of course, I don't expect the summary will be coming out any
earlier in the week through August, what with Saltburn Folk Festival
this coming weekend, EuroFoo the weekend after and Towersey Folk
Festival the weekend after that.

Just for a change, we'll start with the discussions in perl6-language.

Meanwhile, in perl6-internals
  ICU Outdated
Unicode is evil I tell you. Necessary, but evil. If ever there was an
essential piece of technology that was absolutely guaranteed to annoy
everyone then Unicode is probably it.

The Unicode issue this week was the ongoing discussion of what to do
about ICU. It's huge, it's in C++ and Dan maintains we can't do without
it (unless some kind soul were to implement a Unicode library with all
of ICU's features and fewer of its annoyances -- now there's a
postgraduate task for the interested).

Dan's plan is:

1   Make Configure detect and use a system ICU, if available

2   Dan will spec out encoding and charset APIs for loadable encoding
and charset modules

3   Parrot gets fixed to use those APIs

4   Add support for non-Unicode encodings and charsets

5   Make ICU a loadable module tied into the encodings and charset API

6   Profit!

This puts Dan smack on the Critical Path, but what's new?

http://xrl.us/cob9

  Span!
Matt Kennedy announced the initial release of a new Parrot based
language called Span. And very lovely it looks too (Think Smalltalk
meats Block structured languages and wins), if only I could get it to
compile on my Panther installation.

http://xrl.us/coca

http://xrl.us/cocb

  Executable AST
In an intriguing post, Leo announced that Parrot's now running code
directly from a (Python) Abstract Syntax Tree description. The post is
light on details, but big on potential.

http://xrl.us/cocc

  Roadmaps
Dan announced that he'd committed a DESIGN_TODO file to the repository
with brief details of what he thinks needs working on. He also posted a
short term roadmap of things to deal with in the near future and very
interesting it looks too (he reckons we should be able to get
serializable continuations working, which would be rather cool).

http://xrl.us/cocd

  PMC Basics
Leo posted a list of issues with how PMCs work. Warnock applies.

http://xrl.us/coce

  Starting to make things final
Dan pointed at the efforts of Piethon and the 'PHP on Parrot' people and
at Span and declared that we're at the point where things that are in
and implemented should be documented and fixed and that things that are
in flux should 'un-flux and get fixed'. He sketched the road to 0.2.0,
0.2.1 and thence to 0.3.0. The idea is that 0.2.0 (or 0.2.1) will be a
'complete' stable, good enough platform for language developers. Which
will be nice.

Oh, there's going to be a compiler writer's list (probably
parrot-compilers) spun off from perl6-internals (which will probably
become parrot-internals). Names are slightly undecided at present (but I
will aim to cover both lists in my summaries).

http://xrl.us/cocf

  Declaring MMD subs from PASM/PIR
He who must not be capitalized, chromatic, wondered about declaring
parrot subroutines that participate in multiple dispatch. He outlined a
scheme that Dan had suggested (presumably at OSCON) and asked for
comments. Leo and Dan discussed it further, but I don't think anything's
final yet.

http://xrl.us/cocg

  Everything Parrot
Documents maestro Michael Scott posted the beginnings of a subject
overview for Parrot. He asked people to point out any bits and pieces
he'd missed.

http://xrl.us/coch

  A testimonial and a question
Andrew Rodland delurked to say nice things about Parrot (pretty smooth
stuff) and to ask if there was a handy list 'It Would Be Nice If...'
tasks that newcomers could get started on without having to dive
straight into hacking the core. Simon Glover pointed at the TODO list.
He suggested that you can't have too many tests and that writing tests
can be a good way of getting a handle on what the core does (or is
supposed to do).

Reading tests can be a good way of getting a handle on what the core
does too, of course.

http://xrl.us/coci

  The new Perl 6 Compiler pumpking
Dan announced that Patrick Michaud stepped up to the plate and taken
charge of getting the Perl 6 compiler module written. Welcome Patrick,
and the very best of luck.

Leon Brocard asked Patrick what his plan of attack was. No reply so far.

http://xrl.us/cocj

  Spilling problems
The thing about writing naive compilers for 

This week's summary

2004-08-02 Thread The Perl 6 Summarizer
The Perl 6 Summary for the six days ending 2004-07-31
As I threatened last week, I'm moving the rollover point for these
summaries from midnight on Sunday/Monday to midnight on Friday/Saturday,
but rather than do it in one swell foop I'm doing a couple of six day
weeks. The theory is that, once I become a student teacher I'll be
rather busy during the week, but I should still be able to make time to
write the summaries at the weekend.

That's the theory at least. You'll note that this didn't get posted to
the mailing lists on a Sunday. Blame my cousin for getting married. It
won't happen again.

  Pie-thon
Good news! Guido is a gentleman and declined to throw a pie at Dan.

Bad news! The Perl Community is a bunch of savages, and they paid $520
to be able to throw pie at Dan.

Good news! There are photos.

http://xrl.us/ck3f

http://xrl.us/ck3g

  Notes to self
1   Americans pronounce 'maths' as 'math'.

2   Don't make silly cracks about American rectitude

3   Oops.

  Leo's proposed calling conventions
It's been apparent for a while now that Leo Tötsch isn't happy with
Parrot's current calling conventions. This week he posted a proof of
concept patch implementing a proposed new scheme. Luke Palmer agreed
that it was probably worth consideration. We'll see what Dan has to say
when he gets back from OSCON.



  Stack based language
RaghavendraK asked about the difference between stack and register based
virtual machines. Brent Royal-Gordon gave good advice.

http://xrl.us/ck3h

  ICU outdated
Joshua Gatcomb noted that the ICU that comes with Parrot is, not to put
too fine a point on it, old and buggy. The ICU developers have suggested
that Parrot move to version 3.0. Josh proposed various ways of doing
this. Leo wants ICU out of the Parrot CVS, but Dan's argued in the past
that it should be in there because he doesn't want to force people to
chase round fetching a raft of required libraries before they can build
parrot.

http://xrl.us/ck3i

  Jarkko proposed for a CVS checkin rights
Following a raft of high quality patches from Jarkko Hietaniemi, Leo
proposed him for membership of the cvs ci club.

http://xrl.us/ck3j

Meanwhile, in perl6-language
  What's core?
Larry and Dan Hursh discussed what would be going in the standard Perl 6
distribution. Dan argued that we should be concentrating on producing a
distribution akin to the current Perl 5 distribution, but with a few
fewer kitchen sinks. Larry argued that we should concentrate on two
distributions:

1   Bare bones, just able to build itself and with enough capability to
bootstrap everything else.

2   Extended. The bare bones system + a set of libraries fetchable from
CP6AN that constitute the Perl 6 'supported' library; modules that
are maintained by the Perl 6 equivalent of perl5-porters and which
will be supported over a long time frame.

I don't think Dan's been convinced yet. Elsewhere in the thread Luke
Palmer coined the delightful acronym 'EYEWTIBWATA' -- Everything You
Ever Wanted To Install But Were Afraid To Ask -- or eye-witty-bwattle.
I'm unsure about whether it's going to rank up there with Tim-toe-tidy
though.

http://xrl.us/ck3k

Announcements, Apologies, Acknowledgements
I'm getting bored of typing 'Palmer' and 'Tötsch' once a week, so I'm
considering treating Luke and Leo like Larry, Dan, Damian and, if you
insist, chromatic.

So, 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 or contributions to a
'getting Piers to OSCON 2005' fund to mailto:[EMAIL PROTECTED]

http://donate.perl-foundation.org/ -- The Perl Foundation

http://dev.perl.org/perl6/ -- Perl 6 Development site



This week's summary

2004-07-20 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-07-18
Following last week's bizarrely dated summary (I misplaced a day) we're
back with the correct week ending date, but I'm ashamed to admit that
I've slipped to writing on a Tuesday again. My head hangs in shame and I
am filled with the direst remorse.

It will probably happen again though; life's like that.

  Pie-thon!
Anyone would think that the possibility of not even being able to run
the Piethon benchmark (let alone getting a pie in the face for running
it too slowly) weighs heavily on Dan.

The bulk of the week's traffic related to getting to the point where we
can at least run all the tests.

Python::Bytecode, the module that parses, well, python bytecode, shot up
in version numbers; I think it reached 2.7 by the end of the week.

Dan released a Piethon translator, a tool that uses Python::Bytecode
translate python to parrot. So has Leo. Dan's is on his website (see the
link below, you'll find Leo's in languages/python/pie-thon.pl).

http://xrl.us/chh9 -- Parrot runs a python lambda

http://xrl.us/chia -- Notes on pie-thon.pl

http://xrl.us/chib -- Namespaces for builtins

http://xrl.us/chic -- Dan's translator

  Semi-stack code
In a quest for speed when emulating python's stack manipulation ops, Dan
outlined a plan for manipulating a pseudo stack using some of Parrot's
PMC register (18-29, with P31 used for overflow). Leo wasn't convinced
it was needed.

http://xrl.us/chid

  string_to_num precision
Leo's got some problems with the precision of the string_to_num
function found in string.c. He doctored things to use atof, but Dan's
not so keen on that idea because atof doesn't have standard behaviour
across platforms. He recommended grabbing Perl 5's string to num code
(which he thought we'd already done). Nicholas Clark wasn't convinced
that this was a good idea; he reckoned that Perl 5's code wasn't good
enough. I think Nicholas convinced Dan that atof is actually the right
thing to use (with a little preprocessing to deal with C99's atof
being incompatible with C89's -- Parrot expects C89 behaviour).

http://xrl.us/chie

  GMP Licensing
Armin Obersteiner reported his investigations into the licensing
requirements of the GMP maths library. It appears that the FSF's 'GPL
Compliance Engineer' reckons we won't need to include the GMP's source
code with binary distributions. We just have to make it available from
the same source as the distribution. Which is handy.

http://xrl.us/chif

  Parrot configuration -- a small perl task
Leo asked for volunteers to fix up Configure.pl in order to make it less
dependent on the host Perl's configuration. Brent Royal-Gordon provided
a teeny-tiny patch that's actually shorter than Leo's description of the
problem.

http://xrl.us/chig

Meanwhile, in perl6-language
  Scalar subscripting
Remember Guatam Gopalakrishnan's question about subscripting scalars?
Discussion continued. One Piers Cawley (who he?) suggested that it
should be possible to specify a postcircumfix:[] is rw method in the
String class to make string subscripting behave in a helpful fashion. He
also suggested pulling this (and other similar behaviours) out into a
Sequence trait. Juerd thought the proposed method name was a little
verbose compared to Ruby's syntax for doing the same thing and showed
off some rather pretty Ruby metaphors.

Another subthread discussed interpolation in strings. Larry's changed
his mind so that $file.ext is now interpreted as $object.method. You
need to do ${file}.ext or $( $file ).ext. Or maybe $«file».ext
by analogy with %foo«bar». James Mastros pointed out that . is
rather ambiguous in a literal string; sometimes a full stop is just a
full stop.

http://xrl.us/chih

  Pushing lazy lists
This thread continues to resemble the lists it is nominally discussing:
Infinitely long and possibly endless.

http://xrl.us/chii

  Perl 6 and Parrot Essentials, 2nd Edition
Leo pointed us at an O'Reilly press release announcing that the second
edition of *Perl 6 and Parrot Essentials* is available. Huzzah! Let joy
be unconfined.

http://xrl.us/chij

  Rules to match abbreviations
Hans Ginzel wondered wondered about adding something to the rules system
to easily match specified abbreviations of a string. Luke Palmer came up
with a (pretty ugly) solution which he then wrapped very neatly in a
rule.

http://xrl.us/chik

  Enhancing open
There's a good deal of mileage to be had talking about how to improve
the open function it seems.

Larry continues to come up with new and interesting ways of designing
the language in such a way that almost every decision about how to do
something can be deferred. Speaking as someone who wishes he could 

This week's summary

2004-07-05 Thread The Perl 6 Summarizer
  The Perl 6 Summary for the week ending 2004-07-04
Another week, another Perl 6 Summary. This is becoming a habit.

Let's do perl6-internals first shall we?

  Japhy's Perl 6 rules parser
Last week Jeff 'japhy' Pinyan announced that he'd be working on a Perl 6
rules parser once he'd finished his Perl 5 regex parser. This week saw a
deal of discussion on how his parser worked. The answer seemed to be It
works the Right Way. Which is good. With any luck Steve Fink will be
able to get this parser and the current (sketchy) Perl 6 compiler
playing well together.

http://xrl.us/ccie

  Complexities
Last week Leo had pointed out that we'd need support for complex numbers
in order to get the Piethon stuff running properly. This week there was
some discussion of what was actually needed.

Later in the week Ion Alexandru Morega posted a patch implementing them.
I think Leo spoke for us all when he said Whee, great, thanks -
applied.

http://xrl.us/ccif

  New mailing lists
There was some discussion of how perl6-internals should be broken up. It
looks like we'll see new lists called parrot-internals, parrot-compilers
and parrot-library (for internals hackers, compiler implementers and
library builders respectively). The original perl6-internals will carry
on, but will be focused on the actual internals of Perl 6.

Some, or all, of these lists will be covered in these summaries for as
long as I can keep up.



  Stack language for Parrot
In as impressive a delurk as I've seen in a while, Michael Pelletier
announced that he'd been lurking for a while, playing with Parrot and
had implemented a little stack language not entirely unrelated to Forth
which he'd christened Parakeet. He posted his implementation and got
promptly Warnocked.

http://xrl.us/ccig

  GMP and licensing issues
Scott Bronson announced that he'd taken a look at GMP's license and he
didn't think it was incompatible with Parrot's licenses. Dan wasn't
convinced. Scott's still trying to convince him though.

Robert Spier attempted to resolve the problem by pointing everyone at
another possibly suitable library called IMath.



http://xrl.us/ccih

Meanwhile, in perl6-language
  Argh! Strings!
Discussion of the various ways of slicing and dicing strings in Perl 6
continued. The issue is that, especially in a Unicode world, there are
many ways of looking at a string, all of which are useful in different
contexts. However, because you can look at a string as a sequence of
bytes, codepoints, graphemes or whatever, then functions like substr
get a little weird. If you were to say

$substring = $a_string, 5

then what does the '5' mean?

And that's just one example of where conceptual problems can arise.

I confess that, whenever Unicode comes up, my gut reaction is to keep my
head down and trust that Larry's going to get it right. Certainly the
current formulation seems decently sane; things only get problematic if
you're trying to do something well out of the ordinary.

http://xrl.us/ccii

  if, loop, and lexical scope
Discussion of Perl 6's new scoping rules (things are generally more
consistent than they are in Perl 5; if a variable is declared inside a
block, or in that block's signature in the case of - $a, $b {...}
type blocks, then that block is its scope) continued. Some people like
the new rules, others don't.

http://xrl.us/ccij

  Different OO models
Jonadab the Unsightly One had wondered about having objects inheriting
behaviour from objects rather than classes in Perl 6. The gist of the
answers he received was that it wouldn't be in the core of the language,
but neither should it be too hard to implement something that worked how
he wants.



  Undo?
Michele Dondi wondered if Perl 6 would have a built in undo function
for rolling back the history of a scalar (say). Rafael Garcia-Suarez
pointed out that the concept wasn't a simple as it first appeared,
especially in the context of threads, closures, side effects. He
suggested that a better approach would be to implement a suitable
transaction/rollback library that handled such things in an application
appropriate fashion rather than using a 'half-baked kludge built into
the base language'. Mark Biggar pointed out that the language already
had hypothetical values, which did pretty much the right thing.

Elsewhere in the thread, Luke Palmer attempted to explain continuations
again. A sandwich was involved.

http://xrl.us/ccik

http://xrl.us/ccim -- Luke makes a continuation sandwich

  If not , then what
Alexey Trofimenko triggered your Summarizer's sense of deja vu when he
asked what was happening to the C-style comma (we're keeping it, more or
less) and proposing a then keyword for use in the 

This week's Summary

2004-06-29 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-06-27
What's this? No! It can't be! It's a *weekly* Perl 6 Summary. What is
the world coming to?

Sorry, I can't answer that one, so I'll tell you what's been happening
this week in perl6-internals.

  Bignums, licenses, pie
As you are no doubt aware, Python has bignums. And that means that,
unless we want Dan to get a face full of Pie at OSCON this year, Parrot
needs bignums too. Work on several fronts continued towards getting a
bignum implementation for Parrot. Ideally, we'd like to just include
GMP, but the license seems to require that the full source of GMP sip
with any Parrot binary. Which isn't good when you're writing a VM that
you'd like to be able to install on, say, a Palm.

Scott Bronson suggested getting in touch with the GMP developers to see
if there was anything that could be done about it. He volunteered to be
the liaison, assuming Dan was cool with it.

Meanwhile, Uri Guttman offered his 'stillborn' bignum implementation as
a basis for our own bignum library. Leo commented that it might be a
good idea in the medium to long term, but the Pie-thon is looming...

http://xrl.us/cbf7

http://xrl.us/cbf8

  Ion's Strings
Remember Ion Alexandru Morega's string pmc that got Warnocked? Well, it
got un-Warnocked this week. Dan liked it, so he checked it in.
Congratulations Ion, don't forget to send in a patch to the CREDITS
file.

http://xrl.us/cbf9

  Mmm... Pie-thon
Dan reminded everyone of the URL of the benchmark that's going to be run
for the Pie-thon. If Parrot doesn't run it faster than the C
implementation of Python, then Dan's going to get a pie in the face and
he'll have to spring for a round of drinks for the Python Cabal (is
there one? Could be a cheap round...). Of course, the plan is to have
Parrot be faster than Python so Dan'll get to chuck a Pie at Guido.
Either way, if you're at OSCON this year it should be fun.

Right now, Parrot is some way from, well, running it.

Leo announced that he will start a series of postings discussing the
main features (and requirements) of the various benchmarks. He started
with some notes on b6.py.

http://xrl.us/cbga

http://xrl.us/cbgb -- Python needs exception objects

http://xrl.us/cbgc -- Pie-thon and the recursion limit

  Class name hashes
Leo wondered about the current implementation of class name hashes. We
have two such hashes, one for PMC base classes and one for dynamic PMCs.
Leo thought this was suboptimal (and liable to make one of the Pie-thon
benchmarks problematic.) Dan agreed that unifying the hashes (and
renaming PMC classes to have Parrot prefixes (ParrotFixedSizeArray
anyone?)) was the way to go.

http://xrl.us/cbgd

  Confusing parameter order
Nicholas Clark was somewhat bemused by the choice of parameter order for
the Parrot_PMC_set_intval_intkey function, which reverses the order of
some parameters from the vtable version. He suggested unifying the two.
Leo agreed that changing things round was the best bet and suggested
that Nicholas go ahead and make the change to the extend.h interface.
Dan didn't pipe up to say it was a bad idea. In fact, Dan didn't pipe up
at all.

http://xrl.us/cbge

  Perl 6 regex parser
Jeff 'japhy' Pinyan announced that he was currently completing work on
an extensible, regex-specific, parsing module. Once it's finished, he's
going to start work on writing a subclass that parses Perl 6 rules. He
thought it might come in handy for people implementing Perl 6.

Luke Palmer thought it would be too; the grammar of Perl 6 is being
specified in Perl 6 patterns. Initially it was hoped that Damian's
Perl6::Rules module would be what was needed to bootstrap us, but
'serious bugs in the Perl 5 regex engine having to do with executing
code within regexes' meant that Perl6::Rules can't do the job for us.

So, good luck Japhy, we're depending on you.

But, you know, no pressure mate.

http://xrl.us/cbgf

  Leo's tasks for the interested
Leo asked for volunteers to implement a class to handle complex numbers
(needed for Python) and to implement sort method(s) for the various
*Array PMCs.

http://xrl.us/cbgg

Meanwhile, in perl6-language
  Command line like switches for functions and operators
Michele Dondi proposed syntax for adding 'command line' type switches to
functions and methods which look almost, but not quite, entirely unlike
Perl 6's named parameters. Brent Royal-Gordon pointed out that Michele's
proposed

rename -v = 1, $orig, $new;

could be written, rather more Perl6ishly as:

rename $orig, $new :verbose;

Luke Palmer pointed out that wrappers could be used to add such extra
named arguments to built ins, so the proposed behaviour for rename
   

This fortnight's summary

2004-06-23 Thread The Perl 6 Summarizer
The Perl 6 Summary for the fortnight ending 20040621
Good evening. You find me typing away in a motel room on the edge of the
Lake District on the shortest night of the year. I suppose, by rites, I
should be spending the night by some stone circle drinking, dancing and
generally making merry, but as I'm a teetotal, unfit, atheistical nerd
with a mission to summarize I'll skip that and plough straight into the
activities of another arcane sect. Yes, it's perl6-internals again...

  Towards an accurate README
Andy Dougherty sent in a patch adjusting the Parrot README so that it
accurately reflected the toolset needed to build parrot. For some
reason, as well as the requirement for a C++ compiler if you want to
build the ICU library, we've moved to needing Perl 5.6.0 rather than
5.005. Nicholas Clark suggested that, rather than bumping the Perl
version requirement, we bundle appropriate versions of modules Parrot
required, but chromatic thought it better to check the for the correct
versions of said modules at Configure time and bail out if they weren't
there.

There was further discussion about whether going to Perl 5.6.0 as a
requirement was the right thing to do -- the issue is that some OSes
(FreeBSD and Solaris 8 were cited) still only ship with 5.005 family
Perls. My feeling (which I didn't mention in the thread, more fool me)
is that, as eventually the goal is to eliminate the need for Perl at all
in the build process, then require 5.6.0 rather than 5.005 isn't exactly
the end of the world.

http://groups.google.com/[EMAIL PROTECTED]

http://groups.google.com/[EMAIL PROTECTED]

  OS X Builds again
Someone finally summoned up the tuits to fix the OS X build. Step
forward Nicholas Clark and accept your plaudits.

http://groups.google.com/[EMAIL PROTECTED]

  Basics of the PMC class set
Dan announced that he was about to make some changes to the repository,
including establishing a basic set of PMC classes. Matt Fowles wondered
about Array PMCs, which seemed to be missing from Dan's list. Dan agreed
that they should be rationalized as well.

Bernhard Schmalhofer suggested adding a complex number class to Dan's
basic menagerie, but Dan was unconvinced.

http://groups.google.com/[EMAIL PROTECTED]

  Correct use of #define
Nicholas Clark was moved to growl by a section of
include/parrot/string.h that used a #define to define a type. Actually,
he was moved to 'swearing and cursing and time wasted grepping to find
out what a STRING is'. Dan agreed that this was bad and decreed:
'Typedefs for types, #defines for constants and bizarre (*temporary!*)
debugging things.'

  http://groups.google.com/[EMAIL PROTECTED]

  The next release
During a lull while Leo Ttsch was away at a conference, Dan mused on
the next release of parrot. His goal for that is a rejig of classes/,
aiming to make sure that all the PMCs we want are in and working, and
that the ones we don't care about are neatly deprecated.

Warnock applies.

http://groups.google.com/[EMAIL PROTECTED]

  A small task for the interested
Stretching the definition of 'small' somewhat, Dan asked for volunteers
to implement the missing PMCs detailed in PDD 17. He reckoned it should
be 'fairly straightforward'. A new entrant in these summaries, Ion
Alexandru Morega took a crack at the String PMC and posted a patch to
the list which was promptly ignored. Which seems a little unfair really.

http://groups.google.com/[EMAIL PROTECTED]

  Bignums!
Dan asked for a volunteer to get Bignums working. Alin Iacob stepped up
to the plate. Leo suggested that, rather than starting from
types/bignum.c, it might be better to use an existing, maintained, maths
(Look, I'll spell 'summarise' with a 'z' -- the OED does -- but it will
be a cold, cold day in hell when I start abbreviating 'mathematics' as
'math'. Ahem.) package. Dan worried about license compatibility; the
proposed GMP package is licensed under the LGPL which may (or may not)
be compatible with Parrots Artistic/GPL dual licence. After a closer
reading he reckoned that GMP's license is definitely incompatible with
Parrot.

http://groups.google.com/[EMAIL PROTECTED]

  Adding Fixed*Array classes
Matt Fowles posted a patch implementing Fixed Array classes. Dan applied
it. Leo wondered about the patch's use of malloc(3) instead of Parrot's
memory management. Dan wasn't worried in the case of fixed size arrays.

  http://groups.google.com/[EMAIL PROTECTED]

  Resizeable*Array classes
Fresh from his Fixed Array triumph, Matt Fowles posted a patch
implementing nave Resizeable Arrays. Leo thought it a little too nave,
and worried about duplication of existing functionality. Dan wasn't
worried about the navet, or the duplication of functionality. He
   

This fortnight's summary

2004-06-07 Thread The Perl 6 Summarizer
The Perl 6 Summary for the fortnight ending 2004-06-06
Whee! There's a new graphics card in the G5, which means I can type this
at the big screen again, which makes me happy. Well, it would make me
far happier if the new card didn't leave horrible artifacts all over the
screen like some kind of incontinent puppy attempting to fulfil OpenGL
draw instructions. Maybe next week will see a third card in the box.

Dang! It looks like the G5 will be off receiving some TLC from an Apple
service centre while I'm on holiday next week. Which means that the
'weekly' summaries will continue on their fortnightly summer holiday
schedule for at least one more summary. But then the lists themselves
appear to be on summer footing anyway.

Ahem.

As you will probably have worked out by now, we start with
perl6-internals.

  Library loading
Jens Rieks is working on library loading code that does all the nice
things we've come to expect from other languages. The plan being that
you'll be able to write (say)

use('some_library')

and Parrot will go off and search it's include paths for
some_library.(pbc|imc|pasm|whatever) and load it. As he noted, if you're
going to implement that kind of code in parrot assembler (or PIR, or
whatever), you need some way of loading the loading code. It's also a
good idea to have a working stat. Jens added a
Parrot_load_bytecode_direct function to the parrot core to support the
first part. His please for a functional (if not complete) stat were
answered by Dan who set about implementing the stat API he outlined a
few weeks ago.

http://xrl.us/b689

  Embedding Parrot
Leo Ttsch and chromatic answered Paul Querna's questions from last
week about embedding Parrot.

http://xrl.us/b69a

  Using PMCs as PerlHash keys
TOGoS wanted to know how he could use a PMC as a key in a PerlHash. Leo
replied that it was as simple as doing

$P2 = new Key
$P2 = key_string
$P0 = $P1[$P2]

Piers Cawley did some naive translation into PASM and got himself
horribly confused. Leo and TOGoS corrected him.

http://xrl.us/b69b

  First draft of IO and event design
Remarking that events and IO are (kinda, sorta) the same thing, Dan
posted his first draft of a unified IO and events design and asked for
comments. This being p6i, he got several (though not as many as usual,
maybe everyone likes it).



  Freeze, objects, crash, boom
Will Coleda tried to get freezing and objects to play well together and
failed. So he asked a bunch of questions. Leo didn't solve the problem,
but he did have some pointers to where it was coming from.

http://xrl.us/b69c

  MMD table setup semantics
Possibly winning an award for the oldest rejuvenated thread, Nicholas
Clark had some questions about a post Dan made about MMD at the end of
April. He made a suggesting about how to calculate 'distance' for multi
dispatch. Dan pointed out that Larry had decreed that the 'distance'
would be the 'Manhattan Distance'. (Google has several definitions).

http://xrl.us/b69d

  Compiler FAQ entry
Will Coleda posted a possible set of entries for the compiler writers'
FAQ. Leo had a few quibbles. Sterling Hughes suggested that having
small, runnable source code examples would be really helpful.



  Layering PMCs
Dan kicked off a discussion on how to go about layering PMCs. The usual
suspects offered suggestions. The aim is to be able to layer behaviours
on top of PMCs without massive overhead or combinatorial explosion
problems. As usual with these things, there's several possible ways of
doing it, the debate is about choosing the best one.

http://xrl.us/b69e

  IO Layers
Leo had some questions about the (not fully implemented)
ParrotIOLayerAPI. He laid out a proposal for implementing things. Uri
Guttman and Dan joined in a discussion of the issues. (Simple summary of
the issues: Asynchronous IO is hard. Possibly more accurate summary of
the issues: Asynchronous IO is *not* synchronous)

http://xrl.us/b69f

  PIO_unix_pipe()
Leo's implemented a PIO_unix_pipe() method which allows you to run an
external program and capture the results with a Parrot IO handle. He
doctored the open opcode to use it

pipe = open /bin/ls -l, -| 

Dan liked it, but proposed also adding a backtick operator.

http://xrl.us/b69g

  Register spilling
Dan noted that it's possible to get the register allocator caught up in
an infinite loop (or as near infinite as makes no difference) as it
tries to work out a register spilling strategy. He proposed there be a
'slow but working' fallback method to use if the normal method goes
through too many iterations. Leo suggested an delightfully brute force
approach with some possible elaborations that Dan didn't think 

This week's summary

2004-05-26 Thread The Perl 6 Summarizer
The Perl 6 Summary for the fortnight ending 2004-05-23
Yes. I know. This week's summary is a week late. So it's a summary of
the last two weeks. So let's get straight to perl6-internals shall we?

  Working on the Perl 6 Compiler
Abhijit A. Mahabal posted his first ever patch, which updated the
calling conventions used in the Perl 6 Compiler. Dan applied it
promptly, and Allison Randal chimed in with some comments on the
workings of the perl 6 compiler. There's a new document, which you'll
find at languages/perl6/doc/developer_notes.pod in a CVS parrot, which
is a scratchpad for developers to make notes of any issues that arise
while they're working on the compiler.

http://tinyurl.com/2o4lg

  Pants performing ponies
The issues that cropped up in the last summary to do with poor ponie
performance continued to exercise Leo Tötsch, Nicholas Clark and Jeff
Clites as they homed in on the Ponie bug that had led to ludicrous
numbers of PMCs being generated to no good end. It turns out that
Parrot's garbage collection doesn't go that fast when there's 9 million
live PMCs. Leo worked to improve things...

http://tinyurl.com/29z6w

  MMD side effects
Leo pointed out some strangeness related to the new multiply dispatched
opcodes and proposed a solution. Warnock applies.

http://tinyurl.com/35o3x

  The Parrot Question Repository
Dan announced that he was trying (slowly) to get things documented and
questions asked. Because questions to the list tend to get Warnocked or
asked repeatedly, he's set up a new central question repository on the
Parrot Wiki. He appealed for a volunteer to watch the list and add new
questions to the Wiki page and (a possibly different volunteer) to watch
the Wiki and post any answers back to the list. If such a volunteer
should step up to the plate, I would be inordinately grateful if they
could make a habit of commenting to any questions they transplant to the
Wiki to let people know that this has been done.

http://tinyurl.com/228g7

http://tinyurl.com/2vec8 -- Central Questions Point

  IO Opinions
Dan asked for opinions on how the IO system was going to work when it
came to dealing with record based files. Tim Bunce and Jeff Clites had
suggestions and questions.

http://tinyurl.com/2gruo

  The Right Way Repository
Dan announced that he'd started an FAQ aimed at compiler writers
targetting parrot in docs/compiler_faq.pod in your local CVS parrot.
It's a bit sparse, but the proverb about mighty oaks and acorns applies.
We hope. Brent Royal-Gordon was first in with a question and answer.

http://tinyurl.com/3dxqp

  Towards a multiply dispatched parrot
Leo continued his work on switching over to a multi dispatched vtable
architecture and asked for comments on the work so far, and the sanity
of the whole concept. Dan was very positive, and the work continues.

http://tinyurl.com/yvk4b

  Cygwin
Cygwin continues to be a fully paid up member of the awkward squad of
environments. Joshua Gatcomb pointed out that JIT had broken again. He
and Leo engaged in debugging by email as Leo worked to fix things.

http://tinyurl.com/2rqxc

  Perl 6 Parser weirdness
Abhijit A. Mahabal had some problems with the Perl 6 compiler's parser
and asked for help. It looks like it's an issue with the load path using
relative paths, which makes it fragile when you're running in an
unexpected directory.

The discussion evolved into one on the nature of the (eventual) Perl 6
parser. Dan worried that a recursive descent parser will be awfully slow
compared to the current perl 5 parser. It looks like Perl 6 *won't* have
a recursive descent parser, but the conversation got rather beyond my
level of computer science (at least where parsers are concerned). Larry
said that he was in favour of a hybrid parser which used both top down
and bottom up parsing techniques.

Dan suggested that since Larry has been itching to get into the
internals anyway, [the parser]'d be a good place to start.

http://tinyurl.com/2d6zs

  Event design sketch
Discussion of Dan's event design sketch continued. Gordon Henriksen was
worried that the events system as sketched wouldn't work well with GUI
type events. Rocco Caputo pointed out issues with Daylight Saving for
timed events. Leo asked for a glossary.

And those are just the items that caught my eye as I went into speed
skim mode.

http://tinyurl.com/322o4

  PARROT_API, compiler and linker flags
Ron Blaschke has been working on getting Parrot's linker magic right;
and he presented his findings and warned us that he intended to go ahead
and implement something based on them unless there were substantive
objections. There weren't any objections as such, but there were an
awful lot of issues raised 

This week's summary

2004-05-05 Thread The Perl 6 Summarizer
  The Perl 6 Summary for the week ending 2004-05-02
So, May Day didn't quite knock me for six this year (but being up at 4am
on Newcastle Town Moor on Saturday morning to welcome in the summer with
a bunch of rapper dancers (and no, rapper does not involve large shouty
men wearing positively kitsch amounts of jewellery posturing in front of
scantily clad women and shouting about how they're keeping it real, or
whatever the current argot is. It's a rather older tradition of men
making fools of themselves than that) is guaranteed to leave a chap
feeling rather tired) so here's the summary.

We'll kick off with perl6-internals. Again.

  GCC for Parrot
Vishal Vatsa announced that he was working on getting GCC to compile to
Parrot as his masters research project. I'm sure we're all wishing him
the best of luck.

http://tinyurl.com/2a6gj

  Parrot strings
Various discussions of the Right Way to do string handling continued.
Dan clarified his Strings design docs and Jeff Clites posted a 'Strings
Manifesto'.

It seems, to this observer at least, that a big problem with dealing
with strings is that there's rather more than one Right Way to do
things, depending on how you're looking at the problem and what you're
trying to do. Dan's problem is that he has to find some way of
accommodating all the various contradictory things that people want to
do to strings without making any of them unduly painful. (Not assisted
by the fact that, in one last week's documents he managed to graphemes,
characters and glyphs slightly mixed up.)

Me? I'm punting on summarizing this properly. My theory is that if you
know enough about this stuff to be of assistance then anything I say
will almost certainly be an annoying simplification too far. And if you
both know enough about strings and care enough about Parrot, you're
already involved in the thread. Hopefully there'll come a point in the
future when everything's settled and this section of the summary will
say Strings got sorted at last, look at this URL for details.

http://tinyurl.com/36cck

http://tinyurl.com/3dm3c

http://tinyurl.com/yw8dv -- Strings Manifesto

http://tinyurl.com/2se9w

http://tinyurl.com/2drsf

  Win32 and cygwin issues
There's been a good deal of work this week on getting things building
properly in the Win32 and cygwin environments. Ron Blaschke, 'Limbic
Region', George R and Leo Tötsch all worked on things.

http://tinyurl.com/3axog

http://tinyurl.com/26z4n

  NCI and 'Out' parameters
Mr ParrotSDL (aka chromatic) showed an SDL function signature that he
wanted to use via NCI (Parrot's Native Call Interface), but which didn't
work because it had two pointer arguments that were used by the function
as out parameters. He proposed changing the NCI PDD (PDD16) to support
this sort of thing cleanly. Leo, Dan, Tim Bunce and chromatic discussed
the changes needed.

A little later in the week, chromatic posted a patch implementing
something to solve the problem.

http://tinyurl.com/32oxo

http://tinyurl.com/2l4j7

  Joys of assignment
There's been some discussion recently about what happens with assignment
and/or binding, and the difference between value and reference types.
Dan decided that the time was right to post a clarification of the
issues as they related to Parrot.

http://tinyurl.com/ypl8u

  Fun with md5sum
Nick Glencross's idea of fun is, apparently, implementing md5sum in
IMCC. He posted his first cut at an implementation. I think Leo's
response holds for all of us: Wow. Maybe I'm looking in all the wrong
places, but so far it doesn't appear to be in the repository, but it can
only be a matter of time.

http://tinyurl.com/2lr4v

  Return continuation register
Dan's working through outstanding issues and tidying up loose ends. One
result of this is that he's been thinking about how the return
continuation is handled. The new design (and calling conventions?) makes
use of a return register in the interpreter structure, which gets saved
as part of the environment that a continuation captures.

http://tinyurl.com/277ne

  Library loading
Clearing up another loose end, Dan did some design of how we're going to
cope with loading libraries.

http://tinyurl.com/33djf

  Keyed vtables and MMD
If you've been following the mailing list for any length of time
(especially if you've been following it directly rather than
summarized), you'll be aware that there's been a long running...
discussion between Leo and Dan about the keyed variants of all the
binary vtable entries: Leo worries that there's a heck of a lot of 'em;
Dan worries that it means creating temporary PMCs in what should be
simple circumstances.

It turns out that having *all* the keyed 

This week's Summary

2004-04-28 Thread The Perl 6 Summarizer
  The Perl 6 Summary for the week ending 2004-04-25
And we're back on a weekly schedule again (unless the Mayday bank
holiday knocks me for six next week). As I expected, the Apocalypse has
brought out a rash of prophets and prognosticators in perl6-language,
but perl6-internals is still ahead on number of messages per week.

  Constant Strings
I confess I'm not sure I quite understand the constant strings patches
that Leo Tötsch and Jeff Clites were discussing. I understand the bottom
line though -- they make parrot a lot quicker when comparing constant
strings. Huzzah!

Then it turned into a discussion of Unicode (or at least, Parrot string
handling which is almost, but not quite, the same thing).

http://tinyurl.com/2mowl

  Parrot m4 0.0.4
Bernhard Schmalhofer posted a patch to bring his parrot implementation
of m4 up to what he's calling version 0.0.4

http://tinyurl.com/34be5

  SDL Parrot status
Portland Parrot stalwart, chromatic, posted a link to a SDL Parrot site
he's set up with current status, downloadable snapshots and other good
SDL Parrot related things.

http://tinyurl.com/2gcbs

  Passing arrays of structs to NCI subs
That man chromatic again, this time he asked if there was a secret
syntax for passing and retrieving arrays of things to and from NCI. Leo
noted that, according to the docs, there is no secret syntax, it's all
documented but unimplemented.

http://tinyurl.com/2xsrc

  PMC Constants
Last week, Leo asked for comments on his proposal for PMC constants.
This week, Dan replied. Essentially he's all for the idea, but wasn't
sure which implementation strategy was the best choice.

http://tinyurl.com/2ff8t

  Assign and set
Leo announced some changes he'd made to the behaviour of the set and
assign opcodes. Jens Rieks pointed out a case that he'd missed.

http://tinyurl.com/3bl4u

  hyper op - proof of concept
Leo also implemented what he described as a rather hackish and
incomplete new opcode called hyper. Dan liked it enough to suggest
that we should go the whole hog and add a hyper vtable to PMCs, with
hyper versions of all the standard vtable entries. He and Dan had a long
discussion of this, with contributions from various luminaries including
Larry. There was some debate as to whether we really needed overridable
hyper ops, but Dan's adamant that whatever happens they'll be
implemented in a vtable to allow for potential optimizations in some
cases.

http://tinyurl.com/37wqy

  Separating allocation and initialization of objects
Last week, Leo posted the latest object benchmarks, and things were
fast. But there was one test where Python was faster. Analysis of the
results and the code seemed to point the finger at Parrot's combined
allocation and initialization. This week Dan confessed that he was
leaning towards separating the two because that would allow for a
standard PCC call into the initialization code. He pointed out that
there were still a few issues, but that appears to be the way he's
thinking.

http://tinyurl.com/24h68

  Another config task
Dan pointed out that the current config scheme relies rather heavily on
flags set in the current perl install, which isn't ideal. He suggested
that people might like to look into making Parrot's config step rather
less Perl dependent and pointed at things like 'metaconfig'.

http://tinyurl.com/3xn29

  Problems with the Perl 6 Compiler
Allison Randal noted that languages/perl6/ was failing all its tests.
The issue arose because the Perl 6 test module inherits from
Parrot::Test, and Parrot::Test's behaviour got changed recently. She
wondered why the changes had been made. After some discussion, Allison
provided a patch to make things work with the new Test module.

http://tinyurl.com/2j3kp

  IMCC temp optimizations...
Dan is possibly the only person using Parrot in a commercial (mission
critical?) environment, using a compiler from a legacy language to
Parrot. He's currently experiencing problems with IMCC taking a long
time to compile the PIR generated by his compiler. Apparently it's
because he's using a lot of .locals and temps. He and Leo discussed it
back and forth to try and find optimizations (both of IMCC and of Dan's
compiler) for the issue. (Dramatic) progress was made.

http://tinyurl.com/3f9gq

  Korean character set information
Last week, Dan had wished he had access to anyone who knew anything
about Korean. This week kj provided some information. The ensuing
discussion of Unicode (again, maybe I'm going to have to extend my I
don't cover the Unicode arguments policy from perl6-language to the
internals list too) led Jarkko Hietaniemi to propose that Parrot's
standard character set be cuneiform, with Phaistos disc symbols for
 

This fortnight's summary

2004-04-21 Thread The Perl 6 Summarizer
The Perl 6 Summary for the fortnight ending 2004-04-18
The only problem with summarizing two week's worth of Perl 6 happenings
is that there's twice as much stuff to summarize. Still, there's no way
I could have made the time to write a summary last week so I'll take my
lumps. I am exceedingly grateful that Apocalypse 12 (Objects) wasn't
released the Thursday *before* Easter though, as it is I can clear the
decks for the expected perl6-language explosion next week.

We'll start with perl6-internals as usual.

  Initializers, finalizers and fallbacks
There was some discussion of the various functions that get called by
object initialization/destruction etc. Dan wondered what he'd been
thinking when he declared that there would be distinct FINALIZE,
DELETE and CLEANUP properties (instead of declaring that a function
must be called (say) FINALIZE, you can mark any function with a
FINALIZE property, and Parrot will recognise that as the function to
call at finalization time). Andy Wardley quibbled about American/British
spelling, but Tim Bunce pointed out that the 'ize' form is preferred by
the Oxford English Dictionary (and your humble summarizer).

Leo meanwhile made a (Warnocked) proposal for a new init scheme.

http://tinyurl.com/2s2xp

http://tinyurl.com/2dfj8

  New SDL Parrot bindings
Taking advantage of Parrot's new, improved object system, chromatic
updated us all on his efforts to provide a shiny OO interface to the SDL
library. Jens Rieks wondered about chromatic's implementation choices,
and posted a few suggestions and questions. Dan reckoned he'd prefer it
if the SDL bindings used Parrots internal events systems. The catch
being that Parrot doesn't actually have an internal events system yet...

Later in the fortnight, chromatic posted an initial release and promised
to post his notes and slides from the Portland Perl Mongers meeting
where he was showing it off. There's no sign of 'em yet though.

http://tinyurl.com/265sg

http://tinyurl.com/2kpax

  new method
Jens Rieks and chromatic were unsure of the best name for a constructor
method. They'd like to be able to write a method called new, but IMCC
wouldn't allow it. Leo Tötsch pointed out that there's already a default
constructor method: __init. However, chromatic wasn't too keen on it
because he wanted to be able to pass arguments to the constructor. Leo
pointed out that, although it wasn't officially supported, you could
pass arguments in the same was as if you were making a normal parrot
function call.

Dan pointed out that our current initialization system is some way from
being the final one (which will use properties to mark constructor
methods). What we have now is more like an allocator than a real
constructor.

http://tinyurl.com/3gv6y

  Overriding __find_method in PASM?
Noting that, according to PDD15, defining a method called __find_method
should allow Perl 5 AUTOLOAD-like behaviour, chromatic wondered if it
was workable yet and, if it wasn't, how he should go about adding it.
Leo confessed that what was in the docs was a cut and paste error and
AUTOLOAD behaviour hadn't yet been defined. He suggested a workaround
using exceptions (which turned out to be overkill for what chromatic
needed, but it looks interesting.)

http://tinyurl.com/ypvze

  Language interoperability
Randy W. Sims popped over from the Module-Build mailing list, where
they've been discussing plugin architectures to allow for the
modification and extension of Module::Build's capabilities. One of the
desiderata is that, once the transition to Parrot is underway, it should
be possible to write plugins in any language supported by Parrot.
(Mmm... a build system written in Befunge, it's what the world's been
crying out for I tell you). There are currently two competing schemes,
one involving manipulating the class hierarchy at runtime and the other
involving plugins held in particular directories and a formal API. Randy
wondered if there were any technical reasons to choose one scheme or
another.

Dan reckoned that there were no particular technical reasons, but the
inheritance based scheme rather offended his sensibilities, going so far
as to say No way in hell it'll ever make it in as parrot's standard
module building system if you do it [the inheritance munging solution].

http://tinyurl.com/33nsw

  Save the Return Continuation!
The ongoing discussion about continuations seems to be fizzling
slightly. Piers Cawley had proposed moving the return continuation out
of P1 and held 'somewhere else' (possibly the control stack) and then,
when a routine needed to do cunning things with the current continuation
it could access it with some op (say get_current_cont). Dan reckoned
he 

This week's Summary

2004-04-07 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-04-04
Wednesday? Why did I leave it 'til Wednesday to write the summary? I
must have *some* reason. Or maybe not. I'll give fair warning that I
won't be doing a summary for next week though, what with Easter and
everything, but you'll get a fortnight's summary the week after, because
I'm good to you like that.

We'll start this week's summary with perl6-internals.

  MMD vtable functions in bytecode
Dan had announced that he was working on adding parrot bytecode support
for multimethod dispatch, and outlined how they'd be used and got
semi-Warnocked.

The discussion got going this week, Leo Tötsch was unsure about some of
Dan's implementation choices. In particular, he wondered if MMD subs
should use PMCs rather than the simple function pointer that Dan had
used. Dan thought not.

http://tinyurl.com/3do7z

  Behaviour of PMCs on assignment
The discussion of what to do when assigning to PMCs continued. The issue
is complicated because we are trying to be friendly to multiple
languages (though, as far as I can tell, the really problematic issue is
Perl Scalars; most of the other languages that spring to mind have
variables that are 'simple' pointers to objects; Perl Scalars can hold
(seemingly) a million and one different things, potentially all at
once). TOGoS argued that, as things stand there's a disjunction between
the way (say) integer registers work and the way PMC registers work.
With Integer registers, if you do

$I1 = $I2 + $I3

then $I1 gets a 'new' integer; there doesn't need to be a preexisting
integer. However, if you were to do:

$P1 = $P2 + $P3

what actually happens (assuming we're using straightforward PMCs
here...) is more like:

$P1.value = $P2 + $P3

In other words, you need a preexisting $P1. Leo agreed with TOGoS's
argument, but worried that implementing it would blow core size up to an
insane value. Dan didn't agree with TOGoS though, but I'm afraid I
didn't quite follow his reasoning (probably because I'm being dumb this
morning).

http://tinyurl.com/24yaw

  In which your Summarizer asks dumb questions
In an extended moment of stupidity, Piers Cawley asked why we had
distinct register and user stacks. Leo explained it to him, very
politely I thought.

http://tinyurl.com/3x77x

  Stalking the wily Garbage Collector bug
Jens Rieks's *projet du jour* -- an EBNF parser in Parrot -- tweaked a
garbage collection bug so he posted appropriate debug traces and Leo set
to work on it. He didn't get it working fully, but it takes longer to
crash now (but it crashes in the same bit of C code). Jens thinks it's a
problem with Parrot's handling of strings.

http://tinyurl.com/3eqlh

  New SDL Parrot bindings underway
That stalwart of Portland.pm, chromatic, announced that he's in the
process of porting the existing SDL Parrot bindings to use our shiny new
Object system. Jens Rieks wondered why he was prefixing his method names
with underscores (you only need underscores for globally visible
functions, methods can have straightforward names). Tim Bunce wondered
why chromatic wasn't using nested namespaces. Leo pointed out that
nested namespaces haven't been implemented just yet.

http://tinyurl.com/yrue9

  Some new classes
Dan checked in some stub code for PMCArray and StringArray. Eventually
they'll be auto-resizable, PMC or String only arrays, but right now
they're simple wrappers for PerlArray. He suggested that rewriting them
so they were real, efficient arrays would be a Good Thing (and, I
suggest, a relatively gentle introduction to Parrot hacking if anyone
reading this is interested.)

Jens Rieks offered up a patch for his data dumper so it could take them
into account, which Dan applied.

http://tinyurl.com/29gsq

  Points of focus
Dan went all Managerial on our collective donkey and posted a nice
bulletted list of things that need sorting out for a 0.1.1 release. The
general thrust of the message is bug fixing and documenting, which is
good.

http://tinyurl.com/35mor

  Fun with non deterministic searches
One of the canonical illustrations of things to do with continuations is
non deterministic searches. Imagine that you could write

$x = choose(1,3,5,9)
$y = choose(1,5,9,13)

assert $x * $y == 15

print $x * $y == , $x * $y, \n

and have 3 * 5 == 15 printed out. (Okay, so in Perl 6 you're going to
be able to do that with junctions, but this is about an underlying
implementation). Piers Cawley translated a simple non deterministic
search algorithm from scheme to Parrot and posted the (initially
failing) code to the list and pointed out that, even if he tweaked IMCC
to generate full continuations 

This week's summary

2004-03-29 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-03-28
... and we're back! Another interesting week in Perl 6. Your Summarizer
even wrote some [parrot] code and it's been simply ages since he did
that. In accordance with ancient custom, we'll start the summary with
perl6-internals.

  Building with miniparrot
Back in the early days Dan proposed, and it was generally agreed that
the Parrot build process wouldn't be Perl dependent, but instead there
would be a few OS specific 'bootstrap' scripts, enough to get miniparrot
up and running. Miniparrot would have just enough smarts to be able to
complete the configuration and build the final full parrot.

After last week's discussion about reinventing metaconfig, I wondered if
the miniparrot plan was still in place. It seems I'd missed the
discussion of stat that ended up talking about how miniparrot would be
able to do its job. I find myself wondering what else is needed to get
miniparrot to the point where it can start doing configuration work.

http://tinyurl.com/2djx8

  Continuations continued (and fun with stacks)
Warning: The following discussion of the Continuation discussions is
irrevocably biased; I find it very hard to be objective about
discussions I participate in, and I was rather loud mouthed in this one.

The previous discussions of the uses and semantics of continuations
carried over into this week. Piers Cawley argued that the current stack
architecture seemed to be optimized for the wrong thing, with the
special case RetContinuations being symptoms. He argued that current
architecture (where a single stack frame can accommodate multiple
pushes, with copy on write semantics being used to handle full
continuations) should be replaced with a 'naïve' architecture using
linked lists of immutable, simple stack frames, one frame per push.
Switching to this approach, he argued, would do away with a great deal
of code complexity, and issues of high object creation overhead could be
offset by using free lists and preallocation to reuse stack frames. Oh
yes, and there'd be no difference between a RetContinuation and a full
Continuation with this scheme.

Leo Tötsch wasn't convinced. Dan was though, and made the decision to
switch to single item per frame, immutable, non COW stacks. Leo
implemented it. His first cut was rather slow; later refinements added
freelists and other handy stuff to start pulling the performance back
up. I'm sure there's more refinement to come though.

http://tinyurl.com/2k9ke

http://tinyurl.com/yqsxa

http://tinyurl.com/34kas

http://tinyurl.com/2fo5j

http://tinyurl.com/3buyk

  Variadic functions
Ilya Martynov had some questions about how to handle variadic functions.
Leo clarified some things and pointed Ilya at the foldup op. Jens
Rieks suggested aliasing the registers I[1-4] to argc[ISPN], which
Leo liked. I'm not sure he's implemented it yet though.

http://tinyurl.com/yugc6

  GCC compiling to Parrot
In previous weeks Gerard Butler had posted wondering about getting GCC
to target Parrot. The initial response was rather negative, pointing out
that GCC and Parrot saw memory *very* differently, to the extent that
there would probably be a need have special PMCs for GCC managed memory,
which would make communication between GCC implemented languages and
Parrot implemented ones rather tricky.

Undeterred, Gerald mapped out a way forward and asked for opinions. Dan
thought the scheme looked reasonable, but fenced that with the caveat
that he knows nothing about GCC's internals.

http://tinyurl.com/2qm87

  Safe execution core and ops classification
Leo checked in some patches from Jens Rieks to allow classification of
ops. He thought that this meant we were a good way along the road to
providing a 'Safe' run-core option, though there was still a lot to do.
He outlined a road map and asked for comments (and implementations).
Comments were forthcoming, and Dan eventually bundled his comments up
into a single post with some design in it. For some reason this induced
some industrial hand waving about Proof Carrying Code from Steve Fink
(he accused himself of hand waving, not me).

Jarkko Hietaniemi (Emacs' dynamic completion suggested 'Jarkko Himself'
for that one. Well, it made *me* smile) offered the pathological

eval 'while([EMAIL PROTECTED],0){}'

as an example of the kind of bad things that can happen if you allow
eval EXPR in your 'safe' code, even with strict rules on what it's
allowed to compile (Dan pointed out that quotas would help in this
particular case...)

If there's one lesson to take from the discussion it's this: Code Safety
is Hard. Whether it's AI Hard or not is left as an exercise for the
interested reader.


This week's summary

2004-03-16 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-03-14
Another week, another summary. It's been a pretty active week so, with a
cunningly mixed metaphor, we'll dive straight into the hive of activity
that is perl6-internals.

  Benchmarking
Discussion and development of Sebastien Riedel's nifty Parrot
comparative benchmarking script continued. Leo suggested a handy config
file approach which would allow for adding benchmarks in other languages
without having to change the script itself.

The initial results don't look good if you're name's Dan and you want to
avoid getting a pie in the face at OSCON though, as Dan pointed out,
there's a few tricks still to be played in this area. Anyway,
benchmark.pl is now in the CVS tree if you want to play with it.

http://tinyurl.com/2h7c4

  Speeling mistacks
The ever helpful chromatic applied Bernhard Schmalhofer's patch to fix
up an endemic speling mostake in some tests. Apparently DESCRIPTION
isn't spelt DECSRIPTION.

http://tinyurl.com/3dd85

  Dates and Times
Discussion of parrot's handling of dates and times continued this week
too. Joshua Hoblitt who works on DateTime.pm (a very handy base for
doing date/time handling in Perl 5, you should check it out) said that
the DateTime people really, really want is an epoch that's *absolutely*
fixed across all platforms.

There was also some discussion of where the opcode/library boundary
should be placed, with some arguing that the likes of strftime should
be implemented as opcodes. Melvin Smith responded to this with what
seems to me to be a very telling point: If we cannot provide a decently
performing VM that makes people want to write stuff in bytecode (or
compiled to bytecode) we have failed anyway.

Toward the end of the week, Dan announced some decisions and questions.
Larry had a few quibbles, but otherwise there have been no other
comments. Personally, if I never hear the phrase leap second again,
I'll not be unhappy.

http://tinyurl.com/2s5ep

http://tinyurl.com/2djx8 -- Dan's decisions

  Alternate function calling scheme
Dan has come to the view that we need an alternative, light weight,
calling convention for calling vtable opcode functions; the idea being
that this should speed up objects a tad. He asked for suggestions.

Leo Tötsch wasn't convinced that we really need special calling
conventions, arguing (with numbers) that it would be best to concentrate
on speeding up object instantiation by optimizing object layout. Simon
Glover agreed with him, noting that simply changing the Array that used
to store class, classname and attributes gave him a speedup of around
15% on the object benchmarks.

http://tinyurl.com/2699g

  Summary Correction
Last week I said that we can't yet do delegated method calls for vtable
functions with objects. Leo pointed out that, actually, we can now. Leo
also disclaimed any responsibility for helping Brent Royal-Gordon (né
Dax?) fix up the support functions for Parrot::Config, though Brent
later claimed that he was merely the person doing the typing...

Jerome Quelin noted that parrotbug has already reached version 0.2.1 (I
wonder what its version will be when Parrot 1.0.0 gets released).

http://tinyurl.com/2ksox

http://tinyurl.com/3hyky

  Dead Object Detection improved
Not content with his work on everything else this week, Leo has
revisited the Garbage Collector and tracked down a couple of bugs
including a really nasty sounding one that caused disappearing
continuations. He even isolated the problem with a test.

http://tinyurl.com/2m7sf

  Rejigging trace output
Leo's rearranged the output of parrot -t slightly in an effort to make
it more readable. Jens Rieks was impressed and pointed out a couple of
issues, which Leo quickly fixed.

http://tinyurl.com/33r9w

  Namespaces in IMCC
Dan's day job continues to be a handy driver of Parrot development. This
time he needs to make use of namespaces and, whilst namespaces
themselves aren't completely nailed down yet, there's enough there that
the time has come to work out the syntax for working with them in IMCC.
He proposed

.namespace [foo; bar; baz]

as a way of setting the current namespace to foo::bar::baz (in Perl
style, your language may vary). Leo was okay with that as far as it
went, but pointed out that things were slightly more complicated than
Dan's proposal implied. He suggested that the time was right to sort out
the duties of the PIR assembler towards variable names, name mangling,
lexical scopes, namespaces, globals and all that good stuff. Dan punted
slightly on this latter part, saying that, in general it shouldn't be
the assembler's job to track them. The current namespace would simply be
used as the namespace 

This week's summary

2004-03-08 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 2004-03-07
Time marches on, and another summary gets written, sure as eggs are eggs
and chromatic is a chap with whom I will never start a sentence. We
start, as always, with perl6-internals.

  Platform games
Work continued this week on expanding the number of known (and
preferably known good) platforms in the PLATFORMS file.

  Languages tests
Dan reckons it's time to be a little more aggressive with tests for
ancillary stuff, in particular the contents of the languages
subdirectory. He called for language maintainers (and any other
interested parties) to at least get minimal tests written for all the
languages in the languages directory, and to get those welded to the
languages-test makefile target.

http://tinyurl.com/24sd3

  IMCC and objects/methods
Tim Bunce congratulated everyone on Parrot 0.1.0 before asking about
where we stood with IMCC and objects/methods. Leo confirmed Tim's
supposition that there is no syntactic support for objects and methods
in IMCC, at least in part because there's been no discussion of how such
syntax should look.

http://tinyurl.com/2jerk

  Parrotbug reaches 0.0.1
Jerome Quelin responded to Dan's otherwise ignored request for a parrot
equivalent of perlbug when he offered an implementation of parrotbug for
everyone's perusal, but didn't go so far to add it to the distribution.
I don't think it's been checked into the repository yet, but it'll
probably go in tools/dev/ when it does.

Later in the week, he actually got it working, sending mail to the
appropriate mailing lists. With any luck the mailing lists themselves
will be up and running by the time you read this.

http://tinyurl.com/3fknl

  Subclassing bug
Jens Rieks found what looked like a problem with subclassing, which
turned out to be a problem with clone not going deep enough. Simon
Glover tracked it to its den and Dan Sugalski fixed it.

http://tinyurl.com/ysogd

  Good news! Bad news!
Good news! Dan says the infrastructure is in place to do delegated
method calls for vtable functions with objects. Bad news! It doesn't
actually work because it's impossible to inherit from delegate.pmc
properly. Dan pleaded for someone to take a look at pmc2c2.pl and or
lib/Parrot/Pmc2c.pm and fix things so that the generated code is
heritable.

http://tinyurl.com/2ouce

  Parrot m4 updated
Bernhard Schmalhofer posted a patch to improve the Parrot implementation
of the m4 macro language.

http://tinyurl.com/2aauu

  Use vim?
I don't use vim, but it seems that Leo Tötsch does. He's added some
handy dandy vim syntax files for IMC code. If you're a vim user you
might like to check it out. Leo points out that the syntax tables might
well be handy if you don't know all 1384 opcode variants by heart.

http://tinyurl.com/36gqv

  Parrotris
Sadly, Jens Rieks' Parrot and SDL implementation of tetris didn't quite
make it under the wire for the 0.1.0 release. However, Leo has got round
to trying it and is impressed, though he did spot a few bugs (it doesn't
spot that the game is over for instance). Jens is working on fixing
those (and on adding new features), which he reckons will go a deal
faster when IMCC has better syntactic support for OO techniques.

http://tinyurl.com/2hklm

  Dates and Times
To paraphrase Barbie: Dates and Times are Hard. Not that hardness has
ever stopped Dashing Dan Sugalski before. This time he waded into the
swamp that is Parrot's handling of dates, times, intervals and all that
other jazz. He started by soliciting opinions. He got quite a few.

The discussion can probably be divided into two camps: KISS (Keep it
Simple) people, and DTRT (Do The Right Thing) people. But KISS still has
it's complexities (which Epoch do we want? Should time be a floating
point value?) and what, exactly, is the Right Thing? The catch is, time
is a messily human thing, and computers are really bad at messy
humanity.

Larry said that Dan could do what he wants with Parrot, but he wants
Perl 6's standard interface to be a floating point seconds since 2000.
He argues that floating point will almost always have enough precision
for the task at hand, and by the time it doesn't, it will. :-). He also
argued that normal users should *never* have to remember the units of
the fractional seconds.

Zellyn Hunter pointed everyone at Dave Rolsky's excellent article on the
complexities of handling dates and times with a computer.

Discussion is ongoing, but it seems that Larry and Dan are leaning
towards the KISS approach.

http://tinyurl.com/3dqhn

http://tinyurl.com/ywcs9

  Initializers, finalizers and fallbacks
Anyone who has been reading the internals list for any length of time,
or who has chatted 

This week's summary

2004-03-01 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040229
Welcome to the leapday summary. We'll crack straight on with
perl6-internals

  Running up to release time
As Leapday had been chosen as the release date for Parrot 0.1.0, the
week was mostly spent getting things ready for release. A case in point
was the PLATFORMS file which lists those platforms on which Parrot is
known to compile and run, which (at the beginning of the week) was short
several platforms and generally out of date. So everyone manned the
pumps and sent in reports of success and failure. BTW, if you manage to
get Parrot up and running (or even partially up and limping) on a
platform that's not listed in PLATFORMS then [EMAIL PROTECTED]
would be very pleased to hear from you.

http://tinyurl.com/287f2

  Objects and time
Dan announced that he'd trodden on one of the nasty bits of objects; the
proper ordering of classes for initialization and destruction in the
face of multiple inheritance. He announced that he was in the process of
actively ignoring it for the time being and canvassed opinions about
whether to delay the Leapday release in favour of fully
specced/implemented objects or whether to make the 29th without objects,
or some other choice. In the end we decided to still aim for the 29th,
with objects in a 90% there state, but with big 'HERE BE DRAGONS'
warnings plastered on the tricky edge cases. A little later Dan
announced what would be there for the release (Multiple inheritance,
attributes, object instantiation and method calls) and what wouldn't
(monkeying with some things after subclassing/instantiation, method
redispatch and fancy namespace lookups).

As the week progressed, objects inched closer and closer to readiness,
though at least one summarizer's heart was in his mouth as the week
ebbed away. Would Dan get everything he'd promised working before the
deadline? Tune in later on to find out.

http://tinyurl.com/34db3

http://tinyurl.com/2xuoa

  Feature Freeze
On Wednesday, Leo Tötsch announced a feature slush (patches to add OO
features were still being accepted) in anticipation of a release. The
patch rate increased as people got on with fixing up failing tests on
various platforms, improving documentation, and improving OO
functionality. Not all the object patches were from Dan; chromatic got
in on the act with a couple of tweaks to parrotobject.pmc...

http://tinyurl.com/2u3kb

  Native PBC issues
It turns out that, just at the moment, Parrot bytecode isn't actually
platform independent. This will, of course, get fixed, but it's not
Leo's top priority at present. He asked people who are running Parrot on
64 bit and Big endian architectures to submit native_pbc test files (if
you're on such an architecture, take a look at t/native_pbc/*.t for
instructions, and the Parrot community will thank you for it).

http://tinyurl.com/2fh5r

  Object Questions
Simon Glover did some sterling work exercising the Object documentation
and implementation, posting several bug reports and questions.

http://tinyurl.com/3bnys

http://tinyurl.com/yu9ce

  Ladies and Gentleman: Objects!
On Wednesday, several full days before the release date, Dan announced
that objects were done (well, everything that he promised would work
did) and asked for people to start 'abusing it heavily'. Which they
promptly did. There was applause too.

http://tinyurl.com/2bsqv

  Next on the hit list
Having got objects up, Dan immediately posted a list of desiderata for
the next release but one. Is there no stopping him?

http://tinyurl.com/38ymw

  Today we have naming of parts
Will the madness never stop?

Mitchell Charity spoke for everyone when he posted an extract from
PDD15:

What .NET calls an attribute parrot calls a property
What .NET calls a property parrot calls an attribute

Everyone shared the pain, though Paolo Molaro pointed out that it's not
exactly accurate and the .NET name for a parrot attribute is 'field'
(which is yet another term with wide variety of meanings when you think
about it). Not being the biggest OO fan in the world, Dan swears he's
just going to rename them Fred and Barney but not tell anyone which is
which.

http://tinyurl.com/24j36

  LANGUAGES.STATUS updates
Mitchell also pointed out that LANGUAGES.STATUS was out of date and
several languages which were supposed to be okay failed to work on his
system. He asked for feedback to get it updated correctly.

http://tinyurl.com/3xow7

  Inconsistent Parrot/IMCC behaviour
Gregor Purdy found that Parrot was doing different things with the .pasm
file generated from an .imc file by IMCC than it was when it ran the
.imc file directly. Melvin Smith and Leo both agreed that it was a bug,

This week's summary

2004-02-26 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040222
Welcome to the latest belated Perl 6 Summary. I'm running late, so we'll
just dive straight into perl6-internals

  Loading bytecode at runtime
Last week Dan had specced out the rules for runtime loading of bytecode.
This week, Leo Tötsch started implementing it. There was a certain
amount of quibbling about syntax, but that was quickly sorted out.

http://tinyurl.com/27kp6

  Objects
Dan continued his work on objects and on sorting out method resolution
niggles. Getting ahead of myself slightly, he finished it this week.

http://tinyurl.com/33ql7

  Obfuscated Parrot
I reproduce this product of Leo Tötsch's warped brane without comment:

 bounds 1
 trace 0
 split P0, '', \nrekcaH torraP rehtona tsuJ
 add I1, 3
 add I2, 4
 branch I2
 pack S23, 793, I1, I0
 branch I2
 add I2, 382, I1
 branch I2
 new S23, 911, I0, I0
 branch I1
 transcode S23, S0, -19
 end

And, to compound things:

bounds 1
trace 0
newclass P0, Just another Parrot Hacker\n
shift S0, P5
does I0, P0, S0
add I0, 4
bsr I0
pack S0, 381, I0, I0
invoke
ret

Look, OO badness

http://tinyurl.com/2xbye

http://tinyurl.com/2eufv

  IO fixes for Win32
I must confess I didn't understand the details of the discussion, but
Goplat, Vladimir Lipsky and Melvin Smith spent some time working on IO
issues under Win32.

http://tinyurl.com/3b3bw

  Parrot Dumper updated
Jens Rieks continued his sterling work on a Parrot Data::Dumper
equivalent, posting a new version that does bounds checking and PMC
property dumping. A later refinement added support for self referential
data structures and other edge cases.

http://tinyurl.com/ytmmz

  ConfigScript3
TOGoS announced a new language targetting Parrot.

http://tinyurl.com/2pszj

http://tinyurl.com/2b942

  Symbol naming and IMCC2
Dan ruled on the symbol naming issue discussion. Essentially, if your
symbol includes a sigil, you're not going to be able to use it directly.
Learn to love symbol tables and .alias.

http://tinyurl.com/37fx3

  TODO: parrotbug
Dan asked for someone to implement a parrotbug script to handle
building and possibly sending the bug reports into RT. The script should
work in a similar way to perlbug, appending configuration information
etc to any bug report.

http://tinyurl.com/3x59b

  TODO: Forth as a compiler
Dan asked for a volunteer to fix forth.pasm so that it can be loaded in
as a compiler module, allowing one to do:

compile P5, ForthCompiler, 1 2 + .

and have it print out 3.

http://tinyurl.com/2zzrr

  Documentation tasks
Taking time out to heap praise on the deserving Michael Scott, Dan
outlined a few documentation jobs that need to be done (hopefully)
before the next Parrot release.

http://tinyurl.com/3eons

  SDL goodness
The work on SDL support continued apace, with chromatic checking in
several SDL related fixes and enhancements.

http://tinyurl.com/yrsgk

http://tinyurl.com/2oycl

  Parrot Day at the Austrian Perl Workshop
Thomas Klausner announced that this year's Austrian Perl Workshop would
have a Parrot Day, with a tutorial from Leo Tötsch and hopefully some
other good stuff from Parrot luminaries. Thomas also asked for people to
submit talk ideas.

http://tinyurl.com/29ev4

http://tinyurl.com/2257c

  SDL + Parrot = Tetris
Jens Rieks announced the alpha of an implementation of tetris in Parrot
using SDL for the display. Yay Jens! Mmm... a time sink... just what the
Parrot developers need.

http://tinyurl.com/2vb3d

  The First International Workshop on Interpreted Languages
Dan pointed us all at the First International Workshop on Interpreted
Languages' Call for Papers.

http://tinyurl.com/2golt

http://tinyurl.com/3cuhu

Meanwhile, in perl6-languages
  Traits/Roles
I know I've had this feeling of déjà vu before, but I've spelt it right
this time. Discussion of Roles continued this week. If I never read
another discussion of the difference between Dog::bark and
Tree::bark again, it'll be too soon.

  The Sort Problem
The other topic of discussion this week covered sorting. It looks as
though Perl 6's sort function is going to be rather more powerful than
the Perl 5 equivalent; hopefully this means Perl 6 will finally see the
back of code like:

map  { $_-[0] }
sort { $a-[1] = $a-[1] }
map  { [$_, extract_key_from($_) } @array

Damian's post on the subject, referenced below, looks like the front
runner. It's worth reading if you're interested in sort itself or if
you're interested in how Perl 6's multi dispatch will work.

  

This week's summary delayed

2004-02-23 Thread The Perl 6 Summarizer
I'm afraid that this week's summary won't be posted until at least
Wednesday. Sorry.


This week's summary

2004-02-17 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040215
In his talk on Parrot at OSCON last year, Dan said that Parrot would
have objects 'by the end of the week'. It's been a very long week, and
it's not finished yet.

Right, venting over, time for the summary. I'll start with
perl6-internals, as always. Actually, we're starting slightly before the
usual start of the week because about half an hour after I sent last
week's summary off I realised I'd completely missed a couple of threads.

  Some minor decisions and timetables
Dan made a few design decisions and outlined a release timetable for the
next release of Parrot (which was initially set to be Valentine's Day,
but the appeal of February 29th for a Leap Parrot release proved to be
greater).

http://tinyurl.com/2y8fz

  Why didn't I mention this last week?
Jens Rieks earns a Wow, cool! from me with his parrot version of
Data::Dumper. Way to go Jens. People were impressed.

http://tinyurl.com/2uebj

  Supporting simple PMCs as keys
Stéphane Payrard posted a patch to support using simple PMCs instead of
full on key PMCs for simple lookups. He and Leo discussed it, but the
patch hasn't been accepted yet.

http://tinyurl.com/2fru2

  Keyed access to UnManagedStruct
Everyone's favourite differently capitalized O'Reilly employee,
chromatic (Maybe the new running joke should be my struggles to avoid
using his name at the start of a sentence so we don't have a falling out
cases), continued his discussion with Leo about keyed access to
Unmanaged (and presumably managed) C structs.

http://tinyurl.com/yuk3m

http://tinyurl.com/2c6z6 -- An example of chromatic's problem

  Backward branch, fixed
Remember the problem with a backward branch that I said was Warnocked
last week. It turned out that it was fixed before I posted the summary.
They don't call Leo Tötsch the Patchmonster for nothing.

http://tinyurl.com/24tre

  Parrot system
Dan apologized for his recent silence on list, but thought he'd be more
active from now on. He also announced that he was in the process of
adding in perl 5 style system support

http://tinyurl.com/2jg8v

  Parrot sort
Jens Rieks garnered more kudos with his implementation of a simple _sort
function in IMC. Leo checked it in, and you'll find it in
library/sort.imc in an up to date CVS distribution. Then, seemingly in
his spare time, he fixed up some SDL related stuff for chromatic.

http://tinyurl.com/3fm4w

  RFD: Symbol naming and IMCC2
Melvin Smith posted a Request For Discussion about how IMCC2 will handle
symbols and sigils. The issue seems to be that, for humans writing code,
quoting symbols is a pain. Various options were suggested, but nothing
appears to have been decided yet. (I quite like Leo's suggestion
involving declaring lexicals with a mangled name for use in parrot, but
marking it as being associated with an $unmangled_original_name.)

http://tinyurl.com/2ovqp

  JIT and branches under the Sun
Stephane Peiry found with the JIT on Suns; it seems that a loop that
should terminate carries on forever instead. He and Leo worked on
tracking it down, but the bug was still there by the end of the week.

http://tinyurl.com/2acc8

  Rules for method resolution?
Okay, so I may have kvetched about the continuing lack of Parrot objects
earlier, but Dan's definitely working on it. This time he's thinking
about method resolution. In particular he wondered when

   findmethod P4, Pobject, methodname

should do the name resolution. In other words, should P4 contain the
method that was current at the time of the findmethod call, or a proxy
PMC that waits until the method is invoked to find the appropriate
method. The discussion seemed to come down in favour of doing both.

http://tinyurl.com/232lg

  Object spec
Dan noted that he'd checked in some major revisions to PDD15 (objects!)
and suggested that people take a look. Simon Glover, Leo Tötsch and LF
had questions.

http://tinyurl.com/2hm3x

Meanwhile in perl6-language
  The thread that ate the mailing list
Luke Palmer doesn't like the repetition inherent in

   @sorted = sort { $^a.foo('bar').compute = $^b.foo('bar').compute }
   @unsorted;

He wondered if there might be some way of rejigging sort to eliminate
the duplication and proposed a couple of spectacularly ugly
possibilities. And then the world exploded. It seems that nobody (on
perl6-language) actually likes the current signature of sort, but
nobody can quite agree on what it *should* look like. You know things
are getting hand when Dan proposes just using SQL's ORDER BY syntax
(even though he was joking). Simon Rubyometer Cozens proposed:

   @sorted = @unsorted.sort(op = infix:=, 
key = { 

This week's summary

2004-02-10 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040208
Another Monday evening. Another day of displacement activity out of the
way. There's a huge lump of belly pork braising slowly in a mixture of
stock, rice wine  soy sauce, and nothing on the telly. It must be time
to write the Perl 6 summary. As usual, I'm going to deal with
perl6-internals first.

  RT Cleanup
The cleanup of the RT bugs database continued apace. Stephane Peiry
posted a list of old RT entries and their authors and asked them to
supply updates ore they'd be flagged as obsolete in the queue. In the
ensuing discussion, Steve Fink pointed out something that I'd missed: as
of this week, all the perl6 tests (including the regular expression
tests) are passing. He pointed out that the suite is *far* from
comprehensive, but I still think this is pretty spiffy.

http://tinyurl.com/38e6l

  DOD, mutation, and generational collectors
Dan had posted some thoughts on the way that many of the things that
cause problems for threads also cause problems for generational garbage
collectors and gave a list of 'mutating activities' that might need to
be trapped by both threads and GC. Gorgon Henriksen asked Dan for more
elaboration on what he meant by generational GC because, as Gordon
understood it, it came with a whole load of baggage that was
inappropriate for Parrot. This week, Dan gave his answer and pointed out
that various other improved GC schemes (incremental, concurrent)
required the same level of support as a generational scheme so it made
sense to provide such support now. Leo Tötsch had a few comments to make
about the different possible schemes and discussion moved on to the
nastiness of doing GC in a multithreaded environment.

http://tinyurl.com/24vjs -- Thread root

  SDL Bindings
The SDL bindings that chromatic's been working on continue to develop.
(Bah! People who insist on weird capitalization of their names and thus
force me into the passive voice are jolly annoying, even if personally
very pleasant).

http://tinyurl.com/3y4ft

  Python PMCs?
Michal Wallace wondered what Dan's plan was for getting python objects
working for the pie-thon. Michal has made a small start on wrapping
PythonObjects as PMCs which seemed to work and was apparently easier
than trying to recode them as PMCs. He pointed everyone at his current
implementation. So far his post has been Warnocked.

http://tinyurl.com/2jzyc

http://tinyurl.com/3fnud -- The wrapper implementation

  Docs and releases
Tim Bunce wondered whether Parrot's documentation was in sync with
current implementation reality, and when we'd see a clean way to make
method calls. In a post dated the 3rd of February, Leo confessed that
there is still a lot of outdated or unimplemented stuff in the assembly
related docs and noted that Dan had said that the low-level object
design would be done by the 30th of January.

http://tinyurl.com/ysrn5

  Backward branch, Warnocked
Pete Lomax drew everyone's attention to a problem he'd found back at the
beginning of December which Leo had said was a problem with a backward
branch. He wondered when/if the problem might be fixed.

Sadly the answer was We're not sure when it'll be fixed, it's really
hard to fix the current version of IMCC, but it should be easier to sort
out in IMCCv2. For now, don't do that. Meanwhile, Harry Jackson tried
to track the bug down to the appropriate bit of IMCC; his experiments
with code variants seem to imply that the problem is with IMCC not
recognizing that ret is a branch.

http://tinyurl.com/2pxj6

  Alignment issues with *ManagedStruct
The redoubtable chromatic came across some issues with the alignment of
members within a struct and wondered if there might be a better way of
sorting out alignment issues than his current trick of explicitly
padding things out (which he feels probably isn't portable). Leo pointed
out that there was already support for offsetting struct members when
setting up a *Struct PMC by using the third initializer parameter.

As discussion of the best way forward continued, it emerged that Jens
Rieks is in the process of writing a simple C-parser in IMC which should
be able to parse header files and create ManagedStructs automagically.
Go Jens. Tim Bunce suggested that Jens take a look at
ExtUtils::XSBuilder for hints. Meanwhile Uri was looking at
Convert::Binary::C which is apparently far more robust.

Leo ended up listing a set of requirements for a script to parse C
headers and generate the appropriate PIR code to set up various *Struct
PMCs.

http://tinyurl.com/2ae4m

http://tinyurl.com/36kxn -- Jens talks about his C parser

http://tinyurl.com/234du -- Leo's requirements

  Baby, baby, where did my patch go?
Gordon 

This week's summary

2004-02-03 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040201
Welcome once again to Gateshead, where the skies are grey, the view is
uninspiring, and the workmen across the road seem determined to fall off
the ladder before they get the double glazing fitted.

But enough of the gay Gateshead life, let's hurry on to the doings of
the denizens of the perl6-internals mailing list. Who knows, we might
even visit the inmates of perl6-language later.

  Threading
To nobody's great surprise, we talked about threading. In particular,
Gordon Henriksen's concerns about the all around scariness of morph
(and not just in a threading context). I'm not sure I quite understand
what's being done, but progress is definitely being made.

Late in the week Dan announced that there were obviously still issues to
be worked out before we started in on implementation (modulo some
'obvious' stuff). He also asked for 'real worldish' tests for threading
in order to get some real numbers for different possible approaches and
to see if the problem is as bad as it was first thought.

http://tinyurl.com/3h9tq

http://tinyurl.com/2774w

  Embedding vs. extending interface types
Remember last week's kerfuffle about Parrot_Interp vs Parrot_INTERP?
Dan's resolved it be deciding that we'll just call it Parrot_Interp
everywhere. Gordon Henriksen sent in the patch.

http://tinyurl.com/ywue7

  Leo explains
Will Coleda (and others) have been having problems with data that should
be inviolate getting clobbered in strange ways. After some effort, Will
got his offending code down to 22 lines. This let Leo Tötsch work out
what was going on, and in the referenced post he explained all.
Essentially, the Copy on Write logic for handling register (and other)
stacks is broken. The workaround is not to use Continuations and
Exception Handlers. Fixes are welcome. Please.

http://tinyurl.com/2t3a8

  Testing Signal Handlers
Leo asked for help with sorting out the testing code for some signal
handling tests that seemed to be confusing the harness quite badly. Uri
Guttman came up with some suggested workarounds, as did Mike Schwern.
Leo found a third way. (If you've ever tried to write test with fork
in it, it's worth taking a look at both Uri and Schwern's answers.

http://tinyurl.com/2egso

  The costs of sharing revisited
Last week, Leo posted some scary numbers implying that using a shared
PMC led to terrible slowdowns. This week he posted the latest numbers,
and things are looking up.

   $ time perl-58-th shared_ref.pl

   real 0m8.694s

   $ time parrot shared_ref.pasm

   real 0m0.375

(and that's an unoptimized Parrot). Elizabeth Mattijsen was moved to ask
for a ponie.

http://tinyurl.com/3amop

  Cunning stunts with with UnManagedStruct
Donning his devious head, Leo demonstrated the use of UnManagedStruct to
allow for unlimited self-inspection and self-modification of Parrot
state. Which isn't really something we want to be possible. In the
opinion of Luke Palmer and Jeff Clites, the costs of removing this
capability aren't worth paying. As Jeff Clites pointed out, you only use
UnManagedStructs when you're calling out to a native library, and once
you introduce a native library all bets are already off.

http://tinyurl.com/yt92b

  Michael Scott: hero of the week
Over the past few weeks Michael Scott has gradually been making the
parrot distribution a kinder, gentler place with his sterling efforts to
tidy up and generally improve the existing documentation. This week he
rationalized/added documentation for everything in src/ (with the
exception of malloc.c and malloc-trace.c). He's working on documenting
examples/ now.

The response to his announcement was overwhelmingly and understandably
positive (The consensus is that Mike rocks). Now if we can just *keep*
everything in such good condition...

http://tinyurl.com/2pevc

  Parrot DBDI announced
Tim Perl DBI Bunce announced the Parrot DBDI Project: A Database
Driver Interface for Parrot. The goal is to have a common Parrot level
interface to database drivers which can then be reused by different
language specific database interfaces. For further details read the
post; it's jolly good. And bravo Tim.

http://tinyurl.com/23zq3

  Internal exception handlers
Leo posted a set of macros for doing exception handling in the parrot
core using TRY/CATCH/THROW etc. and asked for comments. So far he's
been Warnocked.

http://tinyurl.com/2z57k

  SDL bindings
After Leo fixed the struct PMCs for him, chromatic has proceeded apace
to implement SDL wrappers in Parrot. He's reached the point where he has
code that can create an SDL window and blit a blue rectangle onto it.
Leo applied his patches. Check out 

This week's summary

2004-01-27 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040125
Welcome to the first summary from my new home in Gateshead. The same old
wibble, with a different view from its window and fewer trips to London.
Right, time to see what's been going on in perl6-internals this week.

  Global labels in IMCC
The cryptically named TOGoS wondered how to get the address of a label
in a different IMCC compilation unit. According to Dan there's no way to
do that, and you didn't want to do that anyway.

http://tinyurl.com/3evz2

  Dan's threads proposal
After a few weeks of everyone else's proposals, Dan started to outline
the design of Parrot's threading capabilities. He started by defining
his terms (a useful thing to do in a field where there seem to me
multiple competing definitions of various terms) and guaranteeing that
user code wouldn't crash the interpreter (subject to the assumption that
system level memory allocation was thread safe) before getting into the
meat of his proposal. Which you're probably best reading for yourself;
it's a long document but there's very little flab and any attempt of
mine to summarize it would probably end up being at least as long as and
a good deal less lucid than the original.

Of course, this sparked a ton of discussion, generally positive, as
people asked for various clarifications and made suggestions. Gordon
Henriksen pointed out a nasty race condition that means that the garbage
collector can't be made as thread safe as Dan had hoped.

Summarizer Barbie says Threads are hard!

On Thursday, Dan posted a last call for comments and objections before
he went on to the detailed design. This time there were some objections,
but I don't think any of 'em are going to stop Dan.

http://tinyurl.com/ys2ar

http://tinyurl.com/29lpb

  Vtables organization
Last week Dan had outlined an approach to organizing PMC vtables using a
chaining approach; this week saw the discussion of that proposal with
Benjamin K. Stuhl asking the hard questions.

http://tinyurl.com/35rlc

  Benchmark suite
Matt Fowles suggested that it might make sense to create a canonical
suite of benchmarks to exercise Parrot well. His idea being that, if we
have a standard suite of Parrot benchmarks, then potential performance
affecting changes could be tested against that, rather than having
custom benchmarks rolled each time. Luke Palmer pointed to
examples/benchmarks and noted that it's hard to create benchmarks that
test everything. However, he hoped that any good benchmark that gets
posted to the list would get added to this suite, along with some
documentation describing what is being tested.

http://tinyurl.com/22cyj

  Number formatting
Dan did some more designing, this time mandating that Parrot will,
eventually adopt ICU's formatting template for numeric templates but, to
start with, we'll be rolling our own. The new op will be format Sx,
[INP]y, [SP]z.

http://tinyurl.com/2vhuk

  Base string transforms
Dan announced that he would be adding upcase, downcase, titlecase
and to_chartype to the various chartype vtables. He also noted that
he'd like to get some alternative chartypes and encodings into Parrot as
soon as possible to make sure we can actually handle things without
having to use Unicode all the time.

http://tinyurl.com/2gvg3

  Calling conventions in IMCC
Will Coleda had some problems with IMCC's handling of the parrot calling
conventions when he found that code that worked a couple of months ago
had stopped working in the current Parrot (A month is a *very* long time
in Parrot development though.) The problem took a fair bit of tracking
down and I'm not entirely sure it's entirely fixed yet; Will had reached
the point where the code would compile, but it still wouldn't actually
run.

http://tinyurl.com/3d4c4

  Steve Fink's obnoxious test case
Steve Fink posted an obnoxious test case that generated memory
corruption. The test case is obnoxious because it's 56KB of IMCC source
code, and Steve had been unable to reduce it. This didn't discourage Leo
Tötsch though, who set about tracking the bug to its lair. It's not
fixed yet, but with the Patchmonster on the case it can only be a matter
of time.

There were several other GC related issues that cropped up over the
week; I wonder if they're all aspects of a single lurking bug.

http://tinyurl.com/yvnmn

  IMCC returning ints
Steve Fink also found a problem with IMCC failing to properly return
integers from unprototyped routines and posted an appropriate patch to
the test suite. It turns out that the problem is that IMCC doesn't quite
implement the full Parrot Calling Conventions, especially the return
convention, but it's getting there.

http://tinyurl.com/2rtzo

  The 

This week's summary

2004-01-20 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040118
I hope you'll forgive the lack of banter before we start in on
perl6-internals.

  Threads. Again.
Still more proposals about threads this week. Jeff Clites offered some
notes based on the Java Virtual Machine's threading model. Surprisingly,
this was the week's only threads thread. Next week: Dan starts to
outline the design that's going to be implemented.

http://tinyurl.com/2fk4f

  Questions about abstract PMCs
Stéphane Payrard had some questions about abstract PMCs and whether they
were needed in core_pmcs.h and pmctypes.pasm to make PMC type checking
work in IMCC. Leo Tötsch answered questions, but didn't think they were
actually needed in those files. Discussion ensued.

http://tinyurl.com/3bqxg

  Docs and releases
Tim Bunce wondered whether a date had been set for the next release. He
also pointedly wondered if the docs were up to date with best practises
and whether having them up to date would be a goal for the next release.
Dan answered: No, no and yes, bordering on a requirement and not
just a goal. Discussion ensued again. For some reason this thread
flushed out a few 'shy lurkers' so let's extend a big hello to Paul
Cochrane, Herbert Snorrason, Matt Diephouse, Robin Redeker, Richard
Holden and Mark Solinski.

http://tinyurl.com/yucb2

  Making continuations work properly
The work of getting continuations to close over the various bits and
pieces the should close over continues; it seems there's rather more to
doing the Right Thing than meets the eye.

http://tinyurl.com/2bvpj

  new_noinit and init ops
Luke Palmer was trying to implement a loop using a continuation. He
wanted to be able to defer initialization of a continuation so he
implemented two stage instantiation  initialization; wrapped it up in
two new ops, new_noinit and init, and posted the resulting patch to
the list. Michal Wallace thought it best to just use a lexical. Then he
perpetrated a spectacularly extended metaphor about Parrot entitled *Mr
Parrot's Neighborhood*, which probably works best if you don't
automatically correct the spelling of neighbourhood.

http://tinyurl.com/24myr

http://tinyurl.com/3xrus -- Mr Parrot's neighborhood

  Namespace stuff
Jeff Clites revisited a thread from a while back about namespaces. His
discussion centred on whether the namespace part of a name should be,
logically a string Global::Namespace::Hierarchy or list of strings
[Global, Namespace, Hierarchy]. He argued that it made sense to
just use a simple thing and asked what we actually gained from having a
hierarchy. Dan wants a hierarchy because it makes cross language sharing
of namespaces easier. Larry wants a hierarchy 'cos it makes all sorts of
things easier. Tim Bunce offered another proposal which received
qualified approval from both Dan  Leo.

http://tinyurl.com/2j8gb

http://tinyurl.com/3fecc -- Tim's proposal

  Parrot string docs
Robert Eaglestone had a bunch of questions about Parrot's String
documentation. Answers were forthcoming.

http://tinyurl.com/ysz54

  IMCC v1 feature freeze
Melvin Smith announced a feature freeze for IMCC version 1 and called
for bug reports for it. He plans to get imcc1 working as correctly as
possible and frozen within a couple of weeks before starting the really
major work (and deprecation of features) on IMCC 2. There was a certain
amount of wrangling about CVS issues, but it was generally thought to be
a good idea.

http://tinyurl.com/2ooy5

  Managed and unmanaged structs
Dan had some thoughts about accessing and generally monkeying around
with C structs and added a couple of related tasks to the todo list. Leo
pointed out that quite a bit of it was done, and pointed out where
further work was needed.

http://tinyurl.com/2a4jl

  Loading bytecode at runtime
Dan did some more design work on how runtime loading of bytecode should
be handled.

http://tinyurl.com/22rst

  The todo list
Dan was reminded that we have a full, working, RT installation so he's
started creating tickets for each todo. This should make for better
tracking and ownership of tasks. Hurrah. He asked for a volunteer or two
to manage the todo queue. Dave Pippenger and Stephane Peiry stepped up
to the plate with heartening alacrity. Go guys.

http://tinyurl.com/2wxou

http://bugs6.perl.org/

  Numeric formatting
More design from Dan. This time he was thinking about numeric
formatting. His initial plan was to lift the formatting rules from SQL,
but I'm not sure if that plan survived contact with Michael Scott who
pointed out that ICU (the Unicode library that's already included in the
Parrot tree) has its own number formatting API. After some discussion in
which Dan pointed out 

This week's summary

2004-01-13 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040111
It's Monday. People have been talking about Perl 6, Parrot and the
European Union Constitution. Let's find out what they've been saying
about Parrot first shall we?

  Threads
Threads were discussed some more. Dan's deadline is coming up soon,
hopefully soon after that discussion will move from Holy Skirmishes
about architecture and on to meaningful discussions of a real
implementation.

Hmm... that came out rather more dismissive than I intended.

  Continuation problems
Luke Palmer found a problem with Parrot's continuations. A continuation
is supposed to encapsulate the interpreter's control state, in other
words the position of the program counter and the state of the register
stacks, and a pointer to the previous continuation. However, it turns
out that a Parrot continuation just contains the program counter and a
pointer to the previous continuation. There was some discussion of why
this was so (Melvin Smith seemed to claim that it was both his fault and
not his fault).

Everyone agreed that this needed to be fixed pretty promptly and it
wasn't long before Luke posted a patch.

http://tinyurl.com/2jzv2

http://tinyurl.com/3for3

  A problem with threads
In a change from the discussions of thread philosophy, Jeff Clites
posted about a problem he was having with Parrot's current threads
implementation which was causing problems when trying to join multiple
threads. Between them, Jeff and Leo Tötsch tracked down a possible cause
of the problem and Jeff offered up a patch which Leo applied.

http://tinyurl.com/yssjs

  The PPC JIT gets fixed
Jeff Clites also posted a patch which cleans up the last problems with
the JIT on PPC. Leo applied it. Us Apple users cheered.

http://tinyurl.com/2pyft

  Luke Palmer gets his act together
Luke Palmer decided to get his act together (given the level of his
contribution to the Perl 6 lists so far, I'm almost scared to find out
what he's going to be like now...) and finish up his 'Priority DOD'
rethink of the Garbage Collector. I confess I'm not really qualified to
discuss what's different about it, beyond the claim of a 10,000% speed
up when there were no 'eager' PMCs about (things that need immediate
cleanup on scope exit; the canonical example being a Perlish file
handle) and only a 5% slowdown when there were.

Luke and Leo discussed the patch a bit before Leo applied it.

http://tinyurl.com/2afyc

http://tinyurl.com/235ak -- Luke explains the patch

  IMCC speed issues
Dan posted some timings he'd made of IMCC compiling some large subs,
which were not the most wonderful timings I've ever seen. A 41 minute
compile isn't generally what one wishes to see. Melvin Smith had a few
ideas about what was causing it, as did Leo (it seems that IMCC's
register allocation is very slow in the presence of spilling and Live
analysis increases with the product of the number of lines and variables
in a segment. Leo recommended redoing the sub to reduce the number of
(and avoid long lived) PIR variables (ie. registers) by using lexicals
or globals instead.

http://tinyurl.com/2wb6l

  References to hash elements
Arthur Ponie Bergman had some questions about how references to hash
elements would be done. Consider the following Perl code:

   my %hash;
   $foo = \$hash{key};

   $$foo = bar;

   print $hash{key}; # Prints bar

Arthur wondered how this could be made to work with the current vtable
setup, specifically in the presence of tying. Simon Cozens thought that
there should be a special HashElement PMC which would handle fetching
the actual value from the hash (or writing it back to the hash) as
appropriate. Dan agreed with him, so it looks like this might be the way
forward.

http://tinyurl.com/2hop4

  Instantiation?
Michal Wallace asked how to instantiate objects from Parrot. Luke Palmer
supplied the answer, but pointed out that, at present, classes can only
have integer attributes. It turns out that, for Michal's purposes, he
can probably get by with using properties instead, so that's all right.

Stéphane Payrard did the decent thing and implemented the other
attribute types. He even wrote tests.

http://tinyurl.com/3dul5

http://tinyurl.com/ywgvo

  Creating 'proper' interpreters in Parrot
Simon Cozens wondered what was left to do to allow parrot to be embedded
in an interpreter and have PIR fed directly to it. Leo pointed him at
his own YAL.

http://tinyurl.com/2smrp

http://toetsch.at/yal/ -- Yet Another Language

  yield op?
Michal Wallace was uncomfortable with the workings of Parrot Coroutines
and posted a sample of parrot code which demonstrated why. Leo promised
to fix it once he'd applied Luke's 

This week's summary

2004-01-05 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20040104
What a surprise, a scant week after the last Perl 6 Summary of 2003,
it's the first Perl 6 Summary of 2004. Will wonders never cease? Without
further ado, we'll start with perl6-internals as usual.

  Garbage Collection Tasks
Dan noted that a copying garbage collector doesn't play that well with
threads so he proposed a twofold task to fix things.

1   The GC and memory allocation APIs need to be formalized and
abstracted in order to allow for changing the GC mechanism when
threads come into play.

2   Someone needs to implement a more traditional, non-moving GC as an
alternative to the copying collector.

  Plugging Parrot into Mozilla
Stephane Peiry posted a set of patches to allow a parrot plugin for
Mozilla. Not satisfied with this (but pretty darned impressed all the
same) Sam Vilain noted that it would be nice if someone wrote an
ECMAscript front-end to Parrot. Patches welcome Sam.

http://tinyurl.com/2lgy8

  Problems with make test
Harry Jackson couldn't get his build of parrot to finish running make
test. After a certain amount of thrashing about by the team, Dan
narrowed it down to issues with the mutant '2.96' version of GCC that
some versions of Red Hat used for a while. This is currently the list's
best guess as to the root of the problem, but it's not absolutely
certain. If it does turn out to be the compiler, the config suite will
have to be rejigged to detect and warn.

http://tinyurl.com/2lzsb

  Threading threads
They're everywhere! And I despair of summarizing them. So I won't.
Here's the root messages for anyone interested enough. Once things have
died down and we know how threading is going to work in Parrot I'll
summarize that.

Dan opened the floodgates and asked anyone who was serious about their
particular Right Way To Do Threading to write things up as a proper
proposal. He outlined the constraints that Parrot's threading will be
working under and encouraged everyone to speak now or forever hold their
peace.

http://tinyurl.com/3359s

http://tinyurl.com/2e94j

http://tinyurl.com/ytyb6 -- Dan says put up or shut up

http://tinyurl.com/2p777

http://tinyurl.com/2akpn

http://tinyurl.com/36qlo

http://tinyurl.com/23byv

http://tinyurl.com/2hugf -- Dan offers up common terminology

  Don't use IMCC macros
Bernhard Schmalhofer found what looked like a bug in IMCC's macro
support. This prompted Melvin Smith to expedite the removal of IMCC
macro support as threatened some weeks ago. However, it turned out that
that wasn't actually the seat of the bug. But if you like IMCC macros
now is the time to make a *very* good case to Melvin, I doubt you'll
convince him though; macros belong in a preprocessor.

http://tinyurl.com/3e3cg

  wxWindows support?
David Cuny wondered if Parrot's objects were not at the point where it's
possible to interface wxWindows to Parrot. So far he's been Warnocked.

Just try implementing it David.

http://tinyurl.com/yr758

  Win32 Core Dumps
Dan's a fan of core dumps (when appropriate) and wondered if there was a
way of getting windows to either produce a core dump or attach a
debugger to a crashed process. Vladimir Lipsky and Nigel Sandever gave
good answers.

http://tinyurl.com/2ndy9

  The Piemark is ready
Dan forwarded the announcement that the Pie-thon Parrot Benchmark (which
I've unilaterally decided to call the Piemark) code is ready. Let's make
sure it's Guido not Dan who gets Pie eyed in Portland this year.

http://tinyurl.com/28qjp

ftp://ftp.python.org/pub/python/parrotbench/parrotbench.tgz

  Object System?
Luke Palmer wondered what work was needed to finish up Parrot's object
system. Judging by Leo's response there are name mangling issues that
need deciding on, and we're not quite sure who's supposed to be making
the decision. Dan?

http://tinyurl.com/34wfq

  Enhancements for the debugger
Whilst wearing his employee implementing a large project targetting
Parrot hat, Dan has been using IMCC's debugging facilities. This led to
a bunch of suggestions/decisions about how these could be improved.

http://tinyurl.com/2g3ah

  NCI callback functions
Leo isn't enamoured of the current PDD16 design of callbacks in NCI, so
he proposed a new design. Dan seemed to think that this proposal smacked
of getting a little to sophisticated to early, arguing that the best
thing to do was to flesh out what's there (and get it working) before
using it as a base on which to build. This means that, once his work
deadline is out of the way, we should be expecting some better examples
in PDD16. And we'll be reminding Dan of this in a couple of weeks' time.

http://tinyurl.com/3c96z

Meanwhile in 

This week's summary

2003-12-24 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20031221
Welcome one and all to the penultimate Perl 6 Summary for 2003. The
nights are long, the air is cold, freezing fog made the journey home
from watching *The Return of the King* a deeply fraught experience
(though probably not as fraught for us as for the chap who obviously
didn't see the roundabout in time and went straight over it).

If you're in the southern hemisphere, feel free to ignore the foregoing
flavour text.

It should come as no surprise to you by now that we start with the
internals list.

  Namespaces II
Dan returned from a bout of paying work to finish up the current
understanding of how namespaces are managed in Parrot. A namespace
selector becomes a multidimensional key (using a multidimensional key
instead of a single long namespace name makes for easier sharing of
namespaces between languages; there's no need to go guessing what
separator the other language uses in its namespace naming because that's
essentially irrelevant at the Parrot level). Looking up a particular
variable in a namespace is still a two step process, first get the
namespace, then do the lookup within the namespace. Dan explained that
this is a win because it should allow for holding onto namespaces in a
register when dealing with multiple variables.

Leo Tötsch wasn't entirely convinced by the new syntax introduced, and
proposed a mechanism which used the standard syntax for accessing
multikeyed structures with a proposed Namespace PMC.

http://tinyurl.com/2wtkd

  Another keyed ops proposal
Leo continues to make proposals for rethinking keyed ops. Somewhat
surprisingly, Dan didn't entirely reject the latest one involving a
possible new set of key registers.

http://tinyurl.com/2za5t

  Leo adds threads
Leo Tötsch checked in a patch to allow Parrot to spawn threads. As he
admitted, there's a lot missing, but it's a start. He solicited comments
and further pointers.

Later in the week he asked for some design decisions related to making
various of the interpreter's internal data structures thread safe.
Elizabeth Mattijsen had several comments to make, based on experience
with Perl 5's ithread system. In essence her suggestion was that as many
things as possible should be made copy on write between threads. (I have
a faint recollection of Nicholas Clark delivering a wonderful lightning
talk/dance explaining his proposal for making Perl 5 use copy on write
structures for ithreads. It's worth seeing if you get the chance...)

http://tinyurl.com/3egyu

http://tinyurl.com/yrjrm

  PDD03 and method calls
Leo queried the design of Parrot's calling conventions for calling a
method and proposed a slightly different convention with the object put
in P5 rather than P2. Dan thought that the calling conventions
documented was the right way to go, but didn't seem to convince
everyone.

http://tinyurl.com/2npnn

  Rolling back clone
Leo pointed out that clone's semantics had got altered to take an
uninitialized destination PMC as an argument back when the GC system was
flaky. He suggested switching back to a version that creates the new PMC
itself now that GC was working properly. Dan told Leo to go for it.

http://tinyurl.com/35c57

Meanwhile, in perl6-language
Um... sorry about this, but I'm punting on writing the promised
Roles/Traits/Classes summary. I was planning on doing it today, but
things have been hellish; I've spent about 8 hours fighting fires today
rather than writing the summary. Sorry.

Work on Perl 6's object system continues apace though; things are
looking very good and powerful.

By the way from now on I'll try and stick to Larry's usage of
capitalizing 'Traits' when referring back to the Traits paper, and
keeping it lower case when referring to Perl 6's compile-time traits.

  Runtime CHECK?
Piers Cawley asked if Perl 6 modules that get loaded at runtime will
have their CHECK blocks (or their equivalent) executed. Larry
initially thought not, but Rafael Garcia-Suarez noted that Perl 5
shouldn't be held up as exemplary and that there was definitely a need
for some kind of special block that would get run at the end of the
compilation phase of any arbitrary compilation unit.

http://tinyurl.com/2ytze

  but true
Adam D. Lopresto wondered how the recent work on Roles, Properties and
Traits fit in with already declared stuff like but true. Larry
confessed that he was still thinking hard about this, but that he
thought but wasn't powerful enough yet.

http://tinyurl.com/2v2ef

Acknowledgements, Announcements, Apologies
Cross your fingers and toes, we might have link shortening in this
version. Hurrah!

Merry Christmas everyone.

I make no promises about whether there 

This week's summary

2003-12-16 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20031214
It looks like things are starting to slow down slightly as we run up to
Christmas, but the quality of discussion remains high. We'll start with
the usual trawl through perl6-internals.

  Testing for null
Dan ruled on last week's discussion of testing for undef in Parrot.
We're getting a new isnull branch op along with a new Undef PMC. Leo
Tötsch implemented it with his usual alacrity.

http://groups.google.com/[EMAIL PROTECTED]

  How many comparison ops do we need again?
One of the annoyances of writing something that's really going to be
used is that you can't get away with the equivalent of outlining your
proof on the blackboard, waving your hands and saying The details are
left as an exercise for the interested reader. A case in point is
Parrot's array of comparison branch operators. For a while now we've
been getting by with a sparsely populated array of such beasties. This
week saw people (well, okay then, Leo, but he has the productivity of
people) doing the detail work to get the full range implemented.

http://groups.google.com/[EMAIL PROTECTED]

  Incorrect scoping of constants in IMCC
Dan wasn't happy with the scoping of the .const directive in IMCC
(essentially constants are sub/block scoped, which makes them pretty
much useless for the things constants are normally used for). Melvin
Smith made the fix.

http://groups.google.com/[EMAIL PROTECTED]

  Objects and Namespaces
Dan had mandated that the Parrot internal equivalent of the Perlish
Package::Name should be Package\0Name. Nobody (Dan included) liked
the embedded nulls mandated in Dan's original spec. After some
discussion he posted a description of a new hierarchical namespace
design.

Dan pointed out that the use of hierarchical namespaces would probably
mean that the semantics (and syntax) of find_global would need to be
adjusted.

http://groups.google.com/[EMAIL PROTECTED]

http://groups.google.com/[EMAIL PROTECTED]
-- The New Namespace

  Dan Sugalski, IMCC Bugfinder General
Dan's been writing more PIR code by hand, and is discovering
infelicities as he goes.

http://groups.google.com/[EMAIL PROTECTED]

http://groups.google.com/[EMAIL PROTECTED]

  Macros, PIR and PASM
Following his bout of IMCC bug spotting, Dan announced a decision about
macros in PIR and PASM code. Essentially, Parrot's built in PIR and PASM
parsers do not need to do macros as 'macro assemblers are for people,
not compilers'. Because of this, Dan would like to see any macro
processing moved out of the core binary and into an external tool.
(Which can always be invoked via the hypothetical macro-parrot.pl).
Melvin Smith suggested that it would probably be worth extracting the
existing macro processor from imcc.l and moving it into a separate
library.

http://groups.google.com/[EMAIL PROTECTED]

Meanwhile, in perl6-language
The language list continues to fascinate (and not in the 'car crash' way
it has done on occasions in the past) with an ongoing conversation
between Larry on the one hand (seemingly designing on the hoof and
certainly doing a great deal of thinking aloud) and everyone else on the
other hand getting clarification or extrapolating to the point where
Larry has to step in and do a little bit more design.

I'm finding it hard to do a proper summary of what's going on because so
much is changing (and because so much of what seems to be set in quick
drying concrete now is so novel.)

Essentially the discussion revolves around Roles, which are sort of like
Java interfaces, sort of like mixins and nothing like either. In his
'Vocabulary' post, Luke Palmer describes a Role as 'A collection of
methods [and/or attributes] to be incorporated into a class sans
inheritance [...]. Used with does'. In this new world, a property
($bar but Red etc) is a kind of degenerate role.

At the same time though, we're getting other gems. For instance, Perl 6
is going to get something a little like final, but instead of it being
a declaration made in a type's implementation (This is the one, the
only Integer and you may not inherit from it or ever alter it!), it
will become a promise made by a type's user not to attempt to monkey
with it come run time, which should set the code generator free to use
optimizations that aren't safe when everything's dynamic.

So, if you're interested in how Perl 6's OO system is going to work, now
is the time to get involved in the language list. If there's something
you've always wanted to do or something about Perl's current OO that you
love and want to retain, it's time to speak up for it. The odds are good
that you'll be able to do what you want using the mechanisms being
designed, but you'll be kicking 

This week's summary

2003-12-10 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 20031207
Another week, another late summary. Luckily it's been a quiet week so I
should get this written faster than usual. As is traditional, we start
with perl6-internals

  Parrot build system tinkering
Andy Dougherty and other discussed extending the Parrot build system to
allow for building parrot itself outside the main source directory
(useful when Parrot's mounted read only via NFS for example. It's not
(quite) possible to do this just yet because of a couple of generated
files in the IMCC tree. Leo suggested only generating those when
Configure.pl --maintainer is run, on the grounds that a maintainer
shouldn't be building from a read only source. Dan asked for a volunteer
to fix things up.

http://groups.google.com/[EMAIL PROTECTED]

  Object stuff
I (and others I presume) got ready to do the Happy! Happy! Joy! Joy!
dance of delight; this was the week that Parrot finally got objects. Or,
as Dan described them, 'objects-ish'. Parrot now has single inheritance
objects. They're not the final word on the matter, but it's definitely
better than a poke in the eye with a sharp stick.

Dan went on to discuss what needs to be done with them before we're
ready for Parrot 0.1 (Objects are one of the criteria for making a point
release).

Dan then went rather quiet, apparently because he got mugged by flu, or
something like it, and spent the rest of the week wishing he were dead.

Meanwhile, Leo lived up to his Patchmonster nickname by checking in a
bunch of object related stuff.

http://groups.google.com/[EMAIL PROTECTED]
-- Rumblings

http://groups.google.com/[EMAIL PROTECTED]
-- Announcement

http://groups.google.com/[EMAIL PROTECTED]
-- The way forward

http://groups.google.com/[EMAIL PROTECTED]
-- Dan gets mugged by flu

http://groups.google.com/[EMAIL PROTECTED] --
Leo's patches

  Raising exceptions
Cory Spencer wondered about 'proper exception raising' and wondered what
the state of play was, and if there were any good examples. Leo Tötsch
pointed him at t/pmc/exception.t

http://groups.google.com/groups?selm=Pine.LNX.4.58.0312011749290.13872@
okcomputer.antiflux.org

  Compilation units and the boundaries of IMCC
Pete Lomax had wondered about package/file local variables in IMCC. At
the moment IMCC variables can't be file or package scoped, but Melvin
Smith is working on it. As he said this, he asked for suggestions for
other potential IMCC features. Cory Spencer wanted to be able to write

   if _some_test() goto LABEL

but that was vetoed by Dan (and Melvin) as being rather too high level
for an intermediate language that's meant to be a compiler target.

http://groups.google.com/[EMAIL PROTECTED]

  String manipulation
Melvin Smith put forward a convincing argument that IMCC shouldn't
concern itself with doing string interpolation as the expected behaviour
is too 'high level language' dependent, but that Parrot should have a
printf/sprintf equivalent, implemented in C for speed. Dan seemed to
agree and reckoned it should be addressed as soon as objects were out of
the way.

http://groups.google.com/[EMAIL PROTECTED]

  IMCC pending changes
Melvin Smith posted a list of pending IMCC changes, most of which were
concerned with tightening up IMCC behaviour (making it both stricter nd
more forgiving...). Discussion ensued.

A few days later, Melvin committed some of his changes.

http://groups.google.com/[EMAIL PROTECTED]

http://groups.google.com/[EMAIL PROTECTED]

  PMC Compiler 2nd edition
Leo applied a 'really long pending patch' which should simplify upcoming
vtable changes. Melvin wondered if the time had come to replace the
existing ops2c and pmc2c with the newer versions. Leo thought that
pmc2c2 was definitely stable enough, but wasn't too sure about ops2c2.
Jonathan Worthington pointed out a Win32 bug that was quickly fixed.

http://groups.google.com/[EMAIL PROTECTED]

  get_pmc_keyed() in PerlString
Sterling Hughes noted that, in PHP it's valid to index a string as if it
were an array. He wondered it would be possible to implement
get_pmc_keyed() on the PerlString vtable to allow for similar tricks
with the standard string PMC. I'm confused as to what the decision was.
I think Leo agreed that it was a good idea, but that it should probably
be implemented in a new PMC for the time being...

http://groups.google.com/[EMAIL PROTECTED]

  Symbolic vs. Named variable register allocation
Pete Lomax stumbled over a bug in IMCC's register allocation. Melvin
thinks the problem is that much of IMCC's flow analysis code doesn't yet
know about the Parrot Calling Conventions and went to have a look to see
if there was a quick fix available.

http://groups.google.com/[EMAIL PROTECTED]

  

This week's summary

2003-12-02 Thread The Perl 6 Summarizer
The Perl 6 summary for the week ending 20031130
Welcome back to the weekly Perl 6 Summary, which I'm hoping to keep on a
weekly cycle for the foreseeable future.

It's been a relatively low volume week this week, I'm assuming that
Thanksgiving had something to do with it (I hope those of you who
celebrate it had a jolly good extended weekend), and for the first time
in ages perl6-language saw almost as much traffic as perl6-internals.
We're still going to start with perl6-internals though.

  Some PIR How do I? questions
Last week Dan put up a list of questions about IMCC, intending it as a
bit of grit. This week Melvin Smith added a couple of layers of nacre by
checking in an initial IMCC FAQ (you'll find it at imcc/docs/imcfaq.pod
in your parrot directory if you're following with CVS). After an initial
flurry of work on adding to the FAQ, the discussion seems to have
drifted off into discussions of bike shed pigmentation. Yes, the FAQ may
need to be split eventually, but splitting an FAQ into sub documents is
trivial compared to actually answering the questions. Ahem. Editorial
ends.

http://groups.google.com/[EMAIL PROTECTED]

http://www.parrotcode.org/faq/imcc -- The FAQ

  PIO_eof
Vladimir Lipsky had a few questions about how the Parrot IO subsystem
(PIO) handles error conditions. This sparked a discussion of whether the
various PIO functions should make some assertions up front about their
arguments. Consensus said yes, they help with debugging, and the
performance 'hit' is minuscule.

http://groups.google.com/[EMAIL PROTECTED]

  Freezing and Thawing
Discussion of the details of object serialization continued this week.
Judging by the amount of clarification traffic that's been going on in
this thread (and others), I find myself wondering if the time has come
for some generous benefactor to sponsor the principals to get together
in a conference room with copious whiteboard acreage. Sponsors welcome.

http://groups.google.com/[EMAIL PROTECTED]

  Segfault warning boxes
Consider a system of test machines, all of them happily running in
unattended mode, constantly checking out the latest version of parrot,
compiling everything, running the tests and reporting the results to
some central webserver that displays a status report for all to see.
It's not just a good idea, it's the Parrot tinderbox.

Now, consider an operating system that takes it upon itself to throw up
a modal dialog box when a program segfaults.

The two don't sit well together do they? Which is why Dan has committed
a patch to disable the Your program has crashed, want to send a report
to Microsoft? box that pops up on Win32 when Parrot segfaults. Still,
at least it can be disabled.

Dan asked for opinions on whether the (non tinderbox) default should be
to put up a dialog box or not. And it appears that, if you disable the
dialog box, there's no other notification (apart from the failed test,
obviously) that there was a segfault. I am sure I'm not alone in
boggling at this, but it looks like the default will be to display the
dialog.

http://groups.google.com/[EMAIL PROTECTED]

  Perl 6 updated
Allison Randal sent in a patch to update the Perl 6 compiler to use the
right operators (^+ becomes +, ~~ (meant xor)
becomes ^^, making way for =~ to become ~~). She's still working
on other tweaks to get the semantics of what's already been implemented
right, and claims to be sufficiently annoyed by the failing regex tests
that she might have to go and make them work to remove the annoyance.
Which would be good. (I'm afraid that the tantalizing code I mentioned
last week has actually been there for ages, as I feared it had). That
capital fellow, chromatic applied the patch.

http://groups.google.com/[EMAIL PROTECTED]

  String formatting and transformation
Dan got around to specifying some details about string formatting and
transformation. Essentially there will be various case changing
transformations and a couple of different formatting approaches, one
sprintf like and another more like traditional COBOL style formatting.
Dan's not sure yet whether these formatters will get ops or simply be
implemented in the standard library.

http://groups.google.com/[EMAIL PROTECTED]

  AUTOLOAD anyone?
Someone calling itself ibotty wondered if there would be a default PMC
method that gets automagically called whenever a method call isn't
found. To which the answer is Yes, when it's done.

http://groups.google.com/[EMAIL PROTECTED]
erl.org

  Determining PMC memory addresses
Cory Spencer wanted to know if there was a PASM way of finding whether
two PMCs share the same memory address. Not yet, said Leo Tötsch, but
there are entries in the vtable to do it. This sparked 

This week's summary

2003-11-17 Thread The Perl 6 Summarizer
The Perl 6 Summary for the week ending 20031114
Evening all. Are you sitting comfortably? Then I'll begin.

Undoubtedly, over the last week, some or all of the following happened:

*   Dan Sugalski thought about design, and maybe even nailed a few more
things down.

*   Leo Tötsch wrote far more code than you'd think possible.

*   Luke Palmer either answered or asked a tough question or two on
perl6-language.

*   A series of unfortunate events, involving a laptop failing twice in
short order and an external firewire drive that decided that 'Write
once, read once' was a sensible operating mode, and a general lack
of an adequate backup regime, mean that I have lost my mail archive,
my summary archive, the tools I use to publish them and, most
devastatingly, a week's worth of new mail that I'd not got 'round to
reading or replying to yet. Which means I'm not really in a position
to write the usual summary this week. I *could* head off to Google,
wrestle with an interface that really isn't suited to reading mail
and knock something together that wasn't too awful, but I'm going to
punt instead. Hopefully I'll have things vaguely sane next week and
I'll see about doing a double summary.

Acknowledgements, Apologies, Announcements
I'm sorry I was stupid enough to think I'll muddle through without a
backup system, there's nothing of real value on the laptop

If you've enjoyed this summary then I'm amazed, but thank you anyway.
You might like to show your appreciation by thinking about contributing
money or time to the Perl foundation and the Perl 6 effort, or you could
contribute feedback to me at [EMAIL PROTECTED] or stop by at my
website, which has a small amount of new content on it at last.

http://donate.perl-foundation.org/ -- The Perl Foundation

http://dev.perl.org/perl6/ -- Perl 6 Development site

http://www.bofh.org.uk:8080/ -- My website, Just a Summary