Mon Mar 28 12:13:41 EST 2005 Mark Stosberg <[EMAIL PROTECTED]> * add PORTING_HOWTO to darcs.
Mon Mar 28 12:19:27 EST 2005 Mark Stosberg <[EMAIL PROTECTED]> * add request for specific example subroutine signature porting Mon Mar 28 12:24:10 EST 2005 Mark Stosberg <[EMAIL PROTECTED]> * enhance Regexp porting notes
New patches: [add PORTING_HOWTO to darcs. Mark Stosberg <[EMAIL PROTECTED]>**20050328171341] < > { addfile ./modules/PORTING_HOWTO hunk ./modules/PORTING_HOWTO 1 +Mini HowTo: How to port Perl 5 modules to Perl 6 + + - Before you start porting a module, make sure you understand the class + hierarchy of that module. It helps if you've actually used that module in + Perl 5 :) + + - Port a module even if it depends on some other (not yet ported) modules -- + the dependencies can be ported later on. + + - Often, the translation P5 -> P6 is quite mechanic: + - $array[idx] -> @array[idx] + - a ? b : c -> a ?? b :: c + - $self->method(...) -> .method(...) + - sub { my ($self, $a, $b) = @_; ... } -> + method($a, $b) { ... } + - $x =~ s/.../.../g -> $x ~~ s:g/.../.../ + - $self->{foo} -> $.foo + - $foo = "bar" unless defined $foo -> + $foo //= "bar" # (//) and (//=) will be in 5.9, too, IIRC + - if($foo eq "a" or $foo eq "b" or $foo eq "c") {...} -> + if $foo eq "a"|"b"|"c" {...} + - foreach my $foo (@baz) {...} -> + for @baz -> $foo {...} + - Regular expressions: + [abc] -> <[abc]> + [^abc] -> <-[abc]> + (?:...) -> [...] + + - Often, you can remove all that Perl 5 argument parsing and simply + substitute it by a nice signature. + + - require Exporter; + our @ISA = qw< Exporter >; + our @EXPORT = qw< foo >; + sub foo { ... } + # -> + sub foo(...) is export { ... } + + - return map {.4.} sort {.3.} grep {.2.} map {.1.} -> + map {.1.} ==> grep {.2.} ==> sort {.3.} ==> map {.4.} ==> return + + - Especially Perl 6's translation of Perl 5's getter/setter idiom is cool: + + # Perl 5 + sub get_foo { + my $self = shift; + + my $ret = $self->{foo}; + return lc $ret; # always normalize + } + + sub set_foo { + my ($self, $to) = @_; + + $to =~ s/\s+$//; # strip whitespace at the end + $self->{foo} = $to; + } + + # -> Perl 6 (see L<S06/"Lvalue subroutines"> for information about Proxy) + has $:foo; + sub foo() is rw { + return new Proxy: + FETCH => { lc $:foo }, + STORE => -> $to is copy { + $to ~~ s/\s+$//; + $:foo = $to; + }; + } + # And then: + say $obj.foo; + $obj.foo = "..."; # Notice: Standard assignment syntax! + # Assignments should look like assignments, not like + # method calls + + - If you trust the user to give correct data to accessors, you can also use: + has $.foo is rw; + - Or: + subtype OddInt of Int where { $^n % 2 == 1 } + has OddInt $.foo is rw; + # And then: + $obj.foo = 12; # will die } [add request for specific example subroutine signature porting Mark Stosberg <[EMAIL PROTECTED]>**20050328171927] < > { hunk ./modules/PORTING_HOWTO 30 (?:...) -> [...] - Often, you can remove all that Perl 5 argument parsing and simply - substitute it by a nice signature. + substitute it by a nice signature. (TODO: give examples of this.) - require Exporter; our @ISA = qw< Exporter >; } [enhance Regexp porting notes Mark Stosberg <[EMAIL PROTECTED]>**20050328172410] < > { hunk ./modules/PORTING_HOWTO 16 - $self->method(...) -> .method(...) - sub { my ($self, $a, $b) = @_; ... } -> method($a, $b) { ... } - - $x =~ s/.../.../g -> $x ~~ s:g/.../.../ + - $x =~ s/.../.../g -> $x ~~ s:perl5:g/.../.../ - $self->{foo} -> $.foo - $foo = "bar" unless defined $foo -> $foo //= "bar" # (//) and (//=) will be in 5.9, too, IIRC hunk ./modules/PORTING_HOWTO 25 - foreach my $foo (@baz) {...} -> for @baz -> $foo {...} - Regular expressions: + The simplest way to port is to declare that you are using the Perl5 syntax: + m/$my_re/ -> m:perl5/$my_re/ + + Here are some specific differences with Perl 6 Regexp syntax: [abc] -> <[abc]> [^abc] -> <-[abc]> (?:...) -> [...] hunk ./modules/PORTING_HOWTO 32 + + More details of Perl6 REs: + http://dev.perl.org/perl6/synopsis/S05.html - Often, you can remove all that Perl 5 argument parsing and simply substitute it by a nice signature. (TODO: give examples of this.) } Context: [r2522 [EMAIL PROTECTED] [r2520 [EMAIL PROTECTED] [r2516 [EMAIL PROTECTED] [r2512 [EMAIL PROTECTED] [r2502 [EMAIL PROTECTED] [r2494 [EMAIL PROTECTED] [r2488 [EMAIL PROTECTED] [r2484 [EMAIL PROTECTED] [r2476 [EMAIL PROTECTED] [r2474 [EMAIL PROTECTED] [r2472 [EMAIL PROTECTED] [r2466 [EMAIL PROTECTED] [r2464 [EMAIL PROTECTED] [r2462 [EMAIL PROTECTED] [r2460 [EMAIL PROTECTED] [r2456 [EMAIL PROTECTED] [r2452 [EMAIL PROTECTED] [r2450 [EMAIL PROTECTED] [r2446 [EMAIL PROTECTED] [r2444 [EMAIL PROTECTED] [r2442 [EMAIL PROTECTED] [r2438 [EMAIL PROTECTED] [r2436 [EMAIL PROTECTED] [r2434 [EMAIL PROTECTED] [r2432 [EMAIL PROTECTED] [r2430 [EMAIL PROTECTED] [r2428 [EMAIL PROTECTED] [* add files [EMAIL PROTECTED] [r2420 [EMAIL PROTECTED] [r2412 [EMAIL PROTECTED] [r2410 [EMAIL PROTECTED] [r2408 [EMAIL PROTECTED] [r2402 [EMAIL PROTECTED] [r2392 [EMAIL PROTECTED] [r2384 [EMAIL PROTECTED] [r2374 [EMAIL PROTECTED] [r2372 [EMAIL PROTECTED] [r2368 [EMAIL PROTECTED] [r2352 [EMAIL PROTECTED] [r2350 [EMAIL PROTECTED] [r2348 [EMAIL PROTECTED] [r2344 [EMAIL PROTECTED] [r2340 [EMAIL PROTECTED] [r2336 [EMAIL PROTECTED] [r2332 [EMAIL PROTECTED] [r2326 [EMAIL PROTECTED] [r2310 [EMAIL PROTECTED] [r2308 [EMAIL PROTECTED] [r2306 [EMAIL PROTECTED] [r2302 [EMAIL PROTECTED] [r2300 [EMAIL PROTECTED] [r2298 [EMAIL PROTECTED] [r2296 [EMAIL PROTECTED] [r2294 [EMAIL PROTECTED] [r2292 [EMAIL PROTECTED] [r2290 [EMAIL PROTECTED] [r2288 [EMAIL PROTECTED] [r2286 [EMAIL PROTECTED] [r2284 [EMAIL PROTECTED] [r2282 [EMAIL PROTECTED] [r2278 [EMAIL PROTECTED] [r2272 [EMAIL PROTECTED] [r2270 [EMAIL PROTECTED] [r2264 [EMAIL PROTECTED] [r2262 [EMAIL PROTECTED] [r2256 [EMAIL PROTECTED] [r2252 [EMAIL PROTECTED] [r2248 [EMAIL PROTECTED] [r2244 [EMAIL PROTECTED] [r2238 [EMAIL PROTECTED] [r2236 [EMAIL PROTECTED] [r2234 [EMAIL PROTECTED] [r2232 [EMAIL PROTECTED] [r2230 [EMAIL PROTECTED] [r2228 [EMAIL PROTECTED] [r2226 [EMAIL PROTECTED] [r2220 [EMAIL PROTECTED] [r2218 [EMAIL PROTECTED] [r2216 [EMAIL PROTECTED] [r2214 [EMAIL PROTECTED] [r2212 [EMAIL PROTECTED] [r2210 [EMAIL PROTECTED] [r2208 [EMAIL PROTECTED] [r2200 [EMAIL PROTECTED] [r2196 [EMAIL PROTECTED] [r2194 [EMAIL PROTECTED] [pcre [EMAIL PROTECTED] [r2194 [EMAIL PROTECTED] [r2190 [EMAIL PROTECTED] [r2188 [EMAIL PROTECTED] [r2186 [EMAIL PROTECTED] [r2180 [EMAIL PROTECTED] [r2178 [EMAIL PROTECTED] [r2174 [EMAIL PROTECTED] [r2172 [EMAIL PROTECTED] [r2168 [EMAIL PROTECTED] [r2164 [EMAIL PROTECTED] [r2162 [EMAIL PROTECTED] [r2160 [EMAIL PROTECTED] [r2154 [EMAIL PROTECTED] [r2152 [EMAIL PROTECTED] [r2150 [EMAIL PROTECTED] [r2148 [EMAIL PROTECTED] [r2146 [EMAIL PROTECTED] [r2144 [EMAIL PROTECTED] [r2142 [EMAIL PROTECTED] [r2140 [EMAIL PROTECTED] [r2136 [EMAIL PROTECTED] [r2134 [EMAIL PROTECTED] [r2130 [EMAIL PROTECTED] [r2126 [EMAIL PROTECTED] [r2124 [EMAIL PROTECTED] [r2116 [EMAIL PROTECTED] [r2110 [EMAIL PROTECTED] [r2104 [EMAIL PROTECTED] [r2102 [EMAIL PROTECTED] [r2100 [EMAIL PROTECTED] [r2096 [EMAIL PROTECTED] [r2092 [EMAIL PROTECTED] [r2090 [EMAIL PROTECTED] [r2088 [EMAIL PROTECTED] [r2086 [EMAIL PROTECTED] [r2082 [EMAIL PROTECTED] [r2080 [EMAIL PROTECTED] [r2074 [EMAIL PROTECTED] [r2070 [EMAIL PROTECTED] [r2068 [EMAIL PROTECTED] [r2064 [EMAIL PROTECTED] [r2062 [EMAIL PROTECTED] [r2060 [EMAIL PROTECTED] [r2056 [EMAIL PROTECTED] [r2054 [EMAIL PROTECTED] [r2052 [EMAIL PROTECTED] [r2050 [EMAIL PROTECTED] [r2048 [EMAIL PROTECTED] [r2046 [EMAIL PROTECTED] [r2044 [EMAIL PROTECTED] [r2042 [EMAIL PROTECTED] [r2040 [EMAIL PROTECTED] [r2038 [EMAIL PROTECTED] [r2036 [EMAIL PROTECTED] [r2034 [EMAIL PROTECTED] [r2032 [EMAIL PROTECTED] [r2030 [EMAIL PROTECTED] [r2028 [EMAIL PROTECTED] [r2026 [EMAIL PROTECTED] [r2024 [EMAIL PROTECTED] [r2018 [EMAIL PROTECTED] [r2014 [EMAIL PROTECTED] [r2012 [EMAIL PROTECTED] [r2010 [EMAIL PROTECTED] [r2008 [EMAIL PROTECTED] [r2002 [EMAIL PROTECTED] [r2000 [EMAIL PROTECTED] [r1996 [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [Basic test for try { CATCH {} } Yuval Kogman <[EMAIL PROTECTED]>**20050304175151 No good examples in exegis/apocalypse Only does CATCH (no other constructs, no default) Does not tests 'use fatal' stuff ] [Test for given blocks Yuval Kogman <[EMAIL PROTECTED]>**20050304170743] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [suncyp [EMAIL PROTECTED] [yncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [zh-* for pa01 [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [more -Wall work, esp in Rule/ Isaac Jones <[EMAIL PROTECTED]>**20050228062214] [refactored src/Rule/Pos to use field accessors Isaac Jones <[EMAIL PROTECTED]>**20050228061407] [turned off certain warnings. leaving the most important ones Isaac Jones <[EMAIL PROTECTED]>**20050228055609] [toward -Wall cleanliness. focus on non-used variables. see notes! Isaac Jones <[EMAIL PROTECTED]>**20050228043931 Here are some funny things I ran into while removing references to unused variables: suspicious shadowing of the "sub" symbol in reduceStatements Eval.hs:145 suspicious non-use of "name" parameter to "subs" (removed) why throw away the cxt in foldParam Prim.hs:470 - and Evalute Eval.hs:72 - and Eval.hs:180 ] [fixed bug where RuleParser passed into runRule not being used. please double-check. Isaac Jones <[EMAIL PROTECTED]>**20050228040725] [added error messages for non-exhaustive patterns Isaac Jones <[EMAIL PROTECTED]>**20050228035431 Please be sure to check over these in case any of them are actually bugs. The "char" related ones in Bind.hs (bindEmpty for instance) might be better fixed with a type so that the type system will enforce well-formedness? ] [toward -Wall cleanliness Isaac Jones <[EMAIL PROTECTED]>**20050228031404] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup. [EMAIL PROTECTED] [import for today. [EMAIL PROTECTED] [syncup [EMAIL PROTECTED] [syncup from svn [EMAIL PROTECTED] [still 6.0.8 [EMAIL PROTECTED] [6.0.8 [EMAIL PROTECTED] [juerd's works [EMAIL PROTECTED] [posix. [EMAIL PROTECTED] [split. [EMAIL PROTECTED] [unbreak quicksort [EMAIL PROTECTED] [juerd's dialect test [EMAIL PROTECTED] [lvalue context via envLValue; qq[] literals; hash/array/list/undef/scalar casting ; evalVar now casts correctly; @*INC; the "join" primitive; list and chain associations in Lexer.hs [EMAIL PROTECTED] [inline Parsec Expr for heavy rework; prefix and postfix operators may now nest. [EMAIL PROTECTED] [fix abstract; !! works thanks to juerd [EMAIL PROTECTED] [build tweaks from ingy [EMAIL PROTECTED] [hashes. [EMAIL PROTECTED] [ TBONE suggested that we drop the half-joking abstract, as to not mislead CPAN readers. [EMAIL PROTECTED] [isable readline by default. [EMAIL PROTECTED] ["unless" [EMAIL PROTECTED] [Polymorphic parser lands! The list for unary and list prefix functions are now generated during the parse. Thanks for viirya for prompting me. [EMAIL PROTECTED] [vbool to vrat, thanks to viirya [EMAIL PROTECTED] [ycheng's mkdir/rmdir patch [EMAIL PROTECTED] [life and quicksort examples [EMAIL PROTECTED] [add PugsTest.pm [EMAIL PROTECTED] [more tests from alin [EMAIL PROTECTED] [alin's tests [EMAIL PROTECTED] [add t/base/* into tests; don't use full path in Makefile because dmake hates that [EMAIL PROTECTED] [grep and map [EMAIL PROTECTED] [add quicksort example; new "cxt" Syn construct to force Scalar slurpy values; the () signature will match slurpy empty lists; empty list via () is parsed; OPs are now under Eval monad; optional prms in Prim now [EMAIL PROTECTED] [it's ternary, not trinary [EMAIL PROTECTED] [6.0.7 [EMAIL PROTECTED] [6.0.6. [EMAIL PROTECTED] [slices in scalar context; glider now glides; punctuation now nests [EMAIL PROTECTED] [trinary operators ; error now propagates upward via shiftT ; foreach ; if/then/else ; fix hc's 02atom.t [EMAIL PROTECTED] [fixed symbol lookahead at word boundaries [EMAIL PROTECTED] [add meta and sig [EMAIL PROTECTED] [assignment now works separately than binding [EMAIL PROTECTED] [postfix ++ and -- works [EMAIL PROTECTED] [loop constructs; various postfix dereferencing syntax [EMAIL PROTECTED] [some I/O primitives: open/close/<> etc [EMAIL PROTECTED] [add suitable magic to run t/*.t with pugs! [EMAIL PROTECTED] [temporarily disable unary - as it clashes with ->; blocks now evaluate on spot [EMAIL PROTECTED] [blocks in void context now works; anonymouse subs works; pugs (the command line) now won't print toplevels anymore [EMAIL PROTECTED] [invalid casting into VSub now raises errors [EMAIL PROTECTED] [scoped variables landed [EMAIL PROTECTED] [better boolean prettyprinting thanks to larry [EMAIL PROTECTED] [ scoped subroutine parsing; void context [EMAIL PROTECTED] [space is no longer required after params [EMAIL PROTECTED] [dotdotdot [EMAIL PROTECTED] [bandaid to fix lexical scoping [EMAIL PROTECTED] [the "Return" primitive (and lexically bound shiftT); SubPrim; @*ARGS and $*PROGNAME; scopes are now symbols [EMAIL PROTECTED] [stringification of bools [EMAIL PROTECTED] [add eclipse project metadata [EMAIL PROTECTED] ["print" primitive; VControl value [EMAIL PROTECTED] [ditch unsafePerformIO from rand generation [EMAIL PROTECTED] [6.0.5 [EMAIL PROTECTED] [enable selective debugging; lists length > 100 is prettified finitely [EMAIL PROTECTED] [Syn prettyprinting [EMAIL PROTECTED] [proper handling of error propagation [EMAIL PROTECTED] [better debug info (eval/result chain) [EMAIL PROTECTED] [spaces parsing in reservedOp fixed [EMAIL PROTECTED] [op1 now takes values. [EMAIL PROTECTED] [monadic evaluator transition complete. [EMAIL PROTECTED] [subroutine parsing fixes, promted by viirya [EMAIL PROTECTED] [viirya's patch to fix leading whitespace [EMAIL PROTECTED] [the predicate of VErr should also be monadic [EMAIL PROTECTED] [the parser is now responsible to return an Env as well. [EMAIL PROTECTED] [StateEnv is now Eval. [EMAIL PROTECTED] [add monads to manifest [EMAIL PROTECTED] [hopefully correct treatment at JOne(). [EMAIL PROTECTED] [shift-to-control based Eval monad lands! [EMAIL PROTECTED] [beginning of monadic evaluator code [EMAIL PROTECTED] [rename commands as Cmd* to make room for the Eval monad [EMAIL PROTECTED] [manage junctions with two sets [EMAIL PROTECTED] [continuation monad [EMAIL PROTECTED] [partial collapsing (removing duplicates) for JuncOne. [EMAIL PROTECTED] [turn the evaluator into a State monad (unfinihsed) [EMAIL PROTECTED] [beginning of mergeup with Perl6.grammar; lexical pads [EMAIL PROTECTED] [lexical symbols: first phase [EMAIL PROTECTED] [chained comparison now works again, thanks to tom moertel [EMAIL PROTECTED] [pluggable evaluator finished [EMAIL PROTECTED] [illegal division should be caught. [EMAIL PROTECTED] [Division by zero now raises exception, thanks to viirya [EMAIL PROTECTED] [don't autothread over the "Any" prototype. [EMAIL PROTECTED] [rand() [EMAIL PROTECTED] [junctive refactoring to Junc.hs; "eval". [EMAIL PROTECTED] [6.0.3 [EMAIL PROTECTED] [the "all" junction now collapses nested junctions [EMAIL PROTECTED] [implement the "nor" operator inspired by Sandlass. [EMAIL PROTECTED] [use mapSet for autothreading [EMAIL PROTECTED] [proper handling of nonterm; sorting of sets. [EMAIL PROTECTED] [junctions are now proper sets [EMAIL PROTECTED] [invocation parsed. [EMAIL PROTECTED] [short circuitting for junctions [EMAIL PROTECTED] [normalize subnames with prefix: [EMAIL PROTECTED] [fix op0 prim dispatching [EMAIL PROTECTED] [patch from viirya to fix expo expression [EMAIL PROTECTED] [re-apply everything to combat darcs brokenness. [EMAIL PROTECTED] Fri Feb 11 16:21:34 CST 2005 [EMAIL PROTECTED] * viirya's patch to fix 1e-2. Fri Feb 11 15:44:48 CST 2005 [EMAIL PROTECTED] * array and hash casting; slurpy scalar Thu Feb 10 23:47:22 CST 2005 [EMAIL PROTECTED] * add manifest Thu Feb 10 23:46:18 CST 2005 [EMAIL PROTECTED] * parameter binding. Thu Feb 10 23:45:33 CST 2005 [EMAIL PROTECTED] * full Synopsis 06 implemented! Wed Feb 9 21:19:29 CST 2005 [EMAIL PROTECTED] * global subroutines and variables. Wed Feb 9 20:42:32 CST 2005 [EMAIL PROTECTED] * global variables and subroutines! Wed Feb 9 19:59:57 CST 2005 [EMAIL PROTECTED] * higher order parameters Wed Feb 9 19:10:08 CST 2005 [EMAIL PROTECTED] * extract higher-order function parameters. ] [viirya's patch to fix 1e-2. [EMAIL PROTECTED] [add manifest [EMAIL PROTECTED] [parameter binding. [EMAIL PROTECTED] [global subroutines and variables. [EMAIL PROTECTED] [formal parameters. it is done. [EMAIL PROTECTED] [add basic unit test [EMAIL PROTECTED] [add bestian to authors [EMAIL PROTECTED] [array literal ; add multiple syms; @_ aliasing; parenless function application [EMAIL PROTECTED] [user-defined subroutine lands!! [EMAIL PROTECTED] [full support for variables; allow mixing of nonparenthetic preOps with infixOps ( 1 + any 2..4 ); autothreading works with shortcutting logicals [EMAIL PROTECTED] [variables. [EMAIL PROTECTED] [chained associativity done! [EMAIL PROTECTED] [list associativity done! [EMAIL PROTECTED] [primitive symbol table ; fixity ; arity [EMAIL PROTECTED] [finished general junctive autothreading for arbitarily nested junctive values and arity; also converted operators into the App data structure. [EMAIL PROTECTED] [add context [EMAIL PROTECTED] [multimethod dispatch and new application core! [EMAIL PROTECTED] [added castV, cast to Val from anbitary context. We still need a better subtyping definition though. [EMAIL PROTECTED] [rationalize all numbers! [EMAIL PROTECTED] [minor punctuation [EMAIL PROTECTED] [fill in DATE and VERSION from lib/Perl6/Pugs.pm. [EMAIL PROTECTED] [TAG 6.0.1 [EMAIL PROTECTED] Patch bundle hash: 0e66f6320f9ddaee5e6985e9c8a1f332a9bd4c3b