scratch
w64devkit
Our great sponsors
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?
w64devkit
-
Mingw VS Code
Try w64devkit https://github.com/skeeto/w64devkit
- Portable C and C++ Development Kit for x64 (and x86) Windows
-
Windows XP dedicated image viewer?
Click "View raw" to download. The executable is just ~3kB. If you'd like to try building it yourself, I distribute a Windows XP-friendly, no-installation-required C and C++ toolchain, w64devkit. The 32-bit toolchains are labeled "i686" (on the right under "Releases"). The build command (cc ...) is at the top of the source file.
-
Can you help me finish this vDSO Loader + mini-Elf64 Parser?
I bundle my preferred tools together in a standalone compiler toolkit for Windows: w64devkit. Except Git and documentation (see the links in the README), that's essentially everything I need to be productive.
- Assume I'm an idiot - oogabooga LLaMa.cpp??!
-
Build a GCC 13 compiler from source for Windows 10/11
I have a Dockerfile here that goes through all the steps bootstrapping a Mingw-w64 toolchain from source: https://github.com/skeeto/w64devkit
-
Why is Swift so slow (timeout) in compiling this code?
FWIW, both GNU objcopy and GNU ld (including e.g. the XCOPY-deployable ones from w64devkit[1]) are perfectly capable[2] of turning binary data into MSVC-acceptable COFF files with start and end symbols, while Free Pascal, for example, straight up ships with a bin2obj tool; the MSVC toolset is the outlier here.
[1] https://github.com/skeeto/w64devkit
[2] https://www.devever.net/~hl/incbin
-
Generic Binary Tree Delete Function Error
Sounds like an high priority issue to solve first. I distribute a toolchain that doesn't require installation and includes a debugger: w64devkit (see "Releases"). You can pluck out the gdb.exe since it's statically linked and doesn't depend on anything else in the kit.
-
I've just finished to upgrade my raycaster game engine, adding multiplayer and more! Written from scratch in C and SDL2. GitHub in the comments :)
This particular case is a Windows program due to Winsock, and I happen to include all the above tools, except SDL2, a small Mingw-w64 distribution, w64devkit. So it doesn't take much!
-
WinLibs: Standalone build of GCC and MinGW-w64 for Windows
Similar project providing slightly fewer tools: https://github.com/skeeto/w64devkit
What are some alternatives?
busybox-w32 - WIN32 native port of BusyBox.
llvm-mingw - An LLVM/Clang/LLD based mingw-w64 toolchain
BUSY - BUSY is a lean, statically typed, cross-platform, easily bootstrappable build system for GCC, CLANG and MSVC inspired by Google GN
mingw-builds - Scripts for building the 32 and 64-bit MinGW-W64 compilers for Windows
PSCalendar - :calendar: A set of PowerShell commands for displaying calendars in the console.
cmake-init - The missing CMake project initializer
cimgui - c-api for imgui (https://github.com/ocornut/imgui) Look at: https://github.com/cimgui for other widgets
xschem - A schematic editor for VLSI/Asic/Analog custom designs, netlist backends for VHDL, Spice and Verilog. The tool is focused on hierarchy and parametric designs, to maximize circuit reuse.
gameinfojs - High level interface to the functionality provided by the other game* libraries
mingw-builds-binaries - MinGW-W64 compiler binaries
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.
SCL_String - Public domain, header-only file to simplify the C programmer's life in their interaction with strings