Skip to content

Commit c24e60e

Browse files
authored
Support pre 1.24 patches (#1193)
1 parent ad4b515 commit c24e60e

24 files changed

Lines changed: 615 additions & 217 deletions

de.peeeq.wurstscript/build.gradle

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,8 @@ dependencies {
109109
implementation 'com.github.albfernandez:juniversalchardet:2.4.0'
110110
implementation 'org.xerial:sqlite-jdbc:3.46.1.3'
111111
implementation 'com.github.inwc3:jmpq3:e28f6999c0'
112-
implementation 'com.github.inwc3:wc3libs:a69318d921'
113-
implementation 'com.github.wurstscript:wurst-project-config:2c7ccd1a5f'
114-
implementation('com.github.wurstscript:wurstsetup:393cf5ea39') {
115-
exclude group: 'org.eclipse.jgit', module: 'org.eclipse.jgit'
116-
exclude group: 'org.eclipse.jgit', module: 'org.eclipse.jgit.ssh.apache'
117-
}
112+
implementation 'com.github.inwc3:wc3libs:548f34a424'
113+
implementation 'com.github.wurstscript:wurst-project-config:348fcd4ef5'
118114
implementation 'org.slf4j:slf4j-api:2.0.17'
119115
implementation 'ch.qos.logback:logback-classic:1.5.20'
120116
testImplementation 'org.eclipse.jgit:org.eclipse.jgit:6.7.0.202309050840-r'
@@ -290,6 +286,55 @@ shadowJar {
290286
exclude 'it/unimi/dsi/fastutil/bytes/**'
291287
exclude 'it/unimi/dsi/fastutil/booleans/**'
292288
exclude 'it/unimi/dsi/fastutil/io/**'
289+
290+
// Within the kept objects/ints packages the compiler only uses the open-hash map/set, linked-open variants,
291+
// array list and FIFO queue for Object2Object, Object2Int, Reference2Object, Reference2Boolean and Int2Object.
292+
// Drop the rest (~4.6 MB): sorted (tree) maps, custom-hash maps, and the cross-primitive value families whose
293+
// value-type packages are already excluded above. If you start using another fastutil collection, remove the
294+
// matching exclude here.
295+
exclude 'it/unimi/dsi/fastutil/**/*AVLTreeMap*'
296+
exclude 'it/unimi/dsi/fastutil/**/*RBTreeMap*'
297+
exclude 'it/unimi/dsi/fastutil/**/*OpenCustomHashMap*'
298+
exclude 'it/unimi/dsi/fastutil/objects/Object2Double*'
299+
exclude 'it/unimi/dsi/fastutil/objects/Object2Float*'
300+
exclude 'it/unimi/dsi/fastutil/objects/Object2Long*'
301+
exclude 'it/unimi/dsi/fastutil/objects/Object2Short*'
302+
exclude 'it/unimi/dsi/fastutil/objects/Object2Byte*'
303+
exclude 'it/unimi/dsi/fastutil/objects/Object2Char*'
304+
exclude 'it/unimi/dsi/fastutil/objects/Object2Boolean*'
305+
exclude 'it/unimi/dsi/fastutil/objects/Object2Reference*'
306+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Double*'
307+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Float*'
308+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Long*'
309+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Short*'
310+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Byte*'
311+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Char*'
312+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Int*'
313+
exclude 'it/unimi/dsi/fastutil/objects/Reference2Reference*'
314+
exclude 'it/unimi/dsi/fastutil/ints/Int2Double*'
315+
exclude 'it/unimi/dsi/fastutil/ints/Int2Float*'
316+
exclude 'it/unimi/dsi/fastutil/ints/Int2Long*'
317+
exclude 'it/unimi/dsi/fastutil/ints/Int2Short*'
318+
exclude 'it/unimi/dsi/fastutil/ints/Int2Byte*'
319+
exclude 'it/unimi/dsi/fastutil/ints/Int2Char*'
320+
exclude 'it/unimi/dsi/fastutil/ints/Int2Boolean*'
321+
exclude 'it/unimi/dsi/fastutil/ints/Int2Int*'
322+
exclude 'it/unimi/dsi/fastutil/ints/Int2Reference*'
323+
324+
// sqlite-jdbc bundles ~13.5 MB of native libs for 24 platforms. The compiler needs Java (64-bit only), so keep
325+
// only the desktop platforms it actually runs on (Windows/macOS/Linux on x86_64 + aarch64, incl. Apple Silicon)
326+
// and drop the rest (~10 MB saved). Keep this list in sync if sqlite-jdbc adds platforms.
327+
exclude 'org/sqlite/native/FreeBSD/**'
328+
exclude 'org/sqlite/native/Linux-Android/**'
329+
exclude 'org/sqlite/native/Linux-Musl/**'
330+
exclude 'org/sqlite/native/Linux/ppc64/**'
331+
exclude 'org/sqlite/native/Linux/riscv64/**'
332+
exclude 'org/sqlite/native/Linux/arm/**'
333+
exclude 'org/sqlite/native/Linux/armv6/**'
334+
exclude 'org/sqlite/native/Linux/armv7/**'
335+
exclude 'org/sqlite/native/Linux/x86/**'
336+
exclude 'org/sqlite/native/Windows/armv7/**'
337+
exclude 'org/sqlite/native/Windows/x86/**'
293338
}
294339

295340
def fatJar = shadowJar.archiveFile.map { it.asFile }

de.peeeq.wurstscript/deploy.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ tasks.register("jlinkRuntime25", Exec) {
178178
"--no-header-files",
179179
"--no-man-pages",
180180
"--strip-debug",
181-
"--compress=zip-6",
181+
"--compress=zip-9",
182182
"--output", outDir.absolutePath
183183
}
184184
}

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/CompilationProcess.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package de.peeeq.wurstio;
22

3-
import config.WurstProjectConfigData;
3+
import org.wurstscript.projectconfig.WurstProjectConfigData;
44
import de.peeeq.wurstio.languageserver.requests.RunTests;
55
import de.peeeq.wurstio.mpq.MpqEditor;
66
import de.peeeq.wurstio.utils.FileUtils;
@@ -85,7 +85,7 @@ public CompilationProcess(WurstGui gui, RunArgs runArgs) {
8585
() -> runTests(compiler.getImTranslator(), compiler, runArgs.getTestTimeout(), runArgs.getTestFilter()));
8686
}
8787

