Commit Graph

164 Commits

Author SHA1 Message Date
zxq5 8f7163c459 added some documentation and started on compiler for custom language (not C) based on previous prototypes. pretty broken state rn. 2026-02-01 22:16:09 +00:00
zxq5 52ef7872f0 compiler working for some mathematical expressions, function calls and
simple conditionals
2026-01-31 13:28:42 +00:00
zxq5 e31deb594f fixed a bug with the multiply function in core.dsa and added a print_num
function to print.dsa for decimal numbers
2026-01-31 13:28:11 +00:00
zxq5 63c9d858b4 added a to-do list and bacon.toml for developing the compiler 2026-01-31 13:27:31 +00:00
zxq5 782c842a42 updated gitignore 2026-01-29 19:33:30 +00:00
zxq5 259746558f codegen progress 2026-01-29 19:29:48 +00:00
zxq5 b9f98bff7b started on codegen, scaffolding basically done 2025-11-15 02:58:36 +00:00
zxq5 091dabfbf3 Merge remote-tracking branch 'refs/remotes/origin/compiler' into compiler 2025-11-14 23:37:57 +00:00
zxq5 fd5b305576 started work on c compiler 2025-11-14 23:36:51 +00:00
zxq5 b33fdbfeec rust macros make me want to unalive. 2025-07-01 01:08:37 +01:00
zxq5 2582ad10fa started work on compiler 2025-06-30 20:44:39 +01:00
nullndvoid 458661b02a misc: add 'profiling' profile. 2025-06-29 04:11:41 +01:00
nullndvoid c41e5328e6 docs: fix failing doctest 2025-06-29 02:21:31 +01:00
zxq5 67ebf48d6f removed old log file 2025-06-29 02:08:06 +01:00
zxq5 98668c681e more optimisations test program ~54MIPS -> ~110MIPS 2025-06-29 02:04:14 +01:00
zxq5 05a25447b2 minor optimisation to reduce unnecessary allocations 2025-06-28 03:43:20 +01:00
zxq5 56d2abe17f - optimised main emulator loop, allowing updates only once every roughly 32,000 instructions.
- optimised memory access patterns, removing unecessary mutability and accesses.
- replaced the standard HashMap with an implementation that uses a faster hashing algorithm.

results:

before:
    - our benchmark program with ~4m instructions would take around for their data to make it to the UI, and a bit over 200ms to actually run

after:
    - our benchmark program with ~4m instructions can run in around 75ms, and the UI receives the update almost instantly.

conclusion:
- emulator performance should be around 2-3x faster than before.
2025-06-28 03:21:46 +01:00
zxq5 eaaefd1b07 added rule to .gitignore 2025-06-27 18:31:52 +01:00
zxq5 5302ad3876 removed junk files 2025-06-27 18:30:53 +01:00
zxq5 2280f1e5d9 updated vscode settings 2025-06-27 18:30:26 +01:00
zxq5 ae92510fb8 dsa lib bugfixes 2025-06-26 20:53:51 +01:00
zxq5 7c63340888 minor changes to assembler 2025-06-26 20:53:22 +01:00
zxq5 e9f04824ea updates to dsa libs 2025-06-26 00:51:20 +01:00
zxq5 620584488b fixed unit tests & misc changes to workspace config 2025-06-26 00:50:58 +01:00
zxq5 1101331f70 fixed a couple of emulator bugs, including fixing shift instructions. finished implementing lib/io/print/print_hex_byte and print_hex_word 2025-06-25 16:31:42 +01:00
zxq5 c171b0db89 worked on print.dsa and maths/core.dsa 2025-06-25 00:40:31 +01:00
zxq5 82b99c127c finished initial interrupts implementation 2025-06-25 00:13:55 +01:00
nullndvoid 92c4660a4d misc: get rid of some errors from Cargo lol 2025-06-24 21:55:11 +01:00
zxq5 2a6991fe4a idk, i refactored some stuff ig 2025-06-24 19:34:45 +01:00
zxq5 0fdd28aad1 finished the interpreter 2025-06-24 19:31:55 +01:00
zxq5 f639240b6c progress on debugging bf.dsa 2025-06-24 18:07:33 +01:00
zxq5 d2c1492dca added step(n) feature to emulator, allowing for stepping n instructions at a time 2025-06-24 18:07:11 +01:00
zxq5 4ef8bbdf46 updated dependencies 2025-06-24 18:06:29 +01:00
zxq5 76197fac8f finished refactor of emulator - started on loader (needs significant changes before functional in the way that I would like) 2025-06-23 23:45:47 +01:00
zxq5 bc5ddef311 added error handling to emulator 2025-06-23 21:28:38 +01:00
nullndvoid ed479ac146 assembler: purge unwrap and use more AssembleErrors 2025-06-23 19:39:49 +01:00
nullndvoid f432fe7665 misc: clippy lint fixes 2025-06-23 18:23:01 +01:00
nullndvoid 083628ec7e emulator: builds still don't actually work, will look into ELF stuff 2025-06-23 18:13:08 +01:00
zxq5 ddd0c27893 found a cause of a memory bug in emulator - fix is TODO (#6) - continued working on brainf interpreter. we really need better debugging tools tbh. 2025-06-23 00:31:09 +01:00
zxq5 b8091222a4 working on bf.dsa (brainf##k interpreter) cos fun 2025-06-22 16:14:51 +01:00
zxq5 6ea3a76d74 fixed some bugs with file picker & loading different file types - will start working on brainf##k interpreter tomorrow because a compiler isn't enough. 2025-06-22 05:19:55 +01:00
zxq5 2b777f55c7 Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-22 03:54:44 +01:00
zxq5 808b51ff5f updated emulator to support importing .dsb binaries 2025-06-22 03:52:11 +01:00
zxq5 7892c44d89 updated print with new functions 2025-06-22 03:51:39 +01:00
zxq5 9c56258c48 assembler changes & brainf##k compiler lmao 2025-06-22 03:51:16 +01:00
nullndvoid c7322d8171 emulator on android: crashes but APKs are building 2025-06-22 03:46:42 +01:00
nullndvoid a878483923 emulator: fix build errors in main.rs 2025-06-22 02:21:08 +01:00
nullndvoid b97dcd5692 emulator: start supporting Android, this is WIP
Needs storage permissions, probably extra tweaks
2025-06-22 02:13:06 +01:00
nullndvoid 83259b9217 emulator: use egui file pickers rather than native ones
TODO: Add file types when picking? This is a regression
2025-06-22 02:12:26 +01:00
nullndvoid bbf893290f misc: more clippy fixes, **switched to stable**
The switch was due to rust-analyzer bug on latest nightly, please use stable until [this bug](https://github.com/rust-lang/rust-analyzer/issues/20051) is fixed
2025-06-22 00:42:44 +01:00