Skip to content

Instantly share code, notes, and snippets.

View Qix-'s full-sized avatar
💻
Making an OS @oro-os

Josh Junon Qix-

💻
Making an OS @oro-os
View GitHub Profile
@Qix-
Qix- / llvm-clang-cl-win32.cmake
Created April 10, 2022 02:38
LLVM 15 + MSVC 2021 Community Edition CMake Toolchain file
# Cross toolchain configuration for using clang-cl.
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_VERSION 10.0)
set(CMAKE_SYSTEM_PROCESSOR AMD64)
set(CMAKE_C_COMPILER "/usr/bin/clang-cl-15")
set(CMAKE_CXX_COMPILER "/usr/bin/clang-cl-15")
set(CMAKE_LINKER "/usr/bin/lld-link-15")
@Qix-
Qix- / test.h
Last active April 1, 2022 14:50
Tiny test suite for C
/*
NOTE: I'm just including this here since it was
NOTE: useful for another project. There are some
NOTE: project-specific things in here; customize
NOTE: INIT_TEST, END_TEST and TEST to suite your
NOTE: needs.
*/
#ifndef TEST_SUITE_H
#define TEST_SUITE_H
@Qix-
Qix- / order-of-includes.md
Last active December 10, 2021 14:49
Order of includes

C/C++ Order of Includes

The order in which I group my header includes is as follows. Each section is separated by exactly one blank line, even if the section only has one include.

  1. "" Internal headers
  2. "" Internal generated headers (e.g. from version.h.in; okay to use from include path)
  3. "" Internal third-party headers (vendored into project)
  4. "" Private API headers (always relative paths)
  5. "" Public API headers
  6. <> Build-system level third party headers (e.g. from CMake's add_subdirectory(); always from include path)
struct Bar {
enum Foo {
A = 1,
B = 2,
C = 4
};
};
using B = Bar;
@Qix-
Qix- / vox.ksy
Created November 6, 2021 09:02
Full MagickaVoxel .VOX kaitai struct definition. Should be completely conformant.
meta:
id: vox
file-extension: vox
endian: le
seq:
- id: magic
contents: ["VOX ", 0x96, 0x00, 0x00, 0x00]
- id: chunks
type: chunk
types:
@Qix-
Qix- / dump-stack.c
Created September 28, 2021 18:37
Useful little Lua stack debugger
static const char * typecolor(int type) {
switch(type) {
case LUA_TBOOLEAN: return "\x1b[32m";
case LUA_TSTRING: return "\x1b[31m";
case LUA_TFUNCTION: return "\x1b[33m";
case LUA_TNUMBER: return "\x1b[94m";
case LUA_TLIGHTUSERDATA: return "\x1b[95m";
case LUA_TUSERDATA: return "\x1b[35m";
case LUA_TTABLE: return "\x1b[36m";
case LUA_TTHREAD: return "\x1b[37m";
@Qix-
Qix- / to-pdf.bat
Created September 17, 2021 12:02
Drop this into a .bat somewhere and you can then drag+drop one ore more images onto it to create a multi-page PDF document.
@echo off
if %1.==. goto No1
bash -xc "a=(); for i in $(seq $#);do a+=(\"$(wslpath \"${!i}\")\"); done; convert \"${a[@]}\" -auto-orient \"output$(suffix() { local v=$(cat); if ! [ $v -eq 0 ]; then printf ' (%%s)' $v ; fi ; } ; find . -name 'output*.pdf' "|" grep -E '^\./output( \([0-9]+\))?\.pdf$' "|" wc -l "|" suffix ).pdf\"" -- %*
goto End
:No1
echo No documents dropped onto script; terminating.
pause
@Qix-
Qix- / shemulator.js
Created April 7, 2021 17:31
A thing I spent a few hours writing and ended up not needing.
/*
sh`emulator` (shell emulator)
by Josh Junon
Dual license: MIT License OR public domain
const [code, out, err] = await sh
`cat ${process.argv[2]}`
`wc -w`
`rev`
`tee /tmp/rev-word-count.txt`
I mostly move fast and break things, thinking differently while also not being evil. I am like an android - some call me Mr Robot - turning java and hot pockets into pure, event driven, asynchronous, reactive code - all of which is blazing fast and only three bytes gzipped. With my ninja-like skills I bootstrap unicorns like a rock star, synergizing and weaving machine code together like Our Holy Richard Stallman (peace be upon him), optimizing and streamlining integrations into cohesive and rich user experiences. I conjure magical inCANTATIONs on my DUAL ERGONOMIC MECHANICAL KEYBOARDS, WITH CUSTOM LISP CONFIGURATIONS FOR MANIFESTING MY WORD INTO REALITY LIKE PROPHETS TO THEIR SCRIBES. THE ͜OC͞ÉA̛N̶S ҉OF B̛ITS͝ FLO͡W̧I͜N͠G͜ ̨ON ́TH̶E B͜U͜S ́LI͠NES, ͢Q͝UI̛VÉR̡ING A̷S ͡THO͘U̢ǴH̸ D͠E͝NIAL̀ AT͏ TH̕E G͟AT͝E̴S ̛ǪF ̸VALG̵R̢I͜ND͝ I͝S IM̴M̶I͟NENT̛.̢ I pity the recruiter THAT LAYETH EYES ON MY CODE PATHS. LIKE A SERAPHIM ꙮ AND̕ ̛ITS ͡WATC̨HPOI̷N͠T͠Ś (̨̡͙̰̪̱̝̬̯ẖ͚̱͔̘̟e̸͔͔̱̖̰̻͙̺̕ ̸̱̼͉̼̗̖̞͜͝ͅc͉͉̪͙͎̕ò̰̭̻̻̩̗̕m̢̝̟͢͠e͟
@Qix-
Qix- / fake-language.txt
Last active December 11, 2020 16:21
6 years later and I still need to sit down and make this programming language
# Self-contained example for writing to stdout and to a file.
#
# Relies only on the standard assembler module (std.asm), which
# cannot be stubbed out here (as they are intrinsics). std.asm
# allows direct, architecture-specific emission of machine code
# instructions and access to registers.
#
# Also relies on the @platform, @arch, @effect, and @force_inline
# intrinsics, which cannot be (reasonably) stubbed out here.
#