Re: Guidelines for internals proposals and documentation

2000-11-21 Thread Dan Sugalski

At 02:45 PM 11/17/00 +, David Grove wrote:

Dan Sugalski [EMAIL PROTECTED] wrote:

   At 10:19 AM 11/17/00 -0800, Ken Fox wrote:
   However, I don't want to see early (premature) adoption of fundamental
   pieces like the VM or parser. It makes sense to me to explore many
   possible
   designs and pick and choose between them. Also, if we can keep
external
   API
   design separate from internal design I think we'll have more wiggle
room
   to experiment. (That's one of the big problems with perl 5 right now.)
  
   That's one of the reasons I'd like to work on the APIs first. I realize

   that doing even that will have an effect on the design of the pieces
   behind
   the APIs, but we have to startsomewhere.

But.. but... but... we don't even have a design spec. I mean, we don't
even know for sure what Perl 6 is going to look like for certain, inside
or outside. Wouldn't we have to know the outside before we try to put the
insides together?

No, not really. For the actual code we will, of course, but there's a lot 
we can do now. (And a good part of the parser could still be written now, 
since most of the changes will likely be reasonably trivial) The APIs perl 
presents to the world are pretty much independent of the language.

For example, we can take a good stab at the extension API now--regardless 
of how the language looks, extensions will still need to get and set 
scalar, hash, and array values. Perl would have to change a *lot* for that 
to be no longer valid. The API presented to an embedding programs similarly 
can be worked on--the fact that the language might change doesn't alter the 
syntax of the run_perl_code() function. (or whatever we call it)

We also do have, generally speaking, a picture of both perl (since Larry 
has said we're not gutting the language entirely) and the internal 
structure. I've been a bit lax in presenting that internal picture, but 
I'll fix that in a little bit.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: Guidelines for internals proposals and documentation

2000-11-17 Thread Dan Sugalski

At 10:19 AM 11/17/00 -0800, Ken Fox wrote:
However, I don't want to see early (premature) adoption of fundamental
pieces like the VM or parser. It makes sense to me to explore many possible
designs and pick and choose between them. Also, if we can keep external API
design separate from internal design I think we'll have more wiggle room
to experiment. (That's one of the big problems with perl 5 right now.)

That's one of the reasons I'd like to work on the APIs first. I realize 
that doing even that will have an effect on the design of the pieces behind 
the APIs, but we have to startsomewhere.

One issue with the language RFC process that Larry and Mark-Jason Dominus
have discussed is inconsistency. (I still can't figure out whether it's a
strength or weakness.) We should do a better job of telling people about
how our PDDs fit into the bigger picture. I propose that all PDDs state
which other PDDs they require, which they supersede and which they conflict
with. This will make it a lot easier to identify coherent designs.

That's one place where the PDD process and the earlier RFC process will 
differ. Docs that make PDD 'developing' status or better are real design 
documents for what'll ultimately be perl 6. Most of the brainstorming work 
I'd like left on the mailing lists, or in informational PDDs. (And I'd like 
to try and keep those reasonably relevant)

Dan Sugalski wrote:
  2) We start counting from 2. (RFCs 0 and 1 are reserved, in case anyone
  beats me to them)

(I thought you said they were PDDs... ;)

D'oh! :)

Why don't you just quickly issue several PDDs on the subjects that you
want to reserve. They can be skeleton documents that just contain the
sections you want us to write. (I hope that the numbers 0 and 1 aren't
important -- they might be superseded by PDD 16 and 23...)

They're policy/philosophy/broad-outline docs, so they're unlikely to be 
replaced anytime soon.

  3) The format of the previous RFCs will be followed. The implementation
  section is optional, though strongly encouraged where appropriate.

I disagree. An implementation section is mandatory for a PDD. Anybody
that can't bother to take the time to sketch out a *possible* implementation
hasn't thought deeply about the subject. Anything without an implementation
section is just a draft. If a PDD is a proposal for an API, then most of
the PDD is the implementation section!

