diff --git a/licence.txt b/licence.txt index 21f82d4..c9ca5f0 100644 --- a/licence.txt +++ b/licence.txt @@ -22,4 +22,3 @@ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTE HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/nx01-jpp-base/pom.xml b/nx01-jpp-base/pom.xml index 21ab6e5..2ff8541 100644 --- a/nx01-jpp-base/pom.xml +++ b/nx01-jpp-base/pom.xml @@ -4,10 +4,14 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-jpp-base + + love.distributedrebirth.nx01 + nx01-jpp-klass-nether + love.distributedrebirth.nx01 nx01-x4o-fc18 diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java index 47620fd..2613740 100644 --- a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java +++ b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java @@ -38,9 +38,11 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public class BabelTest { // ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.xxx - // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ - // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᒼᑋᐤᣗᑊᐣ - // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒃᐤᣕᓫ.ᣖᑊᣗᣔᐪᓫ.ᒃᐤᣔᐪ + // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ(8 times 2^6+2^6+2^6+2^9+2^6+2^6+2^6+2^6+2^6+2^6+2^9 = 12800 interface + mutex + etc) + // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᒼᑋᐤᣗᑊᐣ (SKIP-JAVA4?: REDO 8 times 3 chords of 2^18 tree slug size + file groupings) + // = 8*3*(2^18) = 6_291_456 is above default jvm max class limit + // implement as group marker interface to readout relative distance to marker root + // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒃᐤᣕᓫ.ᣖᑊᣗᣔᐪᓫ.ᒃᐤᣔᐪs // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒃᐤᣕᓫ.ᣘᒻᓫᔆᑋ.ᣔᔿᔿᐤ // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒼᣔᑊᑉᓫ.ᐪᣔᔆᐪᓫ // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒻᐤᣔᑊᐣᓫᣗ @@ -53,6 +55,11 @@ public class BabelTest { // ᒢᐩᐩ.ᐪᓫᕽᐪ.ᔆᐪᣗᑊᣕᕐ.ᓑᣕᣳᒼᐤᒄᓫ // ᒢᐩᐩ.ᐪᓫᕽᐪ.ᒄᓫᣕᐪᣔᒻ.ᒻᑊᣕᕐᓑᣔ (#interfaces; ~31K + file groupings) // ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᒃᣔᔆᓫᑊᐣ (#interfaces; 2304 + 2_655_360 + file groupings) + // - real enum terminator set is from FC18 (FCFlameNumberGram.java) + // - bone based terminators up to PIG size 2304 (after 99% of JPP code comes from nether generate on use) + // - virtual terminator from nether chord group selector slug path is 2^18 bit pie part values + // - extended virtual pie slice terminators of nether is thus 8 times 2^18 + // ^^ for java3, in java4 100% of runtime+libs is generated per method, so only code which is used. // ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ // ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᒻᓫᕐᐤ.ᒢᓫᑊᐣᑊ (+JediTempleBase256InfinityZero redo generics-tree from LegoᐧBrickᐧTapeᐧRecorderᐧχ3 ?) // ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᒻᓫᕐᐤ.ᒼᓑᣗᘁᓫ.ᐪᣗᓫᕁ diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java index 5c28fb8..eee4c6f 100644 --- a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java +++ b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/EclipseTest.java @@ -27,6 +27,7 @@ package ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ; +import java.lang.module.ModuleDescriptor; import java.text.NumberFormat; import java.text.ParseException; import java.util.Locale; @@ -45,6 +46,16 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public class EclipseTest { + @Test + public void testChinaDotModVersion() throws IllegalArgumentException, IllegalAccessException, NoSuchFieldException { + ModuleDescriptor.Version.parse("1.2.3-SNAPSHOT"); + Assertions.assertThrows(IllegalArgumentException.class, () -> { + ModuleDescriptor.Version.parse("〇一。壬寅。一〄-SNAPSHOT"); + }); + ModuleDescriptor.Version v = ModuleDescriptor.Version.parse("5786.SHEVAT〄.1-SNAPSHOT"); + System.out.println("version=" + v); + } + // ======================================================= // Case X: Add @Deprecated on String::codePointAt(int idx) diff --git a/nx01-jpp-klass-nether/pom.xml b/nx01-jpp-klass-nether/pom.xml new file mode 100644 index 0000000..4d930ea --- /dev/null +++ b/nx01-jpp-klass-nether/pom.xml @@ -0,0 +1,85 @@ + + 4.0.0 + + love.distributedrebirth.nx01 + nx01 + 5786.SHEVAT〄.1-SNAPSHOT + + nx01-jpp-klass-nether + + + org.junit.jupiter + junit-jupiter + test + + + love.distributedrebirth.nx01 + nx01-kode-gen + test + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + process-sources + + add-source + + + + ${project.build.directory}/generated-sources/ + + + + + + + + + + nx01-jpp-klass-nether-generate + + + + target/generated-sources.hash + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + nx01-generate-nether + + run + + process-resources + + + NX01: Generating nether tones + + + + + + + NX01: Done nether + + + + + + + + + + diff --git a/nx01-jpp-klass-nether/src/main/java/module-info.java b/nx01-jpp-klass-nether/src/main/java/module-info.java new file mode 100644 index 0000000..17a3b1d --- /dev/null +++ b/nx01-jpp-klass-nether/src/main/java/module-info.java @@ -0,0 +1,33 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/// The nether tone tree slug index. +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +module jpp.klass.nether { + +} diff --git a/nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java b/nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java new file mode 100644 index 0000000..4dfcece --- /dev/null +++ b/nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java @@ -0,0 +1,126 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; + +import java.util.ArrayList; +import java.util.List; + +/// Nether tone slug view record. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public record NetherToneSlugView( + int ag1, + int ag2, + int ag3, + int bl0w, + int cr1, + int cr2, + int cr3, + int db1, + int db2, + int db3, + int er0w + ) { + + public List> toNetherTones(int idx) { + Class qClass = qClass(idx); + List> result = new ArrayList<>(11); + for (int i = 0; i < 11; i++) { + Class subClass = qClass.getPermittedSubclasses()[i]; + Class[] valueClasses = subClass.getPermittedSubclasses(); + result.add(switch (i) { + case 0: yield valueClasses[ag1]; + case 1: yield valueClasses[ag2]; + case 2: yield valueClasses[ag3]; + case 3: yield valueClasses[bl0w]; + case 4: yield valueClasses[cr1]; + case 5: yield valueClasses[cr2]; + case 6: yield valueClasses[cr3]; + case 7: yield valueClasses[db1]; + case 8: yield valueClasses[db2]; + case 9: yield valueClasses[db3]; + case 10: yield valueClasses[er0w]; + default: + throw new IllegalArgumentException("Unexpected value: " + i); + }); + } + return result; + } + + // TODO: idx = 0 = Q1 = maybe enum + static private Class qClass(int idx) { + if (idx < 0) { + throw new IllegalArgumentException("Negative Q index: " + idx); + } + if (idx >= 8) { + throw new IllegalArgumentException("Outside octal Q space boundry: " + idx); + } + return NetherTone.class.getPermittedSubclasses()[idx]; + } + + static NetherToneSlugView ofQSluq(int idx, Class q) { + Class qClass = qClass(idx); + int[] d = new int[11]; + int dataIdx = 0; + for (Class subClass : qClass.getPermittedSubclasses()) { + boolean hasValue = false; + Class[] valueClasses = subClass.getPermittedSubclasses(); + for (int i = 0; i < valueClasses.length; i++) { + Class valueClass = valueClasses[i]; + if (valueClass.isAssignableFrom(q)) { + hasValue = true; + d[dataIdx] = i; + dataIdx++; + break; + } + } + if (!hasValue) { + throw new IllegalArgumentException("missing Q value in nether space of: " + subClass); + } + } + return new NetherToneSlugView(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10]); + } + + static boolean slugPresent(int idx, Class q) { + Class qClass = qClass(idx); + for (Class subClass : qClass.getPermittedSubclasses()) { + boolean hasValue = false; + for (Class valueClass : subClass.getPermittedSubclasses()) { + if (valueClass.isAssignableFrom(q)) { + hasValue = true; + break; + } + } + if (!hasValue) { + return false; + } + } + return true; + } +} diff --git a/nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java b/nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java new file mode 100644 index 0000000..e5bd526 --- /dev/null +++ b/nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java @@ -0,0 +1,97 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; + +import java.util.List; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1BL0W; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1ER0W; + +public class NetherToneSlugViewTest { + + private interface Q1SlugExample extends + ᐊQ1AG1.ᐅ001, + ᐊQ1AG2.ᐅ002, + ᐊQ1AG3.ᐅ003, + ᐊQ1BL0W.ᐅ004, + ᐊQ1CR1.ᐅ005, + ᐊQ1CR2.ᐅ006, + ᐊQ1CR3.ᐅ007, + ᐊQ1DB1.ᐅ008, + ᐊQ1DB2.ᐅ009, + ᐊQ1DB3.ᐅ010, + ᐊQ1ER0W.ᐅ011 + { + } + + private interface Q1SlugExampleErr extends + ᐊQ1AG1.ᐅ001, + ᐊQ1AG2.ᐅ002 + { + } + + @Test + public void testSlugViewErr() { + Assertions.assertThrows(IllegalArgumentException.class, () -> { + NetherToneSlugView.ofQSluq(0, Q1SlugExampleErr.class); + }); + Assertions.assertFalse(NetherToneSlugView.slugPresent(0, Q1SlugExampleErr.class)); + } + + @Test + public void testSlugViewParse() { + NetherToneSlugView slug = NetherToneSlugView.ofQSluq(0, Q1SlugExample.class); + Assertions.assertNotNull(slug); + Assertions.assertEquals(0, slug.ag1()); + Assertions.assertEquals(1, slug.ag2()); + Assertions.assertEquals(2, slug.ag3()); + } + + @Test + public void testSlugViewDecompose() { + NetherToneSlugView slug = NetherToneSlugView.ofQSluq(0, Q1SlugExample.class); + Assertions.assertNotNull(slug); + List> result = slug.toNetherTones(0); + Assertions.assertNotNull(result); + Assertions.assertEquals(ᐊQ1AG1.ᐅ001.class, result.get(0)); + Assertions.assertEquals(ᐊQ1AG2.ᐅ002.class, result.get(1)); + Assertions.assertEquals(ᐊQ1AG3.ᐅ003.class, result.get(2)); + } +} diff --git a/nx01-king-java3/pom.xml b/nx01-king-java3/pom.xml index 4253a4d..effc407 100644 --- a/nx01-king-java3/pom.xml +++ b/nx01-king-java3/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-king-java3 diff --git a/nx01-king-java3c/pom.xml b/nx01-king-java3c/pom.xml index 592b03c..f18645c 100644 --- a/nx01-king-java3c/pom.xml +++ b/nx01-king-java3c/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-king-java3c diff --git a/nx01-king-java3do/pom.xml b/nx01-king-java3do/pom.xml index e892ffe..09d20f1 100644 --- a/nx01-king-java3do/pom.xml +++ b/nx01-king-java3do/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-king-java3do diff --git a/nx01-king-java3doc/pom.xml b/nx01-king-java3doc/pom.xml index 1a640bd..ba62559 100644 --- a/nx01-king-java3doc/pom.xml +++ b/nx01-king-java3doc/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-king-java3doc diff --git a/nx01-king-java3seed/pom.xml b/nx01-king-java3seed/pom.xml index 04ac200..4120f0f 100644 --- a/nx01-king-java3seed/pom.xml +++ b/nx01-king-java3seed/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-king-java3seed diff --git a/nx01-kode-gen/pom.xml b/nx01-kode-gen/pom.xml new file mode 100644 index 0000000..0749c4e --- /dev/null +++ b/nx01-kode-gen/pom.xml @@ -0,0 +1,10 @@ + + 4.0.0 + + love.distributedrebirth.nx01 + nx01 + 5786.SHEVAT〄.1-SNAPSHOT + + nx01-kode-gen + \ No newline at end of file diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java new file mode 100644 index 0000000..868763e --- /dev/null +++ b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java @@ -0,0 +1,180 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package love.distributedrebirth.nx01.kode.generator; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Stream; + +import love.distributedrebirth.nx01.kode.generator.klass.ModelKlass; +import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; + +/// Generated the nether tone interface tree forest. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public class GenerateNetherTone { + + private final static String SERIAL_VERSON_ID = "11"; + + public static void main(String[] args) throws IOException { + List argu = Arrays.asList(args); + GenerateNetherTone gen = new GenerateNetherTone(); + boolean writeToFile = argu.contains("generate"); + if (argu.contains("based")) { + gen.updateBased(writeToFile); + } else { + System.err.println("No command given."); + } + } + + private void updateBased(boolean writeToFile) throws IOException { + Path hashFile = new File("target/generated-sources.hash").toPath(); + if (hashFile.toFile().exists()) { + String hash = Files.readString(hashFile); + if (SERIAL_VERSON_ID.equals(hash)) { + System.out.println("SKIPPED: Generated source are up to date"); + return; + } + } + Files.writeString(hashFile, SERIAL_VERSON_ID); + + ModelKlassWriter writer = new ModelKlassWriter("target/generated-sources"); + writer.setProlog(new File("../licence.txt")); + + buildQuadrants(writer, 1, "ᐧᐧᐧ"); + buildQuadrants(writer, 2, "ᐧᐧᣟ"); + buildQuadrants(writer, 3, "ᐧᣟᐧ"); + buildQuadrants(writer, 4, "ᐧᣟᣟ"); + buildQuadrants(writer, 5, "ᣟᐧᐧ"); + buildQuadrants(writer, 6, "ᣟᐧᣟ"); + buildQuadrants(writer, 7, "ᣟᣟᐧ"); + buildQuadrants(writer, 8, "ᣟᣟᣟ"); + + createNetherQuadrant(writer, "NetherTone", "NetherToneQ", false); + + // write all sources to files or stdout + writer.write(writeToFile); + } + + private void buildQuadrants(ModelKlassWriter writer, int quadrant, String s) { + String q = "ᐊQ" + quadrant; + String e = "NetherToneQ" + quadrant; + + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "BL0W", "ᐅ", 512, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "BL0W")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "ER0W", "ᐅ", 512, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "ER0W")); + + createNetherQuadrant(writer, e, q, true); // permits all above + } + + private ModelKlass buildNetherTreeMutex(String subPackage, String javaName) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ." + subPackage, javaName + "Mutex"); + StringBuilder buf = klass.getBody(); + buf.append("interface "); + buf.append(klass.getJavaName()); + buf.append(" {\n"); + buf.append("}\n"); + return klass; + } + + private ModelKlass buildNetherTreeSlug(String subPackage, String javaName, String slugName, int slugSize, String quadrant) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ." + subPackage, javaName); + klass.addJavaImport("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ."+quadrant); + StringBuilder buf = klass.getBody(); + buf.append("public sealed interface "); + buf.append(klass.getJavaName()); + buf.append(" extends "); + buf.append(quadrant); + buf.append(" {\n"); + for (int i = 1 ; i <= slugSize; i++) { + String partCode = String.format("%03d", i); + String clsBase = slugName + partCode + " extends " + klass.getJavaName(); + String clsMutexExt = ", " + javaName + "Mutex<" + slugName + partCode + ">"; + buf.append("\tnon-sealed interface "+clsBase+clsMutexExt+" {}\n"); + } + buf.append("}\n"); + return klass; + } + + private void createNetherQuadrant(ModelKlassWriter writer, String javaName, String javaSearch, boolean child) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ", javaName); + StringBuilder buf = klass.getBody(); + buf.append("public sealed interface "); + buf.append(klass.getJavaName()); + if (child) { + buf.append(" extends NetherTone"); + } + buf.append(" permits\n"); + Stream f = writer.getModelKlasses().stream().filter(v -> !v.getJavaName().contains("Mutex")).filter(v -> v.getJavaName().contains(javaSearch)); + for (Iterator i = f.iterator(); i.hasNext() ;) { + ModelKlass mk = i.next(); + if (child) { + klass.addJavaImport(mk.getJavaPackage() + "." + mk.getJavaName()); + } + buf.append("\t"); + buf.append(mk.getJavaName()); + if (i.hasNext()) { + buf.append(",\n"); + } else { + buf.append("\n"); + } + } + buf.append("\t{\n"); + buf.append("}\n"); + writer.addModelKlass(klass); + } +} diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlass.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlass.java new file mode 100644 index 0000000..b78b4e1 --- /dev/null +++ b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlass.java @@ -0,0 +1,93 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package love.distributedrebirth.nx01.kode.generator.klass; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/// Java model klass. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public class ModelKlass { + + private final File javaFile; + private final String javaPackage; + private final String javaName; + private final List javaDescriptions; + private final List javaImports; + private final StringBuilder body; + + public ModelKlass(String javaPackage, String javaName) { + this.javaPackage = Objects.requireNonNull(javaPackage); + this.javaName = Objects.requireNonNull(javaName); + this.javaDescriptions = new ArrayList<>(); + String packageFolder = javaPackage.replaceAll("\\.", "/"); + String filePath = packageFolder + "/" + javaName + ".java"; + this.javaFile = new File(filePath); + this.javaImports = new ArrayList<>(); + this.body = new StringBuilder(); + } + + public File getJavaFile() { + return javaFile; + } + + public void addJavaImport(String javaKlass) { + if (javaImports.contains(javaKlass)) { + return; + } + javaImports.add(javaKlass); + } + + public List getJavaImports() { + return javaImports; + } + + public String getJavaPackage() { + return javaPackage; + } + + public String getJavaName() { + return javaName; + } + + public void addJavaDescription(String javaDescription) { + javaDescriptions.add(javaDescription); + } + + public List getJavaDescriptions() { + return javaDescriptions; + } + + public StringBuilder getBody() { + return body; + } +} diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java new file mode 100644 index 0000000..08ca244 --- /dev/null +++ b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java @@ -0,0 +1,132 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package love.distributedrebirth.nx01.kode.generator.klass; + +import java.io.File; +import java.io.IOException; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Objects; + +/// Java klass model writer. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public class ModelKlassWriter { + + private final List klasses = new ArrayList<>(); + private File prolog; + private Path outputPath; + + public ModelKlassWriter(String outputPath) { + this.outputPath = FileSystems.getDefault().getPath(Objects.requireNonNull(outputPath)); + } + + public void setProlog(File prolog) { + this.prolog = prolog; + } + + public List getModelKlasses() { + return klasses; + } + + public void addModelKlass(ModelKlass klass) { + klasses.add(Objects.requireNonNull(klass)); + } + + public void write(boolean writeFile) throws IOException { + if (writeFile) { + if (!outputPath.toFile().exists()) { + outputPath.toFile().mkdirs(); + } + } + for (ModelKlass klass : klasses) { + String content = writeKlass(klass); + if (writeFile) { + Path outFile = outputPath.resolve(klass.getJavaFile().toPath()); + outFile.toFile().getParentFile().mkdirs(); + outFile.toFile().createNewFile(); + Files.writeString(outFile, content); + System.out.println("Wrote file: " + klass.getJavaFile()); + } else { + System.out.println("Debug file: " + klass.getJavaFile()); + System.out.println(content); + } + } + } + + private String writeKlass(ModelKlass klass) throws IOException { + StringBuilder buf = new StringBuilder(); + writeKlassProlog(buf); + writeKlassHeader(buf, klass); + buf.append(klass.getBody()); + return buf.toString(); + } + + private void writeKlassProlog(StringBuilder buf) throws IOException { + if (prolog == null) { + return; + } + if (!prolog.canRead()) { + return; + } + List prologLines = Files.readAllLines(prolog.toPath()); + buf.append("/*\n"); + for (Iterator i = prologLines.iterator(); i.hasNext() ;) { + buf.append(" * "); + buf.append(i.next()); + buf.append("\n"); + } + buf.append(" */\n"); + buf.append("\n"); + } + + private void writeKlassHeader(StringBuilder buf, ModelKlass klass) throws IOException { + buf.append("package "); + buf.append(klass.getJavaPackage()); + buf.append(";\n"); + buf.append("\n"); + for (String javaImport : klass.getJavaImports()) { + buf.append("import "); + buf.append(javaImport); + buf.append(";\n"); + } + buf.append("\n"); + for (String javaDescription : klass.getJavaDescriptions()) { + buf.append("/// "); + buf.append(javaDescription); + buf.append("\n"); + } + buf.append("/// @author للَّٰهِilLצسُو\n"); + buf.append("/// @version ©Δ∞ 仙上主天\n"); + } +} diff --git a/nx01-mushroom-mais-duytsdoc/pom.xml b/nx01-mushroom-mais-duytsdoc/pom.xml index 7b1fbd3..25b630c 100644 --- a/nx01-mushroom-mais-duytsdoc/pom.xml +++ b/nx01-mushroom-mais-duytsdoc/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-mushroom-mais-duytsdoc diff --git a/nx01-mushroom-mais-fc18/pom.xml b/nx01-mushroom-mais-fc18/pom.xml index 80e9939..28ebcc8 100644 --- a/nx01-mushroom-mais-fc18/pom.xml +++ b/nx01-mushroom-mais-fc18/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-mushroom-mais-fc18 diff --git a/nx01-mushroom-mais-mm/pom.xml b/nx01-mushroom-mais-mm/pom.xml index 92f3fa5..2388b1e 100644 --- a/nx01-mushroom-mais-mm/pom.xml +++ b/nx01-mushroom-mais-mm/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-mushroom-mais-mm diff --git a/nx01-mushroom-mais/pom.xml b/nx01-mushroom-mais/pom.xml index 84946ec..a41ec61 100644 --- a/nx01-mushroom-mais/pom.xml +++ b/nx01-mushroom-mais/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-mushroom-mais diff --git a/nx01-no2all-nostr/pom.xml b/nx01-no2all-nostr/pom.xml index 280d3a3..9923d69 100644 --- a/nx01-no2all-nostr/pom.xml +++ b/nx01-no2all-nostr/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-nostr diff --git a/nx01-no2all-react-nostr/pom.xml b/nx01-no2all-react-nostr/pom.xml index b89721f..98fe0e7 100644 --- a/nx01-no2all-react-nostr/pom.xml +++ b/nx01-no2all-react-nostr/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-react-nostr diff --git a/nx01-no2all-react-wire/pom.xml b/nx01-no2all-react-wire/pom.xml index 5df3ddb..d22674f 100644 --- a/nx01-no2all-react-wire/pom.xml +++ b/nx01-no2all-react-wire/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-react-wire diff --git a/nx01-no2all-wire-jetty/pom.xml b/nx01-no2all-wire-jetty/pom.xml index 3f2e341..69c6062 100644 --- a/nx01-no2all-wire-jetty/pom.xml +++ b/nx01-no2all-wire-jetty/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-wire-jetty diff --git a/nx01-no2all-wire-jre/pom.xml b/nx01-no2all-wire-jre/pom.xml index 7d109e3..9920389 100644 --- a/nx01-no2all-wire-jre/pom.xml +++ b/nx01-no2all-wire-jre/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-wire-jre diff --git a/nx01-no2all-wire-ojw/pom.xml b/nx01-no2all-wire-ojw/pom.xml index 30bb01a..7ed5073 100644 --- a/nx01-no2all-wire-ojw/pom.xml +++ b/nx01-no2all-wire-ojw/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-wire-ojw diff --git a/nx01-no2all-wire/pom.xml b/nx01-no2all-wire/pom.xml index 4a28806..ca4d3c0 100644 --- a/nx01-no2all-wire/pom.xml +++ b/nx01-no2all-wire/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-no2all-wire diff --git a/nx01-poop-scripts/pom.xml b/nx01-poop-scripts/pom.xml index 30f7ea3..5d1411a 100644 --- a/nx01-poop-scripts/pom.xml +++ b/nx01-poop-scripts/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-poop-scripts pom @@ -131,7 +131,7 @@ - + @@ -142,42 +142,42 @@ - + - + - + - + - + - + @@ -185,7 +185,7 @@ - + diff --git a/nx01-redsea-hyper-local/pom.xml b/nx01-redsea-hyper-local/pom.xml index e41a8f7..cad9ca9 100644 --- a/nx01-redsea-hyper-local/pom.xml +++ b/nx01-redsea-hyper-local/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-redsea-hyper-local diff --git a/nx01-redsea-hyper-nostr/pom.xml b/nx01-redsea-hyper-nostr/pom.xml index 9bb9c75..6a61cbc 100644 --- a/nx01-redsea-hyper-nostr/pom.xml +++ b/nx01-redsea-hyper-nostr/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-redsea-hyper-nostr diff --git a/nx01-redsea-hyper/pom.xml b/nx01-redsea-hyper/pom.xml index 0c2b1fa..4ca30df 100644 --- a/nx01-redsea-hyper/pom.xml +++ b/nx01-redsea-hyper/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-redsea-hyper diff --git a/nx01-redsea-jdatstart/pom.xml b/nx01-redsea-jdatstart/pom.xml index 14fa6a9..3c7a38c 100644 --- a/nx01-redsea-jdatstart/pom.xml +++ b/nx01-redsea-jdatstart/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-redsea-jdatstart diff --git a/nx01-redsea/pom.xml b/nx01-redsea/pom.xml index d5c9270..7a2259d 100644 --- a/nx01-redsea/pom.xml +++ b/nx01-redsea/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-redsea diff --git a/nx01-warp-core/pom.xml b/nx01-warp-core/pom.xml index 145b387..3e94e64 100644 --- a/nx01-warp-core/pom.xml +++ b/nx01-warp-core/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-warp-core diff --git a/nx01-warp-fault/pom.xml b/nx01-warp-fault/pom.xml index a2755d9..e3728fd 100644 --- a/nx01-warp-fault/pom.xml +++ b/nx01-warp-fault/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-warp-fault diff --git a/nx01-warp-manifestor/pom.xml b/nx01-warp-manifestor/pom.xml index b2da0fc..1eb0268 100644 --- a/nx01-warp-manifestor/pom.xml +++ b/nx01-warp-manifestor/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-warp-manifestor diff --git a/nx01-x4o-driver/pom.xml b/nx01-x4o-driver/pom.xml index 76e0338..eb42ad9 100644 --- a/nx01-x4o-driver/pom.xml +++ b/nx01-x4o-driver/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-driver diff --git a/nx01-x4o-fc18/pom.xml b/nx01-x4o-fc18/pom.xml index 61c4658..8e7604c 100644 --- a/nx01-x4o-fc18/pom.xml +++ b/nx01-x4o-fc18/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-fc18 diff --git a/nx01-x4o-maisdoc/pom.xml b/nx01-x4o-maisdoc/pom.xml index a3e9774..2fef169 100644 --- a/nx01-x4o-maisdoc/pom.xml +++ b/nx01-x4o-maisdoc/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-maisdoc diff --git a/nx01-x4o-sax3/pom.xml b/nx01-x4o-sax3/pom.xml index a79da02..9e130cc 100644 --- a/nx01-x4o-sax3/pom.xml +++ b/nx01-x4o-sax3/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-sax3 diff --git a/nx01-x4o-tool-ant-plugin/pom.xml b/nx01-x4o-tool-ant-plugin/pom.xml index f594faa..3daf8d2 100644 --- a/nx01-x4o-tool-ant-plugin/pom.xml +++ b/nx01-x4o-tool-ant-plugin/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-tool-ant-plugin diff --git a/nx01-x4o-tool-maven-plugin/pom.xml b/nx01-x4o-tool-maven-plugin/pom.xml index 44cef79..2a9bb71 100644 --- a/nx01-x4o-tool-maven-plugin/pom.xml +++ b/nx01-x4o-tool-maven-plugin/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-x4o-tool-maven-plugin maven-plugin diff --git a/nx01-zerofungus-server/pom.xml b/nx01-zerofungus-server/pom.xml index dec12c3..af7329c 100644 --- a/nx01-zerofungus-server/pom.xml +++ b/nx01-zerofungus-server/pom.xml @@ -4,7 +4,7 @@ love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT nx01-zerofungus-server diff --git a/pom.xml b/pom.xml index 28bede8..a8e18b7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,10 +4,11 @@ 4.0.0 love.distributedrebirth.nx01 nx01 - 〇一。壬寅。一〄-SNAPSHOT + 5786.SHEVAT〄.1-SNAPSHOT pom NX01 + true UTF-8 25 11.0.24 @@ -55,6 +56,8 @@ nx01-x4o-tool-ant-plugin nx01-x4o-tool-maven-plugin nx01-zerofungus-server + nx01-kode-gen + nx01-jpp-klass-nether @@ -118,11 +121,6 @@ bcprov-jdk18on 1.73 - - org.java-websocket - Java-WebSocket - 1.5.3 - jakarta.json jakarta.json-api @@ -259,6 +257,11 @@ nx01-jpp-base ${project.version} + + love.distributedrebirth.nx01 + nx01-jpp-klass-nether + ${project.version} + love.distributedrebirth.nx01 nx01-king-java3 @@ -284,6 +287,11 @@ nx01-king-java3seed ${project.version} + + love.distributedrebirth.nx01 + nx01-kode-gen + ${project.version} + love.distributedrebirth.nx01 nx01-mushroom-mais @@ -501,6 +509,11 @@ maven-gpg-plugin 3.2.4 + + org.codehaus.mojo + build-helper-maven-plugin + 3.6.1 + diff --git a/src/site/wigiti/README-no2lingua.md b/src/site/wigiti/README-no2lingua.md index 6aaf912..1e92e32 100644 --- a/src/site/wigiti/README-no2lingua.md +++ b/src/site/wigiti/README-no2lingua.md @@ -201,18 +201,26 @@ Four N2L binary tree slugs deep. 4 x 144 = 576 bit N2L Search request domain - QUADRANT 仙: red 666-9-666-666-9 + blue 666-9-666-666-9 - QUADRANT 上: red 666-9-666-666-9 + blue 666-9-666-666-9 - QUADRANT 主: red 666-9-666-666-9 + blue 666-9-666-666-9 - QUADRANT 天: red 666-9-666-666-9 + blue 666-9-666-666-9 + QUADRANT 仙: Q1=666-9-666-666-9 + Q2=666-9-666-666-9 + QUADRANT 上: Q3=666-9-666-666-9 + Q4=666-9-666-666-9 + QUADRANT 主: Q5=666-9-666-666-9 + Q6=666-9-666-666-9 + QUADRANT 天: Q7=666-9-666-666-9 + Q8=666-9-666-666-9 Sea it as the simple variant of the 8D 7HFF pie hyper cube galactic coordinate system, and we mentats count in trits; - QUADRANT 仙: red 222-3-222-222-3 + blue 222-3-222-222-3 - QUADRANT 上: red 222-3-222-222-3 + blue 222-3-222-222-3 - QUADRANT 主: red 222-3-222-222-3 + blue 222-3-222-222-3 - QUADRANT 天: red 222-3-222-222-3 + blue 222-3-222-222-3 + QUADRANT 仙: Q1=222-3-222-222-3 + Q2=222-3-222-222-3 + QUADRANT 上: Q3=222-3-222-222-3 + Q4=222-3-222-222-3 + QUADRANT 主: Q5=222-3-222-222-3 + Q6=222-3-222-222-3 + QUADRANT 天: Q7=222-3-222-222-3 + Q8=222-3-222-222-3 + +Naming slug radicals; + + old: ---- + becomes nether tone; + ag1,ag2,ag3,bl0w,cr1,cr2,cr3,db1,db2,db3,er0w + aliased nether chords; + ---- ## N2L TreeKey Font diff --git a/src/site/wigiti/rfc/rfc-bimbamboo.md b/src/site/wigiti/rfc/rfc-bimbamboo.md index 29ecdd1..3e6d6e8 100644 --- a/src/site/wigiti/rfc/rfc-bimbamboo.md +++ b/src/site/wigiti/rfc/rfc-bimbamboo.md @@ -47,7 +47,9 @@ SNAPSHOT RELEASE = BIM BAM BOM POM POOP ## BimBamBoo -The chinees version of bipolar semver, with no zero; +The chinees version of bipolar semver, with no zero; +(note1: java9++ module version has hard check on digit for first char) +(note2: java mod and maven don't read the china dot(。) so use latin for now) CYCLE_LUNICN_CNN_FORMAT = CYCLE_LUNICN_CNC_FORMAT =