From 32880edc3de5559bd187a6504b6f02904d604c10 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 7 May 2025 13:11:43 -0400 Subject: [PATCH 1/5] Update README.md --- README.md | 57 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index b5008a9..483ffed 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,35 @@ public static Future regular_function() { } ``` +### Why not annotations? +Unfortunately annotations cannot be put on lambdas. + +## Use this library + +```kotlin +// settings.gradle.kts +sourceControl { + gitRepository(URI.create("https://github.com/ParkerTenBroeck/generators.git")) { + producesModule("com.parkertenbroeck.generators:lib") + } +} + +// build.gradle.kts +implementation("com.parkertenbroeck.generators:lib:0.1.0") +``` + +This library requires the application be ran with a custom class loader, there is a utility provided to make this easier. +```java +public static void main(String[] args) { + // loads the current class with a custom class loader and calls *this* method with the provided arguments. + // *this* method - the one used to call `runWithStateMachines` + RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); + + // past this point generators will be created on methods which match the criteria +} +``` + + ## Oddities ```java @@ -130,7 +159,7 @@ public static Future add_reorder() { ### synchronized -when a generator/future method is declared as `synchronized` the `next`/`poll`/`cancel` functions will all be synchronized over the instance or class which the method was declared in. +when a generator/future method is declared as `synchronized` the `next`/`poll`/`cancel` functions will all be synchronized over the instance or class the method was declared in. it is important to note that the monitor is **NOT** held across suspend points where the function returns. @@ -146,22 +175,7 @@ static Future unsync(Object value) { ## How this works -This library requires the application be ran with a custom class loader as follows (this can be done manually if needed) -```java -public static void main(String[] args) { - // loads the current class with a custom class loader and calls *this* method with the provided arguments. - // *this* method - the one used to call `runWithStateMachines` - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); - - // past this point generators will be created on methods which match the criteria -} -``` - -Once finished any class loaded will be scanned for methods which match a particular signature. - -When matched a shim is introduced into the source method and a class is constructed which stores all state for the future/generator - -A basic example here where we have some parameters +Say we have some async function like this. ```java public static Future example(@Cancellation("close") Socket socket, String message) throws IOException { try(socket){ @@ -170,6 +184,8 @@ public static Future example(@Cancellation("close") Socket so return Future.ret(); } ``` +The loader will see the methods which it needs to transform, then modify the bytecode, transforming the function into a class where state across suspend points is saved/restored (local variables & the current state of the stack). + This is a (modified) decompiled version of the generated method. ```java public static Future example(Socket socket, String message) { @@ -273,10 +289,3 @@ public static Future example(Socket socket, String message) { }; } ``` -### Steps -- A functions signature and code is determined to be "of interest" -- When a function is found we wish to modify it first builds a frame(locals, stack, annotations) for every area of interest in the function -- The number of unique locations which can be suspended from are kept track of -- A switch is built which handles each state the function can resume from setting up any locals/stack that needs to be resumed as well as setting up the code for saving locals/stack state -- the locations which special methods are found are modified to perform their particular function and potentially save state and return -- (Futures) generate cancellation code for locals which have specified so, and cancellation for a pending future. From 6ca8ac2d25aa1275aaf71abab8874d80512cc324 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 7 May 2025 13:34:14 -0400 Subject: [PATCH 2/5] Update README.md --- README.md | 90 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 483ffed..3d8eb9e 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,31 @@ public static Gen primes() { } ``` +## Use this library + +```kotlin +// settings.gradle.kts +sourceControl { + gitRepository(URI.create("https://github.com/ParkerTenBroeck/generators.git")) { + producesModule("com.parkertenbroeck.generators:lib") + } +} + +// build.gradle.kts +implementation("com.parkertenbroeck.generators:lib:0.1.0") +``` + +This library requires the application be ran with a custom class loader, there is a utility provided to make this easier. +```java +public static void main(String[] args) { + // loads the current class with a custom class loader and calls *this* method with the provided arguments. + // *this* method - the one used to call `runWithStateMachines` + RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); + + // past this point generators will be created on methods which match the criteria +} +``` + ## How does it know what functions to transform? Detection is done by @@ -64,31 +89,6 @@ public static Future regular_function() { ### Why not annotations? Unfortunately annotations cannot be put on lambdas. -## Use this library - -```kotlin -// settings.gradle.kts -sourceControl { - gitRepository(URI.create("https://github.com/ParkerTenBroeck/generators.git")) { - producesModule("com.parkertenbroeck.generators:lib") - } -} - -// build.gradle.kts -implementation("com.parkertenbroeck.generators:lib:0.1.0") -``` - -This library requires the application be ran with a custom class loader, there is a utility provided to make this easier. -```java -public static void main(String[] args) { - // loads the current class with a custom class loader and calls *this* method with the provided arguments. - // *this* method - the one used to call `runWithStateMachines` - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); - - // past this point generators will be created on methods which match the criteria -} -``` - ## Oddities @@ -110,7 +110,38 @@ public static Future echo(🔷@Cancellation("close") Socket s ## Things to watch out for -### Future errors are not type checked +### Await function works specifically for the Future type + +```java +class MyFuture implements Future{ + public Object poll(Waker waker){ /* code */ } +} + +void Future wrong() { + new MyFuture().await();//⚡ + return Future.ret(); +} +``` +Internally the await call will become a `invokevirtual` call to `await` on `MyFuture`. Which will not currently be recognized as a "special" method to transform. + +To avoid this use static methods to return a future and make manually implemented futures have private/protected constructors +```java +class MyFuture implements Future{ + private MyFuture(){} + public static Future make(){ + return new MyFuture(); + } + public Object poll(Waker waker){ /* code */ } +} + +void Future wrong() { + MyFuture.make().await(); + return Future.ret(); +} +``` + + +### Future exceptions are not type checked ```java public static Future wrong() throws Exception { Waker.waker().wake(); @@ -289,3 +320,10 @@ public static Future example(Socket socket, String message) { }; } ``` + +## Potential additions + +- Type checking during transformations +- Better debugger support (Currently line stepping is generally supported but most breakpoint sets are not working) +- Annotations (possibly integration during build time) +- More library features (async) From c8f3b6c01f7664cb88eb1e600b99050c79367080 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 13 May 2026 08:22:27 -0400 Subject: [PATCH 3/5] renammed from generators to coroutines --- README.md | 12 +++++------ app/src/main/java/basic/Main.java | 6 +++--- app/src/main/java/lexer/Main.java | 4 ++-- app/src/main/java/sockets/Main.java | 4 ++-- .../async_runtime/AsyncExecutor.java | 9 +++++++++ .../parkertenbroeck/async_runtime/Delay.java | 20 +++++-------------- .../java/com/parkertenbroeck/bcsm/RT.java | 8 ++++---- ...hineBuilder.java => CoroutineBuilder.java} | 8 +++----- ...sLoader.java => CoroutineClassLoader.java} | 12 +++++------ .../parkertenbroeck/bcsm/loadtime/Frame.java | 8 ++++---- .../bcsm/loadtime/FrameTracker.java | 7 +++---- .../bcsm/loadtime/SavedStateTracker.java | 18 ++++++++--------- .../bcsm/loadtime/SpecialMethodBuilder.java | 2 +- .../bcsm/loadtime/SpecialMethodHandler.java | 2 +- .../bcsm/loadtime/StateBuilder.java | 4 ++-- .../bcsm/loadtime/future/FutureSMBuilder.java | 2 +- .../bcsm/loadtime/gen/GenSMBuilder.java | 2 +- settings.gradle.kts | 2 +- 18 files changed, 63 insertions(+), 67 deletions(-) create mode 100644 lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java rename lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/{StateMachineBuilder.java => CoroutineBuilder.java} (97%) rename lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/{StateMachineClassLoader.java => CoroutineClassLoader.java} (92%) diff --git a/README.md b/README.md index b5008a9..0bc1d95 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Generators/Futures for Java 24+ +# Coroutines for Java 24+ -Futures/Generators implemented as state machines integrated into standard java. +Coroutines implemented as state machines integrated into standard java. - Futures/Generators are lazy and only make progress when called upon - Integrated as much as possible into java to work with the type system as much as possible @@ -150,16 +150,16 @@ This library requires the application be ran with a custom class loader as follo ```java public static void main(String[] args) { // loads the current class with a custom class loader and calls *this* method with the provided arguments. - // *this* method - the one used to call `runWithStateMachines` - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin(), (Object) args); + // *this* method - the one used to call `runWithCoroutine` + RT.runWithCoroutine(CoroutineClassLoader.Config.builtin(), (Object) args); - // past this point generators will be created on methods which match the criteria + // past this point Coroutines will be created on methods which match the criteria } ``` Once finished any class loaded will be scanned for methods which match a particular signature. -When matched a shim is introduced into the source method and a class is constructed which stores all state for the future/generator +When matched a shim is introduced into the source method and a class is constructed which stores all state for the coroutine A basic example here where we have some parameters ```java diff --git a/app/src/main/java/basic/Main.java b/app/src/main/java/basic/Main.java index 1b4bd16..3037dc9 100644 --- a/app/src/main/java/basic/Main.java +++ b/app/src/main/java/basic/Main.java @@ -1,14 +1,14 @@ package basic; import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; import com.parkertenbroeck.generator.Gen; public class Main { public static void main(String[] args) { - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); + RT.runWithCoroutine(CoroutineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); - primes(); + primes(); } static void primes(){ diff --git a/app/src/main/java/lexer/Main.java b/app/src/main/java/lexer/Main.java index 0c3ecea..ecf43c9 100644 --- a/app/src/main/java/lexer/Main.java +++ b/app/src/main/java/lexer/Main.java @@ -2,11 +2,11 @@ package lexer; import com.parkertenbroeck.generator.Gen; import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; public class Main { public static void main(String[] args) { - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); + RT.runWithCoroutine(CoroutineClassLoader.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 0d9122d..3cbc958 100644 --- a/app/src/main/java/sockets/Main.java +++ b/app/src/main/java/sockets/Main.java @@ -2,11 +2,11 @@ package sockets; import com.parkertenbroeck.async_runtime.Jokio; import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; public class Main { public static void main(String[] args) { - RT.runWithStateMachines(StateMachineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); + RT.runWithCoroutine(CoroutineClassLoader.Config.builtin().write_classes("build/modified/generators/"), (Object) args); await(); } diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java b/lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java new file mode 100644 index 0000000..20d48df --- /dev/null +++ b/lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java @@ -0,0 +1,9 @@ +package com.parkertenbroeck.async_runtime; + +import java.util.concurrent.Executors; + +public class AsyncExecutor { + void test(){ + Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + } +} diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java b/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java index fc2cc73..a972cca 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java +++ b/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java @@ -7,15 +7,10 @@ import java.util.Timer; import java.util.TimerTask; public class Delay implements Future { - private final static Timer timer; + private final static Timer timer = new Timer(true); + private TimerTask task; - - static { - timer = new Timer(true); - } - private int delay; - private boolean ready; protected Delay(int ms) { if (ms < 0) throw new IllegalArgumentException("async_example.Delay cannot be negative"); @@ -33,16 +28,12 @@ public class Delay implements Future { @Override public synchronized Object poll(Waker waker) { - if (delay == 0) { - ready = true; - delay = -1; - return null; - } - if (delay != -1) { + if (delay == 0) return null; + if (delay > 0) { task = new TimerTask() { @Override public void run() { - ready = true; + delay = 0; waker.wake(); } }; @@ -50,7 +41,6 @@ public class Delay implements Future { delay = -1; } - if (ready) return null; return Pending.INSTANCE; } } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java b/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java index cc8202b..af2bf76 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java @@ -1,7 +1,7 @@ package com.parkertenbroeck.bcsm; -import com.parkertenbroeck.bcsm.loadtime.StateMachineClassLoader; +import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; import java.lang.reflect.Modifier; import java.util.Set; @@ -9,10 +9,10 @@ import java.util.Set; import static java.lang.StackWalker.Option.*; public class RT { - public static void runWithStateMachines(StateMachineClassLoader.Config config, Object... params){ - if(RT.class.getClassLoader() instanceof StateMachineClassLoader)return; + public static void runWithCoroutine(CoroutineClassLoader.Config config, Object... params){ + if(RT.class.getClassLoader() instanceof CoroutineClassLoader)return; - var loader = new StateMachineClassLoader(RT.class.getClassLoader(), config); + var loader = new CoroutineClassLoader(RT.class.getClassLoader(), config); try{ StackWalker walker = StackWalker.getInstance(Set.of(RETAIN_CLASS_REFERENCE, SHOW_REFLECT_FRAMES, SHOW_HIDDEN_FRAMES)); var frame = walker.walk(s -> s.skip(1).findFirst()).get(); diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java similarity index 97% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java index 3f1a706..5334129 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java @@ -12,9 +12,7 @@ import java.lang.reflect.AccessFlag; import java.util.*; import java.util.stream.Collectors; -import static java.lang.constant.ConstantDescs.*; - -public abstract class StateMachineBuilder> { +public abstract class CoroutineBuilder> { public final static String PARAM_PREFIX = "param_"; public final static String LOCAL_PREFIX = "local_"; public final static String STATE_NAME = "state"; @@ -50,7 +48,7 @@ public abstract class StateMachineBuilder> { } } - public StateMachineBuilder(ClassModel src_clm, MethodModel src_mem, CodeModel src_com, String namePostfix){ + public CoroutineBuilder(ClassModel src_clm, MethodModel src_mem, CodeModel src_com, String namePostfix){ this.src_clm = src_clm; this.src_mem = src_mem; this.src_com = src_com; @@ -93,7 +91,7 @@ public abstract class StateMachineBuilder> { for (int i = 0; i < params.length; i++) { var param = params[i]; for(var attr : param_attrs.get(i)) - parameterVariableAnnotations.add(new ParameterVariableAnnotation(attr, StateMachineBuilder.PARAM_PREFIX + offset, param)); + parameterVariableAnnotations.add(new ParameterVariableAnnotation(attr, CoroutineBuilder.PARAM_PREFIX + offset, param)); offset += TypeKind.from(param).slotSize(); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java similarity index 92% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java rename to lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java index 1f45dd6..4a90214 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateMachineClassLoader.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java @@ -14,14 +14,14 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.*; -public class StateMachineClassLoader extends ClassLoader { +public class CoroutineClassLoader 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); + CoroutineBuilder build(ClassModel src_clm, MethodModel src_mem, CodeModel src_com); } public static class Config{ HashSet skip = new HashSet<>(); @@ -59,11 +59,11 @@ public class StateMachineClassLoader extends ClassLoader { } } - public StateMachineClassLoader(ClassLoader parent) { + public CoroutineClassLoader(ClassLoader parent) { this(parent, Config.builtin()); } - public StateMachineClassLoader(ClassLoader parent, Config config) { + public CoroutineClassLoader(ClassLoader parent, Config config) { super(parent); skip = config.skip.stream().toList(); builders = new HashMap<>(config.builders); @@ -93,7 +93,7 @@ public class StateMachineClassLoader extends ClassLoader { var p = "/" + name.replace('.', '/') + ".class"; - try (var stream = StateMachineClassLoader.class.getResourceAsStream(p)) { + try (var stream = CoroutineClassLoader.class.getResourceAsStream(p)) { var bytes = Objects.requireNonNull(stream).readAllBytes(); add(name, searchReplaceableMethods(bytes)); return customClazzMap.get(name); @@ -114,7 +114,7 @@ public class StateMachineClassLoader extends ClassLoader { return ClassFile.of(ClassFile.AttributesProcessingOption.PASS_ALL_ATTRIBUTES, ClassFile.StackMapsOption.STACK_MAPS_WHEN_REQUIRED).build(clm.thisClass().asSymbol(), cb -> { for (var ce : clm) { if (ce instanceof MethodModel mem && mem.code().isPresent()) { - StateMachineBuilder builder = builders + CoroutineBuilder builder = builders .getOrDefault( mem.methodTypeSymbol().returnType(), (_, _, _) -> null diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java index 71cb34b..9bbe8ed 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java @@ -16,7 +16,7 @@ public record Frame(FrameTracker.Type[] locals, FrameTracker.Type[] stack, int b + "]"; } - public void save_locals(StateMachineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int loc_off){ + public void save_locals(CoroutineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int loc_off){ int slot = 0; for (var entry : locals) { slot++;// <----- @@ -28,20 +28,20 @@ public record Frame(FrameTracker.Type[] locals, FrameTracker.Type[] stack, int b sst.save_local(smb, cob, entry.toCD(), slot - smb.paramSlotOff + loc_off - 1); //minus one cause increment before here } } - public void save_stack(StateMachineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int stack_off) { + public void save_stack(CoroutineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int stack_off) { for(int i = stack.length-1-stack_off; i >= 0; i --){ if(stack[i].isCategory2_2nd())continue; sst.save_stack(smb, cob, stack[i].toCD()); } } - public SavedStateTracker save(StateMachineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int loc_off, int stack_off) { + public SavedStateTracker save(CoroutineBuilder smb, CodeBuilder cob, SavedStateTracker sst, int loc_off, int stack_off) { save_locals(smb, cob, sst, loc_off); save_stack(smb, cob, sst, stack_off); return sst; } - public SavedStateTracker save(StateMachineBuilder smb, CodeBuilder cob, int loc_off, int stack_off) { + public SavedStateTracker save(CoroutineBuilder smb, CodeBuilder cob, int loc_off, int stack_off) { var sst = new SavedStateTracker(); return save(smb, cob, sst, loc_off, stack_off); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java index ead6041..9c7f9d0 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java @@ -7,7 +7,6 @@ import java.lang.classfile.attribute.StackMapFrameInfo; import java.lang.classfile.attribute.StackMapTableAttribute; import java.lang.classfile.instruction.*; import java.lang.constant.*; -import java.lang.reflect.AccessFlag; import java.util.*; import static java.lang.constant.ConstantDescs.*; @@ -30,7 +29,7 @@ public class FrameTracker { ITEM_LONG_2ND = 13, ITEM_DOUBLE_2ND = 14; - public static ArrayList frames(StateMachineBuilder smb, CodeModel src_com) { + public static ArrayList frames(CoroutineBuilder smb, CodeModel src_com) { var ft = new FrameTracker(smb, src_com); var frames = new ArrayList(); for(var coe : src_com){ @@ -163,7 +162,7 @@ public class FrameTracker { final ArrayList stack = new ArrayList<>(); final ArrayList locals = new ArrayList<>(); - final StateMachineBuilder smb; + final CoroutineBuilder smb; LineNumber current_line_number = null; int bci = 0; @@ -176,7 +175,7 @@ public class FrameTracker { final HashMap> annotationEndMap = new HashMap<>(); - FrameTracker(StateMachineBuilder smb, CodeModel com) { + FrameTracker(CoroutineBuilder smb, CodeModel com) { this.smb = smb; int offset = 0; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java index 12965e9..e5490be 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java @@ -18,18 +18,18 @@ public class SavedStateTracker { } - private String get_name(StateMachineBuilder smb, ClassDesc desc){ + private String get_name(CoroutineBuilder smb, ClassDesc desc){ var value = smb.lstate.stream() // find unused state .filter(v -> saved.stream().noneMatch(s -> s.name().equals(v.name()))) .filter(v -> v.cd().equals(desc)).findFirst(); if(value.isPresent()) return value.get().name(); - var name = StateMachineBuilder.LOCAL_PREFIX+smb.lstate.size(); - smb.lstate.add(new StateMachineBuilder.LState(name, desc)); + var name = CoroutineBuilder.LOCAL_PREFIX+smb.lstate.size(); + smb.lstate.add(new CoroutineBuilder.LState(name, desc)); return name; } - public SavedState save_stack(StateMachineBuilder smb, CodeBuilder cob, ClassDesc desc){ + public SavedState save_stack(CoroutineBuilder smb, CodeBuilder cob, ClassDesc desc){ var name = get_name(smb, desc); if(TypeKind.from(desc).slotSize()==2){ @@ -43,7 +43,7 @@ public class SavedStateTracker { return s; } - public SavedState save_local(StateMachineBuilder smb, CodeBuilder cob, ClassDesc desc, int slot){ + public SavedState save_local(CoroutineBuilder smb, CodeBuilder cob, ClassDesc desc, int slot){ var name = get_name(smb, desc); cob.aload(0).loadLocal(TypeKind.from(desc), slot).putfield(smb.CD_this, name, desc); @@ -63,7 +63,7 @@ public class SavedStateTracker { throw new RuntimeException(); } - public SavedStateTracker restore(StateMachineBuilder smb, CodeBuilder cob, SavedState s){ + public SavedStateTracker restore(CoroutineBuilder smb, CodeBuilder cob, SavedState s){ if(!saved.remove(s))throw new IllegalStateException(); switch(s){ case LocalState(var name, var desc, int slot) -> @@ -74,21 +74,21 @@ public class SavedStateTracker { return this; } - public void restore_stack(StateMachineBuilder smb, CodeBuilder cob){ + public void restore_stack(CoroutineBuilder smb, CodeBuilder cob){ for(int i = saved.size()-1; i >= 0; i --){ if(saved.get(i) instanceof StackState) restore(smb, cob, saved.get(i)); } } - public void restore_locals(StateMachineBuilder smb, CodeBuilder cob){ + public void restore_locals(CoroutineBuilder smb, CodeBuilder cob){ for(int i = saved.size()-1; i >= 0; i --){ if(saved.get(i) instanceof StackState) restore(smb, cob, saved.get(i)); } } - public void restore_all(StateMachineBuilder smb, CodeBuilder cob) { + public void restore_all(CoroutineBuilder smb, CodeBuilder cob) { while(!saved.isEmpty()) restore(smb, cob, saved.getLast()); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java index e6b8a4b..15733e4 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java @@ -2,6 +2,6 @@ package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; -public interface SpecialMethodBuilder> { +public interface SpecialMethodBuilder> { SpecialMethodHandler build(T smb, CodeBuilder cob, Frame frame, StateBuilder sb); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java index 09eb72c..2208b64 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java @@ -2,7 +2,7 @@ package com.parkertenbroeck.bcsm.loadtime; import java.lang.classfile.CodeBuilder; -public interface SpecialMethodHandler { +public interface SpecialMethodHandler { void build_prelude(T smb, CodeBuilder cob, Frame frame); default boolean removeCall() { diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java index 292513e..48454a9 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java @@ -12,8 +12,8 @@ public class StateBuilder { cob.labelBinding(label); } - public void setState(StateMachineBuilder smb, CodeBuilder cob){ - cob.aload(0).loadConstant(id).putfield(smb.CD_this, StateMachineBuilder.STATE_NAME, ConstantDescs.CD_int); + public void setState(CoroutineBuilder smb, CodeBuilder cob){ + cob.aload(0).loadConstant(id).putfield(smb.CD_this, CoroutineBuilder.STATE_NAME, ConstantDescs.CD_int); } } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java index 1cdc2b0..1ce1e52 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java @@ -11,7 +11,7 @@ import java.lang.reflect.Method; import java.util.*; import java.util.function.Consumer; -public class FutureSMBuilder extends StateMachineBuilder { +public class FutureSMBuilder extends CoroutineBuilder { public final static ClassDesc CD_Future = ClassDesc.ofDescriptor(Future.class.descriptorString()); public final static ClassDesc CD_Waker = ClassDesc.ofDescriptor(Waker.class.descriptorString()); diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java index 38a9702..7f565e5 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java @@ -9,7 +9,7 @@ import java.lang.constant.ConstantDescs; import java.lang.constant.MethodTypeDesc; import java.util.List; -public class GenSMBuilder extends StateMachineBuilder { +public class GenSMBuilder extends CoroutineBuilder { public final static ClassDesc CD_Gen = ClassDesc.ofDescriptor(Gen.class.descriptorString()); public final static ClassDesc CD_Res = ClassDesc.ofDescriptor(Gen.Res.class.descriptorString()); diff --git a/settings.gradle.kts b/settings.gradle.kts index e234720..c86935e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,5 +3,5 @@ plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0" } -rootProject.name = "generators" +rootProject.name = "coroutines" include("lib", "app") \ No newline at end of file From 3c59263a555e832af7fc744a0ea2bffb946df3c5 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 13 May 2026 08:56:07 -0400 Subject: [PATCH 4/5] moved to coroutines package --- app/src/main/java/basic/Futures.java | 3 --- app/src/main/java/basic/Gens.java | 2 +- app/src/main/java/basic/Main.java | 6 +++--- app/src/main/java/lexer/Lexer.java | 2 +- app/src/main/java/lexer/Main.java | 6 +++--- app/src/main/java/sockets/Main.java | 6 +++--- app/src/main/java/sockets/Sockets.java | 13 ++++++------- lib/build.gradle.kts | 2 +- .../async_runtime/AsyncExecutor.java | 2 +- .../{ => coroutines}/async_runtime/Delay.java | 6 +++--- .../{ => coroutines}/async_runtime/Jokio.java | 6 +++--- .../{ => coroutines}/async_runtime/Util.java | 5 ++--- .../{ => coroutines}/async_runtime/io/Readable.java | 4 ++-- .../async_runtime/io/SelectorThread.java | 2 +- .../{ => coroutines}/async_runtime/io/Writable.java | 4 ++-- .../{ => coroutines}/async_runtime/io/fs/File.java | 10 +++++----- .../async_runtime/io/net/DatagramSocket.java | 12 ++++++------ .../async_runtime/io/net/ServerSocket.java | 8 ++++---- .../async_runtime/io/net/Socket.java | 12 ++++++------ .../parkertenbroeck/{ => coroutines}/bcsm/RT.java | 4 ++-- .../bcsm/loadtime/CoroutineBuilder.java | 2 +- .../bcsm/loadtime/CoroutineClassLoader.java | 12 ++++++------ .../{ => coroutines}/bcsm/loadtime/Frame.java | 2 +- .../bcsm/loadtime/FrameTracker.java | 2 +- .../bcsm/loadtime/ParamConsumer.java | 2 +- .../bcsm/loadtime/ReplacementKind.java | 2 +- .../bcsm/loadtime/SavedStateTracker.java | 2 +- .../bcsm/loadtime/SpecialMethod.java | 2 +- .../bcsm/loadtime/SpecialMethodBuilder.java | 2 +- .../bcsm/loadtime/SpecialMethodHandler.java | 2 +- .../bcsm/loadtime/StateBuilder.java | 2 +- .../bcsm/loadtime/future/Cancellation.java | 2 +- .../bcsm/loadtime/future/FutureSMBuilder.java | 11 ++++++----- .../bcsm/loadtime/gen/GenSMBuilder.java | 7 ++++--- .../{ => coroutines}/future/Future.java | 2 +- .../{ => coroutines}/future/Waker.java | 2 +- .../{ => coroutines}/generator/Gen.java | 2 +- 37 files changed, 85 insertions(+), 88 deletions(-) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/AsyncExecutor.java (76%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/Delay.java (86%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/Jokio.java (96%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/Util.java (97%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/Readable.java (62%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/SelectorThread.java (96%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/Writable.java (62%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/fs/File.java (94%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/net/DatagramSocket.java (92%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/net/ServerSocket.java (89%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/async_runtime/io/net/Socket.java (91%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/RT.java (90%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/CoroutineBuilder.java (99%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/CoroutineClassLoader.java (94%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/Frame.java (97%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/FrameTracker.java (99%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/ParamConsumer.java (70%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/ReplacementKind.java (64%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/SavedStateTracker.java (98%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/SpecialMethod.java (75%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/SpecialMethodBuilder.java (79%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/SpecialMethodHandler.java (86%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/StateBuilder.java (94%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/future/Cancellation.java (78%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/future/FutureSMBuilder.java (97%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/bcsm/loadtime/gen/GenSMBuilder.java (95%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/future/Future.java (93%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/future/Waker.java (72%) rename lib/src/main/java/com/parkertenbroeck/{ => coroutines}/generator/Gen.java (92%) diff --git a/app/src/main/java/basic/Futures.java b/app/src/main/java/basic/Futures.java index f6e8491..79bf04d 100644 --- a/app/src/main/java/basic/Futures.java +++ b/app/src/main/java/basic/Futures.java @@ -1,7 +1,4 @@ package basic; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; - public class Futures { } diff --git a/app/src/main/java/basic/Gens.java b/app/src/main/java/basic/Gens.java index ae960db..799b70a 100644 --- a/app/src/main/java/basic/Gens.java +++ b/app/src/main/java/basic/Gens.java @@ -1,6 +1,6 @@ package basic; -import com.parkertenbroeck.generator.Gen; +import com.parkertenbroeck.coroutines.generator.Gen; public class Gens { public static Gen primes(){ diff --git a/app/src/main/java/basic/Main.java b/app/src/main/java/basic/Main.java index 3037dc9..86ae868 100644 --- a/app/src/main/java/basic/Main.java +++ b/app/src/main/java/basic/Main.java @@ -1,8 +1,8 @@ package basic; -import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; -import com.parkertenbroeck.generator.Gen; +import com.parkertenbroeck.coroutines.bcsm.RT; +import com.parkertenbroeck.coroutines.bcsm.loadtime.CoroutineClassLoader; +import com.parkertenbroeck.coroutines.generator.Gen; public class Main { public static void main(String[] args) { diff --git a/app/src/main/java/lexer/Lexer.java b/app/src/main/java/lexer/Lexer.java index 4458d0b..dac4ccd 100644 --- a/app/src/main/java/lexer/Lexer.java +++ b/app/src/main/java/lexer/Lexer.java @@ -1,6 +1,6 @@ package lexer; -import com.parkertenbroeck.generator.Gen; +import com.parkertenbroeck.coroutines.generator.Gen; public class Lexer { public sealed interface Token{} diff --git a/app/src/main/java/lexer/Main.java b/app/src/main/java/lexer/Main.java index ecf43c9..0024980 100644 --- a/app/src/main/java/lexer/Main.java +++ b/app/src/main/java/lexer/Main.java @@ -1,8 +1,8 @@ package lexer; -import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; +import com.parkertenbroeck.coroutines.generator.Gen; +import com.parkertenbroeck.coroutines.bcsm.RT; +import com.parkertenbroeck.coroutines.bcsm.loadtime.CoroutineClassLoader; public class Main { public static void main(String[] args) { diff --git a/app/src/main/java/sockets/Main.java b/app/src/main/java/sockets/Main.java index 3cbc958..c5d2483 100644 --- a/app/src/main/java/sockets/Main.java +++ b/app/src/main/java/sockets/Main.java @@ -1,8 +1,8 @@ package sockets; -import com.parkertenbroeck.async_runtime.Jokio; -import com.parkertenbroeck.bcsm.RT; -import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; +import com.parkertenbroeck.coroutines.async_runtime.Jokio; +import com.parkertenbroeck.coroutines.bcsm.RT; +import com.parkertenbroeck.coroutines.bcsm.loadtime.CoroutineClassLoader; public class Main { public static void main(String[] args) { diff --git a/app/src/main/java/sockets/Sockets.java b/app/src/main/java/sockets/Sockets.java index 4e08a63..a9bf745 100644 --- a/app/src/main/java/sockets/Sockets.java +++ b/app/src/main/java/sockets/Sockets.java @@ -1,12 +1,11 @@ package sockets; -import com.parkertenbroeck.async_runtime.Delay; -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.bcsm.loadtime.future.Cancellation; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.async_runtime.Delay; +import com.parkertenbroeck.coroutines.async_runtime.Jokio; +import com.parkertenbroeck.coroutines.async_runtime.io.net.ServerSocket; +import com.parkertenbroeck.coroutines.async_runtime.io.net.Socket; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.bcsm.loadtime.future.Cancellation; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index 1a77ebe..a96e912 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -1,5 +1,5 @@ version = "0.1.0" -group = "com.parkertenbroeck.generators" +group = "com.parkertenbroeck.coroutines" plugins { `java-library` diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/AsyncExecutor.java similarity index 76% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/AsyncExecutor.java index 20d48df..e7da6a6 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/AsyncExecutor.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/AsyncExecutor.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.async_runtime; +package com.parkertenbroeck.coroutines.async_runtime; import java.util.concurrent.Executors; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Delay.java similarity index 86% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Delay.java index a972cca..7f126e0 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/Delay.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Delay.java @@ -1,7 +1,7 @@ -package com.parkertenbroeck.async_runtime; +package com.parkertenbroeck.coroutines.async_runtime; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.util.Timer; import java.util.TimerTask; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/Jokio.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Jokio.java similarity index 96% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/Jokio.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Jokio.java index 504277e..50caf70 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/Jokio.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Jokio.java @@ -1,7 +1,7 @@ -package com.parkertenbroeck.async_runtime; +package com.parkertenbroeck.coroutines.async_runtime; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.util.ArrayDeque; import java.util.HashSet; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/Util.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Util.java similarity index 97% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/Util.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Util.java index 32ccfa4..9789c36 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/Util.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/Util.java @@ -1,9 +1,8 @@ -package com.parkertenbroeck.async_runtime; +package com.parkertenbroeck.coroutines.async_runtime; -import com.parkertenbroeck.future.Future; +import com.parkertenbroeck.coroutines.future.Future; import java.util.*; -import java.util.function.Function; public class Util { diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/Readable.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Readable.java similarity index 62% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/Readable.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Readable.java index c22f89d..4144855 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/Readable.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Readable.java @@ -1,6 +1,6 @@ -package com.parkertenbroeck.async_runtime.io; +package com.parkertenbroeck.coroutines.async_runtime.io; -import com.parkertenbroeck.future.Future; +import com.parkertenbroeck.coroutines.future.Future; import java.nio.ByteBuffer; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/SelectorThread.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/SelectorThread.java similarity index 96% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/SelectorThread.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/SelectorThread.java index 6cf42b9..b889f8c 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/SelectorThread.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/SelectorThread.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.async_runtime.io; +package com.parkertenbroeck.coroutines.async_runtime.io; import java.io.IOException; import java.nio.channels.*; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/Writable.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Writable.java similarity index 62% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/Writable.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Writable.java index e59caeb..b28a01d 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/Writable.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/Writable.java @@ -1,6 +1,6 @@ -package com.parkertenbroeck.async_runtime.io; +package com.parkertenbroeck.coroutines.async_runtime.io; -import com.parkertenbroeck.future.Future; +import com.parkertenbroeck.coroutines.future.Future; import java.nio.ByteBuffer; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/fs/File.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/fs/File.java similarity index 94% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/fs/File.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/fs/File.java index 2ee3b29..6b8384d 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/fs/File.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/fs/File.java @@ -1,9 +1,9 @@ -package com.parkertenbroeck.async_runtime.io.fs; +package com.parkertenbroeck.coroutines.async_runtime.io.fs; -import com.parkertenbroeck.async_runtime.io.Readable; -import com.parkertenbroeck.async_runtime.io.Writable; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.async_runtime.io.Readable; +import com.parkertenbroeck.coroutines.async_runtime.io.Writable; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.io.IOException; import java.nio.ByteBuffer; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/DatagramSocket.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/DatagramSocket.java similarity index 92% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/DatagramSocket.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/DatagramSocket.java index cfe8f1d..9c439c0 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/DatagramSocket.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/DatagramSocket.java @@ -1,10 +1,10 @@ -package com.parkertenbroeck.async_runtime.io.net; +package com.parkertenbroeck.coroutines.async_runtime.io.net; -import com.parkertenbroeck.async_runtime.io.Readable; -import com.parkertenbroeck.async_runtime.io.SelectorThread; -import com.parkertenbroeck.async_runtime.io.Writable; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.async_runtime.io.Readable; +import com.parkertenbroeck.coroutines.async_runtime.io.SelectorThread; +import com.parkertenbroeck.coroutines.async_runtime.io.Writable; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/ServerSocket.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/ServerSocket.java similarity index 89% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/ServerSocket.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/ServerSocket.java index 0eb407d..dcbfbd4 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/ServerSocket.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/ServerSocket.java @@ -1,8 +1,8 @@ -package com.parkertenbroeck.async_runtime.io.net; +package com.parkertenbroeck.coroutines.async_runtime.io.net; -import com.parkertenbroeck.async_runtime.io.SelectorThread; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.async_runtime.io.SelectorThread; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/Socket.java b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/Socket.java similarity index 91% rename from lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/Socket.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/Socket.java index ed34365..2ca26eb 100644 --- a/lib/src/main/java/com/parkertenbroeck/async_runtime/io/net/Socket.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/async_runtime/io/net/Socket.java @@ -1,10 +1,10 @@ -package com.parkertenbroeck.async_runtime.io.net; +package com.parkertenbroeck.coroutines.async_runtime.io.net; -import com.parkertenbroeck.async_runtime.io.Readable; -import com.parkertenbroeck.async_runtime.io.SelectorThread; -import com.parkertenbroeck.async_runtime.io.Writable; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; +import com.parkertenbroeck.coroutines.async_runtime.io.Readable; +import com.parkertenbroeck.coroutines.async_runtime.io.SelectorThread; +import com.parkertenbroeck.coroutines.async_runtime.io.Writable; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; import java.io.IOException; import java.net.InetSocketAddress; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/RT.java similarity index 90% rename from lib/src/main/java/com/parkertenbroeck/bcsm/RT.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/RT.java index af2bf76..fc57bc9 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/RT.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/RT.java @@ -1,7 +1,7 @@ -package com.parkertenbroeck.bcsm; +package com.parkertenbroeck.coroutines.bcsm; -import com.parkertenbroeck.bcsm.loadtime.CoroutineClassLoader; +import com.parkertenbroeck.coroutines.bcsm.loadtime.CoroutineClassLoader; import java.lang.reflect.Modifier; import java.util.Set; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineBuilder.java similarity index 99% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineBuilder.java index 5334129..cd4d02c 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.*; import java.lang.classfile.attribute.InnerClassInfo; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineClassLoader.java similarity index 94% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineClassLoader.java index 4a90214..6dfab24 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/CoroutineClassLoader.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/CoroutineClassLoader.java @@ -1,9 +1,9 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcsm.loadtime.future.FutureSMBuilder; -import com.parkertenbroeck.bcsm.loadtime.gen.GenSMBuilder; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.generator.Gen; +import com.parkertenbroeck.coroutines.bcsm.loadtime.future.FutureSMBuilder; +import com.parkertenbroeck.coroutines.bcsm.loadtime.gen.GenSMBuilder; import java.io.IOException; import java.lang.classfile.*; @@ -33,7 +33,7 @@ public class CoroutineClassLoader extends ClassLoader { } public static Config builtin(){ return empty() - .skip("java", "jdk", "jre", "com.parkertenbroeck.bcsm.loadtime") + .skip("java", "jdk", "jre", "com.parkertenbroeck.coroutines.bcsm.loadtime") .with(Future.class, FutureSMBuilder::new) .with(Gen.class, GenSMBuilder::new); } diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/Frame.java similarity index 97% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/Frame.java index 9bbe8ed..6132dbb 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/Frame.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/Frame.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.instruction.LineNumber; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/FrameTracker.java similarity index 99% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/FrameTracker.java index 9c7f9d0..32b2d61 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/FrameTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/FrameTracker.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.*; import java.lang.classfile.attribute.RuntimeInvisibleTypeAnnotationsAttribute; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ParamConsumer.java similarity index 70% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ParamConsumer.java index 5b749a8..7796795 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ParamConsumer.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ParamConsumer.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.constant.ClassDesc; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ReplacementKind.java similarity index 64% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ReplacementKind.java index 0accc63..cc71fe7 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/ReplacementKind.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/ReplacementKind.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; public enum ReplacementKind { ImmediateReplacingPop, diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SavedStateTracker.java similarity index 98% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SavedStateTracker.java index e5490be..81623c0 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SavedStateTracker.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SavedStateTracker.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.TypeKind; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethod.java similarity index 75% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethod.java index bfd1aa9..488d96c 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethod.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethod.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.constant.ClassDesc; import java.lang.constant.MethodTypeDesc; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodBuilder.java similarity index 79% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodBuilder.java index 15733e4..9af5641 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.CodeBuilder; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodHandler.java similarity index 86% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodHandler.java index 2208b64..b0187f9 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/SpecialMethodHandler.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/SpecialMethodHandler.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.CodeBuilder; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/StateBuilder.java similarity index 94% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/StateBuilder.java index 48454a9..72889e0 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/StateBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/StateBuilder.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime; +package com.parkertenbroeck.coroutines.bcsm.loadtime; import java.lang.classfile.CodeBuilder; import java.lang.classfile.Label; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/Cancellation.java similarity index 78% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/Cancellation.java index 97ef3b4..2f249d1 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/Cancellation.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/Cancellation.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.bcsm.loadtime.future; +package com.parkertenbroeck.coroutines.bcsm.loadtime.future; import java.lang.annotation.*; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/FutureSMBuilder.java similarity index 97% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/FutureSMBuilder.java index 1ce1e52..0358bda 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/future/FutureSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/future/FutureSMBuilder.java @@ -1,8 +1,9 @@ -package com.parkertenbroeck.bcsm.loadtime.future; +package com.parkertenbroeck.coroutines.bcsm.loadtime.future; -import com.parkertenbroeck.future.Future; -import com.parkertenbroeck.future.Waker; -import com.parkertenbroeck.bcsm.loadtime.*; +import com.parkertenbroeck.coroutines.bcsm.loadtime.*; +import com.parkertenbroeck.coroutines.future.Future; +import com.parkertenbroeck.coroutines.future.Waker; +import com.parkertenbroeck.coroutines.bcsm.loadtime.*; import java.lang.classfile.*; import java.lang.classfile.instruction.SwitchCase; @@ -26,7 +27,7 @@ public class FutureSMBuilder extends CoroutineBuilder { private final HashMap> cancellation_behavior = new HashMap<>(); - static class AwaitHandler implements SpecialMethodHandler{ + static class AwaitHandler implements SpecialMethodHandler { final StateBuilder.State awaiting; final Label save_label; final Label resume_inline; diff --git a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/gen/GenSMBuilder.java similarity index 95% rename from lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/gen/GenSMBuilder.java index 7f565e5..4970690 100644 --- a/lib/src/main/java/com/parkertenbroeck/bcsm/loadtime/gen/GenSMBuilder.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/bcsm/loadtime/gen/GenSMBuilder.java @@ -1,7 +1,8 @@ -package com.parkertenbroeck.bcsm.loadtime.gen; +package com.parkertenbroeck.coroutines.bcsm.loadtime.gen; -import com.parkertenbroeck.generator.Gen; -import com.parkertenbroeck.bcsm.loadtime.*; +import com.parkertenbroeck.coroutines.bcsm.loadtime.*; +import com.parkertenbroeck.coroutines.generator.Gen; +import com.parkertenbroeck.coroutines.bcsm.loadtime.*; import java.lang.classfile.*; import java.lang.constant.ClassDesc; diff --git a/lib/src/main/java/com/parkertenbroeck/future/Future.java b/lib/src/main/java/com/parkertenbroeck/coroutines/future/Future.java similarity index 93% rename from lib/src/main/java/com/parkertenbroeck/future/Future.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/future/Future.java index e16ca96..95b3b22 100644 --- a/lib/src/main/java/com/parkertenbroeck/future/Future.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/future/Future.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.future; +package com.parkertenbroeck.coroutines.future; public interface Future { diff --git a/lib/src/main/java/com/parkertenbroeck/future/Waker.java b/lib/src/main/java/com/parkertenbroeck/coroutines/future/Waker.java similarity index 72% rename from lib/src/main/java/com/parkertenbroeck/future/Waker.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/future/Waker.java index c4a2327..9aecc3b 100644 --- a/lib/src/main/java/com/parkertenbroeck/future/Waker.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/future/Waker.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.future; +package com.parkertenbroeck.coroutines.future; public interface Waker { diff --git a/lib/src/main/java/com/parkertenbroeck/generator/Gen.java b/lib/src/main/java/com/parkertenbroeck/coroutines/generator/Gen.java similarity index 92% rename from lib/src/main/java/com/parkertenbroeck/generator/Gen.java rename to lib/src/main/java/com/parkertenbroeck/coroutines/generator/Gen.java index 5bcaaa5..412b41b 100644 --- a/lib/src/main/java/com/parkertenbroeck/generator/Gen.java +++ b/lib/src/main/java/com/parkertenbroeck/coroutines/generator/Gen.java @@ -1,4 +1,4 @@ -package com.parkertenbroeck.generator; +package com.parkertenbroeck.coroutines.generator; public interface Gen { Res next(); From a733ac3d441ae50f35917f510625afdf0da47817 Mon Sep 17 00:00:00 2001 From: Parker TenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Wed, 13 May 2026 09:06:39 -0400 Subject: [PATCH 5/5] bump version --- README.md | 2 +- lib/build.gradle.kts | 2 +- settings.gradle.kts | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1ba9a56..82d059b 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ sourceControl { } // build.gradle.kts -implementation("com.parkertenbroeck.coroutines:lib:0.1.0") +implementation("com.parkertenbroeck.coroutines:lib:0.1.1") ``` This library requires the application be ran with a custom class loader, there is a utility provided to make this easier. diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index a96e912..d5ab84c 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -1,4 +1,4 @@ -version = "0.1.0" +version = "0.1.1" group = "com.parkertenbroeck.coroutines" plugins { diff --git a/settings.gradle.kts b/settings.gradle.kts index c86935e..e06a55c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,2 @@ -plugins { - // Apply the foojay-resolver plugin to allow automatic download of JDKs - id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0" -} - rootProject.name = "coroutines" include("lib", "app") \ No newline at end of file