on master help sign in
Proper executable and object file creation via maven + need for run_java tests removed
a567873Jan Bessai
Setup.hs+32−9
@@ -15,6 +15,8 @@ import System.FilePath ((</>), splitDirectories)
15import System.Directory
15import System.Directory
16import qualified System.FilePath.Posix as Px
16import qualified System.FilePath.Posix as Px
17import System.Process
17import System.Process
18+import qualified Data.Text as T
19+import qualified Data.Text.IO as TIO
18
20
19
21
20-- After Idris is built, we need to check and install the prelude and other libs
22-- After Idris is built, we need to check and install the prelude and other libs
@@ -40,6 +42,8 @@ cleanJavaLib verbosity
40 when dirty $ mvn verbosity [ "-f", "java/pom.xml", "clean" ]
42 when dirty $ mvn verbosity [ "-f", "java/pom.xml", "clean" ]
41 pomExists <- doesFileExist ("java" </> "pom.xml")
43 pomExists <- doesFileExist ("java" </> "pom.xml")
42 when pomExists $ removeFile ("java" </> "pom.xml")
44 when pomExists $ removeFile ("java" </> "pom.xml")
45+ execPomExists <- doesFileExist ("java" </> "executable_pom.xml")
46+ when pomExists $ removeFile ("java" </> "executable_pom.xml")
43
47
44installStdLib pkg local verbosity copy
48installStdLib pkg local verbosity copy
45 = do let dirs = L.absoluteInstallDirs pkg local copy
49 = do let dirs = L.absoluteInstallDirs pkg local copy
@@ -64,7 +68,18 @@ installStdLib pkg local verbosity copy
64 , "IDRIS=" ++ icmd
68 , "IDRIS=" ++ icmd
65 ]
69 ]
66
70
67−installJavaLib verbosity = mvn verbosity [ "-f", "java/pom.xml", "install" ]
71+installJavaLib pkg local verbosity copy version = do
72+ let rtsFile = "idris-" ++ display version ++ ".jar"
73+ mvn verbosity [ "install:install-file"
74+ , "-Dfile=" ++ ("java" </> "target" </> rtsFile)
75+ , "-DgroupId=org.idris-lang"
76+ , "-DartifactId=idris"
77+ , "-Dversion=" ++ display version
78+ , "-Dpackaging=jar"
79+ , "-DgeneratePom=True"
80+ ]
81+ let dir = datadir $ L.absoluteInstallDirs pkg local copy
82+ copyFile ("java" </> "executable_pom.xml") (dir </> "executable_pom.xml")
68
83
69-- This is a hack. I don't know how to tell cabal that a data file needs
84-- This is a hack. I don't know how to tell cabal that a data file needs
70-- installing but shouldn't be in the distribution. And it won't make the
85-- installing but shouldn't be in the distribution. And it won't make the
@@ -94,7 +109,7 @@ checkStdLib local verbosity
94 , "IDRIS=" ++ icmd
109 , "IDRIS=" ++ icmd
95 ]
110 ]
96
111
97−checkJavaLib verbosity = mvn verbosity [ "-f", "java/pom.xml", "package" ]
112+checkJavaLib verbosity = mvn verbosity [ "-f", "java" </> "pom.xml", "package" ]
98
113
99noJavaFlag flags =
114noJavaFlag flags =
100 case lookup (FlagName "nojava") (S.configConfigurationsFlags flags) of
115 case lookup (FlagName "nojava") (S.configConfigurationsFlags flags) of
@@ -102,12 +117,14 @@ noJavaFlag flags =
102 Just False -> False
117 Just False -> False
103 Nothing -> False
118 Nothing -> False
104
119
105−preparePom version
120+preparePoms version
106− = do pomTemplate <- readFile ("java" </> "pom_template.xml")
121+ = do pomTemplate <- TIO.readFile ("java" </> "pom_template.xml")
107− writeFile ("java" </> "pom.xml") (unlines . map insertVersion $ lines pomTemplate)
122+ TIO.writeFile ("java" </> "pom.xml") (insertVersion pomTemplate)
123+ execPomTemplate <- TIO.readFile ("java" </> "executable_pom_template.xml")
124+ TIO.writeFile ("java" </> "executable_pom.xml") (insertVersion execPomTemplate)
108 where
125 where
109− insertVersion " <version></version>" = " <version>" ++ display version ++ "</version>"
126+ insertVersion template =
110− insertVersion other = other
127+ T.replace (T.pack "$RTS-VERSION$") (T.pack $ display version) template
111
128
112-- Install libraries during both copy and install
129-- Install libraries during both copy and install
113-- See http://hackage.haskell.org/trac/hackage/ticket/718
130-- See http://hackage.haskell.org/trac/hackage/ticket/718
@@ -121,11 +138,17 @@ main = do
121 let verb = (S.fromFlag $ S.installVerbosity flags)
138 let verb = (S.fromFlag $ S.installVerbosity flags)
122 installStdLib pkg lbi verb
139 installStdLib pkg lbi verb
123 NoCopyDest
140 NoCopyDest
124− unless (noJavaFlag $ configFlags lbi) (installJavaLib verb)
141+ unless (noJavaFlag $ configFlags lbi)
142+ (installJavaLib pkg
143+ lbi
144+ verb
145+ NoCopyDest
146+ (pkgVersion . package $ localPkgDescr lbi)
147+ )
125 , postConf = \ _ flags _ lbi -> do
148 , postConf = \ _ flags _ lbi -> do
126 removeLibIdris lbi (S.fromFlag $ S.configVerbosity flags)
149 removeLibIdris lbi (S.fromFlag $ S.configVerbosity flags)
127 unless (noJavaFlag $ configFlags lbi)
150 unless (noJavaFlag $ configFlags lbi)
128− (preparePom . pkgVersion . package $ localPkgDescr lbi)
151+ (preparePoms . pkgVersion . package $ localPkgDescr lbi)
129 , postClean = \ _ flags _ _ -> do
152 , postClean = \ _ flags _ _ -> do
130 let verb = S.fromFlag $ S.cleanVerbosity flags
153 let verb = S.fromFlag $ S.cleanVerbosity flags
131 cleanStdLib verb
154 cleanStdLib verb
idris.cabal+1−1
@@ -107,7 +107,7 @@ Executable idris
107 Build-depends: base>=4 && <5, parsec>=3, mtl, Cabal,
107 Build-depends: base>=4 && <5, parsec>=3, mtl, Cabal,
108 haskeline>=0.7, split, directory,
108 haskeline>=0.7, split, directory,
109 containers, process, transformers, filepath,
109 containers, process, transformers, filepath,
110− directory, binary, bytestring, pretty,
110+ directory, binary, bytestring, text, pretty,
111 language-java>=0.2.2
111 language-java>=0.2.2
112
112
113 Extensions: MultiParamTypeClasses, FunctionalDependencies,
113 Extensions: MultiParamTypeClasses, FunctionalDependencies,
java/executable_pom_template.xmlnew file+65
@@ -0,0 +1,65 @@
1+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+ <modelVersion>4.0.0</modelVersion>
4+ <groupId>org.idris-lang</groupId>
5+ <artifactId>$ARTIFACT-NAME$</artifactId>
6+ <packaging>jar</packaging>
7+ <version>1.0</version>
8+ <name>$ARTIFACT-NAME$</name>
9+
10+ <properties>
11+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
12+ <skipTests>true</skipTests>
13+ </properties>
14+ <dependencies>
15+ <dependency>
16+ <groupId>org.idris-lang</groupId>
17+ <artifactId>idris</artifactId>
18+ <version>$RTS-VERSION$</version>
19+ </dependency>
20+ </dependencies>
21+
22+
23+ <build>
24+ <finalName>$ARTIFACT-NAME$</finalName>
25+ <plugins>
26+ <plugin>
27+ <groupId>org.apache.maven.plugins</groupId>
28+ <artifactId>maven-compiler-plugin</artifactId>
29+ <version>3.0</version>
30+ <configuration>
31+ <source>1.7</source>
32+ <target>1.7</target>
33+ </configuration>
34+ </plugin>
35+ <plugin>
36+ <groupId>org.apache.maven.plugins</groupId>
37+ <artifactId>maven-surefire-plugin</artifactId>
38+ <version>2.14</version>
39+ <configuration>
40+ <skipTests>${skipTests}</skipTests>
41+ </configuration>
42+ </plugin>
43+ <plugin>
44+ <groupId>org.apache.maven.plugins</groupId>
45+ <artifactId>maven-shade-plugin</artifactId>
46+ <version>2.0</version>
47+ <executions>
48+ <execution>
49+ <phase>package</phase>
50+ <goals>
51+ <goal>shade</goal>
52+ </goals>
53+ <configuration>
54+ <transformers>
55+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
56+ <mainClass>$MAIN-CLASS$</mainClass>
57+ </transformer>
58+ </transformers>
59+ </configuration>
60+ </execution>
61+ </executions>
62+ </plugin>
63+ </plugins>
64+ </build>
65+</project>
java/pom_template.xml+2−2
@@ -2,9 +2,9 @@
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
3 <modelVersion>4.0.0</modelVersion>
4
4
5− <groupId>org.idris.rts</groupId>
5+ <groupId>org.idris-lang</groupId>
6 <artifactId>idris</artifactId>
6 <artifactId>idris</artifactId>
7− <version></version>
7+ <version>$RTS-VERSION$</version>
8 <packaging>jar</packaging>
8 <packaging>jar</packaging>
9
9
10 <name>Runtime System for the Idris Java Backend</name>
10 <name>Runtime System for the Idris Java Backend</name>
src/IRTS/CodegenJava.hs+64−4
@@ -15,6 +15,9 @@ import qualified Control.Monad.Trans as T
15import Control.Monad.Trans.State
15import Control.Monad.Trans.State
16import Data.Char
16import Data.Char
17import Data.Maybe (fromJust)
17import Data.Maybe (fromJust)
18+import Data.List (isPrefixOf, intercalate)
19+import qualified Data.Text as T
20+import qualified Data.Text.IO as TIO
18import Language.Java.Parser
21import Language.Java.Parser
19import Language.Java.Pretty
22import Language.Java.Pretty
20import Language.Java.Syntax hiding (Name)
23import Language.Java.Syntax hiding (Name)
@@ -34,10 +37,67 @@ codegenJava :: [(Name, SExp)] -> -- initialization of globals
34 FilePath -> -- output file name
37 FilePath -> -- output file name
35 OutputType ->
38 OutputType ->
36 IO ()
39 IO ()
37−codegenJava globalInit defs out exec =
40+codegenJava globalInit defs out exec = do
38− either (error)
41+ withTempdir (takeBaseName out) $ \ tmpDir -> do
42+ let srcdir = tmpDir </> "src" </> "main" </> "java"
43+ createDirectoryIfMissing True srcdir
44+ let (Ident clsName) =
45+ either error id (evalStateT (mkClassName out) (mkCodeGenEnv globalInit))
46+ let outjava = srcdir </> clsName <.> "java"
47+ let jout = either error
39− (writeFile out . flatIndent . prettyPrint)
48+ (flatIndent . prettyPrint)
40− ( evalStateT (mkCompilationUnit globalInit defs out) (mkCodeGenEnv globalInit) )
49+ (evalStateT (mkCompilationUnit globalInit defs out) (mkCodeGenEnv globalInit))
50+ writeFile outjava jout
51+ if (exec == Raw)
52+ then copyFile outjava (takeDirectory out </> clsName <.> "java")
53+ else do
54+ execPom <- getExecutablePom
55+ execPomTemplate <- TIO.readFile execPom
56+ let execPom = T.replace (T.pack "$MAIN-CLASS$")
57+ (T.pack clsName)
58+ (T.replace (T.pack "$ARTIFACT-NAME$")
59+ (T.pack $ takeBaseName out)
60+ execPomTemplate)
61+ TIO.writeFile (tmpDir </> "pom.xml") execPom
62+ mvnCmd <- getMvn
63+ let args = ["-f", (tmpDir </> "pom.xml")]
64+ (exit, _, err) <- readProcessWithExitCode mvnCmd (args ++ ["compile"]) ""
65+ when (exit /= ExitSuccess) $ error ("FAILURE: " ++ mvnCmd ++ " compile\n" ++ err)
66+ if (exec == Object)
67+ then do
68+ classFiles <-
69+ map (\ clsFile -> tmpDir </> "target" </> "classes" </> clsFile)
70+ . filter ((".class" ==) . takeExtension)
71+ <$> getDirectoryContents (tmpDir </> "target" </> "classes")
72+ mapM_ (\ clsFile -> copyFile clsFile (takeDirectory out </> takeFileName clsFile))
73+ classFiles
74+ else do
75+ (exit, _, err) <- readProcessWithExitCode mvnCmd (args ++ ["package"]) ""
76+ when (exit /= ExitSuccess) (error ("FAILURE: " ++ mvnCmd ++ " package\n" ++ err))
77+ copyFile (tmpDir </> "target" </> (takeBaseName out) <.> "jar") out
78+ handle <- openBinaryFile out ReadMode
79+ contents <- TIO.hGetContents handle
80+ hClose handle
81+ handle <- openBinaryFile out WriteMode
82+ TIO.hPutStr handle (T.append (T.pack jarHeader) contents)
83+ hFlush handle
84+ hClose handle
85+ perms <- getPermissions out
86+ setPermissions out (setOwnerExecutable True perms)
87+ readProcess mvnCmd (args ++ ["clean"]) ""
88+ removeFile (tmpDir </> "pom.xml")
89+
90+jarHeader :: String
91+jarHeader =
92+ "#!/bin/sh\n"
93+ ++ "MYSELF=`which \"$0\" 2>/dev/null`\n"
94+ ++ "[ $? -gt 0 -a -f \"$0\" ] && MYSELF=\"./$0\"\n"
95+ ++ "java=java\n"
96+ ++ "if test -n \"$JAVA_HOME\"; then\n"
97+ ++ " java=\"$JAVA_HOME/bin/java\"\n"
98+ ++ "fi\n"
99+ ++ "exec \"$java\" $java_args -jar $MYSELF \"$@\""
100+ ++ "exit 1\n"
41
101
42mkCodeGenEnv :: [(Name, SExp)] -> CodeGenerationEnv
102mkCodeGenEnv :: [(Name, SExp)] -> CodeGenerationEnv
43mkCodeGenEnv globalInit =
103mkCodeGenEnv globalInit =
src/Util/System.hs+38−4
@@ -1,13 +1,20 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−module Util.System(tempfile,environment,getCC,
2+module Util.System(tempfile,withTempdir,environment,getCC,
3− getLibFlags,getIdrisLibDir,getIncFlags,rmFile) where
3+ getLibFlags,getIdrisLibDir,getIncFlags,rmFile,
4+ getMvn,getExecutablePom) where
4
5
5-- System helper functions.
6-- System helper functions.
6−
7+import Control.Monad (when)
8+import Distribution.Text (display)
7−import System.Directory (getTemporaryDirectory, removeFile)
9+import System.Directory (getTemporaryDirectory
10+ , removeFile
11+ , removeDirectoryRecursive
12+ , createDirectoryIfMissing
13+ )
8import System.FilePath ((</>), addTrailingPathSeparator, normalise)
14import System.FilePath ((</>), addTrailingPathSeparator, normalise)
9import System.Environment
15import System.Environment
10import System.IO
16import System.IO
17+import System.IO.Error
11#if MIN_VERSION_base(4,0,0)
18#if MIN_VERSION_base(4,0,0)
12import Control.Exception as CE
19import Control.Exception as CE
13#endif
20#endif
@@ -17,20 +24,44 @@ import Paths_idris
17#if MIN_VERSION_base(4,0,0)
24#if MIN_VERSION_base(4,0,0)
18catchIO :: IO a -> (IOError -> IO a) -> IO a
25catchIO :: IO a -> (IOError -> IO a) -> IO a
19catchIO = CE.catch
26catchIO = CE.catch
27+
28+throwIO :: IOError -> IO a
29+throwIO = CE.throw
20#else
30#else
21catchIO = catch
31catchIO = catch
32+throwIO = throw
22#endif
33#endif
23
34
35+
36+
24getCC :: IO String
37getCC :: IO String
25getCC = do env <- environment "IDRIS_CC"
38getCC = do env <- environment "IDRIS_CC"
26 case env of
39 case env of
27 Nothing -> return "gcc"
40 Nothing -> return "gcc"
28 Just cc -> return cc
41 Just cc -> return cc
29
42
43+getMvn :: IO String
44+getMvn = do env <- environment "IDRIS_MVN"
45+ case env of
46+ Nothing -> return "mvn"
47+ Just mvn -> return mvn
48+
30tempfile :: IO (FilePath, Handle)
49tempfile :: IO (FilePath, Handle)
31tempfile = do dir <- getTemporaryDirectory
50tempfile = do dir <- getTemporaryDirectory
32 openTempFile (normalise dir) "idris"
51 openTempFile (normalise dir) "idris"
33
52
53+withTempdir :: String -> (FilePath -> IO a) -> IO a
54+withTempdir subdir callback
55+ = do dir <- getTemporaryDirectory
56+ let tmpDir = (normalise dir) </> subdir
57+ removeLater <- catchIO (createDirectoryIfMissing True tmpDir >> return True)
58+ (\ ioError -> if isAlreadyExistsError ioError then return False
59+ else throw ioError
60+ )
61+ result <- callback tmpDir
62+ when removeLater $ removeDirectoryRecursive tmpDir
63+ return result
64+
34environment :: String -> IO (Maybe String)
65environment :: String -> IO (Maybe String)
35environment x = catchIO (do e <- getEnv x
66environment x = catchIO (do e <- getEnv x
36 return (Just e))
67 return (Just e))
@@ -51,3 +82,6 @@ getIdrisLibDir = do dir <- getDataDir
51
82
52getIncFlags = do dir <- getDataDir
83getIncFlags = do dir <- getDataDir
53 return $ "-I" ++ dir </> "rts"
84 return $ "-I" ++ dir </> "rts"
85+
86+getExecutablePom = do dir <- getDataDir
87+ return $ dir </> "executable_pom.xml"
test/Makefile+1−1
@@ -2,7 +2,7 @@ test:
2 perl ./runtest.pl all
2 perl ./runtest.pl all
3
3
4test_java:
4test_java:
5− perl ./runtest.pl all --java
5+ perl ./runtest.pl all --target Java
6
6
7update:
7update:
8 perl ./runtest.pl all -u
8 perl ./runtest.pl all -u
test/mkjavatest.pldeleted−26
@@ -1,26 +0,0 @@
1−#!/usr/bin/perl
2−
3−if ($#ARGV>=0) {
4− $test=shift(@ARGV);
5−} else {
6− print "What's its name?\n";
7− exit;
8−}
9−
10−mkdir($test);
11−
12−chdir($test);
13−open(FOO,">run_java");
14−
15−print FOO "#!/bin/bash\n";
16−print FOO "idris \$@ $test.idr -o $test.java --target Java\n";
17−print FOO "for RTS in ../../java/target/idris-*.jar; do\n";
18−print FOO " export CLASSPATH=$RTS:\$CLASSPATH\n";
19−print FOO "done;\n";
20−print FOO "javac $test.java\n";
21−print FOO "java $test\n";
22−print FOO "rm -f $test.java *.class\n";
23−
24−close(FOO);
25−
26−system("chmod +x run_java");
test/reg002/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ reg002.idr -o reg002.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac reg002.java
7−java reg002
8−rm -f reg002.java *.class
test/reg004/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ reg004.idr -o reg004.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac reg004.java
7−java reg004
8−rm -f reg004.java *.class
test/reg005/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ reg005.idr -o reg005.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac reg005.java
7−java reg005
8−rm -f reg005.java *.class
test/reg006/run_javadeleted−3
@@ -1,3 +0,0 @@
1−#!/bin/bash
2−idris $@ reg006.idr -o reg006.java --target Java
3−rm -f reg006.java *.class
test/runtest.pl+6−14
@@ -3,16 +3,12 @@
3my $exitstatus = 0;
3my $exitstatus = 0;
4
4
5sub runtest {
5sub runtest {
6− my ($test, $update, $usejava) = @_;
6+ my ($test, $update) = @_;
7
7
8 chdir($test);
8 chdir($test);
9
9
10 print "Running $test...";
10 print "Running $test...";
11− if ($usejava == 1) {
12− $got = `sh ./run_java @idrOpts`;
13− } else {
14− $got = `sh ./run @idrOpts`;
11+ $got = `sh ./run @idrOpts`;
15− }
16 $exp = `cat expected`;
12 $exp = `cat expected`;
17
13
18 open(OUT,">output");
14 open(OUT,">output");
@@ -78,19 +74,15 @@ $usejava = 0;
78
74
79while ($opt=shift(@opts)) {
75while ($opt=shift(@opts)) {
80 if ($opt eq "-u") { $update = 1; }
76 if ($opt eq "-u") { $update = 1; }
81− if ($opt eq "-d") { $diff = 1; }
77+ elsif ($opt eq "-d") { $diff = 1; }
82− if ($opt eq "-s") { $show = 1; }
78+ elsif ($opt eq "-s") { $show = 1; }
83− if ($opt eq "--java") { $usejava = 1; }
79+ else { push(@idrOpts, $opt); }
84}
80}
85
81
86foreach $test (@tests) {
82foreach $test (@tests) {
87
83
88− if ($usejava == 1 && !(-e "$test/run_java")) {
89− next;
90− }
91−
92 if ($diff == 0 && $show == 0) {
84 if ($diff == 0 && $show == 0) {
93− runtest($test,$update, $usejava);
85+ runtest($test,$update);
94 }
86 }
95 else {
87 else {
96 chdir($test);
88 chdir($test);
test/test001/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test001.idr -o test001.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test001.java
7−java test001
8−rm -f test001.java *.class
test/test003/run_javadeleted−9
@@ -1,9 +0,0 @@
1−#!/bin/bash
2−idris $@ test003a.lidr -o test003a.java --target Java
3−idris $@ test003.lidr -o test003.java --target Java
4−for RTS in ../../java/target/idris-*.jar; do
5− export CLASSPATH=$RTS:$CLASSPATH
6−done;
7−javac test003.java
8−java test003
9−rm -f test003.java *.class
test/test004/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test004.idr -o test004.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test004.java
7−java test004
8−rm -f test004.java *.class
test/test005/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test005.idr -o test005.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test005.java
7−java test005
8−rm -f test005.java *.class
test/test006/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test006.idr -o test006.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test006.java
7−java test006
8−rm -f test006.java *.class
test/test007/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test007.idr -o test007.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test007.java
7−java test007
8−rm -f test007.java *.class
test/test008/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test008.idr -o test008.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test008.java
7−java test008
8−rm -f test008.java *.class
test/test009/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test009.idr -o test009.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test009.java
7−java test009
8−rm -f test009.java *.class
test/test010/run_javadeleted−5
@@ -1,5 +0,0 @@
1−#!/bin/bash
2−idris $@ test010.idr -o test010.java --target Java
3−idris $@ test010a.idr -o test010a.java --target Java
4−idris $@ test010b.idr -o test010b.java --target Java
5−rm -f test010.java *.class
test/test011/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test011.idr -o test011.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test011.java
7−java test011
8−rm -f test011.java *.class
test/test012/run_javadeleted−3
@@ -1,3 +0,0 @@
1−#!/bin/bash
2−idris $@ test012a.idr -o test012a.java --target Java
3−rm -f test012a.java *.class
test/test013/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test013.idr -o test013.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test013.java
7−java test013
8−rm -f test013.java *.class
test/test014/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test014.idr -o test014.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test014.java
7−java test014
8−rm -f test014.java *.class
test/test015/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test015.idr -o test015.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test015.java
7−java test015
8−rm -f test015.java *.class
test/test016/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test016.idr -o test016.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test016.java
7−java test016
8−rm -f test016.java *.class
test/test017/run_javadeleted−4
@@ -1,4 +0,0 @@
1−#!/bin/bash
2−idris $@ test017a.idr -o test017a.java --target Java
3−idris $@ test017b.idr -o test017b.java --target Java
4−rm -f *.class
test/test018/run_javadeleted−9
@@ -1,9 +0,0 @@
1−#!/bin/bash
2−idris $@ test018.idr -o test018.java --target Java
3−idris $@ test018a.idr -o test018a.java --target Java
4−for RTS in ../../java/target/idris-*.jar; do
5− export CLASSPATH=$RTS:$CLASSPATH
6−done;
7−javac test018.java
8−java test018
9−rm -f test018.java test018a.java *.class
test/test019/run_javadeleted−8
@@ -1,8 +0,0 @@
1−#!/bin/bash
2−idris $@ test019.lidr -o test019.java --target Java
3−for RTS in ../../java/target/idris-*.jar; do
4− export CLASSPATH=$RTS:$CLASSPATH
5−done;
6−javac test019.java
7−java test019
8−rm -f test019.java *.class
test/test020/run_javadeleted−9
@@ -1,9 +0,0 @@
1−#!/bin/bash
2−idris $@ test020.idr -o test020.java --target Java
3−idris $@ test020a.idr -o test020a.java --target Java
4−for RTS in ../../java/target/idris-*.jar; do
5− export CLASSPATH=$RTS:$CLASSPATH
6−done;
7−javac test020.java
8−java test020
9−rm -f test020.java *.class
test/test021/run_javadeleted−11
@@ -1,11 +0,0 @@
1−#!/bin/bash
2−idris -p effects $@ test021.idr -o test021.java --target Java
3−idris -p effects $@ test021a.idr -o test021a.java --target Java
4−for RTS in ../../java/target/idris-*.jar; do
5− export CLASSPATH=$RTS:$CLASSPATH
6−done;
7−javac test021.java
8−java test021
9−javac test021a.java
10−java test021a
11−rm -f test021.java test021a.java *.class