No PDD's going in without someone responsible giving it the nod, so I'm not 
worried about drafts getting in without a good reason. And one of the 
reasons that the implementation section's optional is that I don't see a 
reason to enforce it for PDDs that specify APIs, for example. Code and/or 
algorithms for those (along with things like the bytecode PDDs) seem rather 
superfluous.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: Guidelines for internals proposals and documentation

2000-11-17 Thread David Grove


Dan Sugalski [EMAIL PROTECTED] wrote:

  At 10:19 AM 11/17/00 -0800, Ken Fox wrote:
  However, I don't want to see early (premature) adoption of fundamental
  pieces like the VM or parser. It makes sense to me to explore many
  possible
  designs and pick and choose between them. Also, if we can keep
external
  API
  design separate from internal design I think we'll have more wiggle
room
  to experiment. (That's one of the big problems with perl 5 right now.)
 
  That's one of the reasons I'd like to work on the APIs first. I realize

  that doing even that will have an effect on the design of the pieces
  behind
  the APIs, but we have to startsomewhere.

But.. but... but... we don't even have a design spec. I mean, we don't
even know for sure what Perl 6 is going to look like for certain, inside
or outside. Wouldn't we have to know the outside before we try to put the
insides together? Is there any action on the api lists that I'm not
seeing? If not, I'd say we've got the cart before the horse.





Re: Guidelines for internals proposals and documentation

2000-11-17 Thread John van V


"David Grove" [EMAIL PROTECTED] wrote :

 But.. but... but... we don't even have a design spec. I mean, we don't
 even know for sure what Perl 6 is going to look like for certain, inside
 or outside. 

This is precisely why I proposed the BS level just below Development.  In fact I'm 
going to write the MailMan make-a-list page right now or by 
monday.

Maybe the somewheretostart :) is with design tools to build attributes and connectors 
for the components and 
then display them nightly w/ a graph representation of the whole complex structure.

My second desire is to build perl6 purely w/ perl tools/servers, and then wholly with 
perl6 as soon as it can stand on its own. 
That way if there are any problems the core team would be the first to know about it ;)

John



Re: Guidelines for internals proposals and documentation

2000-11-15 Thread John van V


Using the IBM article that Jarkko found as an example, core implementations of 
different languages may have more in common with each other 
than implemetations of the same language,

I think PPC is actually significant enough so that it should not be painted into a 
perl-only corner.

Seeing that the majority of the debate or confusion in PCC is at the germination 
level, I am proposing a more nebulous level... BS ( for brain 
storming ) which would precede development.  It would be open enough to allow any 
developer (perl or no) to contirubute while hopefully spinning  
off the perl component into their own lang's direction.  

An example for this would be what I learned at the NYPC/LinuxSociety demo last night.  
In the 2.4 compile, you now use "make xconfigure" 
rather than "make configure".  Its a TK app that makes the process more fun than work 
and it should be ported to every configure esp perl.

On our side, there is notion in of eliminating "make" (a good idea IMHO) by updating 
the cons modules.  

It would then be a piece of cake for anyone on these lists to bring these two 
together, where the PPC would guide the feature set... (I'm just 
wondering how to do this in HTML/CPANTS ;)

Anyone who wants can start a BS list w/ GNU/Mailman on http://puny.vm.com just email 
me an I will make a link;)

John







Re: Guidelines for internals proposals and documentation

2000-11-15 Thread Adam Turoff

On Wed, Nov 15, 2000 at 04:20:58PM -0500, Dan Sugalski wrote:
 I want perl 6's internal API to have the same sort of artistic integrity 
 that the language has. That's not, unfortunately, possible with everyone 
 having equal say. I'd like it to be otherwise, but that's just not possible 
 with people involved.

There are many people who have good taste and experience where the Perl API
is concerned.  Forcing those people to come to a majority vote on every 
PDD isn't going to fly.  The answer isn't to reduce that set of people to
one person; Larry doesn't scale exponentially.

 The point is definitely *not* to do any sort of consolidation of power. 
 Anyone reasonably sane, capable, and interested is welcome to chair any of 
 the internals design lists and/or be responsible for shepherding a PDD to 
 solidity. That's fine with me. (In fact I'd be thrilled if the design was 
 handled by a host of folks that weren't me)

