[svn:perl6-synopsis] r9029 - doc/trunk/design/syn
Author: autrijus Date: Sat Apr 29 23:39:39 2006 New Revision: 9029 Modified: doc/trunk/design/syn/S06.pod Log: * S06: aufrank++ pointed out the quicksort example was still using the (?$foo) form in Sigs instead of ($foo?). Modified: doc/trunk/design/syn/S06.pod == --- doc/trunk/design/syn/S06.pod(original) +++ doc/trunk/design/syn/S06.podSat Apr 29 23:39:39 2006 @@ -1098,7 +1098,7 @@ Instead of specifying an array parameter as an array: -sub quicksort (@data, ?$reverse, ?$inplace) { +sub quicksort (@data, $reverse?, $inplace?) { my $pivot := shift @data; ... } @@ -1107,7 +1107,7 @@ specifying the parameter as if it were an anonymous array of parameters: -sub quicksort ([$pivot, [EMAIL PROTECTED], ?$reverse, ?$inplace) { +sub quicksort ([$pivot, [EMAIL PROTECTED], $reverse?, $inplace?) { ... }
Re: Is there an integrated test suite/module to test all standard modules of Perl itself?
On Saturday 29 April 2006 20:23, Fu, Elva wrote: It seems I didn’t express my question very well:-), please let me clarify it more detail: No, I understood you. You have a binary distribution of Perl packaged by someone besides the official Perl release manager. The package provided by the official Perl release manager does include the tests, but whoever made the package you installed did not include them. It's possible to download the official source code corresponding to the version from which the packager made the binary distribution, then run those tests. If that's fine, it's not difficult. Otherwise, you may prefer to install Perl yourself in an alternate location. (Replacing the system installed version can affect certain other behaviors of the system in unpleasant ways.) If you do this, use the official distribution from source code which includes the tests. I don't know how much help anyone else on this list can be. To my knowledge, no one here is the person responsible for packaging the RPM you installed. Collectively, the Perl 5 porters and to some extent the members of Perl QA produced and maintain the test suite within the standard, source code distribution. If someone redistributes Perl under the terms of the license, he or she is free to include or disinclude the tests. Neither the porters nor the QA group has any control over this. -- c
RE: Is there an integrated test suite/module to test all standard modules of Perl itself?
--- Fu, Elva wrote: It seems there are really an ¡°Integrated¡± test suites existed to test Perl itself. Who could give me a hand to find it? Thanks in advance. I thought chromatic already this question by pointing you at the t/ directories in the Perl source code distribution. To clarify, when you build Perl from source code (as described in the INSTALL file in the Perl source distribution) with: sh Configure -de make make test make test automatically runs all the tests for the Perl core and all Perl core modules. I've never tried running the test suite against an already built perl. I imagine you could do that by untar'ing the Perl source distribution and running t/TEST and/or t/harness. See the file t/README in the Perl source distribution for more details. See also the standard Test::Harness prove command: http://search.cpan.org/dist/Test-Harness/bin/prove which is a generally handy way of running test suites outside of make test. HTH, /-\ Send instant messages to your online friends http://au.messenger.yahoo.com
RE: Is there an integrated test suite/module to test all standard modules of Perl itself?
Thank you chromatic Andrew, I got it now. Thanks again for you kind help! -Original Message- From: Andrew Savige [mailto:[EMAIL PROTECTED] Sent: 2006年4月30日 15:08 To: Fu, Elva; chromatic; perl-qa@perl.org Subject: RE: Is there an integrated test suite/module to test all standard modules of Perl itself? --- Fu, Elva wrote: It seems there are really an ¡°Integrated¡± test suites existed to test Perl itself. Who could give me a hand to find it? Thanks in advance. I thought chromatic already this question by pointing you at the t/ directories in the Perl source code distribution. To clarify, when you build Perl from source code (as described in the INSTALL file in the Perl source distribution) with: sh Configure -de make make test make test automatically runs all the tests for the Perl core and all Perl core modules. I've never tried running the test suite against an already built perl. I imagine you could do that by untar'ing the Perl source distribution and running t/TEST and/or t/harness. See the file t/README in the Perl source distribution for more details. See also the standard Test::Harness prove command: http://search.cpan.org/dist/Test-Harness/bin/prove which is a generally handy way of running test suites outside of make test. HTH, /-\ Send instant messages to your online friends http://au.messenger.yahoo.com
Re: Proposed kwalitee metric: consistent_newlines
Ovid wrote: --- Adam Kennedy [EMAIL PROTECTED] wrote: So I'd like to propose the following for inclusion. Metric: consistent_newlines The distribution is awarded a point IF for ALL text files within the distribution EACH file contains EITHER exclusively unix newlines OR exclusively Win32 newlines. Sounds like a good idea, but what about strings? You'd need to mask those out prior to the test, wouldn't you? And if they were multi-line strings, you'd need to mask 'em out with the right type of ending (unless PPI were being used). As I mentioned to Jeff, PPI is out for this one. Actually, until I can make PPI survive a full CPAN run, PPI is out for Kwalitee algother. At the moment it can handle the .pm subset just (30,000 files) but chokes on the expanded perl files (.pm, .pl, .t, .PL) (100,000 files). There's obviously leaks or something I am missing (although the newest List::Util and List::MoreUtil might help) but until I can track them down, PPI isn't an option yet. As for string, I'm not sure why any strings you break the newline pattern... a normal string will have a \n or an excaped \012 or \015 if they want to be explicit, and multilines get localised I imagine. I don't thing it will be a problem unless somehow someone injects real broken newlines into a string, which probably doesn't deserve the point anyway, even if it somehow works. But I might just be missing something in your question Adam K
Re: A shorter long dot
On Saturday 29 April 2006 21:50, Damian Conway wrote: Is: $antler. .bar; $xyzzy. .bar; $blah. .bar; $foo. .bar; really so intolerable, for those who are gung-ho to line up the method names? I'm still wondering what's awful about: $antler.bar; $xyzzy.bar; $blah.bar; $foo.bar; -- c
Re: A shorter long dot
Austin Hastings wrote: Or, to put it another way: what hard problem is it that you guys are actively avoiding, that you've spent a week talking about making substantial changes to the language in order to facilitate lining up method names? That's a very good point too. Initially it's just a cute idea for filling in the 2-character method invocation gap, as well as making $x.+method and $x.:method line up, but it's probably not worth people's time in arguing this any further... Consider my suggestion retracted, and sorry for the disturbance in the force. :) Thanks, Audrey signature.asc Description: OpenPGP digital signature
Re: Proposed kwalitee metric: consistent_newlines
* Ovid [EMAIL PROTECTED] [2006-04-30 07:20]: Sounds like a good idea, but what about strings? You'd need to mask those out prior to the test, wouldn't you? I don’t think so. Even if the only “funny” newline only appears in a string (and even it seems to me more likely that this would happen by accident rather than intentionally), it is still going to cause problems with Module::Signature. Regards, -- Aristotle Pagaltzis // http://plasmasturm.org/
Re: Proposed kwalitee metric: consistent_newlines
* Adam Kennedy [EMAIL PROTECTED] [2006-04-30 07:00]: The Perl::Critic thing could be tricky though. One of the very few things PPI does that isn't round-trip safe (actually, the ONLY thing) is localise the newlines for the files it opens. Why would this have to rely on PPI at all? To check whether newlines in the file are consistent, you can just scan the source as an opaque of text, no? Regards, -- Aristotle Pagaltzis // http://plasmasturm.org/
error building pugs: Could not find module `Data.ByteString'
I'm trying play with pugs for the first time. I checked it out from the repository (r10142) and, after installing ghc 6.4.2, attempted to build pugs. Fairly quickly, the build dies with the message below. Does anyone have any hints what the problem might be (I'm not a Haskell person yet, but I did confirm that my ghc installation builds hello, world. My perl is 5.8.8; Linux rhel3) ... configure: No cpphs found configure: No greencard found The field hs-source-dir is deprecated, please use hs-source-dirs. Preprocessing library Pugs-6.2.11... Building Pugs-6.2.11... Chasing modules from: Pugs,Pugs.AST,Pugs.AST.Internals,Pugs.AST.Internals.Instances,Pugs.AST.Pad,Pugs.AST.Pos,Pugs.AST.Prag,Pugs.AST.SIO,Pugs.AST.Scope,Pugs.Bind,Pugs.CodeGen,Pugs.CodeGen.JSON,Pugs.CodeGen.PIL1,Pugs.CodeGen.PIL2,Pugs.CodeGen.PIR,Pugs.CodeGen.PIR.Prelude,Pugs.Prelude,Pugs.CodeGen.Perl5,Pugs.CodeGen.YAML,Pugs.Compat,Pugs.Compile,Pugs.Compile.PIL2,Pugs.Compile.Haskell,Pugs.Compile.Pugs,Pugs.Config,Pugs.Cont,Pugs.DeepSeq,Pugs.Embed,Pugs.Embed.Haskell,Pugs.Embed.Parrot,Pugs.Embed.Perl5,Pugs.Embed.Pugs,Pugs.Eval,Pugs.Eval.Var,Pugs.External,Pugs.External.Haskell,Pugs.Help,Pugs.Internals,Pugs.Junc,Pugs.Lexer,Pugs.Monads,Pugs.PIL1,Pugs.PIL1.Instances,Pugs.PIL2,Pugs.PIL2.Instances,Pugs.Parser,Pugs.Parser.Operator,Pugs.Parser.Number,Pugs.Parser.Program,Pugs.Parser.Types,Pugs.Parser.Unsafe,Pugs.Parser.Export,Pugs.Parser.Doc,Pugs.Parser.Literal,Pugs.Parser.Util,Pugs.Pretty,Pugs.Prim,Pugs.Prim.Code,Pugs.Prim.Eval,Pugs.Prim.FileTest,Pugs.Prim.Keyed,Pugs.Prim.Lifts,Pugs.Prim.List,Pugs.Prim.Match ,Pugs.Prim.Numeric,Pugs.Prim.Param,Pugs.Prim.Yaml,Pugs.Rule,Pugs.Rule.Expr,Pugs.Run,Pugs.Run.Args,Pugs.Run.Perl5,Pugs.Shell,Pugs.Types,Pugs.Version,Emit.Common,Emit.PIR,Emit.PIR.Instances,Data.DeepSeq,Data.Yaml.Syck,DrIFT.JSON,DrIFT.Perl5,DrIFT.YAML,RRegex,RRegex.PCRE,RRegex.Syntax,System.FilePath,UTF8 Could not find module `Data.ByteString': use -v to see a list of the files searched for (imported from src/Pugs/AST/Internals/Instances.hs) Build failed: 256 at util/build_pugs.pl line 96. make: *** [pugs] Error 2
german perl6 tutorial
dear camels, especially all german speaking camels. im currently writing a perl6 tutorial in a wiki at: http://wiki.perl-community.de/bin/view/Wissensbasis/Perl6Tutorial Please join if you like or help when finished and nothing better there to translate to english. Its nearly half ready, vars, ops, flow control is (with some holes) covered currentl work is on subroutine chapter. herbert aka lichtkind
Re: Smoke [5.9.4] 27938 FAIL(X) linux 2.6.15-20-386 [debian] (i686/1 cpu)
Op een mooie winterdag (Monday 24 April 2006 00:21),schreef Abe Timmerman: Op een mooie winterdag (Sunday 23 April 2006 17:30),schreef Steve Peters: I am so sorry, I got you mixed up with the other Steve (Hay that is) and didn't look at the report. So I assumed it was windows. Please disregard my nonsense; you are quite right. [EMAIL PROTECTED] wrote: Automated smoke report for 5.9.4 patch 27938 kirk: Intel(R) Celeron(R) CPU 2.00GHz (GenuineIntel 1994MHz) (i686/1 cpu) onlinux - 2.6.15-20-386 [debian] using cc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5) smoketime 17 hours 54 minutes (average 1 hour 7 minutes) Summary: FAIL(X) [snip] [perlio] -DDEBUGGING -Duseithreads -Duselongdouble Inconsistent test results (between TEST and harness): ../ext/threads/t/free.t.FAILED--expected test 15, saw test 16 What's happening above is that TEST cannot handle seeing tests come in out of order, while harness can. I'm scanning Test::Harness::TAP a bit, but it seems to be unspecified whether this is OK or not. Should TEST care if the tests are reported out of order? Windows makefiles don't have a test_harness: target and the test/test-notty/ _test targets all use harness, so no need to blame TEST. I will raise the question once again Why don't we use TEST on mswin32?. (I should probably change that message for mswin32 while Test::Smoke is using harness for both runs) Good luck, Abe -- Nick Over to you, Jarkko ??? Jarkko Urque. Hmm... I can't seem to find a patch in there anywhere. -- Nicholas Clark on p5p @ 2005-01-23
Re: A shorter long dot
Damian Conway skribis 2006-04-30 9:49 (+1000): This would make the enormous semantic difference between: foo. :bar() and: foo :bar() And how is that very different from the enormous semantic difference between: foo. .bar() and: foo .bar() that already exists? I understand your point, and tend to agree with it, but it counts for both .: AND . .. PS: While I can understand the appeal to laziness, I'm not at all convinced by the argument: And it's a lot of work (many, many keystrokes!) to go back and change something. In vim, the exact number of keystrokes to realign the long dots of N lines is 7+N. If you plan it, sure. But without planning, you easily get to 12 and more. It's not just about the number of keystrokes, though. Having to go back itself is awkward. We need to be careful not to require the language to solve problems that are better solved with tools. I think we should be careful, and are careful, to support lots of tools. Many programmers prefer simple editors. Many programmers who use advanced editors, like to keep them at the default settings. And whenever you have to create a macro to do something that's common in a certain programming language, that programming language was badly designed. Let's not let Perl 6 be such a language. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
chromatic skribis 2006-04-30 2:06 (-0700): I'm still wondering what's awful about: $antler.bar; $xyzzy.bar; $blah.bar; $foo.bar; That's what I will do when current long dot stays, but I prefer to keep things left-aligned to the indentation level. These cascades look messy. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
Yuval Kogman skribis 2006-04-30 2:58 (+0300): We need to be careful not to require the language to solve problems that are better solved with tools. On that point I agree, but I think it was a question of aesthetics... Juerd? Yes, it was about both aesthetics and the extra work involved. But mostly aesthetics and a bad feeling. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
Jonathan Lang skribis 2006-04-29 19:08 (-0700): Is there a reason that we've been insisting that a long dot should use whitespace as filling? I don't know. foo.___.bar Would still have the problem of clashing with .. when there's no _ in between. foo.___:bar Would suffice for my needs. Not sure if people are willing to give up their underscore-only method names, though. Perhaps whitespace can be allowed in numbers too: 5 000 000; 5_000_000; Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
Audrey Tang skribis 2006-04-30 17:31 (+0800): Austin Hastings wrote: Or, to put it another way: what hard problem is it that you guys are actively avoiding, that you've spent a week talking about making substantial changes to the language in order to facilitate lining up method names? Sorry, I disagree strongly. Lining things up is an important aspect to how people use Perl. Consider my suggestion retracted, and sorry for the disturbance in the force. :) I still want to talk about it. Good arguments (about trailing dot being hard to spot, and about underscores) are made, and I think healthy discussion can lead to a much better solution than the current long dot. People who think it wastes their time, by now know what this thread is about, and can choose to ignore it. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
On 4/30/06 7:44 AM, Juerd wrote: Jonathan Lang skribis 2006-04-29 19:08 (-0700): Is there a reason that we've been insisting that a long dot should use whitespace as filling? I don't know. foo.___.bar Would still have the problem of clashing with .. when there's no _ in between. foo.___:bar Would suffice for my needs. Not sure if people are willing to give up their underscore-only method names, though. No one's going to use either of these because they're ugly. Lining things up is at least partly about making things pretty for most people. -John
Re: A shorter long dot
John Siracusa skribis 2006-04-30 8:15 (-0400): foo.___:bar Would suffice for my needs. Not sure if people are willing to give up their underscore-only method names, though. No one's going to use either of these because they're ugly. I am not going to use either of these because I think they're ugly. I don't think it's ugly. It's not any less tidy. $xyzzy.foo() $xyzzy.foo() $fooz.:foo() $fooz.:foo() $foo._:foo() $foo. :foo() $da.__:foo() $fa. :foo() My variable names aren't so long that I'm likely to have foo.___:bar, and $foo.__:bar is clean. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
I don't think it's ugly. It's not any less tidy. $xyzzy.foo() $xyzzy.foo() $fooz.:foo() $fooz.:foo() $foo._:foo() $foo. :foo() $da.__:foo() $fa. :foo() My variable names aren't so long that I'm likely to have foo.___:bar, and $foo.__:bar is clean. But it doesn't work across lines: $xyzzy.foo() $fooz.:foo() $foo. :foo() $fa. :foo() $and_a_long_one_I_still_want_to_align. :foo() $etc. :foo() -- Gaal Yahas [EMAIL PROTECTED] http://gaal.livejournal.com/
Re: A shorter long dot
Juerd wrote: foo.___:bar Would suffice for my needs. Not sure if people are willing to give up their underscore-only method names, though. When is the last time that you saw an underscore-only method name? Gaal Yahas wrote: But it doesn't work across lines: Take another look at my original proposal: I didn't suggest _replacing_ whitespace with underscores; I suggested _supplementing_ it[1] - so $xyzzy.foo() $fooz.:foo() $foo. :foo() $fa. :foo() $and_a_long_one_I_still_want_to_align. :foo() $etc. :foo() would still work, but so would $foo._:foo() $fa.__:foo() $and_a_long_one_I_still_want_to_align._ __:foo() $etc._:foo() ...and the latter five would be the recommended way of doing it. -- Jonathan Lang [1] This is a nod to TIMTOWTDI; technically, one could be as restrictive as requiring any block of whitespace in a long dot to begin with a newline (thus restricting its use to line wrapping and alignment of the new line) and still have a perfectly viable long dot syntax.
[perl #39035] [BUG] r12465: dynpmc build fails on win32
# New Ticket Created by jerry gay # Please include the string: [perl #39035] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39035 dynpmc build fails during perlarray on win32 with msvc, revision 12465: D:\usr\local\perl\bin\perl.exe -e chdir shift @ARGV; system 'nmake', @A RGV; exit $? 8; src\dynpmc Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump dynlexpad.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump foo.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump gdbmhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump match.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump matchrange.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlarray.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlnum.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlstring.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlenv.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlint.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlscalar.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump subproxy.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c dynlexpad.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c foo.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c gdbmhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c match.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c matchrange.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlarray.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlnum.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlstring.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlenv.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlint.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlscalar.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c subproxy.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --library perl_group --c perlarray.pmc perlhash.pmc perlnum.pmc perlstring.pmc p erlenv.pmc perlint.pmc perlscalar.pmc perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --library match_group --c match.pmc matchrange.pmc cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fodynlexpad.obj -ID:/usr/local/parrot/trunk\ include -ID:/usr/local/parrot/trunk\src\pmc dynlexpad.c dynlexpad.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fofoo.obj -ID:/usr/local/parrot/trunk\includ e -ID:/usr/local/parrot/trunk\src\pmc foo.c foo.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fogdbmhash.obj -ID:/usr/local/parrot/trunk\i nclude -ID:/usr/local/parrot/trunk\src\pmc gdbmhash.c gdbmhash.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fomatch.obj -ID:/usr/local/parrot/trunk\incl ude -ID:/usr/local/parrot/trunk\src\pmc match.c match.c match.pmc(114) : warning C4101: 'value' : unreferenced local variable cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fomatchrange.obj -ID:/usr/local/parrot/trunk \include -ID:/usr/local/parrot/trunk\src\pmc matchrange.c matchrange.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Foperlarray.obj -ID:/usr/local/parrot/trunk\ include -ID:/usr/local/parrot/trunk\src\pmc perlarray.c perlarray.c perlarray.pmc(93) : error
Re: A shorter long dot
On Sat, Apr 29, 2006 at 05:15:08PM +0200, Juerd wrote: : Larry indicated that changing the long dot would have to involve : changing the first character. The only feasible solution in the tiny : glyphs section was the backtick. I refrain from explaining why that : will widely be considered a bad idea. Only feasible? I think you guys give up too easily. I believe either or both of ¬ or \ qualify as feasible, actually: $xyzzy.foo(); $fooz\.foo(); $foo\ .foo(); $xyzzy.foo(); $fooz¬.foo(); $foo¬ .foo(); Neither of those are currently legal in infix position. The backslash has the advantage of hiding semantics, so it would mean hide any whitespace before the next dot (including no whitespace). The NOT operator can have similar semantics Here is some *not* whitespace. Actually, there is a postfix \(...), but that wouldn't interfere with a \. construct. Visually you'd never use \. in a place where there weren't also longer dots, so there's surrounding context indicating that \ is not trying to backslash the dot itself. Alternately, as with French quotes, the ¬ could be the primary form, and \ (or something like it, -| maybe) would be the Texas version. Backslash also has the advantage of making sense to a C programmer: $foo\ .foo(); even though it has been generalized to quote any whitespace, not just newline, so that $foo\ # comment .foo(); works. So of course the $foo\#[ comment ].foo(); also would work if you want more visual distinction on both ends of the whitespace. Larry
Re: A shorter long dot
Gaal Yahas skribis 2006-04-30 16:05 (+0300): But it doesn't work across lines: $and_a_long_one_I_still_want_to_align. :foo() Explain to me why it wouldn't work, please. I don't get it. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
Larry Wall skribis 2006-04-30 9:58 (-0700): On Sat, Apr 29, 2006 at 05:15:08PM +0200, Juerd wrote: : Larry indicated that changing the long dot would have to involve : changing the first character. The only feasible solution in the tiny : glyphs section was the backtick. I refrain from explaining why that : will widely be considered a bad idea. Only feasible? I think you guys give up too easily. ... in the tiny glyphs section. We could go with larger glyphs, like \, of course -- it just hadn't been considered yet. Actually, there is a postfix \(...), but that wouldn't interfere with a \. construct. There's prefix \, though: It creates a big difference between $foo \.bar and $foo\ .bar # currently the same thing But I don't think that's a problem. $foo\ .foo(); I've never liked continuation characters, but I could live with this limited application. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html
Re: A shorter long dot
On Sun, Apr 30, 2006 at 09:58:21AM -0700, Larry Wall wrote: Neither of those are currently legal in infix position. The backslash Backslash also has the advantage of making sense to a C programmer: $foo\ .foo(); So this also would be legal? $foo\ .foo(); ? (and therefore presumably the variant that is a bug in C or Makefiles: $foo\ .foo(); I don't mean that as a counter argument. It's an argument in favour. That space you can't see is a really annoying invisible bug in C source code that's sometimes hard to track down. Making it not-a-bug seems good.) Nicholas Clark
Re: A shorter long dot
On Sun, Apr 30, 2006 at 07:01:06PM +0200, Juerd wrote: Gaal Yahas skribis 2006-04-30 16:05 (+0300): But it doesn't work across lines: $and_a_long_one_I_still_want_to_align. :foo() Explain to me why it wouldn't work, please. I don't get it. This form certainly will. I hadn't read Jonathan's original proposal carefully enough, where he also shows how the other form could, if you allow mixing whitespace with the underscores. My bad. -- Gaal Yahas [EMAIL PROTECTED] http://gaal.livejournal.com/
[svn:perl6-synopsis] r9042 - doc/trunk/design/syn
Author: larry Date: Sun Apr 30 10:43:33 2006 New Revision: 9042 Modified: doc/trunk/design/syn/S02.pod doc/trunk/design/syn/S03.pod doc/trunk/design/syn/S04.pod doc/trunk/design/syn/S12.pod Log: Long dot is now introduced by backslash. Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podSun Apr 30 10:43:33 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall [EMAIL PROTECTED] Date: 10 Aug 2004 - Last Modified: 26 Apr 2006 + Last Modified: 30 Apr 2006 Number: 2 - Version: 34 + Version: 35 This document summarizes Apocalypse 2, which covers small-scale lexical items and typological issues. (These Synopses also contain @@ -141,33 +141,35 @@ =item * -In addition to the general comment forms above, there is a whitespace-only -comment form that begins and ends with a single dot, separated by whitespace, +In addition to the general comment forms above, there is a +whitespace-only comment form that begins with backslash and ends +with a single dot, separated by 0 or more characters of whitespace, which is equivalent to a single dot: -%hash. .{$key} -@array. .{$key} +%hash\ .{$key} +@array\ .[$ix] +$subref\.($arg) This is useful for lining up postfixes. This is known as the long dot, -partly because it substitutes for a dot without the need for a third dot: +partly because it substitutes for a dot without the need for an extra dot: -$object. .say(); +$object\ .say(); The whitespace in the middle may include any of the comment forms above. -Because comments always count as whitespace, the dots in +Because comments always count as whitespace, the C\. in -$object.#{ foo }.say +$object\#{ foo }.say reduce to a long dot rather than the range operator. Valid ways to insert a line break into a sequence of method calls include: -$object. # comment +$object\ # comment .say -$object.#[ comment +$object\#[ comment ].say -$object. +$object\ .say =item * @@ -659,8 +661,8 @@ corresponding C.() operator, plus the long dot forms that allow you to insert optional whitespace and comments between dots: -foo. .($arg1, $arg2); -foo.#[ +foo\ .($arg1, $arg2); +foo\#[ embedded comment ].($arg1, $arg2); Modified: doc/trunk/design/syn/S03.pod == --- doc/trunk/design/syn/S03.pod(original) +++ doc/trunk/design/syn/S03.podSun Apr 30 10:43:33 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall [EMAIL PROTECTED] Date: 8 Mar 2004 - Last Modified: 26 Apr 2006 + Last Modified: 30 Apr 2006 Number: 3 - Version: 24 + Version: 25 =head1 Changes to existing operators @@ -802,8 +802,8 @@ Ilong dot syntax: %monsters.{'cookie'} = Monster.new; - %people. .{'john'} = Person.new; - %cats. .{'fluffy'} = Cat.new; + %people\ .{'john'} = Person.new; + %cats\ .{'fluffy'} = Cat.new; =head1 Precedence Modified: doc/trunk/design/syn/S04.pod == --- doc/trunk/design/syn/S04.pod(original) +++ doc/trunk/design/syn/S04.podSun Apr 30 10:43:33 2006 @@ -12,9 +12,9 @@ Maintainer: Larry Wall [EMAIL PROTECTED] Date: 19 Aug 2004 - Last Modified: 25 Apr 2006 + Last Modified: 30 Apr 2006 Number: 4 - Version: 18 + Version: 19 This document summarizes Apocalypse 4, which covers the block and statement syntax of Perl. @@ -674,7 +674,7 @@ if $term{$x} # subscript because postfix expected if $term {$x} # expression followed by statement block if $term.{$x} # valid subscript with dot -if $term. .{$x}# valid subscript with long dot +if $term\ .{$x}# valid subscript with long dot Similar rules apply to array subscripts: @@ -682,7 +682,7 @@ if $term[$x] # subscript because postfix expected if $term [$x] # syntax error (two terms in a row) if $term.[$x] # valid subscript with dot -if $term. .[$x]# valid subscript with long dot +if $term\ .[$x]# valid subscript with long dot And to the parentheses delimiting function arguments: @@ -690,7 +690,7 @@ if $term($x) # function call because operator expected if $term ($x) # syntax error (two terms in a row) if $term.($x) # valid function call with dot -if $term. .($x)# valid function call with long dot +if $term\ .($x)# valid function call with long dot Outside of any kind of expression brackets, a final closing curly on a line (not counting whitespace or comments) always reverts Modified: doc/trunk/design/syn/S12.pod == ---
Re: A shorter long dot
On Sun, Apr 30, 2006 at 06:33:01PM +0100, Nicholas Clark wrote: : On Sun, Apr 30, 2006 at 09:58:21AM -0700, Larry Wall wrote: : : Neither of those are currently legal in infix position. The backslash : : Backslash also has the advantage of making sense to a C programmer: : : $foo\ : .foo(); : : So this also would be legal? : : $foo \ : .foo(); : : ? That's a legal long dot but still a Perl syntax error because you've got two terms in a row. A postfix still isn't allowed to have space before it, so the backslash must be the first thing. : (and therefore presumably the variant that is a bug in C or Makefiles: : : $foo \ : .foo(); It does fix that bug, since \ quotes any whitespace, not just newline. : I don't mean that as a counter argument. It's an argument in favour. That : space you can't see is a really annoying invisible bug in C source code that's : sometimes hard to track down. Making it not-a-bug seems good.) Seems so to me too. I don't see much downside to \. as a long dot. Larry
Re: Fw: ([EMAIL PROTECTED]) Re: A shorter long dot
On Sun, Apr 30, 2006 at 03:47:54AM +0300, Yuval Kogman wrote: On Sat, Apr 29, 2006 at 18:12:34 +0100, Nicholas Clark wrote: On Sat, Apr 29, 2006 at 05:59:37PM +0200, Juerd wrote: I get a message like this for every message that I send to this list. Trying to contact [EMAIL PROTECTED] did not result in response or change. Any ideas? Forward that message (with full headers) to [EMAIL PROTECTED] who will then apply the LART. As I figure I'm about to get one, I'll (also) forward mine. Just got one... By LARTing you mean forcibly unsubscribing? because the message was sent to me directly too... Yes, I believe that that's the usual solution to resolve the problem of any system that is sufficiently borked to be sending garbage to the list or the sender. I think that at times there have been utterly brain dead challenge response systems that have managed to repeatedly get themselves subscribed - they tend to get banned. (Seems totally reasonable, given that the perl.org sysadmins are volunteers, and have many better things to do than offer free consulting to the admins of badly behaved third party systems.) Nicholas Clark
Re: [svn:perl6-synopsis] r9042 - doc/trunk/design/syn
In a message dated Sun, 30 Apr 2006, [EMAIL PROTECTED] writes: The whitespace in the middle may include any of the comment forms above. -Because comments always count as whitespace, the dots in +Because comments always count as whitespace, the C\. in -$object.#{ foo }.say +$object\#{ foo }.say reduce to a long dot rather than the range operator. Valid ways to The reference to the range operator doesn't make sense anymore. Trey
Re: [perl #39035] [BUG] r12465: dynpmc build fails on win32
bernhard++ # this seems to have been fixed On 4/30/06, via RT jerry gay [EMAIL PROTECTED] wrote: # New Ticket Created by jerry gay # Please include the string: [perl #39035] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39035 dynpmc build fails during perlarray on win32 with msvc, revision 12465: D:\usr\local\perl\bin\perl.exe -e chdir shift @ARGV; system 'nmake', @A RGV; exit $? 8; src\dynpmc Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump dynlexpad.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump foo.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump gdbmhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump match.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump matchrange.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlarray.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlnum.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlstring.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlenv.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlint.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlscalar.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --dump subproxy.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c dynlexpad.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c foo.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c gdbmhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c match.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c matchrange.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlarray.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlhash.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlnum.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlstring.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlenv.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlint.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlscalar.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --c subproxy.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --library perl_group --c perlarray.pmc perlhash.pmc perlnum.pmc perlstring.pmc p erlenv.pmc perlint.pmc perlscalar.pmc perlundef.pmc D:\usr\local\perl\bin\perl.exe D:/usr/local/parrot/trunk\tools\build\pmc2c.pl --library match_group --c match.pmc matchrange.pmc cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fodynlexpad.obj -ID:/usr/local/parrot/trunk\ include -ID:/usr/local/parrot/trunk\src\pmc dynlexpad.c dynlexpad.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fofoo.obj -ID:/usr/local/parrot/trunk\includ e -ID:/usr/local/parrot/trunk\src\pmc foo.c foo.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fogdbmhash.obj -ID:/usr/local/parrot/trunk\i nclude -ID:/usr/local/parrot/trunk\src\pmc gdbmhash.c gdbmhash.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fomatch.obj -ID:/usr/local/parrot/trunk\incl ude -ID:/usr/local/parrot/trunk\src\pmc match.c match.c match.pmc(114) : warning C4101: 'value' : unreferenced local variable cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Fomatchrange.obj -ID:/usr/local/parrot/trunk \include -ID:/usr/local/parrot/trunk\src\pmc matchrange.c matchrange.c cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DNO_HASH_ SEED -Zi -DHAS_JIT -DI386 -Foperlarray.obj -ID:/usr/local/parrot/trunk\
[perl #39038] [BUG] linker failure with dynpmc on win32
# New Ticket Created by jerry gay # Please include the string: [perl #39038] # in the subject line of all future correspondence about this issue. # URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39038 #39035 has been fixed, so dynpmc's compile again. but they won't link due to an unresolved external. link -nologo -nodefaultlib -debug -dll -out:perl_group.dll lib-perl_group.obj perlarray.obj perlhash.obj perlnum.obj perlstring.obj perlenv.obj per lint.obj perlscalar.obj perlundef.obj oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32 .lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib o dbccp32.lib msvcrt.lib D:/usr/local/parrot/trunk/libparrot.lib Creating library perl_group.lib and object perl_group.exp perlnum.obj : error LNK2019: unresolved external symbol _Parrot_signbit referenc ed in function _Parrot_PerlNum_set_number_native perl_group.dll : fatal error LNK1120: 1 unresolved externals partial link perl_group.dll failed (24576) NMAKE : fatal error U1077: 'D:\usr\local\perl\bin\perl.exe' : return code '0x2' Stop. NMAKE : fatal error U1077: 'D:\usr\local\perl\bin\perl.exe' : return code '0x2' Stop.
Re: A shorter long dot
Larry Wall wrote: Seems so to me too. I don't see much downside to \. as a long dot. The only remaining problem that I see for the long dot is largely orthogonal to the selection of the first and last characters - namely, that your only choice for filler is whitespace. Although the C\. option opens an intriguing possibility of defining the long dot pattern as backslash, dot or whitespace (repeated zero or more times), dot: $xyzzy.foo() $fooz\.foo() $foo\..foo() $fa\...foo() $and_a_long_one_I_still_want_to_align\ ...foo() $etc\..foo() -- Jonathan Lang
[svn:perl6-synopsis] r9047 - doc/trunk/design/syn
Author: larry Date: Sun Apr 30 18:51:14 2006 New Revision: 9047 Modified: doc/trunk/design/syn/S02.pod Log: More long dot cleanup from trey++ et al. Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podSun Apr 30 18:51:14 2006 @@ -107,9 +107,9 @@ say #( embedded comment ) hello, world!; -$object.#{ embedded comments }.say; +$object\#{ embedded comments }.say; -$object.#「 +$object\ #「 embedded comments 」.say; @@ -160,7 +160,7 @@ $object\#{ foo }.say -reduce to a long dot rather than the range operator. Valid ways to +reduce to a long dot. Valid ways to insert a line break into a sequence of method calls include: $object\ # comment @@ -202,23 +202,23 @@ $x.++ -$x. .++ +$x\ .++ -$x.#( comment ).++ -$x.#((( comment ))).++ +$x\#( comment ).++ +$x\#((( comment ))).++ -$x. +$x\ .++ -$x.# comment +$x\# comment # more comment .++ -$x.#『 comment +$x\#『 comment more comment 』.++ -$x.#[ comment 1 +$x\#[ comment 1 comment 2 =begin podstuff whatever (pod comments ignore current parser state) @@ -1368,18 +1368,15 @@ =item 6. A sequence of one or more unparenthesized method call, followed by any of 1 through 5 -=item 7. An embedded comment that uses bracketing characters, such -as .#(comment). - =back In other words, this is legal: -Val = $a.ord.#( Yikes! ).as('%x')\n +Val = $a.ord.as('%x')\n and is equivalent to -Val = { $a.ord.#( Yikes! ).as('%x') }\n +Val = { $a.ord.as('%x') }\n =item *
[svn:perl6-synopsis] r9048 - doc/trunk/design/syn
Author: larry Date: Sun Apr 30 18:55:42 2006 New Revision: 9048 Modified: doc/trunk/design/syn/S02.pod Log: Couple more long dots. Modified: doc/trunk/design/syn/S02.pod == --- doc/trunk/design/syn/S02.pod(original) +++ doc/trunk/design/syn/S02.podSun Apr 30 18:55:42 2006 @@ -255,7 +255,7 @@ Use some variant of -foo. +foo\ .method if you mean the postfix method call. @@ -1606,7 +1606,7 @@ foo.bar# foo().bar -- postfix prevents args foo .bar # foo($_.bar) -- no postfix starts with whitespace -foo. .bar # foo().bar -- long dot, so postfix +foo\ .bar # foo().bar -- long dot, so postfix foo++ # foo()++ -- postfix foo 1,2,3 # foo(1,2,3)-- args always expected after listop foo + 1# foo(+1) -- term always expected after listop