Skip to content

Instantly share code, notes, and snippets.

@Skrylar
Skrylar / error.txt
Created May 26, 2017 17:12
Horrendous failure trying to use template-based callbacks across module boundaries.
Hint: used config file '/etc/nim.cfg' [Conf]
Hint: system [Processing]
Hint: rectui [Processing]
Hint: sklist [Processing]
Hint: skrectangle [Processing]
Hint: sksigslot [Processing]
Hint: unittest [Processing]
Hint: macros [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
@Skrylar
Skrylar / triage.diff
Created August 14, 2016 05:21
Triage patch to build on Arch.
From 7452eb01a2b5bf4143c0a478e109fee44df69c4f Mon Sep 17 00:00:00 2001
From: Joshua Cearley <joshua.cearley@gmail.com>
Date: Sun, 14 Aug 2016 00:17:33 -0500
Subject: [PATCH] Triage to get things building.
---
src/analyzer.cpp | 6 +++---
src/jack_client.cpp | 2 +-
src/modules_dist.cpp | 4 ++--
src/modules_limit.cpp | 4 ++--
ralette-grammar: [
collect any [
['decompose [
'rgb keep ([
r: (color/1) / 255.0
g: (color/2) / 255.0
b: (color/3) / 255.0
]) |
'hsl keep ([
h: (color/1) / 255.0
Red []
random/seed 1337
; produces a series of chromosomes within [0, dna] of each supplied maximum
make-dna-strand: func[dna
/local dna-length result][
dna-length: length? dna
result: make block! dna-length
foreach chromosome dna [
Red []
forth: context [
prog: [1 2 3 4 5 6 7 8 '+ '+ '* 150 '+ '* '+ '* '*]
registers: ['eax 'ebx 'ecx 'edx]
register-taint: [] ; registers we've touched in this set
register-goop: [] ; registers we need to pop to use
register-sets: 0
next-register: head registers
@Skrylar
Skrylar / JSON.red
Last active October 20, 2015 16:19 — forked from dockimbel/JSON.red
JSON toy parser for Red
Red []
digit-nz: charset "123456789"
digit: append copy digit-nz #"0"
hex: append copy digit "abcdefABCDEF"
sign: charset "+-"
exponent-e: charset "eE"
dquot: #"^""
exponent: [ exponent-e opt sign some digit ]
@Skrylar
Skrylar / weirdtypes.nim
Created March 29, 2014 01:28
Produces an "invalid type: Receivers" compile error, instead of warning that proc(x) should be proc(x:type).
type
FHandler = proc(x) {.closure.}
Receivers = seq[FHandler]
Beans = object
floor: bool
proc Emit(self: Receivers; x: int) =
for e in items(self):
e(x)
@Skrylar
Skrylar / eventmacro.nim
Created March 26, 2014 20:41
An example of my attempts at event map macros.
type
CommandEvent = object
Actions = enum
AMeep,
APacake
MakeIntoEvent CommandEvent
when isMainModule:
# This works
macro MakeIntoEvent* (etype: typedesc): stmt =
let uid = NextEventTypeUID
Inc(NextEventTypeUID)
debugEcho "DUMP ID #", uid, ": ", repr(etype)
result = quote do:
proc GetEventTypeUid* (
self: typedesc[`etype`]): EventTypeUid {.inline.} =
let x = `uid`
return x
# Something kind of like this; replicating wxWidgets style event mapping:
ImplHandleEvent(MyEventHandler):
On(CommandTriggeredEvent, self.OnCommand)
On MorphClosedEvent, self.OnClosed
On SomethingEvent do:
debugEcho "Something else entirely..."