Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Lots more stuff in S32. Documented Callable objects, and extended Con…

…tainers a fair bit.

Added little bits elsewhere in S32.  


git-svn-id: http://svn.pugscode.org/pugs@25583 c213334d-75ef-0310-aa23-eaa082d1ae64
  • Loading branch information...
commit 726d70f0387f61dca4d87b9eb7a3c8a42991bee8 1 parent 69b8757
wayland authored
View
79 S32-setting-library/Callable.pod
@@ -0,0 +1,79 @@
+=encoding utf8
+
+=head1 Title
+
+DRAFT: Synopsis 32: Setting Library - Executeable
+
+=head1 Version
+
+ Author: Tim Nelson <wayland@wayland.id.au>
+ Maintainer: Larry Wall <larry@wall.org>
+ Contributions: Tim Nelson <wayland@wayland.id.au>
+ Date: 26 Feb 2009
+ Last Modified: 26 Feb 2009
+ Version: 1
+
+The document is a draft.
+
+If you read the HTML version, it is generated from the pod in the pugs
+repository under /docs/Perl6/Spec/S32-setting-library/Exception.pod so edit it there in
+the SVN repository if you would like to make changes.
+
+This document documents Code, Block, Signature, Capture, Routine, Sub, Method, Submethod,
+and Macro.
+
+=head1 Roles
+
+=head2 Callable
+
+role Callable {...}
+
+The C<Callable> role implies the ability
+to support C<< postcircumfix:<( )> >>.
+
+=head2 Code
+
+# Base class for all executable objects
+role Code {...}
+
+=head2 Block
+
+# Executable objects that have lexical scopes
+role Block does Code does Callable {...}
+
+=head2 Signature
+
+# Function parameters (left-hand side of a binding)
+role Signature {...}
+
+=head2 Capture
+
+# Function call arguments (right-hand side of a binding)
+role Capture does Positional does Associative {...}
+
+=head1 Classes
+
+=head2 Routine
+
+class Routine does Block {...}
+
+=head2 Sub
+
+class Sub isa Routine {...}
+
+=head2 Method
+
+class Method isa Routine {...}
+
+=head2 Submethod
+
+class Submethod isa Routine {...} # XXX or should this be isa Sub
+
+=head2 Macro
+
+class Macro isa Routine {...}
+
+=head1 Additions
+
+Please post errors and feedback to perl6-language. If you are making
+a general laundry list, please separate messages by topic.
View
72 S32-setting-library/Containers.pod
@@ -26,12 +26,22 @@ the SVN repository if you would like to make changes.
=head1 Function Roles
-This documents List, Seq, Range, Set, Bag, Junction.
+=head2 Positional
-XXX So where are Seq, Range, Set, Bag?
+role Positional {...}
+
+The C<Positional> role implies the ability to support C<< postcircumfix:<[ ]> >>.
+
+=head2 Associative
+
+role Associative {...}
+
+The C<Associative> role implies the ability to support C<< postcircumfix:<{ }> >>.
=head2 Container
+role Container {...}
+
=over
=item cat
@@ -102,6 +112,8 @@ In C<@@> context a List of Array is returned instead of flat list.
All these methods are defined in the C<Array> role/class.
+role Array does Positional {...}
+
=over
=item shape
@@ -252,6 +264,8 @@ been iterated.
The following are defined in the C<List> role/class:
+role List does Positional {...}
+
=over
=item cat
@@ -549,6 +563,8 @@ the values in the list matches.
The following are defined in the C<Hash> role.
+role Hash does Associative {...}
+
=over 4
=item :delete
@@ -638,6 +654,58 @@ the keys in the hash matches.
=back
+=head2 Tieable
+
+role Tieable {...}
+
+=head1 Classes
+
+This documents Buf, List, Seq, Range, Set, Bag, Junction, Array, Hash, KeyHash, KeySet,
+KeyBag, Pair, and Mapping.
+
+XXX So where are they? Especially Set, Bag, KeyHash, KeySet, KeyBag, Pair,
+and Mapping.
+
+=head2 Array
+
+class Array does Array {...}
+
+=head2 Seq
+
+class Seq does Positional {...}
+
+=head2 Range
+
+class Range does Positional {...}
+
+=head2 Buf
+
+class Buf does Positional {...}
+
+=head2 Hash
+
+class Hash does Hash {...}
+
+=head2
+
+class Pair does Associative {...}
+
+=head2
+
+class Mapping does Associative {...}
+
+=head2
+
+class Set does Associative {...}
+
+=head2
+
+class Bag does Associative {...}
+
+=head2
+
+class KeyHash does Associative {...}
+
=head2 Junction
All method calls on Junctions autohread if there's no such method in the
View
2  S32-setting-library/Exception.pod
@@ -22,7 +22,7 @@ the SVN repository if you would like to make changes.
=head1 Roles
-role Exception {
+role Exception does Positional {
# XXX How do we tell the difference between a warning and a fatal error?
}
View
2  S32-setting-library/IO.pod
@@ -212,6 +212,8 @@ This has no effect on input buffering.
This role represents objects that depend on some external resource,
which means that data might not be available at request.
+role IO::Streamable does IO {...}
+
=over
=item new()
View
2  S32-setting-library/Scalar.pod
@@ -3,7 +3,7 @@
=head1 Title
-DRAFT: Synopsis 32: Setting Library - Miscellaneous Scalars
+DRAFT: Synopsis 32: Setting Library - Scalar
=head1 Version
Please sign in to comment.
Something went wrong with that request. Please try again.