on master help sign in
Proper executable and object file creation via maven + need for run_java tests removed
commita567873d1fffadc69bb50d03d78eaa0b15ba4bed authorJan Bessai <Jan.Bessai@tu-dortmund.de> dateSat 16 Mar 2013, 18:11 (14 years ago) parent4358581
33 files changed+209−242
Setup.hs+32−9 idris.cabal+1−1 java/executable_pom_template.xml+65 java/pom_template.xml+2−2 src/IRTS/CodegenJava.hs+64−4 src/Util/System.hs+38−4 test/Makefile+1−1 test/mkjavatest.pl−26 test/reg002/run_java−8 test/reg004/run_java−8 test/reg005/run_java−8 test/reg006/run_java−3 test/runtest.pl+6−14 test/test001/run_java−8 test/test003/run_java−9 test/test004/run_java−8 test/test005/run_java−8 test/test006/run_java−8 test/test007/run_java−8 test/test008/run_java−8 test/test009/run_java−8 test/test010/run_java−5 test/test011/run_java−8 test/test012/run_java−3 test/test013/run_java−8 test/test014/run_java−8 test/test015/run_java−8 test/test016/run_java−8 test/test017/run_java−4 test/test018/run_java−9 test/test019/run_java−8 test/test020/run_java−9 test/test021/run_java−11
Setup.hs+32−9
@@ -15,6 +15,8 @@ import System.FilePath ((</>), splitDirectories)
1515import System.Directory
1616import qualified System.FilePath.Posix as Px
1717import System.Process
18+import qualified Data.Text as T
19+import qualified Data.Text.IO as TIO
1820
1921
2022-- After Idris is built, we need to check and install the prelude and other libs
@@ -40,6 +42,8 @@ cleanJavaLib verbosity
4042 when dirty $ mvn verbosity [ "-f", "java/pom.xml", "clean" ]
4143 pomExists <- doesFileExist ("java" </> "pom.xml")
4244 when pomExists $ removeFile ("java" </> "pom.xml")
45+ execPomExists <- doesFileExist ("java" </> "executable_pom.xml")
46+ when pomExists $ removeFile ("java" </> "executable_pom.xml")
4347
4448installStdLib pkg local verbosity copy
4549 = do let dirs = L.absoluteInstallDirs pkg local copy
@@ -64,7 +68,18 @@ installStdLib pkg local verbosity copy
6468 , "IDRIS=" ++ icmd
6569 ]
6670
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")
6883
6984-- This is a hack. I don't know how to tell cabal that a data file needs
7085-- installing but shouldn't be in the distribution. And it won't make the
@@ -94,7 +109,7 @@ checkStdLib local verbosity
94109 , "IDRIS=" ++ icmd
95110 ]
96111
97−checkJavaLib verbosity = mvn verbosity [ "-f", "java/pom.xml", "package" ]
112+checkJavaLib verbosity = mvn verbosity [ "-f", "java" </> "pom.xml", "package" ]
98113
99114noJavaFlag flags =
100115 case lookup (FlagName "nojava") (S.configConfigurationsFlags flags) of
@@ -102,12 +117,14 @@ noJavaFlag flags =
102117 Just False -> False
103118 Nothing -> False
104119
105−preparePom version
106− = do pomTemplate <- readFile ("java" </> "pom_template.xml")
107− writeFile ("java" </> "pom.xml") (unlines . map insertVersion $ lines pomTemplate)
120+preparePoms version
121+ = do pomTemplate <- TIO.readFile ("java" </> "pom_template.xml")
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)
108125 where
109− insertVersion " <version></version>" = " <version>" ++ display version ++ "</version>"
110− insertVersion other = other
126+ insertVersion template =
127+ T.replace (T.pack "$RTS-VERSION$") (T.pack $ display version) template
111128
112129-- Install libraries during both copy and install
113130-- See http://hackage.haskell.org/trac/hackage/ticket/718
@@ -121,11 +138,17 @@ main = do
121138 let verb = (S.fromFlag $ S.installVerbosity flags)
122139 installStdLib pkg lbi verb
123140 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+ )
125148 , postConf = \ _ flags _ lbi -> do
126149 removeLibIdris lbi (S.fromFlag $ S.configVerbosity flags)
127150 unless (noJavaFlag $ configFlags lbi)
128− (preparePom . pkgVersion . package $ localPkgDescr lbi)
151+ (preparePoms . pkgVersion . package $ localPkgDescr lbi)
129152 , postClean = \ _ flags _ _ -> do
130153 let verb = S.fromFlag $ S.cleanVerbosity flags
131154 cleanStdLib verb
idris.cabal+1−1
@@ -107,7 +107,7 @@ Executable idris
107107 Build-depends: base>=4 && <5, parsec>=3, mtl, Cabal,
108108 haskeline>=0.7, split, directory,
109109 containers, process, transformers, filepath,
110− directory, binary, bytestring, pretty,
110+ directory, binary, bytestring, text, pretty,
111111 language-java>=0.2.2
112112
113113 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 @@
22 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
33 <modelVersion>4.0.0</modelVersion>
44
5− <groupId>org.idris.rts</groupId>
5+ <groupId>org.idris-lang</groupId>
66 <artifactId>idris</artifactId>
7− <version></version>
7+ <version>$RTS-VERSION$</version>
88 <packaging>jar</packaging>
99
1010 <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
1515import Control.Monad.Trans.State
1616import Data.Char
1717import Data.Maybe (fromJust)
18+import Data.List (isPrefixOf, intercalate)
19+import qualified Data.Text as T
20+import qualified Data.Text.IO as TIO
1821import Language.Java.Parser
1922import Language.Java.Pretty
2023import Language.Java.Syntax hiding (Name)
@@ -34,10 +37,67 @@ codegenJava :: [(Name, SExp)] -> -- initialization of globals
3437 FilePath -> -- output file name
3538 OutputType ->
3639 IO ()
37−codegenJava globalInit defs out exec =
38− either (error)
39− (writeFile out . flatIndent . prettyPrint)
40− ( evalStateT (mkCompilationUnit globalInit defs out) (mkCodeGenEnv globalInit) )
40+codegenJava globalInit defs out exec = do
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
48+ (flatIndent . prettyPrint)
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"
41101
42102mkCodeGenEnv :: [(Name, SExp)] -> CodeGenerationEnv
43103mkCodeGenEnv globalInit =
src/Util/System.hs+38−4
@@ -1,13 +1,20 @@
11{-# LANGUAGE CPP #-}
2−module Util.System(tempfile,environment,getCC,
3− getLibFlags,getIdrisLibDir,getIncFlags,rmFile) where
2+module Util.System(tempfile,withTempdir,environment,getCC,
3+ getLibFlags,getIdrisLibDir,getIncFlags,rmFile,
4+ getMvn,getExecutablePom) where
45
56-- System helper functions.
6−
7−import System.Directory (getTemporaryDirectory, removeFile)
7+import Control.Monad (when)
8+import Distribution.Text (display)
9+import System.Directory (getTemporaryDirectory
10+ , removeFile
11+ , removeDirectoryRecursive
12+ , createDirectoryIfMissing
13+ )
814import System.FilePath ((</>), addTrailingPathSeparator, normalise)
915import System.Environment
1016import System.IO
17+import System.IO.Error
1118#if MIN_VERSION_base(4,0,0)
1219import Control.Exception as CE
1320#endif
@@ -17,20 +24,44 @@ import Paths_idris
1724#if MIN_VERSION_base(4,0,0)
1825catchIO :: IO a -> (IOError -> IO a) -> IO a
1926catchIO = CE.catch
27+
28+throwIO :: IOError -> IO a
29+throwIO = CE.throw
2030#else
2131catchIO = catch
32+throwIO = throw
2233#endif
2334
35+
36+
2437getCC :: IO String
2538getCC = do env <- environment "IDRIS_CC"
2639 case env of
2740 Nothing -> return "gcc"
2841 Just cc -> return cc
2942
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+
3049tempfile :: IO (FilePath, Handle)
3150tempfile = do dir <- getTemporaryDirectory
3251 openTempFile (normalise dir) "idris"
3352
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+
3465environment :: String -> IO (Maybe String)
3566environment x = catchIO (do e <- getEnv x
3667 return (Just e))
@@ -51,3 +82,6 @@ getIdrisLibDir = do dir <- getDataDir
5182
5283getIncFlags = do dir <- getDataDir
5384 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:
22 perl ./runtest.pl all
33
44test_java:
5− perl ./runtest.pl all --java
5+ perl ./runtest.pl all --target Java
66
77update:
88 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 @@
33my $exitstatus = 0;
44
55sub runtest {
6− my ($test, $update, $usejava) = @_;
6+ my ($test, $update) = @_;
77
88 chdir($test);
99
1010 print "Running $test...";
11− if ($usejava == 1) {
12− $got = `sh ./run_java @idrOpts`;
13− } else {
14− $got = `sh ./run @idrOpts`;
15− }
11+ $got = `sh ./run @idrOpts`;
1612 $exp = `cat expected`;
1713
1814 open(OUT,">output");
@@ -78,19 +74,15 @@ $usejava = 0;
7874
7975while ($opt=shift(@opts)) {
8076 if ($opt eq "-u") { $update = 1; }
81− if ($opt eq "-d") { $diff = 1; }
82− if ($opt eq "-s") { $show = 1; }
83− if ($opt eq "--java") { $usejava = 1; }
77+ elsif ($opt eq "-d") { $diff = 1; }
78+ elsif ($opt eq "-s") { $show = 1; }
79+ else { push(@idrOpts, $opt); }
8480}
8581
8682foreach $test (@tests) {
8783
88− if ($usejava == 1 && !(-e "$test/run_java")) {
89− next;
90− }
91−
9284 if ($diff == 0 && $show == 0) {
93− runtest($test,$update, $usejava);
85+ runtest($test,$update);
9486 }
9587 else {
9688 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