 |
| Recent blog posts: | |
 |
| They have birthday today: | |
 |
| Forums: | | |
 |
| Discuss: | |
 |
| Recent forum topics: | |
 |
| Recent forum comments: | |
 |
| Модератор: | |
 |
Thursday, 26 February 2009
|
| r25591 - docs/Perl6/Spec Guest 19:37:55 |
| | Author: lwall Date: 2009-02-26 17:37:55 +0100 (Thu, 26 Feb 2009) New Revision: 25591
Modified: docs/Perl6/Spec/S03-operators.pod Log: 1-ary values for chaining operators should always be True even if negated
Modified: docs/Perl6/Spec/S03-operators.pod =================================================================== --- docs/Perl6/Spec/S03-operators.pod 2009-02-26 15:56:48 UTC (rev 25590) +++ docs/Perl6/Spec/S03-operators.pod 2009-02-26 16:37:55 UTC (rev 25591) @@ -12,9 +12,9 @@ Maintainer: Larry Wall <larry@wall.org> Date: 8 Mar 2004 - Last Modified: 24 Feb 2009 + Last Modified: 26 Feb 2009 Number: 3 - Version: 154 + Version: 155 =head1 Overview @@ -3795,9 +3795,8 @@ return that one argument. However, this default doesn't make sense for operators like C<< < >> that don't return the same type as they take, so these kinds of operators overload the single-argument case -to return something more meaningful. All the comparison operators -return a boolean for either 1 or 0 arguments. Negated operators -return C<Bool::False>, and all the rest return C<Bool::True>. +to return something more meaningful. To be consistent with chaining +semantics, all the comparison operators return C<Bool::True> for 1 or 0 arguments. You can also make a reduce operator of the comma operator. This is just the list operator form of the C<< circumfix:<[ ]> >> anonymous array composer: @@ -3833,7 +3832,7 @@ [&]() # all() [|]() # any() [^]() # one() - [!==]() # Bool::False (also for 1 arg) + [!==]() # Bool::True (also for 1 arg) [==]() # Bool::True (also for 1 arg) [before]() # Bool::True (also for 1 arg) [after]() # Bool::True (also for 1 arg) @@ -3842,23 +3841,23 @@ [>]() # Bool::True (also for 1 arg) [>=]() # Bool::True (also for 1 arg) [~~]() # Bool::True (also for 1 arg) - [!~~]() # Bool::False (also for 1 arg) + [!~~]() # Bool::True (also for 1 arg) [eq]() # Bool::True (also for 1 arg) - [!eq]() # Bool::False (also for 1 arg) + [!eq]() # Bool::True (also for 1 arg) [lt]() # Bool::True (also for 1 arg) [le]() # Bool::True (also for 1 arg) [gt]() # Bool::True (also for 1 arg) [ge]() # Bool::True (also for 1 arg) [=:=]() # Bool::True (also for 1 arg) - [!=:=]() # Bool::False (also for 1 arg) + [!=:=]() # Bool::True (also for 1 arg) [===]() # Bool::True (also for 1 arg) - [!===]() # Bool::False (also for 1 arg) + [!===]() # Bool::True (also for 1 arg) [eqv]() # Bool::True (also for 1 arg) - [!eqv]() # Bool::False (also for 1 arg) + [!eqv]() # Bool::True (also for 1 arg) [&&]() # Bool::True [||]() # Bool::False [^^]() # Bool::False - [//]() # undef + [//]() # Any [min]() # +Inf [max]() # -Inf [=]() # undef (same for all assignment operators) @@ -3957,6 +3956,9 @@ mean the normal reduction of C<< infix:<\x> >> operator, not the triangular reduction of C<< infix:<x> >>. This is deemed to be an insignificant problem. +Triangular reductions of chaining operators always consist of one or +more C<True> values followed by 0 or more C<False> values. + =head2 Cross operators The cross metaoperator, C<X>, may be followed by any infix operator.
|
| | Add comment |
|
| r25585 - docs/Perl6/Spec/S32-setting-library Guest 15:24:09 |
| | Author: wayland Date: 2009-02-26 13:24:08 +0100 (Thu, 26 Feb 2009) New Revision: 25585
Added: docs/Perl6/Spec/S32-setting-library/Abstraction.pod Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod Log: Containers.pod: Got some composition straightened out Abstraction.pod: Documented these.
Added: docs/Perl6/Spec/S32-setting-library/Abstraction.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/Abstraction.pod (rev 0) +++ docs/Perl6/Spec/S32-setting-library/Abstraction.pod 2009-02-26 12:24:08 UTC (rev 25585) @@ -0,0 +1,44 @@ + +=encoding utf8 + +=head1 Title + +DRAFT: Synopsis 32: Setting Library - Abstraction + +=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/Abstraction.pod so edit it there in +the SVN repository if you would like to make changes. + +=head1 Roles + +=head2 Abstraction + +role Abstraction {...} + +=head1 Classes + +class Class does Abstraction {...} + +class Role does Abstraction {...} + +class Grammar does Abstraction {...} + +class Module does Abstraction {...} + +class Package does Abstraction {...} + +=head1 Additions + +Please post errors and feedback to perl6-language. If you are making +a general laundry list, please separate messages by topic.
Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 12:15:04 UTC (rev 25584) +++ docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 12:24:08 UTC (rev 25585) @@ -108,163 +108,11 @@ =back -=head2 Array - -All these methods are defined in the C<Array> role/class. - -role Array does Positional {...} - -=over - -=item shape - - our Capture method shape (@array: ) is export - -Returns the declared shape of the array, as described in S09. - -=item end - - our Any method end (@array: ) is export - -Returns the final subscript of the first dimension; for a one-dimensional -array this simply the index of the final element. For fixed dimensions -this is the declared maximum subscript. For non-fixed dimensions (undeclared -or explicitly declared with C<*>), the index of the actual last element is used. - -=item elems - - our Int method elems (@array: ) is export - -Returns the length of the array counted in elements. (Sparse array -types should return the actual number of elements, not the distance -between the maximum and minimum elements.) - -=item delete - - our List method delete (@array : *@indices ) is export - -Sets elements specified by C<@indices> in the invocant to a -non-existent state, as if they never had a value. Deleted elements at -the end of an Array shorten the length of the Array, unless doing so -would violate an C<is shape()> definition. - -C<@indices> is interpreted the same way as subscripting is in terms of -slices and multidimensionality. See Synopsis 9 for details. - -Returns the value(s) previously held in deleted locations. - -An unary form is expected. See C<Hash::delete>. - - -=item exists - - our Bool method exists (@array : Int *@indices ) - -True if the specified Array element has been assigned to. This -is not the same as being defined. - -Supplying a different number of indices than invocant has dimensions is -an error. - -A unary form is expected. See C<Hash::delete>. - - -=item pop - - our Scalar multi method pop ( @array: ) is export - -Remove the last element of C<@array> and return it. - -=item push - - our Int multi method push ( @array: *@values ) is export - -Add to the end of C<@array>, all of the subsequent arguments. - -=item shift - - our Scalar multi method shift ( @array: ) is export - -Remove the first element from C<@array> and return it. - -=item splice - - our List multi method splice( @array is rw: Int $offset = 0, Int $size?, *@values ) is export - -C<splice> fills many niches in array-management, but its fundamental behavior -is to remove zero or more elements from an array and replace them with a -new (and potentially empty) list. This operation can shorten or lengthen -the target array. - -C<$offset> is the index of the array element to start with. It defaults -to C<0>. - -C<$size> is the number of elements to remove from C<@array>. It defaults -to removing the rest of the array from C<$offset> on. - -The slurpy list of values (if any) is then inserted at C<$offset>. - -Calling splice with a traditional parameter list, you must define C<$offset> -and C<$size> if you wish to pass a replacement list of values. To avoid -having to pass these otherwise optional parameters, use the piping operator(s): - - splice(@array,10) <== 1..*; - -which replaces C<@array[10]> and all subsequent elements with an infinite -series starting at C<1>. - -This behaves similarly to Perl 5's C<splice>. - -If C<@array> is multidimensional, C<splice> operates only on the first -dimension, and works with Array References. - -C<splice> returns the list of deleted elements in list context, and a -reference to a list of deleted elements in scalar context. - - -=item unshift - - our Int multi method unshift ( @array: *@values ) is export - -C<unshift> adds the values onto the start of the C<@array>. - -=item keys - -=item kv - -=item pairs - -=item values - - our List multi method keys ( @array: Matcher *@indextests ) is export - our List multi method kv ( @array: Matcher *@indextests ) is export - our List multi method pairs (@array: Matcher *@indextests ) is export - our List multi method values ( @array: Matcher *@indextests ) is export - -Iterates the elements of C<@array>, in order. - -If C<@indextests> are provided, only elements whose indices match -C<$index ~~ any(@indextests)> are iterated. - -What is returned at each element of the iteration varies with function. -C<values> returns the value of the associated element; C<kv> returns -a 2 element list in (index, value) order, C<pairs> a C<Pair(index, value)>. - -C<@array> is considered single dimensional. If it is in fact multi-dimensional, -the values returned will be array references to the sub array. - -In Scalar context, they all return the count of elements that would have -been iterated. - -=back - - - =head2 List The following are defined in the C<List> role/class: -role List does Positional {...} +role List does Container does Positional {...} =over @@ -559,11 +407,161 @@ =back +=head2 Array + +All these methods are defined in the C<Array> role/class. + +role Array does List {...} + +=over + +=item shape + + our Capture method shape (@array: ) is export + +Returns the declared shape of the array, as described in S09. + +=item end + + our Any method end (@array: ) is export + +Returns the final subscript of the first dimension; for a one-dimensional +array this simply the index of the final element. For fixed dimensions +this is the declared maximum subscript. For non-fixed dimensions (undeclared +or explicitly declared with C<*>), the index of the actual last element is used. + +=item elems + + our Int method elems (@array: ) is export + +Returns the length of the array counted in elements. (Sparse array +types should return the actual number of elements, not the distance +between the maximum and minimum elements.) + +=item delete + + our List method delete (@array : *@indices ) is export + +Sets elements specified by C<@indices> in the invocant to a +non-existent state, as if they never had a value. Deleted elements at +the end of an Array shorten the length of the Array, unless doing so +would violate an C<is shape()> definition. + +C<@indices> is interpreted the same way as subscripting is in terms of +slices and multidimensionality. See Synopsis 9 for details. + +Returns the value(s) previously held in deleted locations. + +An unary form is expected. See C<Hash::delete>. + + +=item exists + + our Bool method exists (@array : Int *@indices ) + +True if the specified Array element has been assigned to. This +is not the same as being defined. + +Supplying a different number of indices than invocant has dimensions is +an error. + +A unary form is expected. See C<Hash::delete>. + + +=item pop + + our Scalar multi method pop ( @array: ) is export + +Remove the last element of C<@array> and return it. + +=item push + + our Int multi method push ( @array: *@values ) is export + +Add to the end of C<@array>, all of the subsequent arguments. + +=item shift + + our Scalar multi method shift ( @array: ) is export + +Remove the first element from C<@array> and return it. + +=item splice + + our List multi method splice( @array is rw: Int $offset = 0, Int $size?, *@values ) is export + +C<splice> fills many niches in array-management, but its fundamental behavior +is to remove zero or more elements from an array and replace them with a +new (and potentially empty) list. This operation can shorten or lengthen +the target array. + +C<$offset> is the index of the array element to start with. It defaults +to C<0>. + +C<$size> is the number of elements to remove from C<@array>. It defaults +to removing the rest of the array from C<$offset> on. + +The slurpy list of values (if any) is then inserted at C<$offset>. + +Calling splice with a traditional parameter list, you must define C<$offset> +and C<$size> if you wish to pass a replacement list of values. To avoid +having to pass these otherwise optional parameters, use the piping operator(s): + + splice(@array,10) <== 1..*; + +which replaces C<@array[10]> and all subsequent elements with an infinite +series starting at C<1>. + +This behaves similarly to Perl 5's C<splice>. + +If C<@array> is multidimensional, C<splice> operates only on the first +dimension, and works with Array References. + +C<splice> returns the list of deleted elements in list context, and a +reference to a list of deleted elements in scalar context. + + +=item unshift + + our Int multi method unshift ( @array: *@values ) is export + +C<unshift> adds the values onto the start of the C<@array>. + +=item keys + +=item kv + +=item pairs + +=item values + + our List multi method keys ( @array: Matcher *@indextests ) is export + our List multi method kv ( @array: Matcher *@indextests ) is export + our List multi method pairs (@array: Matcher *@indextests ) is export + our List multi method values ( @array: Matcher *@indextests ) is export + +Iterates the elements of C<@array>, in order. + +If C<@indextests> are provided, only elements whose indices match +C<$index ~~ any(@indextests)> are iterated. + +What is returned at each element of the iteration varies with function. +C<values> returns the value of the associated element; C<kv> returns +a 2 element list in (index, value) order, C<pairs> a C<Pair(index, value)>. + +C<@array> is considered single dimensional. If it is in fact multi-dimensional, +the values returned will be array references to the sub array. + +In Scalar context, they all return the count of elements that would have +been iterated. + +=back + =head2 Hash The following are defined in the C<Hash> role. -role Hash does Associative {...} +role Hash does Container does Associative {...} =over 4
|
| | Add comment |
|
| r25584 - docs/Perl6/Spec/S32-setting-library Guest 15:15:05 |
| | Author: wayland Date: 2009-02-26 13:15:04 +0100 (Thu, 26 Feb 2009) New Revision: 25584
Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod Log: Container.pod fixes, based on IRC advice.
Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 12:04:15 UTC (rev 25583) +++ docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 12:15:04 UTC (rev 25584) @@ -663,13 +663,8 @@ 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. +XXX So where are KeySet and KeyBag. -=head2 Array - -class Array does Array {...} - =head2 Seq class Seq does Positional {...} @@ -682,10 +677,6 @@ class Buf does Positional {...} -=head2 Hash - -class Hash does Hash {...} - =head2 class Pair does Associative {...}
|
| | Add comment |
|
| Exceptions question Timothy S. Nelson 15:08:43 |
| | S04 says:
Because the contextual variable C<$!> contains all exceptions collected in the current lexical scope, saying C<die $!> will throw all exceptions, whether they were handled or not. A bare C<die>/C<fail> takes C<$!> as the default argument.
Does this mean that $! is a container of some sort?
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 6 answers | Add comment |
|
| r25582 - docs/Perl6/Spec Guest 14:05:45 |
| | Author: wayland Date: 2009-02-26 12:05:45 +0100 (Thu, 26 Feb 2009) New Revision: 25582
Modified: docs/Perl6/Spec/S28-special-names.pod Log: Updated main table; refactoring after previous additions
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-26 11:04:54 UTC (rev 25581) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-26 11:05:45 UTC (rev 25582) @@ -61,13 +61,15 @@ Variable Spec Type Description -------- ---- ---- ----------- - $/ S05 Match # match object from last match - $0, $1, $2 S05 Str # first captured value from match: $/[0] + @_ # ??? + $! S04 # Current Exception object + $/ S05 Match # Last match + $0, $1, $2 S05 Str # First captured value from match: $/[0] @*ARGS S06 Array of Str # command-line arguments $*ARGFILES S02 IO # The magic command-line input handle &?BLOCK S06 Block # current block (itself) ::?CLASS Str # current class (as package or type name) - $?CLASS Class # current class (as package object) + $?CLASS Class # current class @=COMMENT # All the comment blocks in the file %?CONFIG Hash of XXX # configuration hash $=DATA # data block handle (=begin DATA ... =end) @@ -80,7 +82,7 @@ $*EUID Int # effective user id $*EXECUTABLE_NAME Str # executable name $?FILE Str # current filename of source file - $?GRAMMAR Grammar # current grammar (as object) + $?GRAMMAR Grammar # current grammar $*GID Int # group id $*IN S16 IO # Standard input handle; is an IO object $*INC S11 # where to search for user modules (but not std lib!) @@ -89,7 +91,7 @@ $*LANG S02 Str # LANG variable from %*ENV that defines what human language is used $?LINE Int # current line number in source file %*META-ARGS S19 Hash of XXX # Meta-arguments - $?MODULE Module # current module (as package object variable) + $?MODULE Module # current module %*OPTS S19 Hash of XXX # Options from command line %*OPT... S19 Hash of XXX # Options from command line to be passed down $?OS Str # operating system compiled for @@ -98,14 +100,14 @@ $*OSVER Str # operating system version running under $*OUT S16 IO # Standard output handle $?PARSER S02 Grammar # Which Perl grammar was used to parse this statement? - $?PACKAGE Package # current package (as package object variable) + $?PACKAGE Package # current package $?PERL S02 Str # Which Perl am I compiled for? $*PERL Str # perl version running under $*PID Int # system process id %=POD S02 # (or some such) $*PROGRAM_NAME Str # name of the Perl program being executed ::?ROLE Str # current role (as package or type name) - $?ROLE Role # current role (as package object variable) + $?ROLE Role # current role &?ROUTINE S06 Routine # current sub or method (itself) $?SCOPE S02 # Current "my" scope (XXX unnecessary?) $*UID Int # system user id
|
| | Add comment |
|
| r25581 - in docs/Perl6/Spec: . S32-setting-library Guest 14:04:55 |
| | Author: wayland Date: 2009-02-26 12:04:54 +0100 (Thu, 26 Feb 2009) New Revision: 25581
Modified: docs/Perl6/Spec/S29-functions.pod docs/Perl6/Spec/S32-setting-library/Containers.pod Log: Moved Junctions from S29 to Containers.pod
Modified: docs/Perl6/Spec/S29-functions.pod =================================================================== --- docs/Perl6/Spec/S29-functions.pod 2009-02-26 10:57:19 UTC (rev 25580) +++ docs/Perl6/Spec/S29-functions.pod 2009-02-26 11:04:54 UTC (rev 25581) @@ -921,28 +921,6 @@ last, my, next, no, our, package, return, sub, use -=head1 Junction - -All method calls on Junctions autohread if there's no such method in the -Junction class. - -=over 4 - -=item eigenstates - - our List multi method eigenstates (Junction $j) - -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. - -=back - =head1 Default Export Questions Not sure whether these are exported by default or not. Also, many may no longer exist; if @@ -1005,7 +983,7 @@ =item Other -bless -- is this dead? +bless caller chr die
Modified: docs/Perl6/Spec/S32-setting-library/Containers.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 10:57:19 UTC (rev 25580) +++ docs/Perl6/Spec/S32-setting-library/Containers.pod 2009-02-26 11:04:54 UTC (rev 25581) @@ -26,6 +26,10 @@ =head1 Function Roles +This documents List, Seq, Range, Set, Bag, Junction. + +XXX So where are Seq, Range, Set, Bag? + =head2 Container =over @@ -634,11 +638,31 @@ =back +=head2 Junction +All method calls on Junctions autohread if there's no such method in the +Junction class. + +=over 4 + +=item eigenstates + + our List multi method eigenstates (Junction $j) + +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. + +=back + + + =head1 Additions Please post errors and feedback to perl6-language. If you are making a general laundry list, please separate messages by topic. - - -
|
| | Add comment |
|
| r25580 - docs/Perl6/Spec Guest 13:57:19 |
| | Author: wayland Date: 2009-02-26 11:57:19 +0100 (Thu, 26 Feb 2009) New Revision: 25580
Modified: docs/Perl6/Spec/S28-special-names.pod Log: Added types to main table
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-26 10:19:21 UTC (rev 25579) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-26 10:57:19 UTC (rev 25580) @@ -58,60 +58,60 @@ =head2 Named variables - Variable Spec Description - -------- ---- ----------- + Variable Spec Type Description + -------- ---- ---- ----------- - $/ S05 # match object from last match - $0, $1, $2 S05 # first captured value from match: $/[0] - @*ARGS S06 # command-line arguments - $*ARGFILES S02 # The magic command-line input handle - &?BLOCK S06 # current block (itself) - ::?CLASS # current class (as package or type name) - $?CLASS # current class (as package object) - @=COMMENT # All the comment blocks in the file - %?CONFIG # configuration hash - $=DATA # data block handle (=begin DATA ... =end) - @=DATA # Same as above, but array - %?DEEPMAGIC S13 # Controls the mappings of magical names to sub definitions - $?DISTRO S02 # Which OS distribution am I compiling under - $*EGID # effective group id - %*ENV # system environment variables - $*ERR S16 # Standard error handle; is an IO object - $*EUID # effective user id - $*EXECUTABLE_NAME # executable name - $?FILE # current filename of source file - $?GRAMMAR # current grammar (as object) - $*GID # group id - $*IN S16 # Standard input handle; is an IO object - $*INC S11 # where to search for user modules (but not std lib!) - $?LABEL # label of current block (XXX unnecessary?) - $?LANG S02 # Which Perl parser should embedded closures parse with? - $*LANG S02 # LANG variable from %*ENV that defines what human language is used - $?LINE # current line number in source file - %*META-ARGS S19 # Meta-arguments - $?MODULE # current module (as package object variable) - %*OPTS S19 # Options from command line - %*OPT... S19 # Options from command line to be passed down - $?OS # operating system compiled for - $*OS # operating system running under - $?OSVER # operating system version compiled for - $*OSVER # operating system version running under - $*OUT S16 # Standard output handle; is an IO object - $?PARSER S02 # Which Perl grammar was used to parse this statement? - $?PACKAGE # current package (as package object variable) - $?PERL S02 # Which Perl am I compiled for? - $*PERL # perl version running under - $*PID # system process id - %=POD S02 # (or some such) - $*PROGRAM_NAME # name of the Perl program being executed - ::?ROLE # current role (as package or type name) - $?ROLE # current role (as package object variable) - &?ROUTINE S06 # current sub or method (itself) - $?SCOPE S02 # Current "my" scope (XXX unnecessary?) - $*UID # system user id - $?USAGE S06 # Default usage message generated at compile time - $?VM S02 # Which virtual machine am I compiling under - $?XVM S02 # Which virtual machine am I cross-compiling for + $/ S05 Match # match object from last match + $0, $1, $2 S05 Str # first captured value from match: $/[0] + @*ARGS S06 Array of Str # command-line arguments + $*ARGFILES S02 IO # The magic command-line input handle + &?BLOCK S06 Block # current block (itself) + ::?CLASS Str # current class (as package or type name) + $?CLASS Class # current class (as package object) + @=COMMENT # All the comment blocks in the file + %?CONFIG Hash of XXX # configuration hash + $=DATA # data block handle (=begin DATA ... =end) + @=DATA # Same as above, but array + %?DEEPMAGIC S13 Hash of XXX # Controls the mappings of magical names to sub definitions + $?DISTRO S02 Str # Which OS distribution am I compiling under + $*EGID Int # effective group id + %*ENV Hash of Str # system environment variables + $*ERR S16 IO # Standard error handle + $*EUID Int # effective user id + $*EXECUTABLE_NAME Str # executable name + $?FILE Str # current filename of source file + $?GRAMMAR Grammar # current grammar (as object) + $*GID Int # group id + $*IN S16 IO # Standard input handle; is an IO object + $*INC S11 # where to search for user modules (but not std lib!) + $?LABEL # label of current block (XXX unnecessary?) + $?LANG S02 # Which Perl parser should embedded closures parse with? + $*LANG S02 Str # LANG variable from %*ENV that defines what human language is used + $?LINE Int # current line number in source file + %*META-ARGS S19 Hash of XXX # Meta-arguments + $?MODULE Module # current module (as package object variable) + %*OPTS S19 Hash of XXX # Options from command line + %*OPT... S19 Hash of XXX # Options from command line to be passed down + $?OS Str # operating system compiled for + $*OS Str # operating system running under + $?OSVER Str # operating system version compiled for + $*OSVER Str # operating system version running under + $*OUT S16 IO # Standard output handle + $?PARSER S02 Grammar # Which Perl grammar was used to parse this statement? + $?PACKAGE Package # current package (as package object variable) + $?PERL S02 Str # Which Perl am I compiled for? + $*PERL Str # perl version running under + $*PID Int # system process id + %=POD S02 # (or some such) + $*PROGRAM_NAME Str # name of the Perl program being executed + ::?ROLE Str # current role (as package or type name) + $?ROLE Role # current role (as package object variable) + &?ROUTINE S06 Routine # current sub or method (itself) + $?SCOPE S02 # Current "my" scope (XXX unnecessary?) + $*UID Int # system user id + $?USAGE S06 Str # Default usage message generated at compile time + $?VM S02 Str # Which virtual machine am I compiling under + $?XVM S02 Str # Which virtual machine am I cross-compiling for Note that contextual variables such as C<$*OUT> may have more than one current definition in the outer dynamic context, in which case
|
| | Add comment |
|
| r25578 - in docs/Perl6/Spec: . S32-setting-library Guest 13:00:40 |
| | Author: wayland Date: 2009-02-26 11:00:39 +0100 (Thu, 26 Feb 2009) New Revision: 25578
Modified: docs/Perl6/Spec/S29-functions.pod docs/Perl6/Spec/S32-setting-library/IO.pod Log: S29: Fix formatting IO.pod: Get rid of tree, spec stat and LinkNode a bit better
Modified: docs/Perl6/Spec/S29-functions.pod =================================================================== --- docs/Perl6/Spec/S29-functions.pod 2009-02-26 09:08:17 UTC (rev 25577) +++ docs/Perl6/Spec/S29-functions.pod 2009-02-26 10:00:39 UTC (rev 25578) @@ -998,11 +998,13 @@ setservent =item Flow control + break continue redo =item Other + bless -- is this dead? caller chr
Modified: docs/Perl6/Spec/S32-setting-library/IO.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/IO.pod 2009-02-26 09:08:17 UTC (rev 25577) +++ docs/Perl6/Spec/S32-setting-library/IO.pod 2009-02-26 10:00:39 UTC (rev 25578) @@ -545,15 +545,13 @@ This represents the filesystem. -class IO::FileSystem does IO::Streamable does Tree { +class IO::FileSystem does IO::Streamable { has Str $.fstype; # ext3, ntfs, vfat, reiserfs, etc has Str $.illegal_chars; # ie. /\x0 has Int $.max_path; ... } -It inherits $cwn and $root from Tree. - =over 4 =item glob @@ -570,7 +568,7 @@ =head2 IO::FSNode -class IO::FSNode does Tree::Node { +class IO::FSNode { has Array of IO::FSNodeACL @.ACLs; has Hash of %.times; ... @@ -813,12 +811,25 @@ ... } -=item link +=item new -=item readlink +Creates a new link in the filesystem. -=item symlink + IO::LinkNode.new( + Name => '/home/wayland/symlink.txt' + Target => '/home/wayland/realfile.txt', + Type => 'Hard', # Default is Symbolic + ); +Reads in the previously created symlink. + + $link = IO::LinkNode.new( + Name => '/home/wayland/symlink.txt', + ); + print $link.target; # prints /home/wayland/realfile.txt + +Neither of these is "use portable" compatible. + =head2 IO::Socket::TCP class IO::Socket::TCP does IO::Socket does IO::Streamable { @@ -989,17 +1000,12 @@ $mode = '0o644'; chmod $mode, 'foo'; # this is better $mode = 0o644; chmod $mode, 'foo'; # this is best -=item lstat - -Returns a stat buffer. If the lstat succeeds, the stat buffer evaluates -to true, and additional file tests may be performed on the value. If -the stat fails, all subsequent tests on the stat buffer also evaluate -to false. - =item stat =item IO.stat + $node.stat(Type => 'Link'); # Type => Link does an lstat instead + Returns a stat buffer. If the lstat succeeds, the stat buffer evaluates to true, and additional file tests may be performed on the value. If the stat fails, all subsequent tests on the stat buffer also evaluate @@ -1072,6 +1078,10 @@ See IO::FileDescriptor +=item lstat + +Use stat() with the Type => 'Link' option. + =item IO.name Changed to .path(), but we haven't gotten around to specifying this on all of them.
|
| | Add comment |
|
| IO, Trees, and Time/Date Timothy S. Nelson 12:07:58 |
| | Hi all. I know we usually run on forgiveness instead of permission, but I'm suggesting a big change (or extension, anyway), so I wanted to run the ideas by you all before I put the effort in. If I don't get feedback, I'll just make the changes.
The first thing I wanted to suggest was that in S16, the OS-specific stuff be split out into separate roles. I suspect this is mostly non-controversial, so I'll do that unless someone complains.
My second thought is that we need to specify tree objects (see http://www.mail-archive.com/perl6-language@perl.org/msg28579.html ). I'll put them in S16 unless someone complains.
My third thought is that it would be very useful also to have date/time objects that integrate well with eg. ctime, mtime, and the like; I'd start with Time::Piece as a model.
http://search.cpan.org/dist/Time-Piece/Piece.pm
My final question is, since people are now getting somewhat familiar with the "file:" URI scheme (ie. file:/home/wayland/Notes.txt or file:/C/Documents and Settings/wayland/Notes.txt or whatever), I'm wondering if this isn't how we should be specifying our files; it's prettier than File::Spec , and unified.
Anyway, HTH,
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 18 answers | Add comment |
|
| r25570 - docs/Perl6/Spec Guest 05:05:42 |
| | Author: lwall Date: 2009-02-26 03:05:41 +0100 (Thu, 26 Feb 2009) New Revision: 25570
Modified: docs/Perl6/Spec/S02-bits.pod Log: [S02] more package and variable name cleanups
Modified: docs/Perl6/Spec/S02-bits.pod =================================================================== --- docs/Perl6/Spec/S02-bits.pod 2009-02-26 01:56:30 UTC (rev 25569) +++ docs/Perl6/Spec/S02-bits.pod 2009-02-26 02:05:41 UTC (rev 25570) @@ -12,9 +12,9 @@ Maintainer: Larry Wall <larry@wall.org> Date: 10 Aug 2004 - Last Modified: 24 Feb 2009 + Last Modified: 25 Feb 2009 Number: 2 - Version: 154 + Version: 155 This document summarizes Apocalypse 2, which covers small-scale lexical items and typological issues. (These Synopses also contain @@ -1861,12 +1861,8 @@ Package names are searched for from inner lexical scopes to outer, then from inner packages to outer. Variable names are searched for from inner lexical scopes to outer, but unlike package names -are looked for in only the current package and the global package. +are looked for in only the current package. -The global namespace is the last place it looks in either case. -You must use the C<*> (or C<GLOBAL>) package on the front of the -string argument to force the search to start in the global namespace. - Use the C<MY> pseudopackage to limit the lookup to the current lexical scope, and C<OUR> to limit the scopes to the current package scope. @@ -1879,7 +1875,7 @@ To bind package variables into a lexical scope, simply say C<our ($x, @y)>. To bind global variables into a lexical scope, predeclare them with C<use>: - use GLOBAL <$IN $OUT>; + use PROCESS <$IN $OUT>; Or just refer to them as C<$*IN> and C<$*OUT>. @@ -1889,7 +1885,7 @@ the package name as a hash: Foo::Bar::{'&baz'} # same as &Foo::Bar::baz - GLOBAL::<$IN> # Same as $*IN + PROCESS::<$IN> # Same as $*IN Foo::<::Bar><::Baz> # same as Foo::Bar::Baz The C<::> before the subscript is required here, because the C<Foo::Bar{...}> @@ -2052,33 +2048,32 @@ =item * -Truly global variables live in the C<*> package: C<$*UID>, C<%*ENV>. -(The C<*> may be omitted if you import the name from the C<GLOBAL> -package.) C<$*foo> is short for C<$*::foo>, suggesting that the -variable is "wild carded" into every package. +Interpreter globals live in the C<GLOBAL> package. The user's program +starts in the C<GLOBAL> package, so "our" declarations in the mainline +code go into that package by default. Process-wide variables live in +the C<PROCESS> package. Most predefined globals such as C<$*UID> +and C<%*PID> are actually process globals. =item * -For an ordinary Perl program running by itself, the C<GLOBAL> and -C<PROCESS> namespaces are considered synonymous. However, in certain +There is only ever a single C<PROCESS> package. +For an ordinary Perl program running by itself, there is only one C<GLOBAL> +package as well. However, in certain situations (such as shared hosting under a webserver), the actual -process may contain multiple virtual processes, each running its own +process may contain multiple virtual processes or interpreters, each running its own "main" code. In this case, the C<GLOBAL> namespace holds variables that properly belong to the individual virtual process, while the C<PROCESS> namespace holds variables that properly belong to the actual -process as a whole. From the viewpoint of the C<GLOBAL> namespace -there is little difference, since process variables that normally -appear in C<GLOBAL> are automatically imported from C<PROCESS>. -However, the process as a whole may place restrictions on the +process as a whole. From the viewpoint of the program +there is little difference as long as all global variables are accessed +as if they were context variables (by using the C<*> twigil). +The process as a whole may place restrictions on the mutability of process variables as seen by the individual subprocesses. Also, individual subprocesses may not create new process variables. If the process wishes to grant subprocesses the ability to communicate -via the C<PROCESS> namespace, it must supply a writeable variable +via the C<PROCESS> namespace, it must supply a writeable context variable to all the subprocesses granted that privilege. -When these namespaces are so distinguished, the C<*> shortcut always refers -to C<GLOBAL>. There is no twigil shortcut for C<PROCESS>. - =item * The magic command-line input handle is C<$*ARGFILES>. @@ -2108,8 +2103,8 @@ expression at compile time.) C<$?FILE> and C<$?LINE> are your current file and line number, for -instance. C<?> is not a shortcut for a package name like C<*> is. -Instead of C<$?OUTER::SUB> you probably want to write C<< OUTER::<$?SUB> >>. +instance. +Instead of C<$?OUTER::FOO> you probably want to write C<< OUTER::<$?FOO> >>. Within code that is being run during the compile, such as C<BEGIN> blocks, or macro bodies, or constant initializers, the compiler variables must be referred to as (for instance) C<< COMPILING::<$?LINE> >> if the bare C<$?LINE> would @@ -2126,11 +2121,7 @@ $?PARSER Which Perl grammar was used to parse this statement? $?LANG Which Perl parser should embedded closures parse with? &?ROUTINE Which routine am I in? - @?ROUTINE Which nested routines am I in? &?BLOCK Which block am I in? - @?BLOCK Which nested blocks am I in? - $?LABEL Which innermost block label am I in? - @?LABEL Which nested block labels am I in? All the nested C<@?> variables are ordered from the innermost to the outermost, so C<@?BLOCK[0]> is always the same as C<&?BLOCK>. @@ -2144,15 +2135,10 @@ $?PERL Which Perl am I compiled for? $?SCOPE Which lexical scope am I in? $?PACKAGE Which package am I in? - @?PACKAGE Which nested packages am I in? $?MODULE Which module am I in? - @?MODULE Which nested modules am I in? $?CLASS Which class am I in? (as variable) - @?CLASS Which nested classes am I in? $?ROLE Which role am I in? (as variable) - @?ROLE Which nested roles am I in? $?GRAMMAR Which grammar am I in? - @?GRAMMAR Which nested grammars am I in? It is relatively easy to smartmatch these constant objects against pairs to check various attributes such as name,
|
| | Add comment |
|
| r25569 - in docs/Perl6/Spec: . S32-setting-library Guest 04:56:31 |
| | Author: wayland Date: 2009-02-26 02:56:30 +0100 (Thu, 26 Feb 2009) New Revision: 25569
Modified: docs/Perl6/Spec/S28-special-names.pod docs/Perl6/Spec/S32-setting-library/IO.pod Log: S32: Mentioned IPv6 S28: bugfixes
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-26 01:46:30 UTC (rev 25568) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-26 01:56:30 UTC (rev 25569) @@ -25,7 +25,7 @@ =head1 Overview -=head2 Secondary Sigils (also known as "twigils"): +=head2 Secondary Sigils (also known as "twigils") A quick reminder of the relevant twigils from S02: @@ -56,7 +56,7 @@ rather than compiler control. The structure of these variables will be fleshed out in S26. -=head2 Named variables: +=head2 Named variables Variable Spec Description -------- ---- -----------
Modified: docs/Perl6/Spec/S32-setting-library/IO.pod =================================================================== --- docs/Perl6/Spec/S32-setting-library/IO.pod 2009-02-26 01:46:30 UTC (rev 25568) +++ docs/Perl6/Spec/S32-setting-library/IO.pod 2009-02-26 01:56:30 UTC (rev 25569) @@ -846,6 +846,8 @@ The NoOpen option is passed to IO::Streamable.new() +IPv6 is supported. + =item open method open()
|
| | Add comment |
Wednesday, 25 February 2009
|
| ANNOUNCE: IBM DB2 Database Driver for Perl DBI Version 1.6 released Open Source Application Development 17:46:16 |
| | IBM DB2 Database Driver for Perl DBI Version 1.6 has been uploaded on CPAN. Testers are please welcome to test the new features and report the bugs.
DBI is an open standard application programming interface (API) that provides database access for client applications written in Perl. DBI defines a set of functions, variables, and conventions that provide a platform-independent database interface. The DBD::DB2 driver works with DBI and a DB2 client to access databases.
**New In Release - Improved Error and Warning Handling - Use DBI_TRACE = 3 to get all Warning Messages - Improved XML support to handle large XML Files - Include SQL_ATTR_INFO_PROGRAMNAME as GetAttribute - Next release would have Setting the attribute as well so that it is visible by running the CLP command "db2 list applications" - Include SQL_ATTR_CALL_RETURN to capture the return code from a stored procedure - Memory cleanup which did core dump.
Download Link http://www.cpan.org/authors/id/I/IB/IBMTORDB2/DBD-DB21.6.tar.gz
Installation Instructions http://www-306.ibm.com/software/data/db2/perl/
Support Email Addresses
* This release is supported by Open Source Application Development Team * You may also report your bugs via the CPAN resolution tracking system: http://rt.cpan.org/ by searching for module DBD-DB2 * Such bug reports can be sent by email to bug-DBD-DB2@rt.cpan.org; they also get sent to opendev@us.ibm.com, etc.
Download DB2 Express-C for free, go to: http://www-01.ibm.com/software/data/db2/express/download.html?S_CMP=ECDDWW01&S_TACT=ACDB201
Getting started with DB2 Express-C: http://www.ibm.com/developerworks/wikis/display/DB2/FREE+Book-+Getting+Started+with+DB2+Express-C
Thanks, IBM OpenSource Application Development Team India Software Labs, Bangalore (India)
|
| | Add comment |
|
| S28 -- more profusion of confusion on my part :) Timothy S. Nelson 17:41:46 |
| | Hi. I wrote a variable finding program. The output is below for those interested (yes, it relies on ack), but the questions the output raises are: - Does the $?TABSTOP have a special meaning, or is it just an example like $?FOO is in so many places? - Should those @?ROUTINE, etc, variables be removed from S02 like they were from S28? - Is $?NF a special Unicode variable?
Maybe also the questions that I put in the "Not yet defined" section are appropriate here too: - We seem to have $*INC in the table at the top, @*INC in S19 and the table immediately above, %*INC also in the table above. Are all 3 correct? - The $?LANG and $*LANG variables are also confusing (both in S02, with completely different meanings).
Thanks. Output follows.
Perl6/Spec/S02-bits.pod:2105: constant $?TABSTOP = 4; # assume heredoc tabs mean 4 spaces Perl6/Spec/S02-bits.pod:2129: @?ROUTINE Which nested routines am I in? Perl6/Spec/S02-bits.pod:2131: @?BLOCK Which nested blocks am I in? Perl6/Spec/S02-bits.pod:2133: @?LABEL Which nested block labels am I in? Perl6/Spec/S02-bits.pod:2147: @?PACKAGE Which nested packages am I in? Perl6/Spec/S02-bits.pod:2149: @?MODULE Which nested modules am I in? Perl6/Spec/S02-bits.pod:2151: @?CLASS Which nested classes am I in? Perl6/Spec/S02-bits.pod:2153: @?ROLE Which nested roles am I in? Perl6/Spec/S02-bits.pod:2155: @?GRAMMAR Which nested grammars am I in? Perl6/Spec/S02-bits.pod:3255:to be C<< ($?TABSTOP // 8) >> spaces, but as long as tabs and spaces are used consistently Perl6/Spec/S05-regex.pod:711: $<OPEN> = '(' <SETGOAL: ')'> <expression> [ $GOAL || <FAILGOAL> ] Perl6/Spec/S32-setting-library/Str.pod:219: our Int multi method codes ( Str $string: $nf = $?NF) is export
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | Add comment |
|
| r25555 - docs/Perl6/Spec Guest 17:30:13 |
| | Author: wayland Date: 2009-02-25 15:30:12 +0100 (Wed, 25 Feb 2009) New Revision: 25555
Modified: docs/Perl6/Spec/S28-special-names.pod Log: S28: Added some more variables drawn from other documents, and added some notes about confusing bits.
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-25 14:12:10 UTC (rev 25554) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-25 14:30:12 UTC (rev 25555) @@ -72,6 +72,7 @@ %?CONFIG # configuration hash $=DATA # data block handle (=begin DATA ... =end) @=DATA # Same as above, but array + %?DEEPMAGIC S13 # Controls the mappings of magical names to sub definitions $?DISTRO S02 # Which OS distribution am I compiling under $*EGID # effective group id %*ENV # system environment variables @@ -84,7 +85,10 @@ $*IN S16 # Standard input handle; is an IO object $*INC S11 # where to search for user modules (but not std lib!) $?LABEL # label of current block (XXX unnecessary?) + $?LANG S02 # Which Perl parser should embedded closures parse with? + $*LANG S02 # LANG variable from %*ENV that defines what human language is used $?LINE # current line number in source file + %*META-ARGS S19 # Meta-arguments $?MODULE # current module (as package object variable) %*OPTS S19 # Options from command line %*OPT... S19 # Options from command line to be passed down @@ -105,6 +109,7 @@ &?ROUTINE S06 # current sub or method (itself) $?SCOPE S02 # Current "my" scope (XXX unnecessary?) $*UID # system user id + $?USAGE S06 # Default usage message generated at compile time $?VM S02 # Which virtual machine am I compiling under $?XVM S02 # Which virtual machine am I cross-compiling for @@ -208,6 +213,11 @@ XXX Don't remove this line until this section is completely blank. +We also seem to have $*INC in the table at the top, @*INC in S19 and the table +immediately above, %*INC also in the table above. + +The $?LANG and $*LANG variables are also confusing (both in S02). + =head2 Form.pm These go in the Perl5 to Perl6 conversion table: @@ -239,7 +249,8 @@ =head2 S15-unicode.pod -${^ENCODING} and ${^UNICODE} variables +${^ENCODING} variable -- S32/Str.pod implies this is $*ENC +${^UNICODE} variable =head2 Infectious trait spec
|
| | Add comment |
|
| r25552 - docs/Perl6/Spec/S32-setting-library Guest 17:03:24 |
| | Author: moritz Date: 2009-02-25 15:03:24 +0100 (Wed, 25 Feb 2009) New Revision: 25552
Modified: docs/Perl6/Spec/S32-setting-library/Any.pod docs/Perl6/Spec/S32-setting-library/Containers.pod docs/Perl6/Spec/S32-setting-library/IO.pod docs/Perl6/Spec/S32-setting-library/Numeric.pod docs/Perl6/Spec/S32-setting-library/Scalar.pod docs/Perl6/Spec/S32-setting-library/Str.pod docs/Perl6/Spec/S32-setting-library/Temporal.pod Log: [spec] set svn props on S32/*.pod
Property changes on: docs/Perl6/Spec/S32-setting-library/Any.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/Containers.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/IO.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/Numeric.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/Scalar.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/Str.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
Property changes on: docs/Perl6/Spec/S32-setting-library/Temporal.pod ___________________________________________________________________ Added: svn:mime-type + text/plain; charset=UTF-8 Added: svn:eol-style + native
|
| | Add comment |
|
| AnyEvent Timothy S. Nelson 16:21:00 |
| | Am I right in guessing that the AnyEvent stuff should go in S17 ?
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 1 answer | Add comment |
|
| r25545 - docs/Perl6/Spec Guest 15:03:29 |
| | Author: wayland Date: 2009-02-25 13:03:29 +0100 (Wed, 25 Feb 2009) New Revision: 25545
Modified: docs/Perl6/Spec/S28-special-names.pod Log: A few minor fixes
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-25 12:01:34 UTC (rev 25544) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-25 12:03:29 UTC (rev 25545) @@ -1,15 +1,15 @@ =head1 Name - [DRAFT] Synopsis 28 - Special Variables [DRAFT] + [DRAFT] Synopsis 28 - Special Names [DRAFT] =head1 Version Author: Larry Wall <larry@wall.org> Maintainer: Larry Wall <larry@wall.org> Contributions: Tim Nelson <wayland@wayland.id.au> - Date: 23 Feb 2009, created from miscellaneous documents lying around - Last Modified: 24 Feb 2009 - Version: 4 + Date: 23 Feb 2009, created by Tim Nelson from miscellaneous documents lying around + Last Modified: 25 Feb 2009 + Version: 5 =head1 Introduction
|
| | Add comment |
|
| @*INPLACE_AUTOSPLIT_FIELDS Timothy S. Nelson 14:43:07 |
| | In the table I'm assembling, the following entry was added:
Perl 5 Perl 6 Comment ----------- ----------- ----------------------- @F @*INPLACE_AUTOSPLIT_FIELDS ..or some such
Can I just speak in favour of retaining the @F name? My reason for this is because it's used in one-liners, and who wants to type @*INPLACE_AUTOSPLIT_FIELDS in a one-liner? It's enough to make one reach for awk.
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 1 answer | Add comment |
|
| S28 update? Timothy S. Nelson 14:42:07 |
| | Is there any chance someone could have a look at the stuff in the section labelled "Old stuff for p5/p6 comparison" of S28, and give me some info on what's going on with them? In particular, I want to know:
- What's going to replace $^V / $PERL_VERSION / $] -- is it $?PERL ? - What's going to replace $^W / $WARNING ? - Am I right about $ARGV being replaceable with $*IN.name(), or have I misunderstood $ARGV? - What's going to replace @INC / %INC ? - Is there going to be a replacement for @_ ?
If anyone knows the answers to any of these, please let me know.
Thanks,
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 1 answer | Add comment |
|
| Re: Changes to IO::Compress::* Craig A. Berry 12:37:28 |
| | On Tue, Feb 24, 2009 at 8:59 AM, Paul Marquess <paul_marquess@yahoo.co.uk> wrote:
From: Nicholas Clark [mailto:nick@flirble.org] On Behalf Of Nicholas Clark On Mon, Feb 23, 2009 at 12:57:42PM -0000, Paul Marquess wrote: Regarding Bzip2, I include the C source for Bzip2 in Compress-Raw-Bzip2 the license looks ok from a perl perspective (see Does it build cleanly on VMS? Good question. I don't see anything in my email archive about anyone trying to get Compress::Bzip2::Raw & IO::Compress::Bzip2 working on VMS. Also nothing on CPAN Testers for anyone testing them on VMS. Is there anyone with access to VMS that could try Compress::Bzip2::Raw & IO::Compress::Bzip2? I can do that, but it may take me a day or two to get to it. Meanwhile I've cc'd vmsperl in case anyone there can beat me to it.
|
| | 3 answer | Add comment |
|
| r25542 - docs/Perl6/Spec Guest 11:31:28 |
| | Author: lwall Date: 2009-02-25 09:31:28 +0100 (Wed, 25 Feb 2009) New Revision: 25542
Modified: docs/Perl6/Spec/S28-special-names.pod docs/Perl6/Spec/S29-functions.pod Log: name whackage of various sorts
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-25 06:08:52 UTC (rev 25541) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-25 08:31:28 UTC (rev 25542) @@ -8,8 +8,8 @@ Maintainer: Larry Wall <larry@wall.org> Contributions: Tim Nelson <wayland@wayland.id.au> Date: 23 Feb 2009, created from miscellaneous documents lying around - Last Modified: 23 Feb 2009 - Version: 3 + Last Modified: 24 Feb 2009 + Version: 4 =head1 Introduction @@ -27,18 +27,37 @@ =head2 Secondary Sigils (also known as "twigils"): -A quick reminder of the relevant twigils: +A quick reminder of the relevant twigils from S02: - $?foo # Lexically-scoped (compile time, see S02) - $*foo # Contextualiseable Global variable (run time, see S02) - $=foo # File-scoped (see S02) + $?foo # Compiler constants (fixed at compile time) + $*foo # Context variable, default global (run time) + $=foo # File-scoped POD data -XXX Something else claimed that $=foo was a POD variable; Larry says it's not -well-defined, yet, and we're waiting on Damian to write S26 before we'll know what's going -on XXX +The various C<$?foo> variables are determined at compile time, and are +not modifiable at run time. This does not mean that the variable has the +same value everywhere; for instance, C<$?LINE> is different on every line +of the program. -=head2 Named variables (see S02): +The C<$*foo> variables function both as dymamically scoped variables +and as globals. Globalness is relative, in other words. Any dynamic +scope may modify the set of globals visible via the C<$*foo> notation. +Most of the standard globals listed below actually live either in +the C<PROCESS> or the C<GLOBAL> package, where C<PROCESS> contains +globals belonging to the entire process, while C<GLOBAL> contains the +globals belonging to the current interpreter, since a process may be +running more than one interpreter. Unless otherwise indicated below, +the outermost definition of these variables are kept in the C<PROCESS> +package. +The C<$=foo> variables are related to the the C<$?foo> variables +insofar as the text of the program is known at compile time, so the +values are static. However, the different twigil indicates that the +variable contains POD data, which is primarily under user control +rather than compiler control. The structure of these variables will +be fleshed out in S26. + +=head2 Named variables: + Variable Spec Description -------- ---- ----------- @@ -46,43 +65,41 @@ $0, $1, $2 S05 # first captured value from match: $/[0] @*ARGS S06 # command-line arguments &?BLOCK S06 # current block (itself) - ::?CLASS # current class (as package name) - $?CLASS # current class (as variable) + ::?CLASS # current class (as package or type name) + $?CLASS # current class (as package object) %?CONFIG # configuration hash $=DATA # data block handle (=begin DATA ... =end) $?DISTRO S02 # Which OS distribution am I compiling under $*EGID # effective group id - %*ENV # system environment + %*ENV # system environment variables $*ERR S16 # Standard error handle; is an IO object $*EUID # effective user id $*EXECUTABLE_NAME # executable name $?FILE # current filename of source file - $?GRAMMAR # current grammar + $?GRAMMAR # current grammar (as object) $*GID # group id $*IN S16 # Standard input handle; is an IO object - $?LABEL # label of current block + $*INC S11 # where to search for user modules (but not std lib!) + $?LABEL # label of current block (XXX unnecessary?) $?LINE # current line number in source file - $?MODULE # current module + $?MODULE # current module (as package object variable) %*OPTS S19 # Options from command line %*OPT... S19 # Options from command line to be passed down - %*OPTS S19 # Options from command line - %*OPT... S19 # Options from command line to be passed down $?OS # operating system compiled for $*OS # operating system running under $?OSVER # operating system version compiled for $*OSVER # operating system version running under $*OUT S16 # Standard output handle; is an IO object $?PARSER S02 # Which Perl grammar was used to parse this statement? - $?PACKAGE # current package (as object) - $?PACKAGENAME S10 # name of current package + $?PACKAGE # current package (as package object variable) $?PERL S02 # Which Perl am I compiled for? $*PERL # perl version running under - $*PROGRAM_NAME # name of the program being executed + $*PROGRAM_NAME # name of the Perl program being executed $*PID # system process id - ::?ROLE # current role (as package name) - $?ROLE # current role (as variable) + ::?ROLE # current role (as package or type name) + $?ROLE # current role (as package object variable) &?ROUTINE S06 # current sub or method (itself) - $?SCOPE S02 # Current "my" scope + $?SCOPE S02 # Current "my" scope (XXX unnecessary?) $*UID # system user id $?VM S02 # Which virtual machine am I compiling under $?XVM S02 # Which virtual machine am I cross-compiling for @@ -104,44 +121,6 @@ XXX Some of the information here is either old, or needs to be moved elsewhere. XXX -=over 8 - -=item $a, $b, $c ... - -Parameters of the current closure (block -or subroutine) by position in the invocation. - -XXX This needs to go under "Closures". XXX - -=over 4 - -=item p5: - -$_[0], $_[1], $_[2] ... - -=back - -=back - -=over 8 - -=item $*MOST_RECENT_CAPTURED_MATCH -=item $/[-1] -=item $/[-$n] - -It's not clear yet which of these would be used. -Or whether to drop this. - -=over 4 - -=item p5: - -$^N - -=back - -=back - =head2 Perl5 to Perl6 special variable translation If a column has a "-" in it, it means that item is unavailable in that version of Perl. @@ -161,7 +140,7 @@ $' $POSTMATCH substr based on $/.to $+ - But info can now be retrieved from $/ $^N $*MOST_RECENT_CAPTURED_MATCH ...or some such. - or $/[-$n] ...or omit + or $/[*-$n] ...or omit @- $1.start, etc @+ $1.end, etc. %! - @@ -197,7 +176,9 @@ $^O $OSNAME $*OSNAME ...or some such $^P $PERLDB $*PERLDB ...or some such $^R $*LAST_REGEXP_CODE_RESULT ...or some such. Or omit. - $^T $BASETIME $*BASETIME A Temporal::Instant object + $^T $BASETIME $*INITTIME A Temporal::Instant object + $^V $] $?PERL.version + $^W $*WARNINGS (if any dynamic control needed) ${^WARNING_BITS} $?WARNINGS $^X $*EXECUTABLE_NAME ...or some such ARGV $*ARGS Note the P6 idiom for this handle: @@ -206,9 +187,15 @@ # proc a line from files named in ARGS } @ARGV @*ARGS - ARGVOUT $*ARGVOUT Another IO object - @F @*INPLACE_AUTOSPLIT_FIELDS ..or some such + ARGVOUT TBD + $ARGV TBD + @F @_ %ENV %*ENV + @INC @*INC (but not for std library modules) + %INC %*INC (maybe, if needed) + %SIG event filters plus exception translation + $SIG{__WARN__} $*ON_WARN + $SIG{__DIE__} $*ON_DIE ${^OPEN} - This was internal; forget it =head2 Old stuff for p5/p6 comparison @@ -243,42 +230,14 @@ Other organizational schemes may become appropriate when the table is more complete. - ******* XXX the columns seem to have switched! ********* - ? ${^ENCODING} ? ${^UNICODE} Pending S15 Unicode - - $^V $PERL_VERSION - - $] version + patchlevel / 1000 of Perl interpreter - Replacement for the above two is unclear. - Is this $?PERL? - - ? ${^TAINT} Pending, among other things, infectious trait spec - - $^W $WARNING Probably gone. But we need a reasonably - granular way to suppress specific (groups - of) warnings within both lexical and - dynamic scopes. - ? $ARGV Can this be handled with $*IN.name, etc? - - ? @INC Uncertain but we need a way to add to search path - ? %INC Uncertain but we need a way to add to search path - ? @_ - -This signal handling stuff is pending S16. - - %*SIG %SIG Or possibly &*ON_SIGINT, etc. But then we'd need - to add some signal introspection in another way. - - &*ON_WARN __WARN__ - &*ON_DIE __DIE__ - &*ON_PARSEERROR - - XXX Everything below this line is older than everything above it. ...except for the stuff at the bottom taken from S22. XXX
Modified: docs/Perl6/Spec/S29-functions.pod =================================================================== --- docs/Perl6/Spec/S29-functions.pod 2009-02-25 06:08:52 UTC (rev 25541) +++ docs/Perl6/Spec/S29-functions.pod 2009-02-25 08:31:28 UTC (rev 25542) @@ -15,8 +15,8 @@ Moritz Lenz <moritz@faui2k3.org> Tim Nelson <wayland@wayland.id.au> Date: 12 Mar 2005 - Last Modified: 19 Feb 2009 - Version: 41 + Last Modified: 24 Feb 2009 + Version: 42 The document is a draft. @@ -28,8 +28,8 @@ In Perl 6, all builtin functions belong to a named package (generally a class or role). Not all -functions are guaranteed to be imported into the global package -C<::*>. In addition, the list of functions imported into C<::*> will be +functions are guaranteed to be imported into the CORE scope. +In addition, the list of functions imported into C<CORE> will be subject to change with each release of Perl. Authors wishing to "Future Proof" their code should either specifically import the functions they will be using, or always refer to the functions by their @@ -52,14 +52,14 @@ specifying a grammatical category or with a category of C<term:> (see L<S02/"Bits and Pieces">) will be described as "functions", and everything else as "operators" which are outside of the scope -of this document. +of this document. (See S03 for operators.) =head2 Multis vs. Functions In actual fact, most of the "functions" defined here are multi subs, or are multi methods that are also exported as multi subs. -The Prelude is responsible for importing all the standard multi subs -into the user's scope. +The Setting is responsible for importing all the standard multi subs +from their various packages into the CORE lexical scope. See S02. =head1 Type Declarations @@ -112,7 +112,7 @@ =item Matcher - subset Matcher of Item | Junction; + subset Matcher of Object where { $_.can('ACCEPTS') }; Used to supply a test to match against. Assume C<~~> will be used against it.
|
| | Add comment |
|
| r25540 - docs/Perl6/Spec Guest 08:31:25 |
| | Author: wayland Date: 2009-02-25 06:31:24 +0100 (Wed, 25 Feb 2009) New Revision: 25540
Modified: docs/Perl6/Spec/S16-io.pod docs/Perl6/Spec/S28-special-names.pod Log: S16: Added some information about signal processing. S28: Pushed the Perl5 to Perl6 special variable translation table as far as possible without receiving more information (well, maybe I could fix one or two things...)
Modified: docs/Perl6/Spec/S16-io.pod =================================================================== --- docs/Perl6/Spec/S16-io.pod 2009-02-25 05:19:17 UTC (rev 25539) +++ docs/Perl6/Spec/S16-io.pod 2009-02-25 05:31:24 UTC (rev 25540) @@ -71,6 +71,24 @@ S32-setting-library/IO.pod. The main functions used are listed in S29 with references to S32-setting-library/IO.pod. +=head1 POSIX Signals + +The standard POSIX signals simply raise control exceptions that are handled as normal +through the signal handler, except for the fact that some of them are resumeable. The +exception names are: + +=over + +=item * ControlExceptionSigHUP + +=item * ControlExceptionSigTERM + +=item * ControlExceptionSigINT + +=back + +See L<S04-control> for details on how to handle exceptions. + =head1 Additions Please post errors and feedback to perl6-language. If you are making
Modified: docs/Perl6/Spec/S28-special-names.pod =================================================================== --- docs/Perl6/Spec/S28-special-names.pod 2009-02-25 05:19:17 UTC (rev 25539) +++ docs/Perl6/Spec/S28-special-names.pod 2009-02-25 05:31:24 UTC (rev 25540) @@ -137,104 +137,109 @@ =back -=head1 PERL 6 / PERL 5 COMPARISON +=head2 Perl5 to Perl6 special variable translation -=over 4 +If a column has a "-" in it, it means that item is unavailable in that version of Perl. -Because a blank entry in either column could be taken to mean either -"not in Perl 6" or "unknown", the information as presented -below presumes an entry in both columns for every entry. -Options are: - -=over 6 - -thing as the var in question - -- for "not in this Perl" - -? for "don't know yet" - -=back - -Other organizational -schemes may become appropriate when the table is more complete. - -=back - Perl 5 Perl 6 Comment ----------- ----------- ----------------------- STDIN $*IN See S16; actual variable is $PROCESS::IN STDOUT $*OUT See S16; actual variable is $PROCESS::OUT STDERR $*ERR See S16; actual variable is $PROCESS::ERR - $_ $_ More lexically aware + $_ $ARG $_ More lexically aware $_[1],$_[2].. $^a,$^b.. $a,$b - Just params to anonymous block - $/ Object with results of last regex match $1,$2,$3... $1,$2,$3... - $&, $MATCH $<> - $`, $PREMATCH substr based on $/.from - $', $POSTMATCH substr based on $/.to + $& $MATCH $<> + $` $PREMATCH substr based on $/.from + $' $POSTMATCH substr based on $/.to $+ - But info can now be retrieved from $/ $^N $*MOST_RECENT_CAPTURED_MATCH ...or some such. - or $/[-$n] ...or omit + or $/[-$n] ...or omit @- $1.start, etc @+ $1.end, etc. - $* - - $# - - $. $*IN.input_record_number() - $/ $*IN.input_record_separator() + %! - + $[ - This feature has been removed + $* - Deprecated long ago + $# - Deprecated long ago + $^H - These were only ever internal anyway + %^H - + - $! Current exception (see L<S04-control>) + $! $ERRNO $OS_ERROR - Can get some info from new $! + $? $CHILD_ERROR - + $@ $EVAL_ERROR - Just throws an exception now (see L<S04-control>) + $^E - + $. $NR $*IN.input_record_number() + $/ $RS $*IN.input_record_separator() $| $*OUT.autoflush() - $, $*OUT.output_field_separator() + $, $OFS $*OUT.output_field_separator() $\ $*OUT.output_record_separator() - $$, $PID $*PID - $<, $UID $*UID Real UID (User ID) - $(, $GID $*GID Real GID (Group ID) - $>, $EUID $*EUID Effective UID - $), $EGID $*EGID Effective GID - $0, $PROGRAM_NAME $*PROGRAM_NAME - $^C, $COMPILING $*COMPILING - $^D, $DEBUGGING $*DEBUGGING - $^F, $SYS_FD_MAX $*SYS_FD_MAX ...or some such - $^I, $INPLACE_EDIT $*INPLACE_EDIT ...or some such + $" $LIST_SEPARATOR - + $; $SUBSEP - + $$ $PID $*PID + $< $UID $*UID Real UID (User ID) + $( $GID $*GID Real GID (Group ID) + $> $EUID $*EUID Effective UID + $) $EGID $*EGID Effective GID + $0 $PROGRAM_NAME $*PROGRAM_NAME + $^C $COMPILING $*COMPILING + $^D $DEBUGGING $*DEBUGGING + $^F $SYS_FD_MAX $*SYS_FD_MAX ...or some such + $^I $INPLACE_EDIT $*INPLACE_EDIT ...or some such $^M $*EMERGENCY_MEMORY ...or some such (or omit) - $^O, $OSNAME $*OSNAME ...or some such - $^P, $PERLDB $*PERLDB ...or some such + $^O $OSNAME $*OSNAME ...or some such + $^P $PERLDB $*PERLDB ...or some such $^R $*LAST_REGEXP_CODE_RESULT ...or some such. Or omit. - $^T, $BASETIME $*BASETIME A Temporal::Instant object + $^T $BASETIME $*BASETIME A Temporal::Instant object ${^WARNING_BITS} $?WARNINGS $^X $*EXECUTABLE_NAME ...or some such - $EXECUTABLE_NAME + ARGV $*ARGS Note the P6 idiom for this handle: + for =$*ARGS { + # each time through loop + # proc a line from files named in ARGS + } + @ARGV @*ARGS + ARGVOUT $*ARGVOUT Another IO object + @F @*INPLACE_AUTOSPLIT_FIELDS ..or some such + %ENV %*ENV - ******* XXX the columns seem to have switched! ********* +=head2 Old stuff for p5/p6 comparison - - $" $LIST_SEPARATOR +This section will eventually die, but for now, it contains some old information on which +Perl5 special variables will turn into Perl6 special variables. - - $; $SUBSEP $SUBSCRIPT_SEPARATOR +=over 4 - ? ${^ENCODING} +Because a blank entry in either column could be taken to mean either +"not in Perl 6" or "unknown", the information as presented +below presumes an entry in both columns for every entry. +Options are: - $! Universal error object with as much info as - you'd like on the current exception (unthrown - outside of CATCH, thrown inside). Unthrown - exceptions are typically interesting values - of undef. - - $! $ERRNO $OS_ERROR - - $? $CHILD_ERROR - - $@ $EVAL_ERROR - - $^E $EXTENDED_OS_ERROR +=over 6 - - %! +thing as the var in question - - $[ Index of the first element in an array, - and of the first character in a substring. +- for "not in this Perl" - +? for "don't know yet" + +=back + +Other organizational +schemes may become appropriate when the table is more complete. + +=back + + ******* XXX the columns seem to have switched! ********* + + ? ${^ENCODING} + + - $^V $PERL_VERSION - $] version + patchlevel / 1000 of Perl interpreter Replacement for the above two is unclear. - - $^H - - %^H - ${^OPEN} @@ -248,28 +253,12 @@ ? $ARGV - $*ARGS ARGV Note the P6 idiom: - for =$*ARGS { - # each time through loop - # proc a line from files named in ARGS - } - - @*ARGS @ARGV - - $*ARGVOUT - ARGVOUT - - @*INPLACE_AUTOSPLIT_FIELDS ..or some such - @F - ? @INC Uncertain but we need a way to add to search path ? %INC Uncertain but we need a way to add to search path ? @_ - %*ENV %ENV Or %ENV - %*SIG %SIG Or possibly &*ON_SIGINT, etc. But then we'd need to add some signal introspection in another way. @@ -279,7 +268,8 @@ - $^S $EXCEPTIONS_BEING_CAUGHT -XXX Everything below this line is older than everything above it. XXX +XXX Everything below this line is older than everything above it. +...except for the stuff at the bottom taken from S22. XXX =head1 OUTLINE
|
| | Add comment |
|
| Signals question for S16: IPC / IO / Signals Timothy S. Nelson 08:26:21 |
| | I have a quick question here. S16 claims to be about IPC, IO, and Signals. So far, it's mostly about IO. My question is, is it intended that IPC and/or signals be part of the core, or should they be converted to addons like Form.pm?
Thanks,
--------------------------------------------------------------------- | Name: Tim Nelson | Because the Creator is, | | E-mail: wayland@wayland.id.au | I am | ---------------------------------------------------------------------
----BEGIN GEEK CODE BLOCK---- Version 3.12 GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y- -----END GEEK CODE BLOCK-----
|
| | 7 answers | Add comment |
|
| r25539 - docs/Perl6/Spec Guest 08:19:17 |
| | Author: lwall Date: 2009-02-25 06:19:17 +0100 (Wed, 25 Feb 2009) New Revision: 25539
Modified: docs/Perl6/Spec/S05-regex.pod Log: document which assertions are on the endangered list
Modified: docs/Perl6/Spec/S05-regex.pod =================================================================== --- docs/Perl6/Spec/S05-regex.pod 2009-02-25 03:48:08 UTC (rev 25538) +++ docs/Perl6/Spec/S05-regex.pod 2009-02-25 05:19:17 UTC (rev 25539) @@ -1627,8 +1627,12 @@ =item * null +Deprecated, use <?> + =item * fail +Deprecated, use <!> + =item * upper =item * lower @@ -1655,12 +1659,20 @@ =item * sp +Deprecated, use ' ' + =item * lt +Deprecated, use '<' + =item * gt +Deprecated, use '>' + =item * dot +Deprecated, use '.' + =item * ws =item * wb
|
| | Add comment |
|
|