There are only a small number of people who can bless/unbless a
PDD into a standard or forcibly withdraw it from consideration.
It's good that there's a small number (1) is involved, but it's
bad that each of those people can singlehandedly bless/unbless
something.

From p5p, we saw that if 2 or 3 people objected to a proposal/idea/patch,
it was probably flawed in some way.  OTOH, if 3 or 4 of those same
people saw merit in a proposal/idea/patch, then it was probably
worthy of consideration[*].  This is one of the ways where p5p
worked well (and where the RFC process failed).  We should formalize
this for the Perl6 API process.

The first order of business should be to determine the process by
which PDDs become accepted/rejected/mentored/etc.  Next, we find
the people with good taste and spare tuits to accept/reject/mentor
proposals through the process.

Z.

*: This is the audience-participation variant of "throw it at the pumpking
   and see if he accepts it."




Re: Guidelines for internals proposals and documentation

2000-11-15 Thread David Grove

Nat and I argued parts of this (I think this is included) at some length.
Actually, I think I drove him crazy getting specifics out of this.

Adam Turoff [EMAIL PROTECTED] wrote:

  On Tue, Nov 14, 2000 at 05:59:40PM -0500, Dan Sugalski wrote:
   6) Only a WG chair, pumpking, or one of the principals (i.e. Me, Nat,
or
   Larry, or our replacements) can mark a PDD as developing, standard,
or
   superceded.
 
  This doesn't sound right.

I'm still waiting to find out whether a group will be submitting a) a
single PDD, b) multiple PDD's, or c) multiple PDD's merged into a single
PDD.

case pdd
  a)
this makes sense as stated, I think
  b)
this makes no sense
submitters would control their own PDD's except
only leader could stamp accepted
  c)
submitters would control their own PDD's except
only leader could stamp PDD accepted and
only leader could stamp master PDD anything
esac

Okay, my bash is a bit off, but you get the idea.

If anyone is interested, I think that within groups, b or c sounds like a
logical approach to solving the problems at hand, since each person would
likely have a very very very specific problem area in mind. Method a
sounds a bit like a ... hmmm ... cluster-Muck, with everybody trying to
come up with bits and pieces of the same document rather than coming up
with ideas that end up in a single (or multiple) PDD to be submitted even
higher outside the working group. I'm thinking project management terms
here.

  All PDDs (like RFCs) need to start with 'Status: Developing' by
default.
  Since statuses like 'Standard', 'Rejected', etc. have Real Meaning
(tm),
  there should be some review in place (by a WGC, principal, etc.).
Statuses
  like 'Withdrawn' and 'Superceded' should be accepted from PDD
  authors/teams.

FWIU, "Developing" would be after an initial proposal, and means it wasn't
tossed out at the first mention of it. It makes sense that it's a status
of its own.

  The RFC process accidentally required single-authorship for all RFCs.
  We should allow RFCs to be maintained by a group of collaborating
  authors (without forcing them to start a mailing list first).  Any of
  these authors should be able to make updates and update the status
  as appropriate (e.g. Developing, Withdrawn, Superceded).

I think this is similar to what I'm suggesting with my a-b-c's above. I do
agree that single-authorship would be a management problem. But then,
multiple management could cause tangenting, but (according to EFNet #perl)
there's nothing wrong with discussing winnie the pooh from time to time
when burnout sets in. ;-))

Maybe sub PDD's (SPDDs) can be conceived of as "discussion", but I think
that perhaps in groups with big jobs, actual proposals about how minutiae
might be accompilshed could help set ideas in stone more than just
discussion, then discussion could have its proper place. If SPDD's are
used, it would be the responsibility of a team leader to collect the ideas
and come up with a main one that everyone needed to agree on, which should
be a simple diplomatic process and less overall work for the team leader
himself, and more thoughtful (full of thoughtoutedness) effort from the
team members.

  This is a community process.  I'm uncomfortable leaving such decisions
  to such a small number of people.  How about nominating/electing a
  core team that will be responsible for the API design, whereby a vote
  of 3/10 is needed to reject a PDD and a vote of 5/10 is needed to
