Re: [svn:perl6-synopsis] r14317 - doc/trunk/design/syn
Larry Wall writes: On Thu, Mar 08, 2007 at 09:05:32AM +, Smylers wrote: : So I fear that people will do the same thing in Perl 6. Which, : initially, will appear to work. But then, some months later, : somebody upgrades the installed version of a module (or the program : gets deployed on another computer, which happens to have a more : recent version installed), and suddenly the program will break. Nope, check your assumptions, you've got a big one that just ain't so. Perl 6 is specced to keep all the old versions of modules around in the library Yeah, that's why I added or the program gets deployed on another computer, which happens to have a more recent version. (unless the new version claims to emulate the old version). So an upgrade doesn't generally break fixed dependencies. Aha! So even if I specify that I want, say, version 1.3, if only version 1.6 is installed but the module's author claims never to've broken backwards compatibility then it will run anyway? That's good. : * In many (most?) cases the breakage will be arbitrary, in that the : module would've worked fine had it been allowed to run rather than : being stopped by the version-checker. It is allowed to run anyway, Sorry, I don't quite understand that. What does happen if a program requests a version of a module that : * It's a change from what was good practice in Perl 5. s/good/common/; I'd say that common practice in Perl 5 is merely to use a module and not specify a version number at all! Specifying a minimum version number is an improvement -- obviously not ideal, but it is as much as can be done straightforwardly with Perl 5. And I think it'very likely people in the habit of doing this in Perl 5 will, at least initially, specify a single version number in Perl 6 Cuse lines. Those who believe the stagnation of Perl 5 is caused by Perl 6 should go back and reread the 361 RFCs ... Snip Sorry if my post came across as some kind of attack on Perl 6 as a whole -- it certainly wasn't supposed to be!! I'm very much in favour of the way Perl 6 is going and the many improvements it brings. (And I'm not sure what stagnation has to do with this thread, but for what it's worth I think quite the opposite: Perl 6 has been the inspiration for several good things people are already doing with Perl 5.) Cheers. Smylers
[svn:perl6-synopsis] r14323 - doc/trunk/design/syn
Author: larry Date: Fri Mar 9 11:23:09 2007 New Revision: 14323 Modified: doc/trunk/design/syn/S05.pod Log: Add :b/:basechar modifier as suggested by ruoso++. Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podFri Mar 9 11:23:09 2007 @@ -14,9 +14,9 @@ Maintainer: Patrick Michaud [EMAIL PROTECTED] and Larry Wall [EMAIL PROTECTED] Date: 24 Jun 2002 - Last Modified: 28 Feb 2007 + Last Modified: 9 Feb 2007 Number: 5 - Version: 53 + Version: 54 This document summarizes Apocalypse 5, which is about the new regex syntax. We now try to call them Iregex rather than regular @@ -126,10 +126,26 @@ The single-character modifiers also have longer versions: :i:ignorecase + :b:basechar :g:global =item * +The C:i (or C:ignorecase) modifier causes case distinctions to be +ignore in its lexical scope, but not in its dynamic scope. That is, +subrules always use their own case settings. + +=item * + +The C:b (or C:basechar) modifier scopes exactly like C:ignorecase +except that it ignores accents instead of case. It is equivalent +to taking each grapheme (in both target and pattern), converting +both to NFD (maximally decomposed) and then comparing the two base +characters (Unicode non-mark characters) while ignoring any trailing +mark characters. + +=item * + The C:c (or C:continue) modifier causes the pattern to continue scanning from the string's current C.pos: @@ -630,8 +646,9 @@ As with a scalar variable, each element is matched as a literal unless it happens to be a CRegex object, in which case it is matched as a subrule. As with scalar subrules, a tainted subrule always fails. -All string values pay attention to the current C:ignorecase setting, -while CRegex values use their own C:ignorecase settings. +All string values pay attention to the current C:ignorecase +and C:basechar settings, while CRegex values use their own +C:ignorecase and C:basechar settings. When you get tired of writing: @@ -733,7 +750,8 @@ =back All hash keys, and values that are strings, pay attention to the -C:ignorecase setting. (Subrules maintain their own case settings.) +C:ignorecase and C:basechar settings. (Subrules maintain their +own case settings.) You may combine multiple hashes under the same longest-token consideration by using declarative alternation:
Re: lexical subs
Just a short note: please, if this is implemented, make sure that either Perl 6 conforms to Perl 5 behaviour, or the other way around. -- korajn salutojn, juerd waalboer: perl hacker [EMAIL PROTECTED] http://juerd.nl/sig convolution: ict solutions and consultancy [EMAIL PROTECTED] Ik vertrouw stemcomputers niet. Zie http://www.wijvertrouwenstemcomputersniet.nl/.
Re: lexical subs
Juerd Waalboer skribis 2007-03-09 21:27 (+0100): Just a short note: please, if this is implemented, make sure that either Perl 6 conforms to Perl 5 behaviour, or the other way around. Wanted to CC this list, but by accident replaced the To instead. Now CC'ing p5p. -- korajn salutojn, juerd waalboer: perl hacker [EMAIL PROTECTED] http://juerd.nl/sig convolution: ict solutions and consultancy [EMAIL PROTECTED] Ik vertrouw stemcomputers niet. Zie http://www.wijvertrouwenstemcomputersniet.nl/.
[svn:perl6-synopsis] r14324 - doc/trunk/design/syn
Author: larry Date: Fri Mar 9 12:48:52 2007 New Revision: 14324 Modified: doc/trunk/design/syn/S05.pod Log: typo from perl++ clarification that :b includes mark characters in actual matched text Modified: doc/trunk/design/syn/S05.pod == --- doc/trunk/design/syn/S05.pod(original) +++ doc/trunk/design/syn/S05.podFri Mar 9 12:48:52 2007 @@ -132,7 +132,7 @@ =item * The C:i (or C:ignorecase) modifier causes case distinctions to be -ignore in its lexical scope, but not in its dynamic scope. That is, +ignored in its lexical scope, but not in its dynamic scope. That is, subrules always use their own case settings. =item * @@ -142,7 +142,10 @@ to taking each grapheme (in both target and pattern), converting both to NFD (maximally decomposed) and then comparing the two base characters (Unicode non-mark characters) while ignoring any trailing -mark characters. +mark characters. The mark characters are ignored only for the purpose +of determining the truth of the assertion; the actual text matched +includes all ignored characters, including any that follow the final +base character. =item *