From 96f37727b02653bd3795e805d27c2763ade2ae8a Mon Sep 17 00:00:00 2001
From: Robert-M-Lucas <100799838+Robert-M-Lucas@users.noreply.github.com>
Date: Wed, 7 Aug 2024 19:09:54 +0100
Subject: [PATCH] Updated packages
---
.idea/workspace.xml | 30 +-
Cargo.lock | 53 +-
Cargo.toml | 4 +-
build/out.asm | 702 +++++++++++------------
build/out.o | Bin 4688 -> 4688 bytes
build/out.out | Bin 18224 -> 18224 bytes
src/root/name_resolver/name_resolvers.rs | 7 +-
src/root/shared/common.rs | 19 +-
8 files changed, 415 insertions(+), 400 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 199d854..dbf0992 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,8 +7,10 @@
-
-
+
+
+
+
@@ -274,15 +276,7 @@
-
-
-
-
- 1718805301324
-
-
-
- 1718805301324
+
@@ -668,7 +662,15 @@
1723051436594
-
+
+
+ 1723053543861
+
+
+
+ 1723053543861
+
+
@@ -725,7 +727,6 @@
-
@@ -750,7 +751,8 @@
-
+
+
diff --git a/Cargo.lock b/Cargo.lock
index bcf9d9f..88ca92a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -153,15 +153,18 @@ checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
[[package]]
name = "convert_case"
-version = "0.4.0"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
+dependencies = [
+ "unicode-segmentation",
+]
[[package]]
name = "derive-getters"
-version = "0.4.0"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a6433aac097572ea8ccc60b3f2e756c661c9aeed9225cdd4d0cb119cb7ff6ba"
+checksum = "74ef43543e701c01ad77d3a5922755c6a1d71b22d942cb8042be4994b380caff"
dependencies = [
"proc-macro2",
"quote",
@@ -170,15 +173,24 @@ dependencies = [
[[package]]
name = "derive_more"
-version = "0.99.18"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
+checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
- "rustc_version",
"syn",
+ "unicode-xid",
]
[[package]]
@@ -322,15 +334,6 @@ dependencies = [
"proc-macro2",
]
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
[[package]]
name = "rustversion"
version = "1.0.17"
@@ -346,12 +349,6 @@ dependencies = [
"winapi-util",
]
-[[package]]
-name = "semver"
-version = "1.0.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
-
[[package]]
name = "strsim"
version = "0.11.1"
@@ -433,6 +430,18 @@ version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+[[package]]
+name = "unicode-segmentation"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
+
[[package]]
name = "unique-type-id"
version = "1.3.0"
diff --git a/Cargo.toml b/Cargo.toml
index 266c40d..7af9d22 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -21,8 +21,8 @@ nom = "7.1.3"
nom_locate = "4.2.0"
nom-supreme = "0.8.0"
substring = "1.4.5"
-derive-getters = "0.4.0"
-derive_more = "0.99.18"
+derive-getters = "0.5.0"
+derive_more = { version = "1.0.0", features = ["full"]}
termsize = "0.1.9"
num-format = "0.4.4"
diff --git a/build/out.asm b/build/out.asm
index e4f34d8..8a2000f 100644
--- a/build/out.asm
+++ b/build/out.asm
@@ -2,6 +2,124 @@
section .text
+main:
+ push rbp
+ mov rbp, rsp
+ sub rsp, 0x0000000000000018
+ call _10
+ add rsp, 0x0000000000000018
+ mov rax, qword [rbp-24]
+ mov qword [rbp-8], rax
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-32], rax
+ mov qword [rbp-40], 12
+ mov rax, qword [rbp-40]
+ mov qword [rbp-64], rax
+ mov rax, qword [rbp-32]
+ mov qword [rbp-72], rax
+ sub rsp, 0x0000000000000048
+ call _11
+ add rsp, 0x0000000000000048
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-64], rax
+ mov qword [rbp-72], 7
+ mov rax, qword [rbp-72]
+ mov qword [rbp-96], rax
+ mov rax, qword [rbp-64]
+ mov qword [rbp-104], rax
+ sub rsp, 0x0000000000000068
+ call _11
+ add rsp, 0x0000000000000068
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-96], rax
+ mov qword [rbp-104], 8
+ mov rax, qword [rbp-104]
+ mov qword [rbp-128], rax
+ mov rax, qword [rbp-96]
+ mov qword [rbp-136], rax
+ sub rsp, 0x0000000000000088
+ call _11
+ add rsp, 0x0000000000000088
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-128], rax
+ mov rax, qword [rbp-128]
+ mov qword [rbp-136], rax
+ sub rsp, 0x0000000000000088
+ call _14
+ add rsp, 0x0000000000000088
+ mov rdi, __42_fstr
+ mov al, 0
+ sub rsp, 128
+ extern printf
+ call printf
+ add rsp, 128
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-144], rax
+ mov qword [rbp-152], 1
+ mov rax, qword [rbp-152]
+ mov qword [rbp-176], rax
+ mov rax, qword [rbp-144]
+ mov qword [rbp-184], rax
+ sub rsp, 0x00000000000000b8
+ call _12
+ add rsp, 0x00000000000000b8
+ mov rax, qword [rbp-168]
+ mov qword [rbp-136], rax
+ mov rdi, __8_fstr
+ mov rsi, [rbp-136]
+ mov al, 0
+ sub rsp, 168
+ extern printf
+ call printf
+ add rsp, 168
+ mov rdi, __42_fstr
+ mov al, 0
+ sub rsp, 168
+ extern printf
+ call printf
+ add rsp, 168
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-184], rax
+ mov rax, qword [rbp-184]
+ mov qword [rbp-200], rax
+ sub rsp, 0x00000000000000c8
+ call _13
+ add rsp, 0x00000000000000c8
+ mov rax, qword [rbp-192]
+ mov qword [rbp-176], rax
+ mov rdi, __8_fstr
+ mov rsi, [rbp-176]
+ mov al, 0
+ sub rsp, 192
+ extern printf
+ call printf
+ add rsp, 192
+ mov rdi, __42_fstr
+ mov al, 0
+ sub rsp, 192
+ extern printf
+ call printf
+ add rsp, 192
+ mov rax, rbp
+ add rax, 0xfffffffffffffff8
+ mov qword [rbp-200], rax
+ mov rax, qword [rbp-200]
+ mov qword [rbp-208], rax
+ sub rsp, 0x00000000000000d0
+ call _14
+ add rsp, 0x00000000000000d0
+ mov qword [rbp-208], 8
+ mov rax, qword [rbp-208]
+ leave
+ ret
+
+
_19:
push rbp
mov rbp, rsp
@@ -26,22 +144,22 @@ _19:
mov qword [rbp-26], rax
mov rax, qword [rbp-26]
cmp rax, 0
- jz __36_28
+ jz __36_6
mov byte [rbp-18], 0
- jmp __36_29
- __36_28:
+ jmp __36_7
+ __36_6:
mov byte [rbp-18], 1
- __36_29:
+ __36_7:
mov al, byte [rbp-18]
cmp al, 0
- jz __23_30
+ jz __23_8
mov byte [rbp-17], 0
- jmp __23_31
- __23_30:
+ jmp __23_9
+ __23_8:
mov byte [rbp-17], 1
- __23_31:
+ __23_9:
cmp byte [rbp-17], 0
- jz _19_32
+ jz _19_10
mov rax, [rbp+16]
add rax, 0x0000000000000008
mov qword [rbp-42], rax
@@ -53,76 +171,17 @@ _19:
sub rsp, 0x000000000000003a
call _19
add rsp, 0x000000000000003a
- _19_33:
- _19_32:
+ _19_11:
+ _19_10:
leave
ret
-_10:
- push rbp
- mov rbp, rsp
- mov qword [rbp+16], 0
- leave
- ret
-
-
-_17:
+_18:
push rbp
mov rbp, rsp
- mov rax, qword [rbp+24]
- mov qword [rbp-9], rax
- mov qword [rbp-17], 0
- mov rax, qword [rbp-9]
- cmp rax, qword [rbp-17]
- jz __16_6
- mov byte [rbp-1], 0
- jmp __16_7
- __16_6:
- mov byte [rbp-1], 1
- __16_7:
- cmp byte [rbp-1], 0
- jz _17_8
- mov rax, [rbp+16]
- add rax, 0x0000000000000000
- mov qword [rbp-25], rax
- mov rdx, qword [rbp-25]
- mov rax, qword [rdx+0]
- mov qword [rbp+32], rax
- leave
- ret
- _17_9:
- _17_8:
mov rax, [rbp+16]
add rax, 0x0000000000000008
- mov qword [rbp-25], rax
- mov rdx, qword [rbp-25]
- mov rax, qword [rdx+0]
- mov qword [rbp-33], rax
- mov rax, qword [rbp+24]
- mov qword [rbp-49], rax
- mov qword [rbp-57], 1
- mov rax, qword [rbp-49]
- sub rax, qword [rbp-57]
- mov qword [rbp-41], rax
- mov rax, qword [rbp-41]
- mov qword [rbp-81], rax
- mov rax, qword [rbp-33]
- mov qword [rbp-89], rax
- sub rsp, 0x0000000000000059
- call _17
- add rsp, 0x0000000000000059
- mov rax, qword [rbp-73]
- mov qword [rbp+32], rax
- leave
- ret
-
-
-_13:
- push rbp
- mov rbp, rsp
- mov rax, [rbp+16]
- add rax, 0x0000000000000000
mov qword [rbp-17], rax
mov rdx, qword [rbp-17]
mov rax, qword [rdx+0]
@@ -135,16 +194,16 @@ _13:
mov qword [rbp-9], rax
mov rax, qword [rbp-9]
cmp rax, 0
- jz __36_10
+ jz __36_30
mov byte [rbp-1], 0
- jmp __36_11
- __36_10:
+ jmp __36_31
+ __36_30:
mov byte [rbp-1], 1
- __36_11:
+ __36_31:
cmp byte [rbp-1], 0
- jz _13_12
+ jz _18_32
mov rax, [rbp+16]
- add rax, 0x0000000000000000
+ add rax, 0x0000000000000008
mov qword [rbp-49], rax
mov rdx, qword [rbp-49]
mov rax, qword [rdx+0]
@@ -156,7 +215,7 @@ _13:
mov rax, qword [rdx+0]
mov qword [rbp-41], rax
mov rax, [rbp+16]
- add rax, 0x0000000000000000
+ add rax, 0x0000000000000008
mov qword [rbp-81], rax
mov rdx, qword [rbp-81]
mov rax, qword [rdx+0]
@@ -167,7 +226,7 @@ _13:
call free
add rsp, 81
mov rax, [rbp+16]
- add rax, 0x0000000000000000
+ add rax, 0x0000000000000008
mov qword [rbp-89], rax
mov qword [rbp-97], 0
mov rdx, qword [rbp-89]
@@ -177,10 +236,10 @@ _13:
mov qword [rbp+24], rax
leave
ret
- _13_13:
- _13_12:
+ _18_33:
+ _18_32:
mov rax, [rbp+16]
- add rax, 0x0000000000000000
+ add rax, 0x0000000000000008
mov qword [rbp-41], rax
mov rdx, qword [rbp-41]
mov rax, qword [rdx+0]
@@ -196,6 +255,29 @@ _13:
ret
+_15:
+ push rbp
+ mov rbp, rsp
+ mov rax, qword [rbp+16]
+ mov qword [rbp-16], rax
+ mov qword [rbp-8], 0
+ mov rdi, 16
+ sub rsp, 16
+ extern malloc
+ call malloc
+ add rsp, 16
+ mov qword [rbp-24], rax
+ mov rdx, qword [rbp-24]
+ mov rax, qword [rbp-16]
+ mov qword [rdx+0], rax
+ mov rax, qword [rbp-8]
+ mov qword [rdx+8], rax
+ mov rax, qword [rbp-24]
+ mov qword [rbp+24], rax
+ leave
+ ret
+
+
_12:
push rbp
mov rbp, rsp
@@ -220,80 +302,167 @@ _12:
ret
-_18:
+_11:
push rbp
mov rbp, rsp
mov rax, [rbp+16]
- add rax, 0x0000000000000008
+ add rax, 0x0000000000000000
mov qword [rbp-17], rax
mov rdx, qword [rbp-17]
mov rax, qword [rdx+0]
- mov qword [rbp-25], rax
- mov rax, [rbp-25]
- add rax, 0x0000000000000008
- mov qword [rbp-33], rax
- mov rdx, qword [rbp-33]
- mov rax, qword [rdx+0]
mov qword [rbp-9], rax
mov rax, qword [rbp-9]
cmp rax, 0
- jz __36_14
+ jz __36_16
mov byte [rbp-1], 0
- jmp __36_15
- __36_14:
+ jmp __36_17
+ __36_16:
mov byte [rbp-1], 1
- __36_15:
+ __36_17:
cmp byte [rbp-1], 0
- jz _18_16
+ jz _11_19
mov rax, [rbp+16]
- add rax, 0x0000000000000008
- mov qword [rbp-49], rax
- mov rdx, qword [rbp-49]
- mov rax, qword [rdx+0]
+ add rax, 0x0000000000000000
+ mov qword [rbp-25], rax
+ mov rax, qword [rbp+24]
+ mov qword [rbp-41], rax
+ mov rax, qword [rbp-41]
mov qword [rbp-57], rax
- mov rax, [rbp-57]
+ sub rsp, 0x0000000000000039
+ call _15
+ add rsp, 0x0000000000000039
+ mov rax, qword [rbp-49]
+ mov qword [rbp-33], rax
+ mov rdx, qword [rbp-25]
+ mov rax, qword [rbp-33]
+ mov qword [rdx+0], rax
+ jmp _11_18
+ _11_19:
+ mov rax, [rbp+16]
add rax, 0x0000000000000000
- mov qword [rbp-65], rax
- mov rdx, qword [rbp-65]
+ mov qword [rbp-25], rax
+ mov rdx, qword [rbp-25]
mov rax, qword [rdx+0]
+ mov qword [rbp-33], rax
+ mov rax, qword [rbp+24]
mov qword [rbp-41], rax
+ mov rax, qword [rbp-41]
+ mov qword [rbp-65], rax
+ mov rax, qword [rbp-33]
+ mov qword [rbp-73], rax
+ sub rsp, 0x0000000000000049
+ call _16
+ add rsp, 0x0000000000000049
+ _11_20:
+ _11_18:
+
+leave
+ret
+
+_16:
+ push rbp
+ mov rbp, rsp
mov rax, [rbp+16]
add rax, 0x0000000000000008
- mov qword [rbp-81], rax
- mov rdx, qword [rbp-81]
- mov rax, qword [rdx+0]
- mov qword [rbp-73], rax
- mov rdi, qword [rbp-73]
- sub rsp, 81
- extern free
- call free
- add rsp, 81
+ mov qword [rbp-17], rax
+ mov rdx, qword [rbp-17]
+ mov rax, qword [rdx+0]
+ mov qword [rbp-9], rax
+ mov rax, qword [rbp-9]
+ cmp rax, 0
+ jz __36_21
+ mov byte [rbp-1], 0
+ jmp __36_22
+ __36_21:
+ mov byte [rbp-1], 1
+ __36_22:
+ cmp byte [rbp-1], 0
+ jz _16_24
mov rax, [rbp+16]
add rax, 0x0000000000000008
- mov qword [rbp-89], rax
- mov qword [rbp-97], 0
- mov rdx, qword [rbp-89]
- mov rax, qword [rbp-97]
+ mov qword [rbp-25], rax
+ mov rax, qword [rbp+24]
+ mov qword [rbp-41], rax
+ mov rax, qword [rbp-41]
+ mov qword [rbp-57], rax
+ sub rsp, 0x0000000000000039
+ call _15
+ add rsp, 0x0000000000000039
+ mov rax, qword [rbp-49]
+ mov qword [rbp-33], rax
+ mov rdx, qword [rbp-25]
+ mov rax, qword [rbp-33]
mov qword [rdx+0], rax
+ jmp _16_23
+ _16_24:
+ mov rax, [rbp+16]
+ add rax, 0x0000000000000008
+ mov qword [rbp-25], rax
+ mov rdx, qword [rbp-25]
+ mov rax, qword [rdx+0]
+ mov qword [rbp-33], rax
+ mov rax, qword [rbp+24]
+ mov qword [rbp-41], rax
mov rax, qword [rbp-41]
- mov qword [rbp+24], rax
+ mov qword [rbp-65], rax
+ mov rax, qword [rbp-33]
+ mov qword [rbp-73], rax
+ sub rsp, 0x0000000000000049
+ call _16
+ add rsp, 0x0000000000000049
+ _16_25:
+ _16_23:
+
+leave
+ret
+
+_17:
+ push rbp
+ mov rbp, rsp
+ mov rax, qword [rbp+24]
+ mov qword [rbp-9], rax
+ mov qword [rbp-17], 0
+ mov rax, qword [rbp-9]
+ cmp rax, qword [rbp-17]
+ jz __16_26
+ mov byte [rbp-1], 0
+ jmp __16_27
+ __16_26:
+ mov byte [rbp-1], 1
+ __16_27:
+ cmp byte [rbp-1], 0
+ jz _17_28
+ mov rax, [rbp+16]
+ add rax, 0x0000000000000000
+ mov qword [rbp-25], rax
+ mov rdx, qword [rbp-25]
+ mov rax, qword [rdx+0]
+ mov qword [rbp+32], rax
leave
ret
- _18_17:
- _18_16:
+ _17_29:
+ _17_28:
mov rax, [rbp+16]
add rax, 0x0000000000000008
- mov qword [rbp-41], rax
- mov rdx, qword [rbp-41]
+ mov qword [rbp-25], rax
+ mov rdx, qword [rbp-25]
mov rax, qword [rdx+0]
+ mov qword [rbp-33], rax
+ mov rax, qword [rbp+24]
mov qword [rbp-49], rax
+ mov qword [rbp-57], 1
mov rax, qword [rbp-49]
- mov qword [rbp-65], rax
- sub rsp, 0x0000000000000041
- call _18
- add rsp, 0x0000000000000041
- mov rax, qword [rbp-57]
- mov qword [rbp+24], rax
+ sub rax, qword [rbp-57]
+ mov qword [rbp-41], rax
+ mov rax, qword [rbp-41]
+ mov qword [rbp-81], rax
+ mov rax, qword [rbp-33]
+ mov qword [rbp-89], rax
+ sub rsp, 0x0000000000000059
+ call _17
+ add rsp, 0x0000000000000059
+ mov rax, qword [rbp-73]
+ mov qword [rbp+32], rax
leave
ret
@@ -342,125 +511,7 @@ _14:
leave
ret
-main:
- push rbp
- mov rbp, rsp
- sub rsp, 0x0000000000000018
- call _10
- add rsp, 0x0000000000000018
- mov rax, qword [rbp-24]
- mov qword [rbp-8], rax
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-32], rax
- mov qword [rbp-40], 12
- mov rax, qword [rbp-40]
- mov qword [rbp-64], rax
- mov rax, qword [rbp-32]
- mov qword [rbp-72], rax
- sub rsp, 0x0000000000000048
- call _11
- add rsp, 0x0000000000000048
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-64], rax
- mov qword [rbp-72], 7
- mov rax, qword [rbp-72]
- mov qword [rbp-96], rax
- mov rax, qword [rbp-64]
- mov qword [rbp-104], rax
- sub rsp, 0x0000000000000068
- call _11
- add rsp, 0x0000000000000068
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-96], rax
- mov qword [rbp-104], 8
- mov rax, qword [rbp-104]
- mov qword [rbp-128], rax
- mov rax, qword [rbp-96]
- mov qword [rbp-136], rax
- sub rsp, 0x0000000000000088
- call _11
- add rsp, 0x0000000000000088
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-128], rax
- mov rax, qword [rbp-128]
- mov qword [rbp-136], rax
- sub rsp, 0x0000000000000088
- call _14
- add rsp, 0x0000000000000088
- mov rdi, __42_fstr
- mov al, 0
- sub rsp, 128
- extern printf
- call printf
- add rsp, 128
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-144], rax
- mov qword [rbp-152], 1
- mov rax, qword [rbp-152]
- mov qword [rbp-176], rax
- mov rax, qword [rbp-144]
- mov qword [rbp-184], rax
- sub rsp, 0x00000000000000b8
- call _12
- add rsp, 0x00000000000000b8
- mov rax, qword [rbp-168]
- mov qword [rbp-136], rax
- mov rdi, __8_fstr
- mov rsi, [rbp-136]
- mov al, 0
- sub rsp, 168
- extern printf
- call printf
- add rsp, 168
- mov rdi, __42_fstr
- mov al, 0
- sub rsp, 168
- extern printf
- call printf
- add rsp, 168
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-184], rax
- mov rax, qword [rbp-184]
- mov qword [rbp-200], rax
- sub rsp, 0x00000000000000c8
- call _13
- add rsp, 0x00000000000000c8
- mov rax, qword [rbp-192]
- mov qword [rbp-176], rax
- mov rdi, __8_fstr
- mov rsi, [rbp-176]
- mov al, 0
- sub rsp, 192
- extern printf
- call printf
- add rsp, 192
- mov rdi, __42_fstr
- mov al, 0
- sub rsp, 192
- extern printf
- call printf
- add rsp, 192
- mov rax, rbp
- add rax, 0xfffffffffffffff8
- mov qword [rbp-200], rax
- mov rax, qword [rbp-200]
- mov qword [rbp-208], rax
- sub rsp, 0x00000000000000d0
- call _14
- add rsp, 0x00000000000000d0
- mov qword [rbp-208], 8
- mov rax, qword [rbp-208]
- leave
- ret
-
-
-_11:
+_13:
push rbp
mov rbp, rsp
mov rax, [rbp+16]
@@ -468,134 +519,83 @@ _11:
mov qword [rbp-17], rax
mov rdx, qword [rbp-17]
mov rax, qword [rdx+0]
+ mov qword [rbp-25], rax
+ mov rax, [rbp-25]
+ add rax, 0x0000000000000008
+ mov qword [rbp-33], rax
+ mov rdx, qword [rbp-33]
+ mov rax, qword [rdx+0]
mov qword [rbp-9], rax
mov rax, qword [rbp-9]
cmp rax, 0
- jz __36_18
+ jz __36_12
mov byte [rbp-1], 0
- jmp __36_19
- __36_18:
+ jmp __36_13
+ __36_12:
mov byte [rbp-1], 1
- __36_19:
+ __36_13:
cmp byte [rbp-1], 0
- jz _11_21
+ jz _13_14
mov rax, [rbp+16]
add rax, 0x0000000000000000
- mov qword [rbp-25], rax
- mov rax, qword [rbp+24]
- mov qword [rbp-41], rax
- mov rax, qword [rbp-41]
+ mov qword [rbp-49], rax
+ mov rdx, qword [rbp-49]
+ mov rax, qword [rdx+0]
mov qword [rbp-57], rax
- sub rsp, 0x0000000000000039
- call _15
- add rsp, 0x0000000000000039
- mov rax, qword [rbp-49]
- mov qword [rbp-33], rax
- mov rdx, qword [rbp-25]
- mov rax, qword [rbp-33]
- mov qword [rdx+0], rax
- jmp _11_20
- _11_21:
- mov rax, [rbp+16]
+ mov rax, [rbp-57]
add rax, 0x0000000000000000
- mov qword [rbp-25], rax
- mov rdx, qword [rbp-25]
+ mov qword [rbp-65], rax
+ mov rdx, qword [rbp-65]
mov rax, qword [rdx+0]
- mov qword [rbp-33], rax
- mov rax, qword [rbp+24]
mov qword [rbp-41], rax
- mov rax, qword [rbp-41]
- mov qword [rbp-65], rax
- mov rax, qword [rbp-33]
+ mov rax, [rbp+16]
+ add rax, 0x0000000000000000
+ mov qword [rbp-81], rax
+ mov rdx, qword [rbp-81]
+ mov rax, qword [rdx+0]
mov qword [rbp-73], rax
- sub rsp, 0x0000000000000049
- call _16
- add rsp, 0x0000000000000049
- _11_22:
- _11_20:
-
-leave
-ret
-
-_15:
- push rbp
- mov rbp, rsp
- mov rax, qword [rbp+16]
- mov qword [rbp-16], rax
- mov qword [rbp-8], 0
- mov rdi, 16
- sub rsp, 16
- extern malloc
- call malloc
- add rsp, 16
- mov qword [rbp-24], rax
- mov rdx, qword [rbp-24]
- mov rax, qword [rbp-16]
+ mov rdi, qword [rbp-73]
+ sub rsp, 81
+ extern free
+ call free
+ add rsp, 81
+ mov rax, [rbp+16]
+ add rax, 0x0000000000000000
+ mov qword [rbp-89], rax
+ mov qword [rbp-97], 0
+ mov rdx, qword [rbp-89]
+ mov rax, qword [rbp-97]
mov qword [rdx+0], rax
- mov rax, qword [rbp-8]
- mov qword [rdx+8], rax
- mov rax, qword [rbp-24]
+ mov rax, qword [rbp-41]
mov qword [rbp+24], rax
leave
ret
-
-
-_16:
- push rbp
- mov rbp, rsp
- mov rax, [rbp+16]
- add rax, 0x0000000000000008
- mov qword [rbp-17], rax
- mov rdx, qword [rbp-17]
- mov rax, qword [rdx+0]
- mov qword [rbp-9], rax
- mov rax, qword [rbp-9]
- cmp rax, 0
- jz __36_23
- mov byte [rbp-1], 0
- jmp __36_24
- __36_23:
- mov byte [rbp-1], 1
- __36_24:
- cmp byte [rbp-1], 0
- jz _16_26
+ _13_15:
+ _13_14:
mov rax, [rbp+16]
- add rax, 0x0000000000000008
- mov qword [rbp-25], rax
- mov rax, qword [rbp+24]
+ add rax, 0x0000000000000000
mov qword [rbp-41], rax
- mov rax, qword [rbp-41]
- mov qword [rbp-57], rax
- sub rsp, 0x0000000000000039
- call _15
- add rsp, 0x0000000000000039
- mov rax, qword [rbp-49]
- mov qword [rbp-33], rax
- mov rdx, qword [rbp-25]
- mov rax, qword [rbp-33]
- mov qword [rdx+0], rax
- jmp _16_25
- _16_26:
- mov rax, [rbp+16]
- add rax, 0x0000000000000008
- mov qword [rbp-25], rax
- mov rdx, qword [rbp-25]
+ mov rdx, qword [rbp-41]
mov rax, qword [rdx+0]
- mov qword [rbp-33], rax
- mov rax, qword [rbp+24]
- mov qword [rbp-41], rax
- mov rax, qword [rbp-41]
+ mov qword [rbp-49], rax
+ mov rax, qword [rbp-49]
mov qword [rbp-65], rax
- mov rax, qword [rbp-33]
- mov qword [rbp-73], rax
- sub rsp, 0x0000000000000049
- call _16
- add rsp, 0x0000000000000049
- _16_27:
- _16_25:
+ sub rsp, 0x0000000000000041
+ call _18
+ add rsp, 0x0000000000000041
+ mov rax, qword [rbp-57]
+ mov qword [rbp+24], rax
+ leave
+ ret
+
+
+_10:
+ push rbp
+ mov rbp, rsp
+ mov qword [rbp+16], 0
+ leave
+ ret
-leave
-ret
section .data_readonly
__42_fstr db `\n`,0
diff --git a/build/out.o b/build/out.o
index 078abaca67c9e928f32a9fa144cfd303f9655cf2..3da623cba3f8140a8b61e9f0297468f90310e336 100644
GIT binary patch
literal 4688
zcmbVPZ)lZO7(bg+mn|CfhiQTu^MZ;Z-3uD)me07xfL7D+)I%cKiL#dEWcy@!k|)ID4M=_xzqe
z=Q-y+_iUf{;`7y2RVI9@%vw`;3sGa%6;#pJnT2Lv5qf7Tb8#%t?$r)hQd?@MFMUM~
z&R^(xYvUrPYQCP^gP@h0MYH&?&PQ~L_HP8NbCWq3=AX|uV<@5+;dB}Z;&}q2T>jyE
zt=Vi*3Dv7<2Cc?XOa5MxiT8*DIaGE2xSzi4r=}W$96ITzCL8>W7x-y!)=vk1Y8=A5
zhdc;=Pq5VSdkXx+;2&gN
z;2i{S81k^69@(AC<^26q@4^!NiXQphQBZ<=T|Lx6*g}gGoKNa!zT^yS?xXaktQFU{u6xYX&9R#(9ZMtjLklsYO{=PIxT=VPM+0yf1seK1%7byWeO5_7%+n=|85
zr$?Gy1!qa$!j;@VNgdszrIu>OswXGx&dPZ8*hT2I_q(5oV^l+(EhP6dyJk^eYO3C4
zPfgZiQR!0);xF*QpwAV+SNznhNiI0ZmcLd+cA#@pSjvoPj$WK>8oQGe-
z$%!H&g2yo!5LIBLy)gt`AKc?6z8+xKdF2<1i|O&TeMvs+Vt6Nzpfwo8H;0vI1$Y6*#*!7`&Y4Ce3`Uv(seJ3#
z!V+#Zt{d}V{SjV6}yAT`(QW7u+>xx9I;CEZ({EnE`pb=%1!=;YR*-xanM;4zeR^A@;{#lqm4+yLoD`1Q@%
zuWt?q!JIn?N(v7T0&XIlA8`yuz=?v9_Rb;qvLODC?eemcRaD!K>vKm30psBFyUl}u
zY&7PU2LXAvbr6tF^UB^x
zd2hP;=Jk*bP-R|Krlo>^rSQiE|3=|Y34Ti9ErOp`xVtA}7V0v$LHHW)5WHIPHwylo
z!sCMb3g0I9cM9*VfDZ~jj~BwC=N+q8nHLnkPw@8@o)Uaa;Tgdv6#kyz3vq2Jem)fZ
zS%rUG0Y56Zr}&==KB(|71WzjbYr#hqJ|XyD3O`i=|6cGLivN?~OVmF$KMVe_!Y>Q{
zjKZfX;C~AKf#S~y{;k621V66u`TX$kef^;DI>FB?{64|&;sw9xSzG~MD)`-s|ES;_
z6~0{X%?ghReoo=-74Y?f*YQqT^mrCmA1~~i1lJb+8&+TD{JG!aMS(?qtpc8`fSYZ*
zdi%Pb-mxp$)VZ_Y^mq0Sn8Bgmf#i0Rh_snRBDONI(uq|N(O9C@3D_cSiAcnWW(XR<
zjzPCFVzv);chiuF#hi#jtU!{!z8!Bs6f4Aa?c@I?J
z|ETz3{NF0@|5p4kew{e#dfpbCZk%rz|3C%)N759U`P&xu;So8%iLWTaKauZG^FguC
Ef6)hbr2qf`
literal 4688
zcmbVPO=whC6uuMFG)PM$#Ws}|LP|kwNi&nENfe2NSDv6$7lU!*BbwNxBr%O+(Sj?{h61;-sbm9A`xYuh}xhQ-z=(B^P(wsvwB`F$w8mZWG+gX>t14j73KK@75T5I
z!T1Y(VYF(gFcmCU$+p^7_NU6U^h3Jy*B@Id{c@l2C>trB#37vq)`6;
zm-Mh|aS}SOsur|TL(ThpT_)Zk4&=~u^T++vEkEs5_{j<7r@VW9Iu0p;IqQ$xh<?!3Zrz=82esZ!xe9A$*1|JB0ZUesUCudcn?5uZJ-6_T2$Pw@EdJSYXkd5>o%BsXW
zIT0=+0)!DR0KNcy7TKD@o%8ea$kufJjIJ}|=~>BJ+N%U{#?N?JT~!+PIxoxA^E%T!
zGR>>RYm$lc`wN*M%v5#$Oil?o15i0eyRkD^Q>HG61#`saR>vV3P{QuN6?L7
zi`f+$0kTW*avCrTPY6A+y>xp+=n(IhpzlGSL!^eVdQPu+1Hh{Q^IOTDWf2L&NYC6#
z#=!)hvXx|yfDQTAR+9Hrtt7E%D_=Bwsdy{zq7(>Ad5A7Ow3}v5@A)|#w>fj%@^+Cu
zZd^v3(l~?>aBd+f?=qUdD$M?^o4-nyFF9Qqe*Q>9mEeWo&HAYjn-0pmj$L#01#>*O
zR1=_FhaN*HKU|JW5hvGQ19$R7rOh}RW(L*Vs8
z5BsUX18mU1^cNTjN9Z*$NqfDQ_mQD!?MRZ4Q&uwI3fivB=yrja|Sy1N%}yToA%<3TX=Y(G@UbT
zQl|zROa(~aSFrbtdU0_3eU
zg{UOriY~dc9!8G0z5l_<3xo?)U+KIiH-%eFz)d*?^XkfYvlvk0{2c->=l3v$^O278
zQp07&>vPsmy;ly+W0QX&mIL`;^QJ@Lc?WF#f6QCFpKji96A<&}Je69iHuWUhKWy)7
zs(P!d4Iec%iS`2tRnyj*Xbt+>Tif>bbRASR`#Sa|`Vy_XU>)o>THgEGyIPHp30UMW
zPgtqCKVN8gNx?5tem6b&dG@STD`cJQ_$_(y_ocUspY_)!P{MDXt%JSlj!
zvouGF;9m*e;_$x_{CfvKD)>zYKQ4Ia;6Dl8?R;dPDuRy+{)5B+RqzWAep>L~9Q?fC
zQx1Mf@EZ<(Meya$$NZl~aD6Ld-9L8zahewXw+{Y5@L>mkB=}7SU!vDFqN@0do%1X$
zf-e)i+Tp)0c&CF`3I4T%uM~X9!D|Ko!@<`IUdbPsoM%H3+|#(TN#OT^;O@xF7^}#M
zYt2uK;5RfLQLj4dxE%2d#ZkNVcXqYCyLW%0rgdMp3Zjjwx39A&u}1|#-I^fQAi5Dc
zRu|OOijI;R)YTakgThF3Ek>hjf;C3rExI;&<6))ft6oCp+?LU9tS;nCH#
zcQ;HR)qhh!?*E|7vbM=_%?p2oNu?D
YWrEv!Z2UKi@SElQG0tj;?VI)c2XCi@#Q*>R
diff --git a/build/out.out b/build/out.out
index bc3006ff5cc1a7d2a7672b681f5cd8f135198c35..ce1d80eed4d37d126dd54a0ce68b5e585638ec2a 100755
GIT binary patch
delta 1629
zcmZ{kZAep57{|}9H(Rmh-rrJlSxLsqyDgn5ILVjw#U!ybiwoihd!a5rhnEYdz=Q$F~C;<2>j2{h#OmoU?mb^qwXP
z-_9&cO?Scjy|22O-;FH1z4+7rqF#UcdhAA4S|>Cb=}p6|HnQYcOm8KGUa|Ux<02im
z9u#(obPlo~S=3-F5~sF+T4CEMq*AoSRww3ULH@*6;_gkQ)1lt@GeSsc!cY)|NJx}~
zdY2elY){cYHjmiA+V|K?-07rJJ_#CE&d}oLB)w|)h%F+NkJ*c;iHd$Gedia{L%41(7u2h>nbWT{-1BsG+%CBD_ja6tC?
z)ZkTB35_Ihk|bzXf){#N#(ZIl7h07FO%kMjazKfP)f60+lvy#ES(V9NW(6TY6BUQ-
UtK-;opDeLX2>#f)%IWR@0o8c%h5!Hn
delta 1580
zcmZ|PUr19?7y$6I>o7^vZFm0^lr^GYHgk7#&Jf+G$sz_uMJ4Dh`nM!d4C$ho3Crd_ShZcSt^C!}
zuG#6+k>Q2N(2_mV4^@Q&;WpD&BGB(a4
zgG=}EA^kH8AybFG^dHU`F*QoPS(r4{O2@M>Z*uF0a5vZ^H%jSsXqRiH*>&iV-TEl6
z9+h4AA?1*;I>BMB(VxL_uwr#UkJVik#TWdFV{pRakS5mPhDCvHa}^f1N@@<4t>==x
z)t_tP*L7IPDp{v7$RD<@ciK}WO9(zeo)kPq{!#ERq5Po
zywnubIt$Bpn&T3Dk-S0kc%huJRZ2vKhD;H!qK#h(^&3>bD7c>Lm$y6Lzk(72a!_k6
zEOHUIlD`(}FOmNiyoTIo-Z|fij{8@#fRJ!e!=&JzB3?)SN2m{w*I9OM+)nPa1h@VE
z_}LwlI3zSg$-RP~BEKwnR}n8G|70s1i1t5EiKVRso(8WN`KsXkS GlobalDefinitionTable {
GlobalDefinitionTable {
id_counter: 2,
- type_definitions: Default::default(),
- impl_definitions: Default::default(),
- function_signatures: Default::default(),
+ type_definitions: new_hashmap(),
+ impl_definitions: new_hashmap(),
+ function_signatures: new_hashmap(),
inline_functions: Default::default(),
name_table: Default::default(),
builtin_type_name_table: Default::default(),
diff --git a/src/root/shared/common.rs b/src/root/shared/common.rs
index caa200c..52822f2 100644
--- a/src/root/shared/common.rs
+++ b/src/root/shared/common.rs
@@ -1,10 +1,9 @@
use std::fmt::{Display, Formatter};
use derive_getters::{Dissolve, Getters};
-use derive_more::{Add, AddAssign, Display, Sub, SubAssign};
+use derive_more::{Add, AddAssign, Sub, SubAssign};
-#[derive(Debug, PartialEq, Eq, Hash, Display, Copy, Clone)]
-#[display(fmt = "TypeID: {}", .0)]
+#[derive(Debug, PartialEq, Eq, Hash, Copy, Clone)]
/// A unique type ID. Negative is builtin, positive is user-defined
pub struct TypeID(pub isize);
@@ -26,8 +25,7 @@ impl TypeID {
}
}
-#[derive(Debug, PartialEq, Eq, Hash, Display, Copy, Clone)]
-#[display(fmt = "FunctionID: {}", .0)]
+#[derive(Debug, PartialEq, Eq, Hash, Copy, Clone)]
/// A unique function ID. Negative is builtin, 0 is main, and positive is user-defined
pub struct FunctionID(pub isize);
@@ -51,8 +49,7 @@ impl FunctionID {
}
}
-#[derive(Debug, PartialEq, Eq, Hash, Display, Copy, Clone, Add, AddAssign, Sub, SubAssign)]
-#[display(fmt = "Indirection: {}", .0)]
+#[derive(Debug, PartialEq, Eq, Hash, Copy, Clone, Add, AddAssign, Sub, SubAssign)]
/// The indirection to an address i.e. how many pointers you have to go through
pub struct Indirection(pub usize);
@@ -71,11 +68,17 @@ impl Indirection {
}
#[derive(
- Debug, PartialEq, Eq, Hash, Display, Copy, Clone, Default, Add, AddAssign, Sub, SubAssign,
+ Debug, PartialEq, Eq, Hash, Copy, Clone, Default, Add, AddAssign, Sub, SubAssign,
)]
/// The size of something, in bytes
pub struct ByteSize(pub usize);
+impl Display for ByteSize {
+ fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
+ write!(f, "{}", self.0)
+ }
+}
+
#[derive(Debug, PartialEq, Eq, Hash, Copy, Clone, Add, AddAssign, Sub, SubAssign)]
/// A stack-frame-relative local address. Like in assembly, negative addresses are in the current
/// frame whereas positive addresses are in a previous one