Changeset 2621
- Timestamp:
- 05/02/05 16:07:13 (4 years ago)
- svk:copy_cache_prev:
- 4152
- Files:
-
- 19 added
- 6 modified
-
Makefile.PL (modified) (3 diffs)
-
README (modified) (1 diff)
-
inc/Module/Install/Pugs.pm (modified) (1 diff)
-
script/pugscc (modified) (2 diffs)
-
src/Data (added)
-
src/Data/Yaml (added)
-
src/Data/Yaml/Syck.hs (added)
-
src/Pugs/AST.hs (modified) (1 diff)
-
src/Pugs/Prim.hs (modified) (4 diffs)
-
src/syck (added)
-
src/syck/COPYING (added)
-
src/syck/bytecode.c (added)
-
src/syck/emitter.c (added)
-
src/syck/gram.c (added)
-
src/syck/gram.h (added)
-
src/syck/handler.c (added)
-
src/syck/implicit.c (added)
-
src/syck/node.c (added)
-
src/syck/syck.c (added)
-
src/syck/syck.h (added)
-
src/syck/syck_st.c (added)
-
src/syck/syck_st.h (added)
-
src/syck/token.c (added)
-
src/syck/yaml2byte.c (added)
-
src/syck/yamlbyte.h (added)
Legend:
- Unmodified
- Added
- Removed
-
Makefile.PL
r2614 r2621 91 91 my $hasktags = $ENV{HASKTAGS} || 'hasktags'; 92 92 93 my $pcre_c = "src/pcre/pcre.c"; 94 my @syck_c = glob("src/syck/*.c"); 93 95 my $pcre = "src/pcre/pcre.o"; 94 my $pcre_c = "src/pcre/pcre.c";96 my @syck = map { substr($_, 0, -1) . 'o' } @syck_c; 95 97 my $unicode = "src/UnicodeC.o"; 96 98 my $unicode_c = "src/UnicodeC.c"; 97 99 98 my @prereqs = ($config_h, $pcre, $unicode);99 $ghc_output .= " $pcre $unicode";100 my @prereqs = ($config_h, $pcre, @syck, $unicode); 101 $ghc_output .= " $pcre @syck $unicode"; 100 102 101 103 my $config = get_pugs_config(); … … 108 110 $profiled_flags =~ s{-DPUGS_HAVE_HSPLUGINS=1}{}; 109 111 112 my $emit = sub { 113 my $c = shift; 114 my $o = substr($c, 0, -1) . 'o'; 115 return "$o : $c\n\t$ghc $threaded -no-link -no-hs-main -O -o $o $c\n"; 116 }; 117 110 118 postamble(fixpaths(<< ".")); 111 119 $config_h : lib/Perl6/Pugs.pm util/config_h.pl … … 118 126 \$(NOOP) 119 127 120 $pcre : $pcre_c 121 $ghc $threaded -no-link -no-hs-main -O -o $pcre $pcre_c 122 123 $unicode : $unicode_c 124 $ghc $threaded -no-link -no-hs-main -O -o $unicode $unicode_c 128 @{[join("\n", map {$emit->($_)} ($unicode_c, $pcre_c, @syck_c))]} 125 129 126 130 src/Pugs/Config.hs : util/PugsConfig.pm -
README
r2359 r2621 16 16 The "PCRE" subsystem is derived from PCRE 5.0 by Philip Hazel, 17 17 under a BSD-style license. See src/pcre/LICENCE. 18 19 The "Syck" subsystem is derived from Syck 0.54 by "why the lucky stiff", 20 under a BSD-style license. See src/syck/COPYING. 18 21 19 22 The "Rule" subsystem is derived from Parsec 2.0 by Daan Leijen, -
inc/Module/Install/Pugs.pm
r2460 r2621 163 163 . 164 164 } 165 my $ghc_flags = "-H0 -L. -Lsrc -Lsrc/ pcre -I. -Isrc -Isrc/pcre";166 $ghc_flags .= " -i. -isrc -isrc/pcre - static ";165 my $ghc_flags = "-H0 -L. -Lsrc -Lsrc/syck -Lsrc/pcre -I. -Isrc -Isrc/pcre -Isrc/syck"; 166 $ghc_flags .= " -i. -isrc -isrc/pcre -isrc/syck -static "; 167 167 $ghc_flags .= " -Wall -Werror " 168 168 unless $self->is_extension_build; -
script/pugscc
r2602 r2621 79 79 # XXX - This chunk should be read off Pugs config anyway. 80 80 my @ghc_flags = ( 81 "-L$base", "-L$core", "-L$core/pcre", 82 "-I$base", "-I$core", "-I$core/pcre", 83 "-i$base", "-i$core", "-i$core/pcre", 81 "-L$base", "-L$core", "-L$core/pcre", "-L$core/syck", 82 "-I$base", "-I$core", "-I$core/pcre", "-I$core/syck", 83 "-i$base", "-i$core", "-i$core/pcre", "-i$core/syck", 84 84 qw(-static -Wall -fno-warn-unused-imports -fno-warn-unused-binds -fno-warn-missing-signatures -fno-warn-name-shadowing), 85 85 ); … … 90 90 91 91 push @ghc_flags, "$core/pcre/pcre.o"; 92 push @ghc_flags, "$core/syck/syck.o"; 92 93 push @ghc_flags, "$core/UnicodeC.o"; 93 94 -
src/Pugs/AST.hs
r2619 r2621 1198 1198 writeIVar :: IVar v -> v -> Eval () 1199 1199 writeIVar (IScalar x) = scalar_store x 1200 writeIVar (IArray x) = array_store x 1201 writeIVar (IHash x) = hash_store x 1200 1202 writeIVar _ = error "writeIVar" 1201 1203 -
src/Pugs/Prim.hs
r2607 r2621 20 20 import Pugs.External 21 21 import Text.Printf 22 import Data.Yaml.Syck 22 23 import qualified Data.Set as Set 23 24 import qualified Data.Map as Map … … 201 202 op1 "eval_perl5" = boolIO evalPerl5 202 203 op1 "eval_haskell" = op1EvalHaskell 204 op1 "eval_yaml" = op1EvalYaml 203 205 op1 "defined" = op1Cast (VBool . defined) 204 206 op1 "last" = \v -> return (VError "cannot last() outside a loop" (Val v)) … … 388 390 op1 other = return . (\x -> VError ("unimplemented unaryOp: " ++ other) (App other [Val x] [])) 389 391 392 op1EvalYaml :: Val -> Eval Val 393 op1EvalYaml cv = do 394 str <- fromVal cv 395 yaml <- liftIO $ parseYaml str 396 fromYaml yaml 397 398 fromYaml :: YamlNode -> Eval Val 399 fromYaml (YamlStr str) = return $ VStr str 400 fromYaml (YamlSeq nodes) = do 401 vals <- forM nodes $ \node -> do 402 newScalar =<< fromYaml node 403 av <- liftSTM $ (newTVar vals :: STM IArray) 404 return $ VRef (arrayRef av) 405 fromYaml (YamlMap nodes) = do 406 vals <- forM nodes $ \(keyNode, valNode) -> do 407 key <- fromVal =<< fromYaml keyNode 408 val <- newScalar =<< fromYaml valNode 409 return (key, val) 410 hv <- liftSTM $ (newTVar (Map.fromList vals) :: STM IHash) 411 return $ VRef (hashRef hv) 412 390 413 op1EvalHaskell :: Val -> Eval Val 391 414 op1EvalHaskell cv = do 392 cstr <- (fromVal cv):: Eval String393 ret <- liftIO (evalHaskell cstr)394 glob <- askGlobal395 errSV <- findSymRef "$!" glob415 str <- fromVal cv :: Eval String 416 ret <- liftIO (evalHaskell str) 417 glob <- askGlobal 418 errSV <- findSymRef "$!" glob 396 419 case ret of 397 420 Right str -> do … … 1422 1445 \\n Any pre eval_perl5 (Str)\ 1423 1446 \\n Any pre eval_haskell (Str)\ 1447 \\n Any pre eval_yaml (Str)\ 1424 1448 \\n Any pre require (?Str=$_)\ 1425 1449 \\n Any pre require_haskell (Str)\