88-
timeTaker.measure("Run compiletime functions", () ->compiler.runCompiletime(new WurstProjectConfigData(), isProd, false));
88+
timeTaker.measure("Run compiletime functions", () ->compiler.runCompiletime(WurstProjectConfigData.empty(), isProd, false));
8989

9090
JassProg jassProg = timeTaker.measure("Transform program to Jass",
9191
compiler::transformProgToJass);
@@ -107,7 +107,7 @@ public CompilationProcess(WurstGui gui, RunArgs runArgs) {
107107
File outputMapscript = timeTaker.measure("Print Jass",
108108
() -> writeMapscript(mapScript));
109109

110-
if (!runArgs.isDisablePjass()) {
110+
if (!runArgs.isDisablePjass() && !runArgs.isLegacyJassTypeChecks()) {
111111
boolean pjassError = timeTaker.measure("Run PJass",
112112
() -> runPjass(outputMapscript));
113113
if (pjassError) return null;

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/CompiletimeFunctionRunner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.google.common.collect.LinkedListMultimap;
55
import com.google.common.collect.Lists;
66
import com.google.common.collect.Maps;
7-
import config.WurstProjectConfigData;
7+
import org.wurstscript.projectconfig.WurstProjectConfigData;
88
import de.peeeq.wurstio.intermediateLang.interpreter.CompiletimeNatives;
99
import de.peeeq.wurstio.intermediateLang.interpreter.ProgramStateIO;
1010
import de.peeeq.wurstio.jassinterpreter.InterpreterException;

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/Main.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
import com.google.common.base.Charsets;
44
import com.google.common.io.Files;
5-
import config.WurstProjectConfig;
6-
import config.WurstProjectConfigData;
5+
import org.wurstscript.projectconfig.WurstProjectConfigData;
6+
import org.wurstscript.projectconfig.WurstProjectConfigReader;
77
import de.peeeq.wurstio.compilationserver.WurstServer;
88
import de.peeeq.wurstio.gui.AboutDialog;
99
import de.peeeq.wurstio.gui.WurstGuiImpl;
@@ -124,7 +124,7 @@ public static void main(String[] args) {
124124
if (runArgs.isBuild() && runArgs.getInputmap() != null && workspaceroot != null) {
125125
Path root = Paths.get(workspaceroot);
126126
Path inputMap = root.resolve(runArgs.getInputmap());
127-
WurstProjectConfigData projectConfig = WurstProjectConfig.INSTANCE.loadProject(root.resolve(FILE_NAME));
127+
WurstProjectConfigData projectConfig = WurstProjectConfigReader.load(root.resolve(FILE_NAME));
128128
if (java.nio.file.Files.exists(inputMap) && projectConfig != null) {
129129
CliBuildMap cliBuildMap = new CliBuildMap(
130130
WFile.create(root.toFile()),

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/WurstCompilerJassImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.google.common.collect.Maps;
77
import com.google.common.collect.Sets;
88
import com.google.common.io.Files;
9-
import config.WurstProjectConfigData;
9+
import org.wurstscript.projectconfig.WurstProjectConfigData;
1010
import de.peeeq.wurstio.languageserver.requests.RequestFailedException;
1111
import de.peeeq.wurstio.map.importer.ImportFile;
1212
import de.peeeq.wurstio.mpq.MpqEditor;
@@ -81,7 +81,7 @@ public WurstCompilerJassImpl(TimeTaker timeTaker, @Nullable File projectFolder,
8181
this.runArgs = runArgs;
8282
this.errorHandler = new ErrorHandler(gui);
8383
this.parser = new WurstParser(errorHandler, gui);
84-
this.checker = new WurstChecker(gui, errorHandler);
84+
this.checker = new WurstChecker(gui, errorHandler, runArgs.isLegacyJassTypeChecks());
8585
this.mapFileMpq = mapFileMpq;
8686
}
8787

de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/intermediateLang/interpreter/CompiletimeNatives.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package de.peeeq.wurstio.intermediateLang.interpreter;
22

33

4-
import config.WurstProjectConfigData;
4+
import org.wurstscript.projectconfig.WurstProjectConfigData;
55
import de.peeeq.wurstio.jassinterpreter.InterpreterException;
66
import de.peeeq.wurstio.jassinterpreter.ReflectionBasedNativeProvider;
77
import de.peeeq.wurstio.objectreader.ObjectHelper;
@@ -175,7 +175,7 @@ public void compileError(ILconstString msg) {
175175
}
176176

177177
public ILconstString getMapName() {
178-
return new ILconstString(projectConfigData.getBuildMapData().getName());
178+
return new ILconstString(projectConfigData.buildMapData().name());
179179
}
180180

181181
public ILconstString getBuildDate() {

0 commit comments

Comments
 (0)