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
53
Followers
75
Repositories
0
Organizations
0
Gists
61
Pull Requests
20
Issues
219
Commits
0
Sponsors
11
Contributed To
72
Star Earned
Most Used Languages
46.70%
C
15.89%
Rust
13.60%
C++
7.04%
Python
4.94%
Lua
4.69%
Shell
2.65%
HTML
2.14%
Makefile
Popular Projects
tec.h
Unit Test for C/C++
C++
10
1
0
0
dotfiles
Configs of the programs
C
8
2
3
2
byte_machine
8 bit vm | simulator
Rust
3
0
0
0
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
ShashwatAgrawal20
Config files for my GitHub profile.
Unknown
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
8/18/2025, 12:18:04 AM
- refactor: use fixed-width types in format macros fuck this. lp64 vs llp64; portable C my ass. fuck windows, fuck mingw/msvc-crt, fuck me. Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/17/2025, 12:11:23 AM
- test: make output less ugly, more cross-platform friendly - it's ASCII on wind*ws, unicode elsewhere as of now might make the ASCII the default for all platforms. - introduce `_tec_skip_impl(reason, line)` for fixing the __LINE__ bug - maybe it should works with both `/` and `\\` now(wind*ws). Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/16/2025, 1:26:34 AM
- chore(tec): fuck me Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/16/2025, 1:26:33 AM
- chore(tec): fuck me Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/15/2025, 6:11:23 PM
- tec: C++ port groudwork, use exceptions instead of longjumps. replacing raw longjmp() fail/skip handling with exceptions when __cplusplus is defined. - Introduce `tec_assertion_failure` and `tec_skip_test` runtime_error subclasses for fail and skip semantics. - Wrap all test entry points in try/catch to catch our exceptions and any other `std::exception`, falling back to `TEC_FAIL`. - Add `_tec_post_wrapper()` as a common path for both C and C++ post-assertion handling. - Replace `__auto_type` with `TEC_AUTO_TYPE`, mapping to `auto` in C++ and `__auto_type` in C. - Preserve existing C _Generic formatting machinery for C builds. NOTE: only the `TEC_ASSERT` macro works with the updated stuff, other macros won't work Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
- feat(c++): full C++ support - Split `TEC_POST_FAIL` / `TEC_SKIP` into standalone funcs - Added `tec_to_string<T>()` template for type-safe formatting - Renamed `TEC_SKIP` enum value to `TEC_SKIP_e` to dodge C++ macro collisions uses exception for proper RAII and destructor thingies also you can manually use try catch Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
- docs: update README; C++ cleanup examples - add "Why TEC?" section - group skipping/xfail under "Test Control" - link related sections for quick nav - add C++ try/catch + RAII examples Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/15/2025, 5:33:54 PM
- docs: update README; C++ cleanup examples - add "Why TEC?" section - group skipping/xfail under "Test Control" - link related sections for quick nav - add C++ try/catch + RAII examples Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/14/2025, 7:55:50 PM
- feat(c++): full C++ support - Split `TEC_POST_FAIL` / `TEC_SKIP` into standalone funcs - Added `tec_to_string<T>()` template for type-safe formatting - Renamed `TEC_SKIP` enum value to `TEC_SKIP_e` to dodge C++ macro collisions uses exception for proper RAII and destructor thingies also you can manually use try catch Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/14/2025, 12:27:58 AM
- tec: C++ port groudwork, use exceptions instead of longjumps. replacing raw longjmp() fail/skip handling with exceptions when __cplusplus is defined. - Introduce `tec_assertion_failure` and `tec_skip_test` runtime_error subclasses for fail and skip semantics. - Wrap all test entry points in try/catch to catch our exceptions and any other `std::exception`, falling back to `TEC_FAIL`. - Add `_tec_post_wrapper()` as a common path for both C and C++ post-assertion handling. - Replace `__auto_type` with `TEC_AUTO_TYPE`, mapping to `auto` in C++ and `__auto_type` in C. - Preserve existing C _Generic formatting machinery for C builds. NOTE: only the `TEC_ASSERT` macro works with the updated stuff, other macros won't work Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/11/2025, 3:12:30 PM
- LICENSE: it's finally happening added the license to tec.h too Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/11/2025, 3:12:30 PM
- LICENSE: it's finally happening added the license to tec.h too Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/10/2025, 12:53:31 PM
- feat(assert): add float support, clean up docs - add `TEC_ASSERT_NEAR()` and `TEC_ASSERT_FLOAT_EQ()` with default of `(DBL_EPSILON * 4.0)` - make comparison failure messages show inverse operator - expand README with grouped assertion table, xfail docs, and fp usage - add float precision test case Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/10/2025, 12:52:28 PM
- feat(assert): add float support, clean up docs - add `TEC_ASSERT_NEAR()` and `TEC_ASSERT_FLOAT_EQ()` with default of `(DBL_EPSILON * 4.0)` - make comparison failure messages show inverse operator - expand README with grouped assertion table, xfail docs, and fp usage - add float precision test case Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>
8/10/2025, 1:31:43 AM
- vim-patch:7132935: runtime(java): Manage byte limits for variable-width lookbehind assertions Raise the byte limits from 80 to 120 for "javaFuncDef" and "java*CommentTitle"; and support selecting other arbitrary values with ------------------------------------------------------------ let g:java_lookbehind_byte_counts = { \ 'javaMarkdownCommentTitle': 240, \ } ------------------------------------------------------------ for related groups of syntax definitions, referring to their names with dictionary keys. Over-80-Byte-Limit Lookbehind Examples: https://raw.githubusercontent.com/openjdk/jdk/refs/tags/jdk-24%2B36/src/java.base/share/classes/sun/security/x509/NamedX509Key.java [Lines 43 & 44] https://raw.githubusercontent.com/openjdk/jdk/refs/tags/jdk-24%2B36/src/jdk.compiler/share/classes/com/sun/tools/javac/util/GraphUtils.java [Line 154] closes: vim/vim#17921 https://github.com/vim/vim/commit/7132935413dfda47e015015dbbc5b9eb097b90d6 Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
- vim-patch:3be4ad7: runtime(optwin): Fix E94 when searching for the option-window Problem: When the parameter debug=msg is set and the command :option is entered, error E94 will be displayed. Solution: Add a check for the existence of the buffer before getting the buffer number “option-window”. Reproduce: vim --clean -c "set debug=msg" -c "option" Error detected while processing command line..script D:\Programs\Vim\vim91\optwin.vim: line 9: E94: No matching buffer for option-window closes: vim/vim#17927 https://github.com/vim/vim/commit/3be4ad76df92086e29c3fcf5e6a25f285b6e188f Co-authored-by: RestorerZ <restorer@mail2k.ru>
- Merge pull request #35267 from zeertzjq/vim-7132935 vim-patch: runtime updates
- vim-patch:9.1.1606: filetype: a few more files are not recognized (#35268) Problem: filetype: a few more files are not recognized Solution: guess Mail, Info and Terminfo files by its content (lacygoill) closes: vim/vim#17880 https://github.com/vim/vim/commit/eb2aebeb7982168ece3888c9c0b08fc46f9d4d15 Co-authored-by: lacygoill <lacygoill@lacygoill.me>
- Merge branch 'master' of neovim/neovim into fix/gen_help/ascii-art-rendering
8/9/2025, 9:58:44 PM
- feat(xfail): add xfail, because some tests are supposed to suck Add an `xfail` flag to test entries and a `TEC_XFAIL()` macro so we can mark tests we expect to fail. Expected failures are counted as passes, and unexpected successes get flagged failures. Signed-off-by: Shashwat Agrawal <shashwatagrawal473@gmail.com>