diff src/luan/impl/LuanParser.java @ 1434:56fb5cd8228d

cache compiled code in temp files
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 29 Dec 2019 15:25:07 -0700
parents 514b7a62fe27
children 6c830be6be98
line wrap: on
line diff
--- a/src/luan/impl/LuanParser.java	Tue Dec 24 17:57:47 2019 -0700
+++ b/src/luan/impl/LuanParser.java	Sun Dec 29 15:25:07 2019 -0700
@@ -168,7 +168,6 @@
 
 	}
 
-	private static AtomicInteger classCounter = new AtomicInteger();
 	private int innerCounter = 0;
 	private final List<Inner> inners = new ArrayList<Inner>();
 
@@ -237,20 +236,16 @@
 //		return toFnExp( stmt, frame.upValueSymbols, name );
 	}
 
-	Class RequiredModule() throws ParseException {
+	Compiled RequiredModule() throws ParseException {
 		GetRequiredModule();
-		String className = "EXP" + classCounter.incrementAndGet();
+		String className = "EXP";
 		String classCode = toFnString( top, frame.upValueSymbols, className, inners );
-		try {
-			return LuanJavaCompiler.compile("luan.impl."+className,parser.sourceName,classCode);
-		} catch(ClassNotFoundException e) {
-			throw new RuntimeException(e);
-		}
+		return Compiled.compile("luan.impl."+className,parser.sourceName,classCode);
 	}
 
 	String RequiredModuleSource() throws ParseException {
 		GetRequiredModule();
-		String className = "EXP" + classCounter.incrementAndGet();
+		String className = "EXP";
 		return toFnString( top, frame.upValueSymbols, className, inners );
 	}