Shashwat Agrawal
@shashwatagrawal20
Joined on 30 September 2020
i build low-level tools, runtimes, and infra from scratch, mostly in c, rust, and python. (also yes, i use arch, and neovim btw.)
GitHub Stats
56
Followers
77
Repositories
0
Organizations
0
Gists
61
Pull Requests
20
Issues
225
Commits
0
Sponsors
11
Contributed To
82
Star Earned
Most Used Languages
45.38%
C
17.54%
C++
14.84%
Rust
6.57%
Python
4.61%
Lua
4.38%
Shell
2.48%
HTML
2.00%
Makefile
Popular Projects
tec.h
A tiny, header-only, zero-setup unit testing library for C & C++. No complex build system integration required, just #include and write tests.
C++
18
1
0
0
dotfiles
Configs of the programs
C
8
2
3
2
byte_machine
8 bit vm | simulator
Rust
4
0
0
0
NumC
a numpy like library for C
C
2
1
1
2
httpstat
No description
Rust
2
0
0
0
rust-http-server
A beautiful HTTP server implementation using multithreading and async.
Rust
2
0
0
0
Top Contributions
Top contributions made by the user in the last year.
Charts
Follow Up
Activity Graph
Contributions Calendar
Contributions made by the user in the last 365 days.
Recent Activity
10/1/2025, 12:23:14 AM
- chore: fixed the fucking assembly. - fuck GAS for a superior NASM-based workflow - while i was purifying this mess, I also added a real fucking debug environment. use `make debug` to spin up QEMU with a GDB server. Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/20/2025, 10:08:42 PM
- feat: add idt defs Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/16/2025, 7:07:34 PM
- feat(gdt): should work Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/14/2025, 10:55:59 PM
- fix(docs): OCD Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/14/2025, 10:49:11 PM
- feat(gdt): initial GDT structures and init macro Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/11/2025, 4:41:30 PM
9/11/2025, 4:39:53 PM
9/11/2025, 11:27:31 AM
- test(cleanup): better tests :) cleanup and organize shit Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/8/2025, 1:18:38 PM
- test(cleanup): better tests :) cleanup and organize shit Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/7/2025, 11:22:15 PM
- docs: add docs for fixtures and exception handling Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
- fix: correct handling and reporting of xfail tests Introduce dedicated counters for expected failures (XF) and unexpected passes (XP). The test summary now categorizes results more differently yet accurately: - Passed, failed, and total counts are always shown. - Additional details (XF/XP) are shown only when relevant. - other information like skipped and filtered are only shown when relevant. Tests: 46 passed (32P, 14XF), 1 failed (0F, 1XP), 1 skipped (48 total) Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
- fix(core): Prevent TEC_ASSERT_THROWS from self-catching exceptions A subtle but critical bug in the `TEC_ASSERT_THROWS` macro caused it to report impossible assertion counts, such as "1 passed, 1 failed (1 total)". The root cause was that `tec_assertion_failure` inherits from `std::runtime_error`. When an assertion failed because a statement did not throw, `TEC_POST_FAIL` would throw its own internal exception. This was then immediately caught by the macro's own `catch` block, which was intended for the expected user exception, this incorrect catch would internal call `TEC_POST_PASS`, corrupting the final assertion counts. Add a higher-priority `catch` block specifically for `tec_assertion_failure`. The block immediately re-throws the exception, ensuring the internal failure signal properly propagates to the test runner and is not consumed by the macro itself. Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/7/2025, 10:30:55 PM
- fix(core): Prevent TEC_ASSERT_THROWS from self-catching exceptions A subtle but critical bug in the `TEC_ASSERT_THROWS` macro caused it to report impossible assertion counts, such as "1 passed, 1 failed (1 total)". The root cause was that `tec_assertion_failure` inherits from `std::runtime_error`. When an assertion failed because a statement did not throw, `TEC_POST_FAIL` would throw its own internal exception. This was then immediately caught by the macro's own `catch` block, which was intended for the expected user exception, this incorrect catch would internal call `TEC_POST_PASS`, corrupting the final assertion counts. Add a higher-priority `catch` block specifically for `tec_assertion_failure`. The block immediately re-throws the exception, ensuring the internal failure signal properly propagates to the test runner and is not consumed by the macro itself. Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
9/6/2025, 8:41:54 PM
- docs: add docs for fixtures and exception handling Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
- fix: correct handling and reporting of xfail tests Introduce dedicated counters for expected failures (XF) and unexpected passes (XP). The test summary now categorizes results more differently yet accurately: - Passed, failed, and total counts are always shown. - Additional details (XF/XP) are shown only when relevant. - other information like skipped and filtered are only shown when relevant. Tests: 46 passed (32P, 14XF), 1 failed (0F, 1XP), 1 skipped (48 total) Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>