minor changes
This commit is contained in:
parent
fac573837f
commit
5af5631755
685
Cargo.lock
generated
685
Cargo.lock
generated
|
@ -11,21 +11,6 @@ dependencies = [
|
|||
"tock-registers",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
version = "0.24.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
|
||||
dependencies = [
|
||||
"gimli",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "adler2"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
|
||||
|
||||
[[package]]
|
||||
name = "allocator-api2"
|
||||
version = "0.2.18"
|
||||
|
@ -49,9 +34,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "anyhow"
|
||||
version = "1.0.90"
|
||||
version = "1.0.91"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "37bf3594c4c988a53154954629820791dde498571819ae4ca50ca811e060cc95"
|
||||
checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8"
|
||||
|
||||
[[package]]
|
||||
name = "autocfg"
|
||||
|
@ -59,21 +44,6 @@ version = "1.4.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
||||
|
||||
[[package]]
|
||||
name = "backtrace"
|
||||
version = "0.3.74"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
|
||||
dependencies = [
|
||||
"addr2line",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"miniz_oxide",
|
||||
"object",
|
||||
"rustc-demangle",
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "base64"
|
||||
version = "0.22.1"
|
||||
|
@ -115,6 +85,9 @@ name = "bumpalo"
|
|||
version = "3.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "byteorder"
|
||||
|
@ -122,12 +95,6 @@ version = "1.5.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
||||
|
||||
[[package]]
|
||||
name = "bytes"
|
||||
version = "1.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3"
|
||||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.31"
|
||||
|
@ -255,56 +222,6 @@ dependencies = [
|
|||
"percent-encoding",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-channel"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-sink",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-core"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
|
||||
|
||||
[[package]]
|
||||
name = "futures-io"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
|
||||
|
||||
[[package]]
|
||||
name = "futures-sink"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
|
||||
|
||||
[[package]]
|
||||
name = "futures-task"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
|
||||
|
||||
[[package]]
|
||||
name = "futures-util"
|
||||
version = "0.3.31"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"futures-io",
|
||||
"futures-sink",
|
||||
"futures-task",
|
||||
"memchr",
|
||||
"pin-project-lite",
|
||||
"pin-utils",
|
||||
"slab",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.15"
|
||||
|
@ -317,10 +234,10 @@ dependencies = [
|
|||
]
|
||||
|
||||
[[package]]
|
||||
name = "gimli"
|
||||
version = "0.31.1"
|
||||
name = "hashbrown"
|
||||
version = "0.14.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
|
||||
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
||||
|
||||
[[package]]
|
||||
name = "hashbrown"
|
||||
|
@ -336,129 +253,28 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "hbbytecode"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#15e4762d4ac8993d12fe2dd54e2b2d842c8a034b"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#faa8dd2e6fabe2e0e4a375e677171856da491c61"
|
||||
|
||||
[[package]]
|
||||
name = "hblang"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#15e4762d4ac8993d12fe2dd54e2b2d842c8a034b"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#faa8dd2e6fabe2e0e4a375e677171856da491c61"
|
||||
dependencies = [
|
||||
"hashbrown",
|
||||
"hashbrown 0.15.0",
|
||||
"hbbytecode",
|
||||
"hbvm",
|
||||
"log",
|
||||
"regalloc2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hbvm"
|
||||
version = "0.1.0"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#15e4762d4ac8993d12fe2dd54e2b2d842c8a034b"
|
||||
source = "git+https://git.ablecorp.us/AbleOS/holey-bytes.git#faa8dd2e6fabe2e0e4a375e677171856da491c61"
|
||||
dependencies = [
|
||||
"hbbytecode",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.3.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
||||
|
||||
[[package]]
|
||||
name = "http"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"fnv",
|
||||
"itoa",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "http-body"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"http",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "http-body-util"
|
||||
version = "0.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
"pin-project-lite",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "httparse"
|
||||
version = "1.9.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946"
|
||||
|
||||
[[package]]
|
||||
name = "hyper"
|
||||
version = "1.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
"httparse",
|
||||
"itoa",
|
||||
"pin-project-lite",
|
||||
"smallvec",
|
||||
"tokio",
|
||||
"want",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-rustls"
|
||||
version = "0.27.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333"
|
||||
dependencies = [
|
||||
"futures-util",
|
||||
"http",
|
||||
"hyper",
|
||||
"hyper-util",
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tower-service",
|
||||
"webpki-roots",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "hyper-util"
|
||||
version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
"hyper",
|
||||
"pin-project-lite",
|
||||
"socket2",
|
||||
"tokio",
|
||||
"tower-service",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "iana-time-zone"
|
||||
version = "0.1.61"
|
||||
|
@ -499,21 +315,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown",
|
||||
"hashbrown 0.15.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ipnet"
|
||||
version = "2.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708"
|
||||
|
||||
[[package]]
|
||||
name = "itoa"
|
||||
version = "1.0.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
|
||||
|
||||
[[package]]
|
||||
name = "js-sys"
|
||||
version = "0.3.72"
|
||||
|
@ -530,7 +334,7 @@ dependencies = [
|
|||
"aarch64-cpu",
|
||||
"crossbeam-queue",
|
||||
"derive_more",
|
||||
"hashbrown",
|
||||
"hashbrown 0.15.0",
|
||||
"hbvm",
|
||||
"limine",
|
||||
"log",
|
||||
|
@ -617,33 +421,6 @@ version = "2.7.4"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
|
||||
|
||||
[[package]]
|
||||
name = "mime"
|
||||
version = "0.3.17"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
||||
|
||||
[[package]]
|
||||
name = "miniz_oxide"
|
||||
version = "0.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
|
||||
dependencies = [
|
||||
"adler2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mio"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
|
||||
dependencies = [
|
||||
"hermit-abi",
|
||||
"libc",
|
||||
"wasi",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-traits"
|
||||
version = "0.2.19"
|
||||
|
@ -653,15 +430,6 @@ dependencies = [
|
|||
"autocfg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "object"
|
||||
version = "0.36.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.20.2"
|
||||
|
@ -680,84 +448,15 @@ version = "2.3.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
||||
|
||||
[[package]]
|
||||
name = "pin-project-lite"
|
||||
version = "0.2.14"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
|
||||
|
||||
[[package]]
|
||||
name = "pin-utils"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||
|
||||
[[package]]
|
||||
name = "ppv-lite86"
|
||||
version = "0.2.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
|
||||
dependencies = [
|
||||
"zerocopy",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2"
|
||||
version = "1.0.88"
|
||||
version = "1.0.89"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9"
|
||||
checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e"
|
||||
dependencies = [
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn"
|
||||
version = "0.11.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"pin-project-lite",
|
||||
"quinn-proto",
|
||||
"quinn-udp",
|
||||
"rustc-hash",
|
||||
"rustls",
|
||||
"socket2",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn-proto"
|
||||
version = "0.11.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"rand",
|
||||
"ring",
|
||||
"rustc-hash",
|
||||
"rustls",
|
||||
"slab",
|
||||
"thiserror",
|
||||
"tinyvec",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quinn-udp"
|
||||
version = "0.5.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"once_cell",
|
||||
"socket2",
|
||||
"tracing",
|
||||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "quote"
|
||||
version = "1.0.37"
|
||||
|
@ -767,36 +466,6 @@ dependencies = [
|
|||
"proc-macro2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand"
|
||||
version = "0.8.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"rand_chacha",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_chacha"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
dependencies = [
|
||||
"ppv-lite86",
|
||||
"rand_core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rand_core"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
dependencies = [
|
||||
"getrandom",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "raw-cpuid"
|
||||
version = "10.7.0"
|
||||
|
@ -815,6 +484,19 @@ dependencies = [
|
|||
"bitflags 2.6.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regalloc2"
|
||||
version = "0.10.2"
|
||||
source = "git+https://github.com/jakubDoka/regalloc2?branch=reuse-allocations#21c43e3ee182824e92e2b25f1d3c03ed47f9c02b"
|
||||
dependencies = [
|
||||
"allocator-api2",
|
||||
"bumpalo",
|
||||
"hashbrown 0.14.5",
|
||||
"log",
|
||||
"rustc-hash",
|
||||
"smallvec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "regex-syntax"
|
||||
version = "0.8.5"
|
||||
|
@ -831,52 +513,9 @@ dependencies = [
|
|||
"hblang",
|
||||
"log",
|
||||
"raw-cpuid 11.2.0",
|
||||
"reqwest",
|
||||
"str-reader",
|
||||
"toml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "reqwest"
|
||||
version = "0.12.8"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"bytes",
|
||||
"futures-channel",
|
||||
"futures-core",
|
||||
"futures-util",
|
||||
"http",
|
||||
"http-body",
|
||||
"http-body-util",
|
||||
"hyper",
|
||||
"hyper-rustls",
|
||||
"hyper-util",
|
||||
"ipnet",
|
||||
"js-sys",
|
||||
"log",
|
||||
"mime",
|
||||
"once_cell",
|
||||
"percent-encoding",
|
||||
"pin-project-lite",
|
||||
"quinn",
|
||||
"rustls",
|
||||
"rustls-pemfile",
|
||||
"rustls-pki-types",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_urlencoded",
|
||||
"sync_wrapper",
|
||||
"tokio",
|
||||
"tokio-rustls",
|
||||
"tower-service",
|
||||
"url",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
"webpki-roots",
|
||||
"windows-registry",
|
||||
"ureq",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -891,15 +530,9 @@ dependencies = [
|
|||
"libc",
|
||||
"spin",
|
||||
"untrusted",
|
||||
"windows-sys 0.52.0",
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
|
||||
|
||||
[[package]]
|
||||
name = "rustc-hash"
|
||||
version = "2.0.0"
|
||||
|
@ -921,6 +554,7 @@ version = "0.23.15"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993"
|
||||
dependencies = [
|
||||
"log",
|
||||
"once_cell",
|
||||
"ring",
|
||||
"rustls-pki-types",
|
||||
|
@ -929,15 +563,6 @@ dependencies = [
|
|||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls-pemfile"
|
||||
version = "2.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50"
|
||||
dependencies = [
|
||||
"rustls-pki-types",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls-pki-types"
|
||||
version = "1.10.0"
|
||||
|
@ -961,12 +586,6 @@ version = "1.0.18"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
version = "1.0.18"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
|
||||
|
||||
[[package]]
|
||||
name = "sbi"
|
||||
version = "0.2.0"
|
||||
|
@ -987,36 +606,24 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
|
|||
|
||||
[[package]]
|
||||
name = "serde"
|
||||
version = "1.0.210"
|
||||
version = "1.0.213"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
|
||||
checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1"
|
||||
dependencies = [
|
||||
"serde_derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_derive"
|
||||
version = "1.0.210"
|
||||
version = "1.0.213"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
|
||||
checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.132"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"memchr",
|
||||
"ryu",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_spanned"
|
||||
version = "0.6.8"
|
||||
|
@ -1026,18 +633,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_urlencoded"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
|
||||
dependencies = [
|
||||
"form_urlencoded",
|
||||
"itoa",
|
||||
"ryu",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "shlex"
|
||||
version = "1.3.0"
|
||||
|
@ -1059,16 +654,6 @@ version = "1.13.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||
|
||||
[[package]]
|
||||
name = "socket2"
|
||||
version = "0.5.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "spin"
|
||||
version = "0.9.8"
|
||||
|
@ -1092,44 +677,15 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
|||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.79"
|
||||
version = "2.0.85"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
|
||||
checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sync_wrapper"
|
||||
version = "1.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.64"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
|
||||
dependencies = [
|
||||
"thiserror-impl",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "1.0.64"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinyvec"
|
||||
version = "1.8.0"
|
||||
|
@ -1151,32 +707,6 @@ version = "0.8.1"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "696941a0aee7e276a165a978b37918fd5d22c55c3d6bda197813070ca9c0f21c"
|
||||
|
||||
[[package]]
|
||||
name = "tokio"
|
||||
version = "1.40.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"bytes",
|
||||
"libc",
|
||||
"mio",
|
||||
"pin-project-lite",
|
||||
"socket2",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tokio-rustls"
|
||||
version = "0.26.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4"
|
||||
dependencies = [
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml"
|
||||
version = "0.8.19"
|
||||
|
@ -1211,37 +741,6 @@ dependencies = [
|
|||
"winnow",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tower-service"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
version = "0.1.40"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
||||
dependencies = [
|
||||
"pin-project-lite",
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-core"
|
||||
version = "0.1.32"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "try-lock"
|
||||
version = "0.2.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
||||
|
||||
[[package]]
|
||||
name = "uart_16550"
|
||||
version = "0.3.1"
|
||||
|
@ -1286,6 +785,21 @@ version = "0.9.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
|
||||
|
||||
[[package]]
|
||||
name = "ureq"
|
||||
version = "2.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b74fc6b57825be3373f7054754755f03ac3a8f5d70015ccad699ba2029956f4a"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"log",
|
||||
"once_cell",
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"url",
|
||||
"webpki-roots",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
version = "2.5.2"
|
||||
|
@ -1311,15 +825,6 @@ version = "0.4.6"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "442887c63f2c839b346c192d047a7c87e73d0689c9157b00b53dcc27dd5ea793"
|
||||
|
||||
[[package]]
|
||||
name = "want"
|
||||
version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
|
||||
dependencies = [
|
||||
"try-lock",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasi"
|
||||
version = "0.11.0+wasi-snapshot-preview1"
|
||||
|
@ -1352,18 +857,6 @@ dependencies = [
|
|||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-futures"
|
||||
version = "0.4.45"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "wasm-bindgen-macro"
|
||||
version = "0.2.95"
|
||||
|
@ -1393,16 +886,6 @@ version = "0.2.95"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d"
|
||||
|
||||
[[package]]
|
||||
name = "web-sys"
|
||||
version = "0.3.72"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112"
|
||||
dependencies = [
|
||||
"js-sys",
|
||||
"wasm-bindgen",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webpki-roots"
|
||||
version = "0.26.6"
|
||||
|
@ -1421,36 +904,6 @@ dependencies = [
|
|||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-registry"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0"
|
||||
dependencies = [
|
||||
"windows-result",
|
||||
"windows-strings",
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-result"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-strings"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
|
||||
dependencies = [
|
||||
"windows-result",
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.52.0"
|
||||
|
@ -1460,15 +913,6 @@ dependencies = [
|
|||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.59.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||
dependencies = [
|
||||
"windows-targets",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-targets"
|
||||
version = "0.52.6"
|
||||
|
@ -1598,27 +1042,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy"
|
||||
version = "0.7.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"zerocopy-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zerocopy-derive"
|
||||
version = "0.7.35"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zeroize"
|
||||
version = "1.8.1"
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
#![allow(unused)]
|
||||
use std::io::Write;
|
||||
|
||||
use idl::build_idl;
|
||||
|
@ -139,8 +138,8 @@ fn build(name: String) {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn build_program(name: String) {}
|
||||
pub fn build_library(name: String) {}
|
||||
pub fn build_program(_name: String) {}
|
||||
pub fn build_library(_name: String) {}
|
||||
|
||||
fn help() {
|
||||
println!(
|
||||
|
|
|
@ -131,9 +131,13 @@ pub fn handler(vm: &mut Vm) {
|
|||
3 => unimplemented!("TODO: implement whatever buffer 3 does for no x86_64"),
|
||||
// source of rng
|
||||
4 => {
|
||||
// limit to last 32 bits
|
||||
vm.registers[1] =
|
||||
hbvm::value::Value(crate::arch::hardware_random_u64() & 0xFFFFFFFF);
|
||||
let block = block_read(mem_addr, length);
|
||||
block.chunks_mut(8.min(length)).for_each(|chunk| {
|
||||
chunk.clone_from_slice(
|
||||
&crate::arch::hardware_random_u64().to_le_bytes()[..chunk.len()],
|
||||
);
|
||||
});
|
||||
vm.registers[1] = hbvm::value::Value(mem_addr);
|
||||
}
|
||||
5 => match dt_msg_handler(vm, mem_addr, length) {
|
||||
Ok(()) => {}
|
||||
|
|
|
@ -38,7 +38,7 @@ unsafe fn memset(mut dest: *mut u8, src: *const u8, count: usize, size: usize) {
|
|||
let mut buffer_size = size;
|
||||
src.copy_to_nonoverlapping(buffer.as_mut_ptr(), size);
|
||||
|
||||
while buffer_size * 2 <= BLOCK_SIZE {
|
||||
while core::intrinsics::likely(buffer_size * 2 <= BLOCK_SIZE) {
|
||||
buffer
|
||||
.as_mut_ptr()
|
||||
.copy_to_nonoverlapping(buffer.as_mut_ptr().add(buffer_size), buffer_size);
|
||||
|
@ -53,7 +53,7 @@ unsafe fn memset(mut dest: *mut u8, src: *const u8, count: usize, size: usize) {
|
|||
remaining -= 1;
|
||||
}
|
||||
|
||||
while remaining >= 8 {
|
||||
while core::intrinsics::likely(remaining >= 8) {
|
||||
*(dest as *mut u64) = *buffer_ptr;
|
||||
dest = dest.add(8);
|
||||
remaining -= 8;
|
||||
|
@ -122,18 +122,17 @@ pub fn memory_msg_handler(
|
|||
log::debug!(" {} pages", page_count);
|
||||
}
|
||||
4 => unsafe {
|
||||
let count = u64::from_le_bytes(msg_vec[1..9].try_into().unwrap_unchecked()) as usize;
|
||||
let src = u64::from_le_bytes(msg_vec[9..17].try_into().unwrap_unchecked()) as *const u8;
|
||||
let dest = u64::from_le_bytes(msg_vec[17..25].try_into().unwrap_unchecked()) as *mut u8;
|
||||
let count = u32::from_le_bytes(msg_vec[1..5].try_into().unwrap_unchecked()) as usize;
|
||||
let src = u64::from_le_bytes(msg_vec[5..13].try_into().unwrap_unchecked()) as *const u8;
|
||||
let dest = u64::from_le_bytes(msg_vec[13..21].try_into().unwrap_unchecked()) as *mut u8;
|
||||
|
||||
src.copy_to_nonoverlapping(dest, count);
|
||||
},
|
||||
5 => unsafe {
|
||||
let count = u64::from_le_bytes(msg_vec[1..9].try_into().unwrap_unchecked()) as usize;
|
||||
let size = u64::from_le_bytes(msg_vec[9..17].try_into().unwrap_unchecked()) as usize;
|
||||
let src =
|
||||
u64::from_le_bytes(msg_vec[17..25].try_into().unwrap_unchecked()) as *const u8;
|
||||
let dest = u64::from_le_bytes(msg_vec[25..33].try_into().unwrap_unchecked()) as *mut u8;
|
||||
let count = u32::from_le_bytes(msg_vec[1..5].try_into().unwrap_unchecked()) as usize;
|
||||
let size = u32::from_le_bytes(msg_vec[5..9].try_into().unwrap_unchecked()) as usize;
|
||||
let src = u64::from_le_bytes(msg_vec[9..17].try_into().unwrap_unchecked()) as *const u8;
|
||||
let dest = u64::from_le_bytes(msg_vec[17..25].try_into().unwrap_unchecked()) as *mut u8;
|
||||
|
||||
memset(dest, src, count, size);
|
||||
},
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
slice_split_once,
|
||||
exclusive_wrapper,
|
||||
new_uninit,
|
||||
core_intrinsics,
|
||||
abi_x86_interrupt,
|
||||
alloc_error_handler,
|
||||
ptr_sub_ptr,
|
||||
|
@ -14,8 +15,7 @@
|
|||
pointer_is_aligned_to
|
||||
)]
|
||||
#![test_runner(crate::test_runner)]
|
||||
#![cfg_attr(not(debug_assertions), allow(unused, deprecated))]
|
||||
#![allow(dead_code)]
|
||||
#![allow(dead_code, internal_features)]
|
||||
extern crate alloc;
|
||||
|
||||
mod allocator;
|
||||
|
|
|
@ -22,11 +22,13 @@ fatfs = "0.3"
|
|||
toml = "0.8"
|
||||
hblang = { git = "https://git.ablecorp.us/AbleOS/holey-bytes.git", features = [
|
||||
"std",
|
||||
"opts",
|
||||
], default-features = false }
|
||||
log = "0.4"
|
||||
raw-cpuid = "11"
|
||||
ureq = { version = "2", default-features = false, features = ["tls"] }
|
||||
|
||||
[dependencies.reqwest]
|
||||
version = "0.12"
|
||||
default-features = false
|
||||
features = ["rustls-tls", "blocking"]
|
||||
# [dependencies.reqwest]
|
||||
# version = "0.12"
|
||||
# default-features = false
|
||||
# features = ["rustls-tls", "blocking"]
|
||||
|
|
|
@ -63,7 +63,7 @@ impl Package {
|
|||
build_cmd,
|
||||
}
|
||||
}
|
||||
pub fn build(&self) {
|
||||
pub fn build(&self) -> std::io::Result<()> {
|
||||
if self.binaries.contains(&"hblang".to_string()) {
|
||||
let file = self.build_cmd.split_ascii_whitespace().last().unwrap();
|
||||
|
||||
|
@ -71,15 +71,24 @@ impl Package {
|
|||
let mut bytes = Vec::new();
|
||||
// compile here
|
||||
|
||||
let _ = hblang::run_compiler(
|
||||
hblang::run_compiler(
|
||||
&path,
|
||||
Options {
|
||||
fmt: true,
|
||||
optimize: true,
|
||||
..Default::default()
|
||||
},
|
||||
&mut bytes,
|
||||
);
|
||||
let _ = hblang::run_compiler(&path, Default::default(), &mut bytes);
|
||||
)?;
|
||||
|
||||
hblang::run_compiler(
|
||||
&path,
|
||||
Options {
|
||||
optimize: true,
|
||||
..Default::default()
|
||||
},
|
||||
&mut bytes,
|
||||
)?;
|
||||
|
||||
match std::fs::create_dir("target/programs") {
|
||||
Ok(_) => (),
|
||||
|
@ -88,15 +97,17 @@ impl Package {
|
|||
}
|
||||
std::fs::write(format!("target/programs/{}.hbf", self.name), &bytes).unwrap();
|
||||
bytes.clear();
|
||||
let _ = hblang::run_compiler(
|
||||
hblang::run_compiler(
|
||||
&path,
|
||||
Options {
|
||||
dump_asm: true,
|
||||
optimize: true,
|
||||
..Default::default()
|
||||
},
|
||||
&mut bytes,
|
||||
);
|
||||
)?;
|
||||
std::fs::write(format!("target/programs/{}.hba", self.name), &bytes).unwrap();
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
// #![allow(unused)]
|
||||
|
||||
mod dev;
|
||||
|
||||
use {
|
||||
|
@ -8,7 +6,6 @@ use {
|
|||
error_stack::{bail, report, Context, Report, Result, ResultExt},
|
||||
fatfs::{FileSystem, FormatVolumeOptions, FsOptions, ReadWriteSeek},
|
||||
std::{
|
||||
// fmt::Display,
|
||||
fs::{self, File},
|
||||
io::{self, Write},
|
||||
path::Path,
|
||||
|
@ -84,7 +81,7 @@ fn main() -> Result<(), Error> {
|
|||
" -r / --release: build in release mode\n",
|
||||
" -d / --debuginfo: build with debug info\n",
|
||||
" --noaccel: run without acceleration (e.g, no kvm)\n",
|
||||
"[ rv64 / riscv64 / riscv64-virt / aarch64 / arm64 / aarch64-virt ]: sets target"
|
||||
"[ rv64 / riscv64 / riscv64-virt / aarch64 / arm64 / aarch64-virt / avx2 ]: sets target"
|
||||
),);
|
||||
Ok(())
|
||||
}
|
||||
|
@ -207,21 +204,25 @@ TERM_BACKDROP={}
|
|||
let modules = value.get_mut("modules").unwrap().as_table_mut().unwrap();
|
||||
// let mut real_modules = modules.clone();
|
||||
|
||||
modules.into_iter().for_each(|(_, value)| {
|
||||
if value.is_table() {
|
||||
let path = get_path_without_boot_prefix(
|
||||
value.get("path").expect("You must have `path` as a value"),
|
||||
)
|
||||
.unwrap()
|
||||
.split(".")
|
||||
.next()
|
||||
.unwrap();
|
||||
let p = Package::load_from_file(
|
||||
format!("sysdata/programs/{}/meta.toml", path).to_owned(),
|
||||
);
|
||||
p.build();
|
||||
}
|
||||
});
|
||||
modules
|
||||
.into_iter()
|
||||
.map(|(_, value)| -> Result<(), io::Error> {
|
||||
if value.is_table() {
|
||||
let path = get_path_without_boot_prefix(
|
||||
value.get("path").expect("You must have `path` as a value"),
|
||||
)
|
||||
.unwrap()
|
||||
.split(".")
|
||||
.next()
|
||||
.unwrap();
|
||||
let p = Package::load_from_file(
|
||||
format!("sysdata/programs/{}/meta.toml", path).to_owned(),
|
||||
);
|
||||
p.build()?;
|
||||
}
|
||||
Ok(())
|
||||
})
|
||||
.for_each(drop);
|
||||
modules.into_iter().for_each(|(_key, value)| {
|
||||
if value.is_table() {
|
||||
let path = value.get("path").expect("You must have `path` as a value");
|
||||
|
@ -473,12 +474,12 @@ fn fetch_ovmf(target: Target) -> Result<String, OvmfFetchError> {
|
|||
Ok(_) => return Ok(ovmf_path.to_owned()),
|
||||
Err(e) => return Err(report!(e).change_context(OvmfFetchError::Io)),
|
||||
};
|
||||
let mut bytes = reqwest::blocking::get(ovmf_url)
|
||||
let req = ureq::get(ovmf_url)
|
||||
.call()
|
||||
.map_err(Report::from)
|
||||
.change_context(OvmfFetchError::Fetch)?;
|
||||
|
||||
bytes
|
||||
.copy_to(&mut file)
|
||||
std::io::copy(&mut req.into_reader(), &mut file)
|
||||
.map_err(Report::from)
|
||||
.change_context(OvmfFetchError::Io)?;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ create_window := fn(channel: int): ^render.Surface {
|
|||
mem_buf := memory.request_page(1)
|
||||
|
||||
if windowing_system_buffer == 0 {
|
||||
return 0
|
||||
return @as(^render.Surface, idk)
|
||||
} else {
|
||||
// ! bad able, stop using string messages :ragey:
|
||||
// msg := "\{01}\0"
|
||||
|
@ -43,6 +43,6 @@ create_window := fn(channel: int): ^render.Surface {
|
|||
log.info("No messages\0")
|
||||
}
|
||||
|
||||
return 0
|
||||
return @as(^render.Surface, idk)
|
||||
}
|
||||
}
|
|
@ -41,14 +41,13 @@ surface_from_bmp := fn(bmp: ^u8): Surface {
|
|||
info_header := @as(^BitmapInfoHeader, @bitcast(bmp + @sizeof(BitmapFileHeader)))
|
||||
bmp += file_header.offset
|
||||
|
||||
a := 0
|
||||
px := info_header.width * info_header.height
|
||||
ptr := @as(^Color, @bitcast(bmp))
|
||||
tmp := @as(Color, idk)
|
||||
row := 0
|
||||
row := @as(i32, 0)
|
||||
|
||||
loop if row == info_header.height / 2 break else {
|
||||
col := 0
|
||||
col := @as(i32, 0)
|
||||
loop if col == info_header.width break else {
|
||||
top_index := row * info_header.width + col
|
||||
bottom_index := (info_header.height - 1 - row) * info_header.width + col
|
||||
|
@ -62,7 +61,7 @@ surface_from_bmp := fn(bmp: ^u8): Surface {
|
|||
row += 1
|
||||
}
|
||||
|
||||
return .(@bitcast(bmp), @intcast(info_header.width), @intcast(info_header.height))
|
||||
return .(@bitcast(bmp), info_header.width, info_header.height)
|
||||
}
|
||||
|
||||
new_surface_from_bmp := fn(bmp: ^u8): Surface {
|
||||
|
@ -74,8 +73,8 @@ new_surface_from_bmp := fn(bmp: ^u8): Surface {
|
|||
info_header := @as(^BitmapInfoHeader, @bitcast(bmp + @sizeof(BitmapFileHeader)))
|
||||
bmp += file_header.offset
|
||||
|
||||
width := @as(int, @intcast(info_header.width))
|
||||
height := @as(int, @intcast(info_header.height))
|
||||
width := @as(uint, @intcast(info_header.width))
|
||||
height := @as(uint, @intcast(info_header.height))
|
||||
|
||||
surface := new_surface(width, height)
|
||||
top_start_idx := surface.buf
|
||||
|
|
|
@ -4,11 +4,11 @@
|
|||
|
||||
Surface := struct {
|
||||
buf: ^Color,
|
||||
width: int,
|
||||
height: int,
|
||||
width: uint,
|
||||
height: uint,
|
||||
}
|
||||
|
||||
new_surface := fn(width: int, height: int): Surface {
|
||||
new_surface := fn(width: uint, height: uint): Surface {
|
||||
return .(
|
||||
@inline(memory.alloc, Color, width * height),
|
||||
width,
|
||||
|
@ -16,7 +16,7 @@ new_surface := fn(width: int, height: int): Surface {
|
|||
)
|
||||
}
|
||||
|
||||
surface_from_ptr := fn(ptr: ^Color, width: int, height: int): Surface {
|
||||
surface_from_ptr := fn(ptr: ^Color, width: uint, height: uint): Surface {
|
||||
return .(
|
||||
ptr,
|
||||
width,
|
||||
|
@ -39,8 +39,8 @@ framebuffer := @as(^Color, idk)
|
|||
|
||||
init := fn(doublebuffer: bool): Surface {
|
||||
framebuffer = dt.get(^Color, "framebuffer/fb0/ptr\0")
|
||||
width := dt.get(int, "framebuffer/fb0/width\0")
|
||||
height := dt.get(int, "framebuffer/fb0/height\0")
|
||||
width := dt.get(uint, "framebuffer/fb0/width\0")
|
||||
height := dt.get(uint, "framebuffer/fb0/height\0")
|
||||
if doublebuffer {
|
||||
return new_surface(width, height)
|
||||
} else {
|
||||
|
@ -49,7 +49,7 @@ init := fn(doublebuffer: bool): Surface {
|
|||
}
|
||||
|
||||
clear := fn(surface: Surface, color: Color): void {
|
||||
return @inline(memory.set, Color, &color, surface.buf, @bitcast(surface.width * surface.height))
|
||||
return @inline(memory.set, Color, &color, surface.buf, surface.width * surface.height)
|
||||
}
|
||||
|
||||
sync := fn(surface: Surface): void {
|
||||
|
@ -60,20 +60,20 @@ sync := fn(surface: Surface): void {
|
|||
return @inline(memory.copy, Color, surface.buf, framebuffer, @bitcast(surface.width * surface.height))
|
||||
}
|
||||
|
||||
index := fn(surface: Surface, x: int, y: int): int {
|
||||
index := fn(surface: Surface, x: uint, y: uint): uint {
|
||||
return x + surface.width * y
|
||||
}
|
||||
|
||||
indexptr := fn(surface: Surface, x: int, y: int): ^Color {
|
||||
indexptr := fn(surface: Surface, x: uint, y: uint): ^Color {
|
||||
return surface.buf + @inline(index, surface, x, y)
|
||||
}
|
||||
|
||||
put_pixel := fn(surface: Surface, pos: Vec2(int), color: Color): void {
|
||||
put_pixel := fn(surface: Surface, pos: Vec2(uint), color: Color): void {
|
||||
*@inline(indexptr, surface, pos.x, pos.y) = color
|
||||
return
|
||||
}
|
||||
|
||||
put_filled_rect := fn(surface: Surface, pos: Vec2(int), tr: Vec2(int), color: Color): void {
|
||||
put_filled_rect := fn(surface: Surface, pos: Vec2(uint), tr: Vec2(uint), color: Color): void {
|
||||
top_start_idx := @inline(indexptr, surface, pos.x, pos.y)
|
||||
bottom_start_idx := @inline(indexptr, surface, pos.x, pos.y + tr.y - 1)
|
||||
rows_to_fill := tr.y
|
||||
|
@ -94,7 +94,7 @@ put_filled_rect := fn(surface: Surface, pos: Vec2(int), tr: Vec2(int), color: Co
|
|||
return
|
||||
}
|
||||
|
||||
put_rect := fn(surface: Surface, pos: Vec2(int), tr: Vec2(int), color: Color): void {
|
||||
put_rect := fn(surface: Surface, pos: Vec2(uint), tr: Vec2(uint), color: Color): void {
|
||||
start_idx := @inline(indexptr, surface, pos.x, pos.y)
|
||||
end_idx := @inline(indexptr, surface, pos.x, pos.y + tr.y)
|
||||
right_start_idx := @inline(indexptr, surface, pos.x + tr.x, pos.y)
|
||||
|
@ -112,15 +112,15 @@ put_rect := fn(surface: Surface, pos: Vec2(int), tr: Vec2(int), color: Color): v
|
|||
return
|
||||
}
|
||||
|
||||
put_line_low := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color): void {
|
||||
dx := p1.x - p0.x
|
||||
dy := p1.y - p0.y
|
||||
put_line_low := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Color): void {
|
||||
dx := @as(int, @bitcast(p1.x - p0.x))
|
||||
dy := @as(int, @bitcast(p1.y - p0.y))
|
||||
yi := 1
|
||||
if dy < 0 {
|
||||
yi = -1
|
||||
dy = -dy
|
||||
}
|
||||
D := 2 * dy - dx
|
||||
D := @as(int, 2) * dy - dx
|
||||
y := p0.y
|
||||
x := p0.x
|
||||
loop if x == p1.x break else {
|
||||
|
@ -136,15 +136,15 @@ put_line_low := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color)
|
|||
return
|
||||
}
|
||||
|
||||
put_line_high := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color): void {
|
||||
dx := p1.x - p0.x
|
||||
dy := p1.y - p0.y
|
||||
put_line_high := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Color): void {
|
||||
dx := @as(int, @bitcast(p1.x - p0.x))
|
||||
dy := @as(int, @bitcast(p1.y - p0.y))
|
||||
xi := 1
|
||||
if dy < 0 {
|
||||
xi = -1
|
||||
dx = -dx
|
||||
}
|
||||
D := 2 * dx - dy
|
||||
D := @as(int, 2) * dx - dy
|
||||
x := p0.x
|
||||
y := p0.y
|
||||
loop if y == p1.y break else {
|
||||
|
@ -160,8 +160,8 @@ put_line_high := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color
|
|||
return
|
||||
}
|
||||
|
||||
put_line := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color): void {
|
||||
if math.abs(int, p1.y - p0.y) < math.abs(int, p1.x - p0.x) {
|
||||
put_line := fn(surface: Surface, p0: Vec2(uint), p1: Vec2(uint), color: Color): void {
|
||||
if math.abs(uint, p1.y - p0.y) < math.abs(uint, p1.x - p0.x) {
|
||||
if p0.x > p1.x {
|
||||
@inline(put_line_low, surface, p1, p0, color)
|
||||
} else {
|
||||
|
@ -177,7 +177,7 @@ put_line := fn(surface: Surface, p0: Vec2(int), p1: Vec2(int), color: Color): vo
|
|||
return
|
||||
}
|
||||
|
||||
put_surface := fn(surface: Surface, top: Surface, pos: Vec2(int), flip_v: bool): void {
|
||||
put_surface := fn(surface: Surface, top: Surface, pos: Vec2(uint), flip_v: bool): void {
|
||||
top_start_idx := @inline(indexptr, surface, pos.x, pos.y)
|
||||
bottom_start_idx := @inline(indexptr, surface, pos.x, pos.y + top.height - 1)
|
||||
rows_to_copy := top.height
|
||||
|
@ -208,29 +208,29 @@ put_surface := fn(surface: Surface, top: Surface, pos: Vec2(int), flip_v: bool):
|
|||
}
|
||||
|
||||
// peony-made
|
||||
put_trirect := fn(surface: Surface, pos: Vec2(int), size: Vec2(int), color0: Color, color1: Color): void {
|
||||
put_trirect := fn(surface: Surface, pos: Vec2(uint), size: Vec2(int), color0: Color, color1: Color): void {
|
||||
step := Vec2(int).(1, 1)
|
||||
if size.x < 0 {
|
||||
step.x = -1
|
||||
}
|
||||
if size.y < 0 {
|
||||
step.y = size.y / size.x
|
||||
step.y /= @bitcast(size.x)
|
||||
}
|
||||
|
||||
start_y := pos.y
|
||||
target := pos + size
|
||||
target := pos + @bitcast(size)
|
||||
|
||||
loop if pos.x == target.x break else {
|
||||
@inline(put_vline, surface, pos.x, pos.y, target.y, color0)
|
||||
@inline(put_vline, surface, pos.x, pos.y, start_y, color1)
|
||||
pos += step
|
||||
pos += @bitcast(step)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// peony-made
|
||||
put_vline := fn(surface: Surface, x: int, y0: int, y1: int, color: Color): void {
|
||||
put_vline := fn(surface: Surface, x: uint, y0: uint, y1: uint, color: Color): void {
|
||||
if y1 < y0 {
|
||||
tmp := y0
|
||||
y0 = y1
|
||||
|
@ -247,7 +247,7 @@ put_vline := fn(surface: Surface, x: int, y0: int, y1: int, color: Color): void
|
|||
}
|
||||
|
||||
// peony-made
|
||||
put_hline := fn(surface: Surface, y: int, x0: int, x1: int, color: Color): void {
|
||||
put_hline := fn(surface: Surface, y: uint, x0: uint, x1: uint, color: Color): void {
|
||||
if x1 < x0 {
|
||||
tmp := x0
|
||||
x0 = x1
|
||||
|
|
|
@ -8,6 +8,14 @@ write := fn($Expr: type, msg: ^Expr, buffer_id: int): void {
|
|||
return @eca(3, buffer_id, msg, @sizeof(Expr))
|
||||
}
|
||||
|
||||
recv_length := fn(buffer_id: int, memory_map_location: ^u8, length: int): void {
|
||||
return @eca(4, buffer_id, memory_map_location, length)
|
||||
}
|
||||
|
||||
write_length := fn(msg: ^u8, buffer_id: int, length: int): void {
|
||||
return @eca(3, buffer_id, msg, length)
|
||||
}
|
||||
|
||||
BufferMsg := packed struct {operation: u8, msg: ^u8, msg_len: uint}
|
||||
|
||||
create := fn(msg: ^u8): int {
|
||||
|
|
|
@ -2,8 +2,8 @@ string := @use("string.hb")
|
|||
|
||||
LogMsg := packed struct {level: u8, string: ^u8, strlen: uint}
|
||||
|
||||
log := fn($Level: u8, message: ^u8): void {
|
||||
return @eca(3, 1, LogMsg.(Level, message, @inline(string.length, message)), @sizeof(LogMsg))
|
||||
log := fn(level: u8, message: ^u8): void {
|
||||
return @eca(3, 1, LogMsg.(level, message, @inline(string.length, message)), @sizeof(LogMsg))
|
||||
}
|
||||
|
||||
error := fn(message: ^u8): void return @inline(log, 0, message)
|
||||
|
|
|
@ -2,49 +2,27 @@ PAGE_SIZE := 4096
|
|||
MAX_ALLOC := 0xFF
|
||||
MAX_FREE := 0xFF
|
||||
|
||||
calc_pages := fn($Expr: type, num: int): int {
|
||||
return 1 + @bitcast(@sizeof(Expr)) * num / PAGE_SIZE
|
||||
calc_pages := fn($Expr: type, num: uint): uint {
|
||||
return 1 + @sizeof(Expr) * num / PAGE_SIZE
|
||||
}
|
||||
|
||||
alloc := fn($Expr: type, num: int): ^Expr {
|
||||
alloc := fn($Expr: type, num: uint): ^Expr {
|
||||
pages := @inline(calc_pages, Expr, num)
|
||||
if pages <= MAX_ALLOC {
|
||||
return @bitcast(request_page(@intcast(pages)))
|
||||
}
|
||||
ptr := request_page(0xFF)
|
||||
remaining := pages - MAX_ALLOC
|
||||
loop if remaining <= 0 break else {
|
||||
if remaining < MAX_ALLOC {
|
||||
request_page(@intcast(remaining))
|
||||
} else {
|
||||
request_page(@intcast(MAX_ALLOC))
|
||||
}
|
||||
loop if remaining < MAX_ALLOC break else {
|
||||
_ := request_page(@intcast(MAX_ALLOC))
|
||||
remaining -= MAX_ALLOC
|
||||
}
|
||||
_ := request_page(@intcast(remaining))
|
||||
return @bitcast(ptr)
|
||||
}
|
||||
|
||||
// ! is broked, somebody fix please :(
|
||||
free := fn($Expr: type, ptr: ^Expr, num: int, nullify: bool): void {
|
||||
if nullify {
|
||||
null := @as(u8, 0)
|
||||
set(u8, &null, @bitcast(ptr), @bitcast(num) * @bitcast(PAGE_SIZE))
|
||||
}
|
||||
pages := @inline(calc_pages, Expr, num)
|
||||
if pages <= MAX_FREE {
|
||||
return release_page(@bitcast(ptr), @intcast(pages))
|
||||
}
|
||||
page_ptr := @as(^[u8; PAGE_SIZE], @bitcast(ptr)) + 1
|
||||
remaining := pages - MAX_FREE
|
||||
loop if remaining <= 0 break else {
|
||||
if remaining < MAX_FREE {
|
||||
release_page(@bitcast(page_ptr), @intcast(remaining))
|
||||
} else {
|
||||
release_page(@bitcast(page_ptr), @intcast(MAX_FREE))
|
||||
}
|
||||
remaining -= MAX_FREE
|
||||
page_ptr += 1
|
||||
}
|
||||
// ! stub
|
||||
free := fn($Expr: type, ptr: ^Expr, num: uint, nullify: bool): void {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -78,12 +56,12 @@ inl := fn(addr: u16): u32 {
|
|||
return @eca(3, 3, &InlMsg.(0, 2, addr), @sizeof(InlMsg))
|
||||
}
|
||||
|
||||
CopyMsg := packed struct {a: u8, count: uint, src: uint, dest: ^u8}
|
||||
CopyMsg := packed struct {a: u8, count: u32, src: ^u8, dest: ^u8}
|
||||
copy := fn($Expr: type, src: ^Expr, dest: ^Expr, count: uint): void {
|
||||
return @eca(3, 2, &CopyMsg.(4, count * @sizeof(Expr), @bitcast(src), @bitcast(dest)), @sizeof(CopyMsg))
|
||||
return @eca(3, 2, &CopyMsg.(4, @intcast(count * @sizeof(Expr)), @bitcast(src), @bitcast(dest)), @sizeof(CopyMsg))
|
||||
}
|
||||
|
||||
SetMsg := packed struct {a: u8, count: uint, size: uint, src: ^u8, dest: ^u8}
|
||||
SetMsg := packed struct {a: u8, count: u32, size: u32, src: ^u8, dest: ^u8}
|
||||
set := fn($Expr: type, src: ^Expr, dest: ^Expr, count: uint): void {
|
||||
return @eca(3, 2, &SetMsg.(5, count, @sizeof(Expr), @bitcast(src), @bitcast(dest)), @sizeof(SetMsg))
|
||||
return @eca(3, 2, &SetMsg.(5, @intcast(count), @intcast(@sizeof(Expr)), @bitcast(src), @bitcast(dest)), @sizeof(SetMsg))
|
||||
}
|
|
@ -1,8 +1,7 @@
|
|||
any := fn($Expr: type): Expr {
|
||||
return @intcast(@eca(3, 4))
|
||||
return *@eca(3, 4, &@as(Expr, idk), @sizeof(Expr))
|
||||
}
|
||||
|
||||
range := fn($Expr: type, min: Expr, max: Expr): Expr {
|
||||
// wtf is this
|
||||
return @intcast(@as(int, @eca(3, 4)) % @as(int, @intcast(max) - @intcast(min)) + 1 + @intcast(min))
|
||||
return @inline(any, Expr) % (max - min) + @intcast(1) + min
|
||||
}
|
|
@ -1,10 +1,11 @@
|
|||
length := fn(ptr: ^u8): uint {
|
||||
len := @as(uint, 0)
|
||||
// loop if *(ptr + len) == 0 return len else len += 1
|
||||
loop if *(ptr + len) == 0 break else len += 1
|
||||
return len
|
||||
}
|
||||
|
||||
display_int := fn(num: int, p: ^u8, radix: int): ^u8 {
|
||||
display_int := fn(num: int, p: ^u8, radix: uint): ^u8 {
|
||||
ptr := p
|
||||
negative := num < 0
|
||||
if negative {
|
||||
|
@ -33,14 +34,14 @@ display_int := fn(num: int, p: ^u8, radix: int): ^u8 {
|
|||
ptr += 1
|
||||
} else {
|
||||
loop if num == 0 break else {
|
||||
digit := num % radix
|
||||
digit := num % @bitcast(radix)
|
||||
if digit < 10 {
|
||||
*ptr = digit + 48
|
||||
*ptr = @intcast(digit) + 48
|
||||
} else {
|
||||
*ptr = digit + 55
|
||||
*ptr = @intcast(digit) + 55
|
||||
}
|
||||
ptr += 1
|
||||
num /= radix
|
||||
num /= @bitcast(radix)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -55,11 +56,11 @@ display_int := fn(num: int, p: ^u8, radix: int): ^u8 {
|
|||
|
||||
return p
|
||||
}
|
||||
|
||||
reverse := fn(s: ^u8): void {
|
||||
len := @inline(length, s)
|
||||
i := 0
|
||||
j := len - 1
|
||||
temp := 0
|
||||
i := @as(uint, 0)
|
||||
j := @inline(length, s) - 1
|
||||
temp := @as(u8, 0)
|
||||
loop if i >= j break else {
|
||||
temp = *(s + i);
|
||||
*(s + i) = *(s + j);
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
.{dt} := @use("../../../libraries/stn/src/lib.hb")
|
||||
|
||||
main := fn(): int {
|
||||
dt.get(int, "framebuffer/fb0/width\0")
|
||||
dt.get(int, "cpu/cpu0/architecture\0")
|
||||
main := fn(): void {
|
||||
dt.get(void, "framebuffer/fb0/width\0")
|
||||
dt.get(void, "cpu/cpu0/architecture\0")
|
||||
|
||||
// Checking if the first detected serial port is memory mapped or port mapped
|
||||
// 0 -> memory mapped
|
||||
// 1 -> port mapped
|
||||
dt.get(int, "serial_ports/sp0/mapping\0")
|
||||
dt.get(void, "serial_ports/sp0/mapping\0")
|
||||
|
||||
return 0
|
||||
return
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
READ_ONLY := 0x1
|
||||
HIDDEN := 0x2
|
||||
SYSTEM := 0x4
|
||||
VOLUME_ID := 0x8
|
||||
DIRECTORY := 0x10
|
||||
ARCHIVE := 0x20
|
||||
READ_ONLY := @as(u32, 0x1)
|
||||
HIDDEN := @as(u32, 0x2)
|
||||
SYSTEM := @as(u32, 0x4)
|
||||
VOLUME_ID := @as(u32, 0x8)
|
||||
DIRECTORY := @as(u32, 0x10)
|
||||
ARCHIVE := @as(u32, 0x20)
|
||||
LFN := READ_ONLY | HIDDEN | SYSTEM | VOLUME_ID
|
|
@ -63,7 +63,7 @@ VolumeName := [u8; 11]
|
|||
|
||||
SystemIdentifierString := [u8; 8]
|
||||
VALID_SYSTEM_IDENTIFIER_STRING := [u8].(46, 41, 54, 33, 32, 20, 20, 20)
|
||||
BOOTABLE_PARTITION_SIGNATURE := 0xAA55
|
||||
BOOTABLE_PARTITION_SIGNATURE := @as(u32, 0xAA55)
|
||||
|
||||
BootCode := [u8; 420]
|
||||
|
||||
|
@ -100,9 +100,10 @@ ebr_sanity_check := fn(ebr: ExtendedBootRecord): int {
|
|||
log.warn("EBR-Signature sanity check failed\0")
|
||||
}
|
||||
|
||||
if ebr.system_identifier_string != VALID_SYSTEM_IDENTIFIER_STRING {
|
||||
log.warn("EBR-Signature-Identifier-String sanity check failed\0")
|
||||
}
|
||||
// ! comparison between [u8] is not supported in hblang
|
||||
// if ebr.system_identifier_string != VALID_SYSTEM_IDENTIFIER_STRING {
|
||||
// log.warn("EBR-Signature-Identifier-String sanity check failed\0")
|
||||
// }
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -131,8 +132,8 @@ new_ebr := fn(): ExtendedBootRecord {
|
|||
)
|
||||
}
|
||||
|
||||
VALID_LEAD_FS_INFO := 0x41615252
|
||||
VALID_TRAIL_FS_INFO := 0xAA550000
|
||||
VALID_LEAD_FS_INFO := @as(u32, 0x41615252)
|
||||
VALID_TRAIL_FS_INFO := @as(u32, 0xAA550000)
|
||||
|
||||
FSInfo := struct {
|
||||
// Must be 0x41615252 to indicate a valid FSInfo structure
|
||||
|
@ -145,7 +146,7 @@ FSInfo := struct {
|
|||
trail_signature: u32,
|
||||
}
|
||||
|
||||
fs_info_sanity_check := fn(fs_info: FSInfo): int {
|
||||
fs_info_sanity_check := fn(fs_info: FSInfo): uint {
|
||||
ret := 0
|
||||
if fs_info.lead_signature != VALID_LEAD_FS_INFO {
|
||||
ret &= 1
|
||||
|
|
|
@ -16,7 +16,7 @@ FAT12 := 1
|
|||
FAT16 := 2
|
||||
FAT32 := 3
|
||||
|
||||
calculate_fat_type := fn(sector_size: int, total_clusters: int): int {
|
||||
calculate_fat_type := fn(sector_size: uint, total_clusters: uint): uint {
|
||||
if sector_size == 0 {
|
||||
return ExFAT
|
||||
} else if total_clusters < 4085 {
|
||||
|
|
|
@ -25,14 +25,14 @@ main := fn(): int {
|
|||
|
||||
window := render.new_surface(screen.width / 3, screen.height / 3)
|
||||
|
||||
x := 10
|
||||
x := 0
|
||||
|
||||
mem_buf := memory.request_page(1)
|
||||
color := random.range(render.Color, render.black, render.white)
|
||||
color := random.any(render.Color)
|
||||
side := window.width / 8
|
||||
|
||||
vel_inner := Vec2(int).(1, 1)
|
||||
pos_inner := Vec2(int).((window.width - side) / 2, (window.height - side) / 2)
|
||||
pos_inner := Vec2(uint).((window.width - side) / 2, (window.height - side) / 2)
|
||||
|
||||
loop {
|
||||
// Clear the screen
|
||||
|
@ -48,11 +48,11 @@ main := fn(): int {
|
|||
|
||||
if pos_inner.x == 0 | pos_inner.x == window.width - side {
|
||||
vel_inner.x = -vel_inner.x
|
||||
color = random.range(render.Color, render.black, render.white)
|
||||
color = random.any(render.Color)
|
||||
}
|
||||
if pos_inner.y == 20 | pos_inner.y == window.height - side {
|
||||
vel_inner.y = -vel_inner.y
|
||||
color = random.range(render.Color, render.black, render.white)
|
||||
color = random.any(render.Color)
|
||||
}
|
||||
|
||||
// TODO: Get windows out of a collection and iter through
|
||||
|
@ -69,17 +69,17 @@ main := fn(): int {
|
|||
render.put_filled_rect(window, pos_inner, .(side, side), color)
|
||||
|
||||
// Apply the image to the screen
|
||||
pos := Vec2(int).(x, 100)
|
||||
pos := Vec2(uint).(x, 100)
|
||||
|
||||
render.put_surface(screen, window, pos, false)
|
||||
if window_count >= 1 {
|
||||
x = 10
|
||||
x = 0
|
||||
break
|
||||
}
|
||||
window_count += 1
|
||||
x += 400
|
||||
x += screen.width / 2
|
||||
}
|
||||
pos_inner += vel_inner
|
||||
pos_inner += @bitcast(vel_inner)
|
||||
|
||||
// Sync the screen
|
||||
render.sync(screen)
|
||||
|
|
|
@ -7,7 +7,7 @@ send_byte := fn(byte: u8): u8 {
|
|||
|
||||
main := fn(): int {
|
||||
buf := buffer.create("XKeyboard\0")
|
||||
send_byte(238)
|
||||
_ := send_byte(238)
|
||||
log.info("PS/2 Driver Loaded\0")
|
||||
if send_byte(238) == 238 {
|
||||
log.info("PS/2 Keyboard Echoed\0")
|
||||
|
|
|
@ -8,13 +8,13 @@ bmp_1 := @embed("./assets/able.bmp")
|
|||
bmp_2 := @embed("./assets/mini.bmp")
|
||||
|
||||
example := fn(): void {
|
||||
images := [render.Surface; 2].(
|
||||
images := [render.Surface].(
|
||||
render.image.surface_from_bmp(@bitcast(&bmp_1)),
|
||||
render.image.surface_from_bmp(@bitcast(&bmp_2)),
|
||||
)
|
||||
screen := render.init(true)
|
||||
vel := Vec2(int).(1, 1)
|
||||
pos := Vec2(int).(100, 100)
|
||||
pos := Vec2(uint).(100, 100)
|
||||
n := 0
|
||||
loop {
|
||||
image := images[n]
|
||||
|
@ -31,7 +31,7 @@ example := fn(): void {
|
|||
n = 1 - n
|
||||
}
|
||||
|
||||
pos += vel
|
||||
pos += @bitcast(vel)
|
||||
}
|
||||
return
|
||||
}
|
|
@ -8,8 +8,8 @@ render := @use("../../../../libraries/render/src/lib.hb")
|
|||
example := fn(): void {
|
||||
screen := render.init(true)
|
||||
render.clear(screen, .(100, 50, 0, 255))
|
||||
p0 := Vec2(int).(0, 0)
|
||||
p1 := Vec2(int).(0, screen.height)
|
||||
p0 := Vec2(uint).(0, 0)
|
||||
p1 := Vec2(uint).(0, screen.height)
|
||||
loop if p0.y >= screen.height break else {
|
||||
render.put_line(screen, p0, p1, .(255, 180, 100, 255))
|
||||
render.put_line(screen, .(screen.width, screen.height) - p0, .(screen.width, screen.height) - p1, .(255, 180, 100, 255))
|
||||
|
|
|
@ -5,11 +5,11 @@ example := fn(): void {
|
|||
screen := render.init(false)
|
||||
render.clear(screen, render.black)
|
||||
loop {
|
||||
x := random.range(int, 0, 1024)
|
||||
y := random.range(int, 0, 768)
|
||||
r := random.range(int, 0, 255)
|
||||
g := random.range(int, 0, 75)
|
||||
b := random.range(int, 0, 155)
|
||||
x := random.range(uint, 0, screen.width)
|
||||
y := random.range(uint, 0, screen.height)
|
||||
r := random.range(u8, 0, 255)
|
||||
g := random.range(u8, 0, 75)
|
||||
b := random.range(u8, 0, 155)
|
||||
render.put_pixel(screen, .(x, y), .(b, g, r, 255))
|
||||
}
|
||||
return
|
||||
|
|
|
@ -9,8 +9,8 @@ example := fn(): void {
|
|||
screen := render.init(true)
|
||||
vel := Vec2(int).(1, 1)
|
||||
side := screen.width / 8
|
||||
pos := Vec2(int).((screen.width - side) / 2, (screen.height - side) / 2)
|
||||
color := random.range(render.Color, render.black, render.white)
|
||||
pos := Vec2(uint).((screen.width - side) / 2, (screen.height - side) / 2)
|
||||
color := random.any(render.Color)
|
||||
loop {
|
||||
render.put_filled_rect(screen, pos, .(side, side), color)
|
||||
render.sync(screen)
|
||||
|
@ -18,14 +18,14 @@ example := fn(): void {
|
|||
|
||||
if pos.x == 0 | pos.x == screen.width - side {
|
||||
vel.x = -vel.x
|
||||
color = random.range(render.Color, render.black, render.white)
|
||||
color = random.any(render.Color)
|
||||
}
|
||||
if pos.y == 0 | pos.y == screen.height - side {
|
||||
vel.y = -vel.y
|
||||
color = random.range(render.Color, render.black, render.white)
|
||||
color = random.any(render.Color)
|
||||
}
|
||||
|
||||
pos += vel
|
||||
pos += @bitcast(vel)
|
||||
}
|
||||
return
|
||||
}
|
|
@ -10,14 +10,12 @@ example := fn(): void {
|
|||
|
||||
image := render.new_surface(screen.width / 3, screen.height / 3)
|
||||
vel := Vec2(int).(-1, -1)
|
||||
pos := Vec2(int).(100, 100)
|
||||
pos := Vec2(uint).(100, 100)
|
||||
side := image.width / 8
|
||||
vel_inner := Vec2(int).(1, 1)
|
||||
pos_inner := Vec2(int).((image.width - side) / 2, (image.height - side) / 2)
|
||||
// workaround for compiler bug
|
||||
color := render.Color.(0, 0, 0, 0)
|
||||
color = random.range(render.Color, render.black, render.white)
|
||||
target_color := color
|
||||
pos_inner := Vec2(uint).((image.width - side) / 2, (image.height - side) / 2)
|
||||
color := random.any(render.Color)
|
||||
target_color := random.any(render.Color)
|
||||
loop {
|
||||
render.clear(screen, render.black)
|
||||
render.put_filled_rect(image, pos_inner, .(side, side), color)
|
||||
|
@ -30,11 +28,11 @@ example := fn(): void {
|
|||
|
||||
if pos_inner.x == 0 | pos_inner.x == image.width - side {
|
||||
vel_inner.x = -vel_inner.x
|
||||
target_color = random.range(render.Color, render.black, render.white)
|
||||
target_color = random.any(render.Color)
|
||||
}
|
||||
if pos_inner.y == 0 | pos_inner.y == image.height - side {
|
||||
vel_inner.y = -vel_inner.y
|
||||
target_color = random.range(render.Color, render.black, render.white)
|
||||
target_color = random.any(render.Color)
|
||||
}
|
||||
|
||||
if pos.x == 0 | pos.x == screen.width - image.width {
|
||||
|
@ -45,13 +43,13 @@ example := fn(): void {
|
|||
}
|
||||
|
||||
color += .(
|
||||
@intcast(color.b < target_color.b) - @intcast(color.b > target_color.b),
|
||||
@intcast(color.g < target_color.g) - @intcast(color.g > target_color.g),
|
||||
@intcast(color.r < target_color.r) - @intcast(color.r > target_color.r),
|
||||
@bitcast(color.b < target_color.b) - @bitcast(color.b > target_color.b),
|
||||
@bitcast(color.g < target_color.g) - @bitcast(color.g > target_color.g),
|
||||
@bitcast(color.r < target_color.r) - @bitcast(color.r > target_color.r),
|
||||
0,
|
||||
)
|
||||
pos += vel
|
||||
pos_inner += vel_inner
|
||||
pos += @bitcast(vel)
|
||||
pos_inner += @bitcast(vel_inner)
|
||||
}
|
||||
return
|
||||
}
|
|
@ -12,7 +12,7 @@ example := fn(): void {
|
|||
width := screen.width
|
||||
height := screen.height
|
||||
cell_size := 0
|
||||
range := Vec2(int).(0, 0)
|
||||
range := Vec2(uint).(0, 0)
|
||||
if width > height {
|
||||
cell_size = width / 40
|
||||
range = .(39, height / cell_size - 1)
|
||||
|
@ -24,19 +24,19 @@ example := fn(): void {
|
|||
height -= 1
|
||||
|
||||
scroll := 0
|
||||
target := Vec2(int).(random.range(int, 0, range.x), random.range(int, 0, range.y))
|
||||
target := Vec2(uint).(random.range(uint, 0, range.x), random.range(uint, 0, range.y))
|
||||
|
||||
halfcell := cell_size / 2
|
||||
octcell := cell_size / 8
|
||||
sevenoctcell := cell_size - octcell
|
||||
|
||||
seeker := Vec2(int).(random.range(int, 0, range.x), random.range(int, 0, range.y))
|
||||
seeker := Vec2(uint).(random.range(uint, 0, range.x), random.range(uint, 0, range.y))
|
||||
|
||||
loop {
|
||||
render.clear(screen, render.black)
|
||||
|
||||
target_pixel_coord := target * .(cell_size, cell_size) + .(scroll, scroll)
|
||||
render.put_trirect(screen, target_pixel_coord, .(cell_size, cell_size), render.red, render.light_red)
|
||||
target_pixel_coord := target * .(@bitcast(cell_size), @bitcast(cell_size)) + .(scroll, scroll)
|
||||
render.put_trirect(screen, target_pixel_coord, .(@bitcast(cell_size), @bitcast(cell_size)), render.red, render.light_red)
|
||||
|
||||
render.put_hline(screen, target_pixel_coord.y + halfcell, target_pixel_coord.x - octcell, target_pixel_coord.x - sevenoctcell, render.light_red)
|
||||
render.put_hline(screen, target_pixel_coord.y + halfcell, target_pixel_coord.x + cell_size + octcell, target_pixel_coord.x + cell_size + sevenoctcell, render.light_red)
|
||||
|
@ -69,7 +69,7 @@ example := fn(): void {
|
|||
} else if seeker.y > target.y {
|
||||
seeker.y -= 1
|
||||
} else {
|
||||
target = .(random.range(int, 0, range.x), random.range(int, 0, range.y))
|
||||
target = .(random.range(uint, 0, range.x), random.range(uint, 0, range.y))
|
||||
}
|
||||
|
||||
scroll += 1
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.{memory, buffer} := @use("../../../libraries/stn/src/lib.hb")
|
||||
|
||||
serial_print := fn(ptr: ^u8): void {
|
||||
letter := 0
|
||||
letter := @as(u8, 0)
|
||||
loop if *ptr == 0 break else {
|
||||
letter = *ptr
|
||||
memory.outb(0xF803, letter)
|
||||
|
|
|
@ -10,9 +10,9 @@ service_search := fn(): void {
|
|||
main := fn(): int {
|
||||
//service_search()
|
||||
buf := "\0\0\0\0"
|
||||
x := 0
|
||||
loop if x == 255 break else {
|
||||
log.info(string.display_int(x, buf, 10))
|
||||
x := @as(int, 0)
|
||||
loop if x > 255 break else {
|
||||
log.info(string.display_int(x, buf, 2))
|
||||
x += 1
|
||||
}
|
||||
return 0
|
||||
|
|
|
@ -28,8 +28,8 @@ resolution = "1024x768x24"
|
|||
# [boot.limine.ableos.modules.diskio_driver]
|
||||
# path = "boot:///diskio_driver.hbf"
|
||||
|
||||
[boot.limine.ableos.modules.render_example]
|
||||
path = "boot:///render_example.hbf"
|
||||
# [boot.limine.ableos.modules.render_example]
|
||||
# path = "boot:///render_example.hbf"
|
||||
|
||||
# [boot.limine.ableos.modules.serial_driver]
|
||||
# path = "boot:///serial_driver.hbf"
|
||||
|
@ -37,11 +37,11 @@ path = "boot:///render_example.hbf"
|
|||
# [boot.limine.ableos.modules.serial_driver_test]
|
||||
# path = "boot:///serial_driver_test.hbf"
|
||||
|
||||
# [boot.limine.ableos.modules.horizon]
|
||||
# path = "boot:///horizon.hbf"
|
||||
[boot.limine.ableos.modules.horizon]
|
||||
path = "boot:///horizon.hbf"
|
||||
|
||||
# [boot.limine.ableos.modules.horizon_testing_program]
|
||||
# path = "boot:///horizon_testing_program.hbf"
|
||||
[boot.limine.ableos.modules.horizon_testing_program]
|
||||
path = "boot:///horizon_testing_program.hbf"
|
||||
|
||||
# [boot.limine.ableos.modules.dt_buffer_test]
|
||||
# path = "boot:///dt_buffer_test.hbf"
|
||||
|
|
Loading…
Reference in a new issue