Skip to content

Instantly share code, notes, and snippets.

View porglezomp's full-sized avatar
💖
GITHUB DROP ICE

Cassie Jones porglezomp

💖
GITHUB DROP ICE
View GitHub Profile
@porglezomp
porglezomp / rose8.rs
Last active January 11, 2020 07:42
Rust instructions for ROSE-8
// Thanks to Jordan Rose: https://twitter.com/UINT_MIN/status/1215832790958100480
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Op1 {
Zero,
Lsl1,
Lsr1,
Asr1,
Incr,
Decr,
@porglezomp
porglezomp / conformant_json_parser.py
Created October 27, 2016 06:08
It's possible to have an extremely simple standard-conformant JSON parser!
# RFC 7159 § 9
# "An implementation may set limits on the size of texts that it accepts."
def parse_json(text):
if len(text) != 1:
raise ValueError("Only accepts single character JSON values")
return int(text[0])
@porglezomp
porglezomp / transforms.md
Last active December 3, 2019 23:03
Lets do some proofs about how transforms should behave
@porglezomp
porglezomp / chopper.sh
Last active October 2, 2019 21:16
A tool to chop GIFs into 25 discord emoji.
#!/bin/bash
input=$1
output=$2
prefix=$3
if [ -z "$input" -o -z "$output" ]; then
echo "Usage: $0 <input> <output> [prefix]"
exit 1
fi
@porglezomp
porglezomp / Makefile
Created September 23, 2019 04:52
Multiple return types
all: union exn variant
%: %.cpp
clang++ -Wall -Wextra -Werror -std=c++17 -O3 $< -o $@
clean:
rm -f union exn variant
@porglezomp
porglezomp / ShitLetsBeSmalltalk.swift
Last active August 21, 2019 21:28
Where we're going we don't need primitive control flow!
/// Like a smalltalk bool, but worse. Just used for control flow, we can use real boolean ops.
class ChitChatBool {
func ifTrue<T>(block: () -> T) -> T? { return nil }
}
class True: ChitChatBool {
override func ifTrue<T>(block: () -> T) -> T? { return block() }
}
class False: ChitChatBool { }
@porglezomp
porglezomp / Denotation.swift
Created June 7, 2019 23:49
Swift has MixFix operators, right?
// Colin Barrett - @cbarrett
// turning a big dial taht says "Mixfix operators like Agda" on it
// and constantly looking back at the audience for approval
// like a contestant on the price is right
// https://twitter.com/cbarrett/status/1137113289593413633
// Here define a mixfix interpreter operator spelled: _ ⊢ ⟦_⟧
prefix operator ⟦
postfix operator ⟧
@porglezomp
porglezomp / FloatShiftBlend.swift
Created August 8, 2019 20:23
What does Int << Float mean? :3
extension Int {
subscript(bit bit: Int) -> Int {
guard (0..<Int.bitWidth).contains(bit) else { return 0 }
return (self >> bit) & 1
}
subscript(bit bit: Float) -> Float {
var whole = bit
whole.round(.down)
let fract = bit - whole
return Float(self[bit: Int(whole)]) * (1 - fract)
@porglezomp
porglezomp / CompareChain.swift
Created June 7, 2019 20:45
Let's do horrible crimes with overloads, in order to get Python-style comparison chaining!
infix operator <: ChainComparison
infix operator >: ChainComparison
infix operator ==: ChainComparison
infix operator !=: ChainComparison
infix operator <=: ChainComparison
infix operator >=: ChainComparison
precedencegroup ChainComparison {
associativity: left
}

Making the same joke, over and over.

  • lattice minimum/maximum elements
  • function domains
  • secondary headings/titles
  • html subscripts
  • nintendo's newest console
  • nontermination
  • FRC 2018 field elements
  • compiler control flow graph analysis