Mercurial Hosting > luan
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 ); }