Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 51 additions & 6 deletions de.peeeq.wurstscript/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,8 @@ dependencies {
implementation 'com.github.albfernandez:juniversalchardet:2.4.0'
implementation 'org.xerial:sqlite-jdbc:3.46.1.3'
implementation 'com.github.inwc3:jmpq3:e28f6999c0'
implementation 'com.github.inwc3:wc3libs:a69318d921'
implementation 'com.github.wurstscript:wurst-project-config:2c7ccd1a5f'
implementation('com.github.wurstscript:wurstsetup:393cf5ea39') {
exclude group: 'org.eclipse.jgit', module: 'org.eclipse.jgit'
exclude group: 'org.eclipse.jgit', module: 'org.eclipse.jgit.ssh.apache'
}
implementation 'com.github.inwc3:wc3libs:548f34a424'
implementation 'com.github.wurstscript:wurst-project-config:348fcd4ef5'
implementation 'org.slf4j:slf4j-api:2.0.17'
implementation 'ch.qos.logback:logback-classic:1.5.20'
testImplementation 'org.eclipse.jgit:org.eclipse.jgit:6.7.0.202309050840-r'
Expand Down Expand Up @@ -290,6 +286,55 @@ shadowJar {
exclude 'it/unimi/dsi/fastutil/bytes/**'
exclude 'it/unimi/dsi/fastutil/booleans/**'
exclude 'it/unimi/dsi/fastutil/io/**'

// Within the kept objects/ints packages the compiler only uses the open-hash map/set, linked-open variants,
// array list and FIFO queue for Object2Object, Object2Int, Reference2Object, Reference2Boolean and Int2Object.
// Drop the rest (~4.6 MB): sorted (tree) maps, custom-hash maps, and the cross-primitive value families whose
// value-type packages are already excluded above. If you start using another fastutil collection, remove the
// matching exclude here.
exclude 'it/unimi/dsi/fastutil/**/*AVLTreeMap*'
exclude 'it/unimi/dsi/fastutil/**/*RBTreeMap*'
exclude 'it/unimi/dsi/fastutil/**/*OpenCustomHashMap*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Double*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Float*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Long*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Short*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Byte*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Char*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Boolean*'
exclude 'it/unimi/dsi/fastutil/objects/Object2Reference*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Double*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Float*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Long*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Short*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Byte*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Char*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Int*'
exclude 'it/unimi/dsi/fastutil/objects/Reference2Reference*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Double*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Float*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Long*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Short*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Byte*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Char*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Boolean*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Int*'
exclude 'it/unimi/dsi/fastutil/ints/Int2Reference*'

// sqlite-jdbc bundles ~13.5 MB of native libs for 24 platforms. The compiler needs Java (64-bit only), so keep
// only the desktop platforms it actually runs on (Windows/macOS/Linux on x86_64 + aarch64, incl. Apple Silicon)
// and drop the rest (~10 MB saved). Keep this list in sync if sqlite-jdbc adds platforms.
exclude 'org/sqlite/native/FreeBSD/**'
exclude 'org/sqlite/native/Linux-Android/**'
exclude 'org/sqlite/native/Linux-Musl/**'
exclude 'org/sqlite/native/Linux/ppc64/**'
exclude 'org/sqlite/native/Linux/riscv64/**'
exclude 'org/sqlite/native/Linux/arm/**'
exclude 'org/sqlite/native/Linux/armv6/**'
exclude 'org/sqlite/native/Linux/armv7/**'
exclude 'org/sqlite/native/Linux/x86/**'
exclude 'org/sqlite/native/Windows/armv7/**'
exclude 'org/sqlite/native/Windows/x86/**'
}

def fatJar = shadowJar.archiveFile.map { it.asFile }
Expand Down
2 changes: 1 addition & 1 deletion de.peeeq.wurstscript/deploy.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ tasks.register("jlinkRuntime25", Exec) {
"--no-header-files",
"--no-man-pages",
"--strip-debug",
"--compress=zip-6",
"--compress=zip-9",
"--output", outDir.absolutePath
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package de.peeeq.wurstio;

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

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

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

if (!runArgs.isDisablePjass()) {
if (!runArgs.isDisablePjass() && !runArgs.isLegacyJassTypeChecks()) {
boolean pjassError = timeTaker.measure("Run PJass",
() -> runPjass(outputMapscript));
if (pjassError) return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import config.WurstProjectConfigData;
import org.wurstscript.projectconfig.WurstProjectConfigData;
import de.peeeq.wurstio.intermediateLang.interpreter.CompiletimeNatives;
import de.peeeq.wurstio.intermediateLang.interpreter.ProgramStateIO;
import de.peeeq.wurstio.jassinterpreter.InterpreterException;
Expand Down
6 changes: 3 additions & 3 deletions de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.google.common.base.Charsets;
import com.google.common.io.Files;
import config.WurstProjectConfig;
import config.WurstProjectConfigData;
import org.wurstscript.projectconfig.WurstProjectConfigData;
import org.wurstscript.projectconfig.WurstProjectConfigReader;
import de.peeeq.wurstio.compilationserver.WurstServer;
import de.peeeq.wurstio.gui.AboutDialog;
import de.peeeq.wurstio.gui.WurstGuiImpl;
Expand Down Expand Up @@ -124,7 +124,7 @@ public static void main(String[] args) {
if (runArgs.isBuild() && runArgs.getInputmap() != null && workspaceroot != null) {
Path root = Paths.get(workspaceroot);
Path inputMap = root.resolve(runArgs.getInputmap());
WurstProjectConfigData projectConfig = WurstProjectConfig.INSTANCE.loadProject(root.resolve(FILE_NAME));
WurstProjectConfigData projectConfig = WurstProjectConfigReader.load(root.resolve(FILE_NAME));
if (java.nio.file.Files.exists(inputMap) && projectConfig != null) {
CliBuildMap cliBuildMap = new CliBuildMap(
WFile.create(root.toFile()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.google.common.io.Files;
import config.WurstProjectConfigData;
import org.wurstscript.projectconfig.WurstProjectConfigData;
import de.peeeq.wurstio.languageserver.requests.RequestFailedException;
import de.peeeq.wurstio.map.importer.ImportFile;
import de.peeeq.wurstio.mpq.MpqEditor;
Expand Down Expand Up @@ -81,7 +81,7 @@ public WurstCompilerJassImpl(TimeTaker timeTaker, @Nullable File projectFolder,
this.runArgs = runArgs;
this.errorHandler = new ErrorHandler(gui);
this.parser = new WurstParser(errorHandler, gui);
this.checker = new WurstChecker(gui, errorHandler);
this.checker = new WurstChecker(gui, errorHandler, runArgs.isLegacyJassTypeChecks());
this.mapFileMpq = mapFileMpq;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package de.peeeq.wurstio.intermediateLang.interpreter;


import config.WurstProjectConfigData;
import org.wurstscript.projectconfig.WurstProjectConfigData;
import de.peeeq.wurstio.jassinterpreter.InterpreterException;
import de.peeeq.wurstio.jassinterpreter.ReflectionBasedNativeProvider;
import de.peeeq.wurstio.objectreader.ObjectHelper;
Expand Down Expand Up @@ -175,7 +175,7 @@ public void compileError(ILconstString msg) {
}

public ILconstString getMapName() {
return new ILconstString(projectConfigData.getBuildMapData().getName());
return new ILconstString(projectConfigData.buildMapData().name());
}

public ILconstString getBuildDate() {
Expand Down
Loading
Loading