scratch
BUSY
Our great sponsors
scratch | BUSY | |
---|---|---|
51 | 24 | |
333 | 80 | |
- | - | |
9.0 | 3.7 | |
2 days ago | 12 months ago | |
C | C | |
The Unlicense | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
scratch
- Windows XP dedicated image viewer?
-
What Happens Before the Main Function is Called ?
pbmview, an image viewer (windows subsystem).
-
A couple freestanding parsers in C99
For comparison (for those following along): https://github.com/skeeto/scratch/blob/master/parsers/qoi.c https://github.com/skeeto/scratch/blob/master/parsers/ini.c
- (POSIX) theory and practice of the useless use of cat
- [2023-05-19] Challenge #400 [Intermediate] Practical Numbers
-
Difference in accuracy when compiling in windows and linux
Another option I learned a couple years ago is embedding a UTF-8 manifest ([details])[https://github.com/skeeto/scratch/tree/master/libwinsane]. Also put the console in UTF-8 mode (SetConsoleOutputCP(CP_UTF8)), and you're done. Works on Windows 10 and later. This covers everything: argv is UTF-8 and fopen accepts UTF-8 paths. (This is exactly how CRTs should have worked all along.)
-
I made this small program in C :)
I was thinking more about this and I realized it's quite easy to do it in arbitrary precision, so here's my take: https://github.com/skeeto/scratch/blob/master/misc/bswap.c
-
Beside SDL, is there an easier way to just show a custom rectangle with text, cross-platform?
As was linked from my QOI article, here's my full decoder with comments: qoi.c. Each pixel decodes to a 32-bit integer, ABGR. That corresponds to SDL's SDL_PIXELFORMAT_ABGR8888. SDL_UpdateTexture copies that data into the texture's internal storage, and font is no longer needed. (In a real program I'd allocate it in a scratch arena, reset after initialization.)
-
GitHub - pmkenned/pmk_string: A simple string library in C
A recent, interesting experience with function+context allocation: For more than a decade, Windows accidentally exposed part of zlib in a public DLL, and (overly-)clever applications can exploit this as a "system zlib." Though it doesn't export the "end" functions, so cleanup seems impossible. However, custom allocation works, so doesn't matter. I plugged it into an arena.
- decompressing a .deflate file?
BUSY
-
Xz Backdoor and Autotools Insanity
CMake - as autotools - is a meta build system; it e.g. generates make files, which are essentially scripts. Also CMake itself is essentially a VM with a scripting language. Both CMake and Make are Turing complete (and dynamically typed, as mentioned). And yes, not all build systems are the same; e.g. https://github.com/rochus-keller/BUSY has a statically typed specification language and intentionally avoids a Turing complete language.
-
New build system for C/C++
> Have you coded the lexer/parser from scratch
Yes. Here is the lexer: https://github.com/rochus-keller/BUSY/blob/main/bslex.c
and here is the parser: https://github.com/rochus-keller/BUSY/blob/main/bsparser.c
and here is the specification: http://software.rochus-keller.ch/busy_spec.html
I also developed and checked the EBNF in parallel using my EbnfStudio tool; this tool could also generate a parser, but since I'm using much of the Lua VM infrastructure a manual parser implementation was more straight-forward .
- What should be used to build the CPython of tomorrow?
- A simple shell based build tool for C/C++
-
Knit: Making a Better Make
If you haven't seen it: https://github.com/rochus-keller/BUSY
> BUSY is a lean, statically typed, cross-platform, easily bootstrappable build system for GCC, CLANG and MSVC inspired by Google GN
It uses lua and config files that are mostly directories and filenames.
-
Using Qt 6 under LGPLv3
> Instead of qmake the BUSY build system (see https://github.com/rochus-keller/BUSY) is used
It must be a rite of passage to make(!) one's own build system, damn
- BUSY lean build system with new Qmake backend
- Show HN: Busy build system now has a Qmake back end
- New BUSY build system, MVP release
What are some alternatives?
w64devkit - Portable C and C++ Development Kit for x64 (and x86) Windows
remake - Enhanced GNU Make - tracing, error reporting, debugging, profiling and more
busybox-w32 - WIN32 native port of BusyBox.
shellb - Simple Shell based build tool
PSCalendar - :calendar: A set of PowerShell commands for displaying calendars in the console.
GnTools - GN meta-build system parser, static code model and navigable code browser
cimgui - c-api for imgui (https://github.com/ocornut/imgui) Look at: https://github.com/cimgui for other widgets
gtec-demo-framework
gameinfojs - High level interface to the functionality provided by the other game* libraries
nappgui - SDK for building cross-platform desktop apps in ANSI-C
PL3D-KC - A very fast and simple software renderer using only integers and fixed point math. PiSHi LE (PL) is a subset of the 3D software graphics library used in King's Crook.
coalton - Coalton is an efficient, statically typed functional programming language that supercharges Common Lisp.