Skip to content

Instantly share code, notes, and snippets.

View kddnewton's full-sized avatar
👶
Paternity leave

Kevin Newton kddnewton

👶
Paternity leave
View GitHub Profile
@kddnewton
kddnewton / main.c
Last active January 6, 2025 13:49
TLS macOS weirdness
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
static int value = 0xDEADBEEF;
static _Thread_local void *tls = &value;
static pthread_key_t key;
void *worker(void *arg) {
tls = (void*)0xCAFEBABE;
@kddnewton
kddnewton / bignums.rb
Created December 15, 2023 21:39
Bignums
# frozen_string_literal: true
class Number
SIZE = 32
attr_reader :values
def initialize(values = [0])
@values = values
end
@kddnewton
kddnewton / bug.rb
Created November 28, 2023 17:04
Maybe encoding bug?
# frozen_string_literal: true
class Context < BasicObject
def method_missing(name, *) = :identifier
def self.const_missing(name) = :constant
end
$context = Context.new
def evaluate(encoding, codepoint)
@kddnewton
kddnewton / compile.js
Created November 13, 2023 19:07
Compile Prism into YARV in JavaScript
import * as prism from "@ruby/prism";
class RubyInteger {
constructor(value) {
this.value = value;
}
_plus(other) {
if (!(other instanceof RubyInteger)) {
throw new TypeError(`no implicit conversion of ${other.constructor.name} into Integer`);
@kddnewton
kddnewton / cached.rb
Created September 12, 2023 13:58
Cached lookup
# frozen_string_literal: true
require "bundler/inline"
gemfile(true) do
source "https://rubygems.org"
gem "activerecord", "~> 7.0.0"
gem "sqlite3"
end
@kddnewton
kddnewton / yarp_ast.rb
Last active August 28, 2023 18:32
Fetch YARP AST for a method
require "yarp"
module YARPAST
def yarp_ast
ast =
begin
RubyVM::AbstractSyntaxTree.of(self, keep_script_lines: true)
rescue ArgumentError
end
@kddnewton
kddnewton / neon.c
Created August 28, 2023 17:50
Attempting to parse identifiers using NEON SIMD
#include <stdbool.h>
#include <stddef.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
// Each entry in this lookup table indicates whether a character is a valid
@kddnewton
kddnewton / assembler.rb
Created March 17, 2023 20:03
Using YARV assembler in Syntax Tree
putspecialobject 3
putnil
defineclass :FooBar, 0
definemethod :foo
putobject "FooBar#foo"
leave
definemethod :bar
putobject "class variable"
setclassvariable :@@bar
@kddnewton
kddnewton / json.rb
Last active August 7, 2023 19:54
Faster JSON parser in Ruby
# frozen_string_literal: true
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "json_pure"
gem "benchmark-ips"
end
@kddnewton
kddnewton / index.rb
Last active December 22, 2022 20:42
Indexing classes/modules/methods
#!/usr/bin/env ruby
# frozen_string_literal: true
VM_DEFINECLASS_TYPE_CLASS = 0x00
VM_DEFINECLASS_TYPE_SINGLETON_CLASS = 0x01
VM_DEFINECLASS_TYPE_MODULE = 0x02
VM_DEFINECLASS_FLAG_SCOPED = 0x08
VM_DEFINECLASS_FLAG_HAS_SUPERCLASS = 0x10
def log(line, event, message)