From 5cc2a60c8c0963c79d1a4f8fdfaabbc5cf5886d1 Mon Sep 17 00:00:00 2001 From: Nocturn9x Date: Fri, 12 Nov 2021 17:47:11 +0100 Subject: [PATCH] Fixed many bugs in the serializer and added (de)serialization output to main.nim --- src/backend/serializer.nim | 20 ++++++++++++-------- src/main.nim | 27 +++++++++++++++++---------- src/util/debugger.nim | 2 +- 3 files changed, 30 insertions(+), 19 deletions(-) diff --git a/src/backend/serializer.nim b/src/backend/serializer.nim index 0a59a98..9d26526 100644 --- a/src/backend/serializer.nim +++ b/src/backend/serializer.nim @@ -43,6 +43,10 @@ type chunk*: Chunk +proc `$`*(self: Serialized): string = + result = &"Serialized(fileHash={self.fileHash}, version={self.japlVer.major}.{self.japlVer.minor}.{self.japlVer.patch}, branch={self.japlBranch}), commitHash={self.commitHash}, date={self.compileDate}, chunk={self.chunk[]}" + + proc error(self: Serializer, message: string) = ## Raises a formatted SerializationError exception raise newException(SerializationError, &"A fatal error occurred while serializing '{self.filename}' -> {message}") @@ -74,7 +78,7 @@ proc bytesToString(self: Serializer, input: seq[byte]): string = result.add(char(b)) -proc bytesToInt(self: Serializer, input: seq[byte]): int = +proc bytesToInt(self: Serializer, input: array[8, byte]): int = copyMem(result.addr, input.unsafeAddr, sizeof(int)) @@ -147,18 +151,18 @@ proc loadBytes*(self: Serializer, stream: seq[byte]): Serialized = try: if stream[0..\tInstruction :" + write stdout, &"DEBUG - Disassembler->\tInstruction: " printName(name) nl() return offset + 1