aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/backends/cranelift
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/shedlang/compiler/backends/cranelift')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/cranelift/CraneliftBackend.java15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/cranelift/CraneliftBackend.java b/src/main/java/org/shedlang/compiler/backends/cranelift/CraneliftBackend.java
index 75794092..31fdb1af 100644
--- a/src/main/java/org/shedlang/compiler/backends/cranelift/CraneliftBackend.java
+++ b/src/main/java/org/shedlang/compiler/backends/cranelift/CraneliftBackend.java
@@ -1,18 +1,17 @@
package org.shedlang.compiler.backends.cranelift;
-import com.google.flatbuffers.FlatBufferBuilder;
import org.pcollections.PVector;
import org.shedlang.compiler.backends.Backend;
import org.shedlang.compiler.backends.PatioBackends;
import org.shedlang.compiler.backends.llvm.LlvmBackend;
-import org.shedlang.compiler.backends.targets.NativeTarget;
import org.shedlang.compiler.backends.paths.PartialTargetPath;
import org.shedlang.compiler.backends.paths.TargetDir;
+import org.shedlang.compiler.backends.targets.NativeTarget;
import org.shedlang.compiler.config.ProfileConfig;
import org.shedlang.compiler.config.ProjectConfig;
import org.shedlang.compiler.filesystem.ShedCompilerFiles;
import org.shedlang.compiler.patio.PatioCompilationUnit;
-import org.shedlang.compiler.patio.serialization.PatioToFlatbuffers;
+import org.shedlang.compiler.patio.serialization.PatioToTransient0;
import org.shedlang.compiler.runtime.ShedRuntime;
import org.shedlang.compiler.shid.ShidNamespace;
import org.shedlang.compiler.typechecker.TypeInfos;
@@ -20,6 +19,7 @@ import org.shedlang.compiler.types.NamespaceName;
import org.shedlang.compiler.util.P;
import org.shedlang.compiler.util.processes.ProcessError;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -62,14 +62,11 @@ public class CraneliftBackend implements Backend {
Optional<String> mainFunctionName,
PartialTargetPath partialTargetPath
) throws IOException, InterruptedException {
- var fbsBuilder = new FlatBufferBuilder();
- var compilationUnitOffset = PatioToFlatbuffers.serializeCompilationUnit(fbsBuilder, patio);
- fbsBuilder.finish(compilationUnitOffset);
-
- // TODO: avoid the copy
var patioPath = partialTargetPath.withExtension(".patio");
Files.createDirectories(patioPath.getParent());
- Files.write(patioPath, fbsBuilder.sizedByteArray());
+ try (var outputStream = new FileOutputStream(patioPath.toFile())) {
+ PatioToTransient0.serializeCompilationUnit(patio, outputStream);
+ }
var patioToCraneliftArgs = new ArrayList<String>();
patioToCraneliftArgs.add(