Front page | perl.perl6.language |
Postings from March 2009
r25891 - in docs/Perl6/Spec: . S32-setting-library
Thread Next
From:
pugs-commits
Date:
March 18, 2009 12:46
Subject:
r25891 - in docs/Perl6/Spec: . S32-setting-library
Message ID:
20090318194615.20359.qmail@feather.perl6.nl
Author: lwall
Date: 2009-03-18 20:46:15 +0100 (Wed, 18 Mar 2009)
New Revision: 25891
Modified:
docs/Perl6/Spec/S02-bits.pod
docs/Perl6/Spec/S06-routines.pod
docs/Perl6/Spec/S09-data.pod
docs/Perl6/Spec/S32-setting-library/Containers.pod
Log:
junctions are now considered a native type with private eigenstates
Modified: docs/Perl6/Spec/S02-bits.pod
===================================================================
--- docs/Perl6/Spec/S02-bits.pod 2009-03-18 19:04:16 UTC (rev 25890)
+++ docs/Perl6/Spec/S02-bits.pod 2009-03-18 19:46:15 UTC (rev 25891)
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 10 Aug 2004
- Last Modified: 15 Mar 2009
+ Lwst Modified: 18 Mar 2009
Number: 2
- Version: 159
+ Version: 160
This document summarizes Apocalypse 2, which covers small-scale
lexical items and typological issues. (These Synopses also contain
@@ -576,7 +576,7 @@
Built-in object types start with an uppercase letter. This includes
immutable types (e.g. C<Int>, C<Num>, C<Complex>, C<Rat>, C<Str>,
-C<Bit>, C<Regex>, C<Set>, C<Junction>, C<Code>, C<Block>, C<List>,
+C<Bit>, C<Regex>, C<Set>, C<Code>, C<Block>, C<List>,
C<Seq>), as well as mutable (container) types, such as C<Scalar>,
C<Array>, C<Hash>, C<Buf>, C<Routine>, C<Module>, etc.
@@ -588,6 +588,11 @@
repeated autoboxing can slow your program more than the native type
can speed it up.)
+The C<junction> type is considered a native type because its internal
+representation is fixed, and you may not usefully derive from it
+because the intent of junctions is to autothread any method calls
+on them.
+
Some object types can behave as value types. Every object can produce
a "WHICH" value that uniquely identifies the
object for hashing and other value-based comparisons. Normal objects
@@ -937,7 +942,7 @@
C<Failure> role. (The C<undef> function merely returns the most
generic C<Failure> object. Use C<fail> to return more specific failures. Use
C<Object> for the most generic non-failure undefined value. The C<Any>
-type is also undefined, but excludes C<Junctions> so that autothreading
+type is also undefined, but excludes C<junctions> so that autothreading
may be dispatched using normal multiple dispatch rules.)
The C<Nil> type is officially undefined as an item but interpolates
@@ -968,7 +973,6 @@
Range A pair of Ordered endpoints; gens immutables when iterated
Set Unordered collection of values that allows no duplicates
Bag Unordered collection of values that allows duplicates
- Junction Set with additional behaviors
Signature Function parameters (left-hand side of a binding)
Capture Function call arguments (right-hand side of a binding)
Blob An undifferentiated mass of bits
@@ -1028,8 +1032,8 @@
Class Perl 6 standard class namespace
Role Perl 6 standard generic interface/implementation
Grammar Perl 6 pattern matching namespace
- Any Perl 6 object (default routine parameter type, excludes Junction)
- Object Perl 6 object (default block parameter type, either Any or Junction)
+ Any Perl 6 object (default routine parameter type, excludes junction)
+ Object Perl 6 object (default block parameter type, either Any or junction)
A C<KeyHash> differs from a normal C<Hash> in how it handles default
values. If the value of a C<KeyHash> element is set to the default
Modified: docs/Perl6/Spec/S06-routines.pod
===================================================================
--- docs/Perl6/Spec/S06-routines.pod 2009-03-18 19:04:16 UTC (rev 25890)
+++ docs/Perl6/Spec/S06-routines.pod 2009-03-18 19:46:15 UTC (rev 25891)
@@ -13,9 +13,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 21 Mar 2003
- Last Modified: 4 Mar 2009
+ Last Modified: 18 Mar 2009
Number: 6
- Version: 105
+ Version: 106
This document summarizes Apocalypse 6, which covers subroutines and the
@@ -2876,7 +2876,7 @@
The natural way to implement autothreading for multi subs is to
simply have the junctional signatures (the ones that can accept
-Objects/Junctions as well as Any parameters) match more loosely than
+Objects or junctions as well as Any parameters) match more loosely than
the non-autothreading versions, and let multiple dispatch find the
appropriate sub based on the signature. Those generic routines
then end up redispatching to the more specific ones.
Modified: docs/Perl6/Spec/S09-data.pod
===================================================================
--- docs/Perl6/Spec/S09-data.pod 2009-03-18 19:04:16 UTC (rev 25890)
+++ docs/Perl6/Spec/S09-data.pod 2009-03-18 19:46:15 UTC (rev 25891)
@@ -12,9 +12,9 @@
Maintainer: Larry Wall <larry@wall.org>
Date: 13 Sep 2004
- Last Modified: 4 Mar 2009
+ Last Modified: 18 Mar 2009
Number: 9
- Version: 30
+ Version: 31
=head1 Overview
@@ -984,7 +984,7 @@
In particular, if a junction is used as an argument to any routine
(operator, closure, method, etc.), and the scalar parameter you
are attempting to bind the argument to is inconsistent with the
-C<Junction> type, that routine is "autothreaded", meaning the routine
+C<junction> type, that routine is "autothreaded", meaning the routine
will be called automatically as many times as necessary to process
the individual scalar elements of the junction in parallel.
Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod
===================================================================
--- docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-03-18 19:04:16 UTC (rev 25890)
+++ docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-03-18 19:46:15 UTC (rev 25891)
@@ -15,8 +15,8 @@
Moritz Lenz <moritz@faui2k3.org>
Tim Nelson <wayland@wayland.id.au>
Date: 19 Feb 2009 extracted from S29-functions.pod
- Last Modified: 8 Mar 2009
- Version: 2
+ Last Modified: 18 Mar 2009
+ Version: 3
The document is a draft.
@@ -701,25 +701,24 @@
class KeyHash does Associative {...}
-=head2 Junction
+=head2 junction
-All method calls on Junctions autothread if there's no such method in the
-Junction class.
+All method calls on junctions autothread because the type provides no public methods.
=over 4
-=item eigenstates
+=item !eigenstates
- our List multi method eigenstates (Junction $j)
+ method !eigenstates (Junction $j: --> List)
Returns an unordered list of the values that constitute the junction (formerly
called C<.values>). It flattens nested junctions of the same type, so
C<(1|(2|3)).eigenstate> returns an arbitrary permutation of the list
C<1, 2, 3>.
-This method has a rather unusual name by intention; a more common name might
-cause confusion as it could clash with a method name over which autothreading
-is expected.
+Note this is a private method; you must arrange for yourself to be trusted
+by the junctions class in order to call it, which probably involves evil
+MONKEY_PATCHING.
=back
Thread Next
-
r25891 - in docs/Perl6/Spec: . S32-setting-library
by pugs-commits