accept
  a PDD?  (The numbers 3, 5 and 10 are arbitrary, and used to demonstrate
  that this doesn't need to degenerate into review by committee.)

This is where Nat and I, I think, had a hurdle, and is the reason for my
reponse to this email. The concern that was expressed was the development
of the interests of a small group overriding the interests of the whole,
the creation of another perl-elite caste, etc. Nate, correct me if I have
it wrong PLEASE...

It is, within a single group, the responsibility of the team leader to
moderate discussion and lead the team to a unanymous decision. Within the
team, the leader could be removed by majority appeal, but otherwise has
authority in that area, and could not override the group. With the groups
as a collective, general election of a core team was shot down (I proposed
that), and I'm agreeing to the reasons for it... it's potentially
caste-building (that wasn't the reason, but I have my own reason too).

Since one team would not be familiar with issues within another group, it
would be a tremendous thing to ask of a "core team" to decide on all PDD's
including both their own and ones they aren't directly working with.

All in all, I think Dan's doing a good job making this make sense. I'm
just curious about the inner workings of a group.





Re: Guidelines for internals proposals and documentation

2000-11-15 Thread Nicholas Clark

On Wed, Nov 15, 2000 at 11:35:56AM -0500, Adam Turoff wrote:
 On Tue, Nov 14, 2000 at 05:59:40PM -0500, Dan Sugalski wrote:
  6) Only a WG chair, pumpking, or one of the principals (i.e. Me, Nat, or 
  Larry, or our replacements) can mark a PDD as developing, standard, or 
  superceded.
 
 This doesn't sound right.
 
 All PDDs (like RFCs) need to start with 'Status: Developing' by default.
 Since statuses like 'Standard', 'Rejected', etc. have Real Meaning (tm),
 there should be some review in place (by a WGC, principal, etc.).  Statuses
 like 'Withdrawn' and 'Superceded' should be accepted from PDD authors/teams.

They don't need to start with "Developing" if they start with status
"Experimental" or "Proposed"

 This is a community process.  I'm uncomfortable leaving such decisions
 to such a small number of people.  How about nominating/electing a 

If PDDs start as "Proposed" without needing any approval does this remove
the problem of a small group having a stranglehold?

Nicholas Clark



Guidelines for internals proposals and documentation

2000-11-14 Thread Dan Sugalski

Here are some guidelines for the design process for internals-level docs.

1) The damn things will be called PDD, or Perl Design Documents. Calling 
them RFCs was getting confusing for those of us dealing with IETF RFCs, 
especially as we're edging in towards the active RFC range.

2) We start counting from 2. (RFCs 0 and 1 are reserved, in case anyone 
beats me to them)

3) The format of the previous RFCs will be followed. The implementation 
section is optional, though strongly encouraged where appropriate. The 
status field is mandatory--PDDs submitted without one get a status of 
"Informational".

4) The PDDs are real documentation. When one goes to status:Standard, it 
*will* describe reality. If, when reality materializes, it doesn't then it 
needs to be updated. Someone should, for example, be able to take the PDD 
on vtables and write their own perl datatype without needing to refer to 
the source.

5) The stauses for PDDs are:

proposed: Someone's putting forth a concrete proposal
developing: The PDD is in active development and considered a real part of 
perl 6.
standard: The PDD's done. (Well, for now at least)
superceded: The PDD's been replaced by another.
informational: The PDD is merely informational, and not a standard
experimental: The PDD describes an experimental thing, and isn't a standard.

6) Only a WG chair, pumpking, or one of the principals (i.e. Me, Nat, or 
Larry, or our replacements) can mark a PDD as developing, standard, or 
superceded.

7) These are *not* brainstorming documents! These are solid, concrete 
proposals for either the design or implementation of perl 6. If you have a 
brainstorm but don't currently have the skillset (or requisite brain 
damage... :) to make a concrete proposal, get in touch with either the 
correct WG chair or Nat or me, and we'll do our best to hook you up with 
someone in a position to make your ideas concrete.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk