Changeset 7127

Show
Ignore:
Timestamp:
09/24/05 15:28:50 (3 years ago)
Author:
iblech
Message:

* Usual svn props.
* PIL2JS: runjs.pl: Added --compile-only option, needed for new -CJS.
* Main: Added support for -CJS and unbroke -CPIR.
* Pugs.CodeGen?: Better normalization so -h looks prettier (it's "PIL", not

"Pil", for example).

* Pugs.Help: Add JS to the list of backends supported.
* pugs::hack: Accomodate for the above changes.

Files:
24 modified

Legend:

Unmodified
Added
Removed
  • docs/journal/2005-09-22.kwid

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • docs/notes/theory.pod

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • lib/pugs/run.pod

    r6926 r7127  
    7070 
    7171causes Pugs to execute the program using C<I<backend>>. Currently, valid 
    72 backends are C<Parrot> and C<PIR>. 
    73  
    74 The JavaScript backend (PIL2JS) provides an interactive shell in 
    75 F<perl5/PIL2JS/jspugs.pl>; The interactive compiler and evaluator of the Perl 5 
    76 backend (PIL-Run) can be found in F<perl5/PIL-Run/crude_repl.pl>. 
     72backends are C<Parrot>, C<PIR>, C<Perl5>, and C<JS>. 
     73 
     74To start the interactive shell of a backend, run C<pugs -BI<backend>>, but note 
     75that currently only the Perl 5 and JavaScript backends provide interactive 
     76shells. 
    7777 
    7878The normal runcore supports more features than the other runcores, the Parrot 
    79 backend is quite fast, PIL2JS is good on binding and references, and PIL-Run 
    80 offers excellent support for laziness. 
     79backend is quite fast, the JavaScript backend is good on binding and 
     80references, and Perl 6 on Perl 5 offers excellent support for laziness. 
    8181 
    8282=item C<-CI<backend>> 
    8383 
    8484causes Pugs to compile the program using C<I<backend>>. Currently, valid 
    85 backends are C<Pugs>, C<Parrot>, C<PIR>, C<Haskell>, and C<PIL> with its 
     85backends are C<Pugs>, C<Parrot>, C<PIR>, C<Haskell>, C<JS>, and C<PIL> with its 
    8686variants C<Perl5>, C<JSON>, and C<Binary>. 
    8787 
  • perl5/PIL2JS/runjs.pl

    r6693 r7127  
    3737  "p6prelude=s"   => \$PIL2JS::cfg{prelude}, 
    3838  "testpc=s"      => \$PIL2JS::cfg{testpc}, 
     39  "compile-only"  => \my $compile_only, 
    3940  "help"          => \&usage, 
    4041) and @pugs_args or usage(); 
     
    5859  @pugs_args 
    5960)); 
     61print($js), exit if $compile_only; 
    6062run_js($js); 
    6163#run_js_on_jssm($js); 
     
    7880  --pil2js=/path/to/pil2js.pl               (usually in perl5/PIL2JS/) 
    7981  --p6prelude=/path/to/lib6/Prelude/JS.pm   (usually in perl5/PIL2JS/lib6/) 
    80   --p6preludepc=/path/to/preludepc.js       (compile using 
    81                                             perl5/PIL2JS/jspugs.pl) 
     82  --p6preludepc=/path/to/preludepc.js       (automatically created) 
     83  --compile-only 
    8284  --help 
    8385EOF 
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/lib/TestBuilder.pm

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/lib/TestBuilder/Output.pm

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/lib/TestBuilder/Test.pm

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/lib/TestBuilder/TestPlan.pm

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/lib/TestBuilder/Tester.pm

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/001_load.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/010_Test_Builder.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/020_Test_Builder_Test.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/021_Test_Builder_Test_Pass.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/022_Test_Builder_Test_Fail.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/023_Test_Builder_Test_Skip.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/024_Test_Builder_Test_TODO.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/030_Test_Builder_Output.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/040_Test_Builder_TestPlan.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/ext/Test-Builder/t/050_Test_Builder_Tester.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/t/33_BUILD.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • perl5/Perl6-MetaModel2.0/t/34_nested_parameterized_classes.t

    • Property svn:mime-type set to text/plain; charset=UTF-8
    • Property svn:eol-style set to native
  • src/Main.hs

    r7117 r7127  
    7979run ("-c":file:_)               = readFile file >>= doCheck file 
    8080 
     81run ("-C":backend:args) | map toUpper backend == "JS" = 
     82    doHelperRun "JS" ("--compile-only":args) 
    8183run ("-C":backend:"-e":prog:_)           = doCompileDump backend "-e" prog 
    8284run ("-C":backend:file:_)                = slurpFile file >>= doCompileDump backend file 
    8385 
    84 run ("-B":backend:args)                  = doHelperRun backend args 
     86run ("-B":backend:args) | (== map toLower backend) `any` ["js","perl5"] = 
     87    doHelperRun backend args 
     88run ("-B":backend:"-e":prog:_)           = doCompileRun backend "-e" prog 
     89run ("-B":backend:file:_)                = slurpFile file >>= doCompileRun backend file 
    8590 
    8691run ("--external":mod:"-e":prog:_)    = doExternal mod "-e" prog 
  • src/Pugs/CodeGen.hs

    r6250 r7127  
    2828generators :: Map String Generator 
    2929generators = Map.fromList $ 
    30     [ ("Ghc",         genGHC) 
     30    [ ("GHC",         genGHC) 
    3131    , ("Parrot",      genPIR) 
    32     , ("Pir",         genPIR) 
    33     , ("Pil",         genPIL) 
    34 --  , ("Pil2",        genPIL2) 
     32    , ("PIR",         genPIR) 
     33    , ("PIL",         genPIL) 
     34--  , ("PIL2",        genPIL2) 
    3535    , ("Perl5",       genPerl5) 
    3636    , ("Pugs",        genPugs) 
    3737    , ("Binary",      genBinary) 
    38     , ("Json",        genJSON) 
    39 --  , ("Xml",         genXML) 
     38    , ("JSON",        genJSON) 
     39--  , ("XML",         genXML) 
    4040    ] 
    4141 
     
    4444 
    4545norm :: String -> String 
    46 norm "" = "" 
    47 norm (x:xs) = toUpper x : map toLower xs 
     46norm = norm' . map toLower 
     47    where 
     48    norm' "ghc"    = "GHC" 
     49    norm' "parrot" = "Parrot" 
     50    norm' "pir"    = "PIR" 
     51    norm' "pil"    = "PIL" 
     52    -- norm' "pil2"   = "PIL2" 
     53    norm' "perl5"  = "Perl5" 
     54    norm' "pugs"   = "Pugs" 
     55    norm' "binary" = "Binary" 
     56    norm' "json"   = "JSON" 
     57    -- norm' "xml"    = "XML" 
     58    norm' x        = x 
    4859 
    4960doLookup :: String -> IO Generator 
  • src/Pugs/Help.hs

    r5447 r7127  
    1717import Pugs.Version 
    1818import Pugs.CodeGen (backends) 
     19import Data.List (sort) 
    1920 
    2021printInteractiveHelp :: IO () 
     
    5152        putStrLn "See documentation of pugs::run for more help." 
    5253    where 
    53     backendsStr = foldr1 addComma backends 
     54    backendsStr = foldr1 addComma $ sort ("JS":backends) 
    5455    addComma w s = w ++ (',':' ':s) 
    5556