From 817004672d91c5d9563fddf3eaa35f931d4b408a Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Mon, 5 May 2025 12:38:11 -0400 Subject: [PATCH] moved more things to config, fixed package name typo --- app/src/main/java/lexer/Main.java | 6 ++-- app/src/main/java/sockets/Main.java | 6 ++-- app/src/main/java/sockets/Sockets.java | 2 +- .../parkertenbroeck/{bcms => bcsm}/RT.java | 4 +-- .../{bcms => bcsm}/loadtime/Frame.java | 2 +- .../{bcms => bcsm}/loadtime/FrameTracker.java | 2 +- .../loadtime/ParamConsumer.java | 2 +- .../loadtime/ReplacementKind.java | 2 +- .../loadtime/SavedStateTracker.java | 2 +- .../loadtime/SpecialMethod.java | 2 +- .../loadtime/SpecialMethodBuilder.java | 2 +- .../loadtime/SpecialMethodHandler.java | 2 +- .../{bcms => bcsm}/loadtime/StateBuilder.java | 2 +- .../loadtime/StateMachineBuilder.java | 2 +- .../loadtime/StateMachineClassLoader.java | 29 +++++++++++++------ .../loadtime/future/Cancellation.java | 2 +- .../loadtime/future/FutureSMBuilder.java | 4 +-- .../loadtime/gen/GenSMBuilder.java | 4 +-- 18 files changed, 44 insertions(+), 33 deletions(-) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/RT.java (92%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/Frame.java (97%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/FrameTracker.java (99%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/ParamConsumer.java (75%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/ReplacementKind.java (69%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/SavedStateTracker.java (98%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/SpecialMethod.java (79%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/SpecialMethodBuilder.java (82%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/SpecialMethodHandler.java (88%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/StateBuilder.java (95%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/StateMachineBuilder.java (99%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/StateMachineClassLoader.java (86%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/future/Cancellation.java (80%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/future/FutureSMBuilder.java (99%) rename lib/src/main/java/com/parkertenbroeck/{bcms => bcsm}/loadtime/gen/GenSMBuilder.java (98%) diff --git a/app/src/main/java/lexer/Main.java b/app/src/main/java/lexer/Main.java index dd5631b..0c3ecea 100644 --- a/app/src/main/java/lexer/Main.java +++ b/app/src/main/java/lexer/Main.java @@ -1,12 +1,12 @@ package lexer; import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcms.RT; -import com.parkertenbroeck.bcms.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.RT; +import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; public class Main { public static void main(String[] args) { - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); + RT.runWithStateMachines(StateMachineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); lexer(); } diff --git a/app/src/main/java/sockets/Main.java b/app/src/main/java/sockets/Main.java index ed20c2c..0d9122d 100644 --- a/app/src/main/java/sockets/Main.java +++ b/app/src/main/java/sockets/Main.java @@ -1,12 +1,12 @@ package sockets; import com.parkertenbroeck.async_runtime.Jokio; -import com.parkertenbroeck.bcms.RT; -import com.parkertenbroeck.bcms.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.RT; +import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; public class Main { public static void main(String[] args) { - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); + RT.runWithStateMachines(StateMachineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); await(); } diff --git a/app/src/main/java/sockets/Sockets.java b/app/src/main/java/sockets/Sockets.java index 4e75f6e..8fe0af7 100644 --- a/app/src/main/java/sockets/Sockets.java +++ b/app/src/main/java/sockets/Sockets.java @@ -5,7 +5,7 @@ import com.parkertenbroeck.async_runtime.Jokio; import com.parkertenbroeck.async_runtime.io.net.ServerSocket; import com.parkertenbroeck.async_runtime.io.net.Socket; import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.bcms.loadtime.future.Cancellation; +import com.parkertenbroeck.bcsm.loadtime.future.Cancellation; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/RT.java b/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java similarity index 92% rename from lib/src/main/java/com/parkertenbroeck/bcms/RT.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/RT.java index a80904e..cc8202b 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/RT.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java @@ -1,7 +1,7 @@ -package com.parkertenbroeck.bcms; +package com.parkertenbroeck.bcsm; -import com.parkertenbroeck.bcms.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; import java.lang.reflect.Modifier; import java.util.Set; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/Frame.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java similarity index 97% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/Frame.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java index aa60ea5..71cb34b 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/Frame.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.instruction.LineNumber; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/FrameTracker.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java similarity index 99% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/FrameTracker.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java index 52acae5..a79a13b 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/FrameTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.*; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ParamConsumer.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java similarity index 75% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ParamConsumer.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java index 171f573..5b749a8 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ParamConsumer.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.constant.ClassDesc; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ReplacementKind.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java similarity index 69% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ReplacementKind.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java index 6c0f101..0accc63 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/ReplacementKind.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; public enum ReplacementKind { ImmediateReplacingPop, diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SavedStateTracker.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java similarity index 98% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SavedStateTracker.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java index 83668af..ecf61b7 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SavedStateTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.TypeKind; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethod.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java similarity index 79% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethod.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java index 4df55dc..bfd1aa9 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethod.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.constant.ClassDesc; import java.lang.constant.MethodTypeDesc; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java similarity index 82% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java index f5446ea..e6b8a4b 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodHandler.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java similarity index 88% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodHandler.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java index ba523d8..09eb72c 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/SpecialMethodHandler.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java similarity index 95% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java index afb91c0..292513e 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.Label; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java similarity index 99% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java index 83bb471..1eef78c 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.*; import java.lang.classfile.attribute.InnerClassInfo; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineClassLoader.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java similarity index 86% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineClassLoader.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java index c431a4f..1f45dd6 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/StateMachineClassLoader.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java @@ -1,9 +1,9 @@ -package com.parkertenbroeck.bcms.loadtime; +package com.parkertenbroeck.bcsm.loadtime; import com.parkertenbroeck.future.Future; import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcms.loadtime.future.FutureSMBuilder; -import com.parkertenbroeck.bcms.loadtime.gen.GenSMBuilder; +import com.parkertenbroeck.bcsm.loadtime.future.FutureSMBuilder; +import com.parkertenbroeck.bcsm.loadtime.gen.GenSMBuilder; import java.io.IOException; import java.lang.classfile.*; @@ -18,6 +18,7 @@ public class StateMachineClassLoader extends ClassLoader { private final HashMap> customClazzMap = new HashMap<>(); private final List skip; private final HashMap builders; + private final String write_classes_path; public interface SMBB{ StateMachineBuilder build(ClassModel src_clm, MethodModel src_mem, CodeModel src_com); @@ -25,13 +26,14 @@ public class StateMachineClassLoader extends ClassLoader { public static class Config{ HashSet skip = new HashSet<>(); HashMap builders = new HashMap<>(); + String write_classes; public static Config empty(){ return new Config(); } public static Config builtin(){ return empty() - .skip("java", "jdk", "jre", "com.parkertenbroeck.generators.loadtime") + .skip("java", "jdk", "jre", "com.parkertenbroeck.bcsm.loadtime") .with(Future.class, FutureSMBuilder::new) .with(Gen.class, GenSMBuilder::new); } @@ -50,6 +52,11 @@ public class StateMachineClassLoader extends ClassLoader { builders.put(ret, builder); return this; } + + public Config write_classes(String path){ + write_classes = path; + return this; + } } public StateMachineClassLoader(ClassLoader parent) { @@ -60,15 +67,19 @@ public class StateMachineClassLoader extends ClassLoader { super(parent); skip = config.skip.stream().toList(); builders = new HashMap<>(config.builders); + write_classes_path = config.write_classes; } void add(String name, byte[] def){ - try { - Files.createDirectories(Path.of("build/modified/generators/" + name.replace(".", "/")).getParent()); - Files.write(Path.of("build/modified/generators/" + name.replace(".", "/") + ".class"), def); - } catch (IOException e) { - throw new RuntimeException(e); + if(write_classes_path!=null){ + try { + Files.createDirectories(Path.of(write_classes_path + name.replace(".", "/")).getParent()); + Files.write(Path.of(write_classes_path + name.replace(".", "/") + ".class"), def); + } catch (IOException e) { + throw new RuntimeException(e); + } } + customClazzMap.put(name, defineClass(name, def, 0, def.length)); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/Cancellation.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java similarity index 80% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/Cancellation.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java index df88e89..991d75c 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/Cancellation.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcms.loadtime.future; +package com.parkertenbroeck.bcsm.loadtime.future; import java.lang.annotation.*; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/FutureSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java similarity index 99% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/FutureSMBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java index d4ea2c5..7b9c535 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/future/FutureSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java @@ -1,8 +1,8 @@ -package com.parkertenbroeck.bcms.loadtime.future; +package com.parkertenbroeck.bcsm.loadtime.future; import com.parkertenbroeck.future.Future; import com.parkertenbroeck.future.Waker; -import com.parkertenbroeck.bcms.loadtime.*; +import com.parkertenbroeck.bcsm.loadtime.*; import java.lang.classfile.*; import java.lang.classfile.instruction.SwitchCase; diff --git a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/gen/GenSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java similarity index 98% rename from lib/src/main/java/com/parkertenbroeck/bcms/loadtime/gen/GenSMBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java index 384b5cc..38a9702 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcms/loadtime/gen/GenSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java @@ -1,7 +1,7 @@ -package com.parkertenbroeck.bcms.loadtime.gen; +package com.parkertenbroeck.bcsm.loadtime.gen; import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcms.loadtime.*; +import com.parkertenbroeck.bcsm.loadtime.*; import java.lang.classfile.*; import java.lang.constant.ClassDesc;